k1051 2017 - josemariasola.github.io · parcial o sólo un examen parcial. se debe cumplir en...
TRANSCRIPT
Prof.Esp.Ing.JoséMaríaSola
UniversidadTecnológicaNacionalFacultadRegionalBuenosAires
DepartamentodeIngenieríaenSistemasdeInformación
K1051
2017
Mar23,Jueves
Agendaparaestaclase� BienvenidosalaUniversidadyalcurso� Presentacióninicial,conozcámonos� ElcontextodeAED� SobrelaCátedraylaAsignatura� Laaprobaciónylaregularización� PlataformadelCurso� SobreelLenguajeC++� Primercontactoconlaprogramación� TrabajoPráctico#0� Términosdelaclase� Tareasparalapróximaclase.
Prof. Esp. Ing. José María Sola 3
Conozcámonos
DocentesdelCurso� ProfesoraCargo
� Esp.Ing.JoséMaríaSola� Auxiliares
� Srta.ElizabethSosa
Prof. Esp. Ing. José María Sola 5
EnlaClaseyHorarios� Primerasfiladebancolibresparaelproyectoryparaotromaterial(sielaulanotieneproyectorintegrado)
� Entrarysalirporpuertatrasera(sielaulalatiene)� Celular,ensilencioovibrador� Horariosdelcurso
� 5horascátedraconintervalode15minutos� 3horasreloj+intervalode15o20minutos
� 19:00a� Intervalo20:30o20:45
� 23:00� Consultaspresenciales,antesydespuésdeclase.
Prof. Esp. Ing. José María Sola 6
AnálisisdelTítulodelaCarrera–IngenieríaenSistemasdeInformación� Ingeniería
� Aplicacióntecnología—cienciaytécnicas—pararesoluciónproblemas
� Construccióndesoluciones� Sistema
� Conjuntoelementosrelacionadosconobjetivocomún
� Información� Datosprocesados� Materiaprimaparatomade
decisiones� Datovalorsintáctico� Informaciónvalorsemántico.
� SistemadeInformación� Sistemamanualoautomático
con� personas,máquinasométodosque� procesainformación
� recolecta,transmite,almacenadistribuye,presentaymanipula
� informaciónparasususuarios� entiempoyforma
� Engeneral,lossistemasdeinformacióntienengrandespartesimplementadasconSistemasSoftware
� LaprogramaciónylaconstruccióndeSistemasSoftware.
Prof. Esp. Ing. José María Sola 8
RoldelaMateriaenlasAcAvidadesdelIngenieroenSistemasdeInformación
Organización
SistemadeInformación
Proyecto
Problema(Necesidad)
Desarrollo
Análisis Diseño Implementación
Solución
Prof. Esp. Ing. José María Sola 9
LasAsignaturasParalelas� MatemáticaDiscreta� SistemasyOrganizaciones
Prof. Esp. Ing. José María Sola 10
� Objetivos� Aplicarmétodosinductivos,
deductivosyrecursivosenlaresolucióndesituacionesproblemáticasydemostracionesmatemáticas
� Comprenderlosconceptosyprocedimientosnecesariospararesolverrelacionesderecurrencia
� Aplicarpropiedadesyfuncionesdefinidasenlosnúmerosenterosyenterosnonegativos
� Caracterizardistintasestructurasalgebraicas,enfatizandolasqueseanfinitas
ylasálgebrasdeBoole� Aplicarpropiedadesdegrafos,
dígrafosyárbolesenlaresolucióndesituacionesproblemáticas
� ContenidosMínimos� LógicaProporcionalClásicay
dePredicadosdePrimerOrden� TeoríadeNúmeros� InducciónMatemática� RelacionesdeRecurrencia� EstructurasAlgebraicasFinitas
yAlgebradeBoole� Grafos,dígrafosyárboles.
MatemáAcaDiscreta
Prof. Esp. Ing. José María Sola 11
AEDenlaCarrera
Asignatura
Área
CarreraIngenieríaenSistemasdeInformación
Programación
AED Otras
Otras
Otras
Prof. Esp. Ing. José María Sola 12
ÁreaProgramación� Objetivos
� Formareinformaracercademetodologías,técnicasylenguajesdeprogramación,comoherramientasbásicasparaeldesarrollodesoftwareyelestudiodedisciplinasquepermitancrearnuevastecnologías
� Asignaturas(640hs)� 1.MatemáticaDiscreta(96hs)� 2.AlgoritmosyEstructurasdeDatos(160hs)� 3.SintaxisySemánticadelosLenguajes(128hs)� 4.ParadigmasdeProgramación(128hs)� 5.GestióndeDatos(128hs).
Prof. Esp. Ing. José María Sola 13
IntegraciónconotrasAsignaturasyConceptosPrincipales� IntegraciónenÁreadeProgramación
� Integraciónvertical� ParadigmasdeProgramación� SintaxisySemánticadeLenguajes
� IntegraciónHorizontal� MatemáticaDiscreta
� Integraciónconotrasáreas� Computación� SistemasdeInformación
� Abstracción(conceptofundamental)� Separación,dejardeladolosdetallesparaenfocarenloimportante
� OrientaciónaObjetos� Objeto:entidadconcomportamientoyquemantieneunestado.
Prof. Esp. Ing. José María Sola 14
AnálisisdelNombredelaAsignatura–AlgoritmosyEstructurasdeDatos� Algoritmos
� Pasospararesolverunproblemageneral� Datosdeentrada� Listadepasos� Salidaresultante
� Datos� Valoresdeunconjunto� Datum� DatoversusInformaciónversusConocimiento
� Estructura� Relacionesentreentidadesparaalmacenardatos
� TipodeDatosProf. Esp. Ing. José María Sola 17
GeneralidadesdeAEDOrdenanza1150/2007� Departamento IngenieríaenSistemasdeInformación� Bloque TecnologíasBásicas� Área Programación� Nivel 1� Horas/semana 5� Horas/Año 160� Correlatividades
� Anteriores:Ninguna� Siguientes
� Debeestarregularizadaparacursar� AnálisisdeSistemas(2do)� SintaxisySemánticadelosLenguajes(2do)� ParadigmasdeProgramación(2do)� SistemasOperativos.(2do,acordeaordenanza1150/2007)
� Debeestaraprobadaparacursar� DiseñodeSistemas(3ro)� GestióndeDatos(3ro)� Ecnomía(3ro)� RedesdeInformación(4to,acordeaordenanza1150/2007)� Legislación(4to)
Prof. Esp. Ing. José María Sola 18
Objetivos ContenidosMínimos� Identificarproblemas
algorítmicos� Conocerelproceso
dediseñoeimplementacióndesoftware
� Aplicarlasherramientasfundamentalesrepresentativasdelosprocesos,integrandolasintaxiselementaldeunlenguajedeprogramaciónenellaboratorioasociado
� ConceptodeDato� TiposdeDatosSimples� TipoAbstractodedatos� EstructurasdeControlBásicas:secuencial,
condicional,cíclica� EstrategiasdeResolución� EstructurasdeDatos:registros,arreglosyarchivos� Abstraccionesconprocedimientosyfunciones� PasajedeParámetros� EstructurasdeDatoslineales(Pilas-Colas)� AlgoritmosdeBúsqueda,Recorridoy
Ordenamiento� ArchivosdeAccesoSecuencialyAleatorio:
organizacionesyaccesos.� ProcesamientoBásico� Recursividad� NocionesdeComplejidadComputacional� NocióndeOrdendeComplejidad.
ProgramaSintéAcodeAEDOrdenanza1150/2007
Prof. Esp. Ing. José María Sola 19
LosTemasdeAED
TiposdeDatos
Algoritmos
ResolucióndeProblemas
ANSIC++(subconjunto)
Prof. Esp. Ing. José María Sola 20
AED
LaCátedra� Dr.Mg.OscarBruno,ProfesorAsociadoOrdinario
� CoordinadordelaCátedra� @orbruno� droscarbruno.wordpress.com
Prof. Esp. Ing. José María Sola 21
Aprobación–ExamenFinal� Requisitoparaaprobación
� Regularizaciónyaprobacióndelexamenfinal� AprobaciónDirecta
� Examenfinal� Cuatrooportunidades
Prof. Esp. Ing. José María Sola 23
� 75%deAsistencia(Bedelía)
� Evaluaciones(Cátedra)� Características
� Grupaleseindividuales� Deaplicacióno
conceptuales� Evaluaciónfrecuentes� TrabajosPrácticos,
entregassemanales
� Instancias� Unaevaluaciónescrita
individualenelprimercuatrimestre,otraenelsegundo
� Trabajosprácticos� Comunesatodosloscursos� Propiosdelcurso
� Dosrecuperatorios,enDicyenFeb
� Lasfechasseestablecenduranteelcurso
� AlFinalizarelcurso� Evaluaciónindividualoraloescrita("coloquio”)
� Conocimientosdelostrabajosprácticos.
RequisitosparalaRegularización(i.e.,Firma)
Prof. Esp. Ing. José María Sola 24
AprobaciónDirecta� Nohabersidoreincorporado� Todoaprobadoy,paralasevaluacionesconnotanumérica,connotamayoroiguala8
� Nohaberrecuperadoningúnparcialosólounexamenparcial.
� SedebecumplirentiempoyformacontodaslasentregasdelosTPdecomunesatodosloscurso
� LosTPdelcursoseapruebanenlaprimeraoportunidadoenelprimerrecuperatorio
� HaydosinstanciasdedeterminacióndelestadodeAprobaciónDirecta:� EnNoviembre,antesdefinalizarlacursada
� DuranteDiciembre� QuieneslleguenalossegundosrecuperatoriosdeFebrero-Marzo,nologranlaaprobacióndirecta
� Setratacomocasoespecialquientengaunanotacon7(siete)ycumpleconelrestodelosrequisitos.
Prof. Esp. Ing. José María Sola 25
RequisitosparalaRegularización(i.e.,Firma)� 75%deAsistencia(Bedelía)� Evaluaciones(Cátedra)
� Grupaleseindividuales,� Deaplicaciónoconceptuales� Evaluaciónfrecuentes� TrabajosPrácticos,entregassemanales� Dosrecuperatorios,enDicyenFeb� Lasfechasseestablecenduranteelcurso� Findelcurso
� Evaluaciónindividualoraloescrita("coloquio”)� Conocimientosdelostrabajosprácticos.
Prof. Esp. Ing. José María Sola 26
DinámicadeTrabajo� Indicacióndelecturasyejerciciosobligatoriosparasiguienteclase
� Profundizacióndeconceptosenclase� Claseinteractivayparticipativa
� Serecomiendaseguirlaclaseconlabibliografíaytomarapuntesalapar
� Ejerciciosdeaplicaciónenclase� Consultas
� Duranteclase,yjustoantesdeiniciaryfinalizarlaclase� Enotroshorarios,atravésdelForoenYahooGroups.
Prof. Esp. Ing. José María Sola 27
Herramientasparafacilitarlacursada
ClasesPresenciales
josemariasola.wordpress.comHomepagedel
curso
Bibliografíadroscarbruno.wordpress.com
GitHubPapersy
Resolucionesdecadaequipo
YahooGroupsUTNFRBAAED
Foroparaconsultasyanuncios
GoogleCalendarCaledariocondetalle
deactividades
PlataformadelCurso
Prof. Esp. Ing. José María Sola 29
josemariasola.wordpress.com� HomepagedelCurso� Papers� Referencia� Tareas� Equipos� Calendario� ResúmenesdeClases� AccesoaForo� AccesoaGitHub.
Prof. Esp. Ing. José María Sola 30
Bibliogra\a� Obligatoria
� https://droscarbruno.wordpress.com/algoritmos-desarrollo-de-temas/
� Recomendada� SobreProgramación
� [Avanzado]Kernighan,B;Pike,R.Laprácticadelaprogramación.2000.Pearson:México
� [Inicial]GarcíaMolina,J;MontoyaDato,F;otros.Unaintroducciónalaprogramación:unenfoquealgorítmico.2005.Thomson:España
� SobreelLenguajeC++� [Avanzado]Stroustrup,B.ElLenguajedeProgramaciónC++.2013.
AddisonWesley� [Inicial]Deitel,H;Deitel,E.CómoprogramarenC/C++.1994.Prentice
Hall:México� Otrosartículosalolargodelcurso,publicadosdesdelapáginadelcurso.
Prof. Esp. Ing. José María Sola 31
GrupoYahooUTNFRBAAEDh`ps://groups.yahoo.com/group/UTNFRBAAED
Prof. Esp. Ing. José María Sola 32
� Objetivos� Canaldecomunicación� Materialesdelectura� Consultas� Enunciados� Anunciosparticularesdelcursoy
generales� Antesdecadaclasesedeberevisarsi
haynovedadesenelgrupo� Periododesuscripción
� durantelastresprimerassemanasdelcuatrimestre
� Siyaestáinscriptonoesnecesarioreinscribirse
� Requisitosparasuscripción� UsuarioYahooconnombrey
apellido
� Cuentadee-mail(decualquierdominio)connombreyapellido,asociadaalusuarioYahoo
� Desdelapáginadesuscripción,completarformulariocon� nombreyapellido,� legajoy� códigodecurso
� Comunicación� Elsubject(asuntodelmensaje)
debecomenzarconelcódigodecursoydebeserdescriptivo
� Sedebefirmarconnombreyapellido
� NoestánpermitidoslosOff-Topic
� ReglasparaelusodelgrupoYahooenlasecciónFiles(archivos)delpropiogrupo.
GrupoYahooUTNFRBAAEDh`ps://groups.yahoo.com/group/UTNFRBAAED
Prof. Esp. Ing. José María Sola 33
� SistemadeControldeVersiones(VCS)� Gestióndecambios
sobreproductoosuconfiguración
� Ejemplos:Git,Mercurial,ySubversion
� Git� VCSdistribuido,2005
porLinusTorvaldsparaelkerneldeLinux
� GitHub� Servicioque
implementaGit� Otrossimilares:
Bitbucket,GitLab,Gitorious,CloudForge
� ¿PorquéGitHubenelCurso?� Tienepepositorios
públicos,yprivadosparauniversidades
� Es,paramuchos,elprimercontactoconunVCSdistribuido,yconlenguajesdemarcalivianos,comomarkdown
� Esmáseficientequetrabajosimpresos
� Poseeinterfacesweb,deescritorio,ymóvil
� ¿Paraqué?� Avancedecadaestudiante
ydecadaequipo.� Interacciónentrealumnos
yconlacátedrasimilararedsocial
� Seguimientodecorreccionesymejoras
� Repositoriosduranteelcurso� Primerasclases
� Repositorioindividual� Luego,usodela
Organizaciónutn-frba-aed� Paralosmiembrosdel
cursoasignamosunarepositorioprivado,dentroutn-frba-aed,acadaequipo
� https://github.com/orgs/utn-frba-aed/
� PrimerosPasosenGitHub1. Leerguía"Git101”2. CrearUsuario3. CrearRepositorio.
GityGitHubh`ps://github.com/orgs/utn-frba-aed
Prof. Esp. Ing. José María Sola 34
• https://josemariasola.wordpress.com/aed/git/
LenguajesyHerramientasdeDesarrollo
Historia ConjuntosdeinfinitosprogramasválidosdeC++yC
� 1970's� C� CWithClasses
� 1980's� ComienzastandardC� C++
� 1990's� StandardC90� StandardC++98
� 2000's� StandardC99� StandardC++03
� 2010's� StandardC11� StandardC++11,14,17.
C++
C
SobrelosLenguajesCyC++
(representa probabilidad)
Prof. Esp. Ing. José María Sola 36
/* Hello World JMS 20130411 */ #include <iostream> int main() { std::cout << "Hello, World!\n"; }
� Propósito� Comentarioencabezado
� Qué� Títulodescriptivo
� Quién� NúmerodeEquipoeintegrantes
� Cuándo� Seactualizóporúltimavez
"Hello,World!"
Prof. Esp. Ing. José María Sola 37
Procesobásicoparadesarrollarprogramas1. Escribirelprogramaconuneditordetexto(e.g.,vi,
Notepad,TextPad,Sublime,TextMate,Notepad++,Notepad2).EsconvenciónparalosarchivosfuentedeC++laextensiónsea.cpp(e.g.,hello.cpp)
2. Compilarelarchivofuenteparaproducirelprogramaobjeto(e.g.,c++hello.c)……yVincular(link)elprogramaconlasbibliotecasparacrearelprogramaejecutable;generalmenteocurrejuntoconelpuntoanterior.
3. Ejecutarelprograma(e.g.,hello.exeó./a.out)4. ¿Erroren2ó3?Volvera1yrepetir.
Prof. Esp. Ing. José María Sola 38
EjemplodesdelíneadecomandoMacOSXC++141. Desdelalíneadecomando
1. >vihello.cpp crearelfuente2. >c++hello.cpp-std=c++14-Weverything
crearelejecutable enrealidad:Preprocesador→Compilador→Linker
3. >./a.out ejecutarHello,World! salida
2. Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3
Prof. Esp. Ing. José María Sola 39
EjemplodesdelíneadecomandoCompiladorMicrosoh1. Desdelalíneadecomando
1. >notepadhello.cpp crearelfuente2. >clhello.cpp crearelejecutable
enrealidad:Preprocesador→Compilador→Linker3. >hello.exe ejecutar
Hello,World! salida2. Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3
Prof. Esp. Ing. José María Sola 40
EjemplodesdelíneadecomandoCompiladorBorland1. Desdelalíneadecomando
1. >notepadhello.cpp crearelfuente2. >bcc32hello.cpp crearelejecutable
enrealidad:Preprocesador→Compilador→Linker3. >hello.exe ejecutar
Hello,World! salida2. Sihayunerrorenelpaso2ó3,volveral1yrepetir2y3
Prof. Esp. Ing. José María Sola 41
� ConIDE(IntegratedDevelopmentEnviroment,EntornoIntegradodeDesarrollo)� Ejemplos
� AppleXcode� MicrosoftVisualC++
ExpressEdition� Eclipse
� SinIDE� Editor� Compilador. CompiladordeC/C++
ConIDE·Editor·Depurador·GestordeProyectosydeconfigu-raciones·Ayuda·ymás…
SinIDERequiereeditor
HerramientasdeDesarrollo:SobreelCompiladoryelIDE
Prof. Esp. Ing. José María Sola 42
EjemploconIDEMicrosohVisualStudioExpressforWindowsDesktop
Prof. Esp. Ing. José María Sola 43
EjemploconIDEAppleXCode
Prof. Esp. Ing. José María Sola 44
� ConIDEyLíneadeComandos� MicrosoftVisualStudioExpress
2015forWindowsDesktop� https://www.visualstudio.com/
downloads/#d-express-windows-desktop
� AppleXcode� https://developer.apple.com/xcode
� Dev-C++� http://orwelldevcpp.blogspot.com
� EclipseIDEforC/C++Developers� http://www.eclipse.org/downloads/
packages/eclipse-ide-cc-developers/neon2
� Code::Blocks� http://www.codeblocks.org/
downloads/
� SinIDE,soloLíneadeComandos� GNUCCompiler(ahoraGNU
CompilerCollection)� http://gcc.gnu.org/install/
binaries.html� FreeC++Compiler
� https://www.embarcadero.com/free-tools/ccompiler
� BorlandC++Compilerversion5.5FreeDownload� http://edn.embarcadero.com/article/
20633� UsingtheBorland5.5Compilerand
command-linetools� http://edn.embarcadero.com/article/
20997� BorlandC++5.5FreeCommand-line
ToolsSupplementaryInformation� http://edn.embarcadero.com/article/
21205
LinksaCompiladoresC/C++
Prof. Esp. Ing. José María Sola 45
TrabajoPrácAco#0—"Hello,World!"enC++� SecuenciasdeTarea
� SolicitiarinscripciónalGrupoYahoo.� RegistrarseenGitHub� Crearunrepositoriopúblicoconelnombre`CppHelloWorld`.� Seleccionar,instalar,yconfiguraruncompiladorC++14.� Probarelcompiladorconunprograma`hello.cpp`queenvíea`cout`
lalínea`Hello,World!`osimilar.� Ejecutarelprograma,ycapturarsusalidaenunarchivodetexto
`output.txt`.� Publicar`hello.cpp`y`output.txt`enGitHub.� [email protected]
GitHub.� Restricciones
� Lafechalímitedeentregaeseldíadelasegundaclasealas13:00hs� LaevaluaciónsehaceconlopublicadoenGitHub.
Prof. Esp. Ing. José María Sola 46
Términosdelaclase#Definircadatérminoconlabibliogra\a� Programación� LenguajedeProgramación� Comportamiento� Software� Ingeniería� Sistema� Información� IngenieríaenSistemasdeInformación� SistemadeInformación� Proyecto� Problema(Necesidad)� Solución� Desarrollo� Análisis� Diseño� Implementación� Organización� Abstracción
� OrientaciónaObjetos� Algoritmo� Dato� Estructura� EstructuradeDatos� TiposdeDatos� ISCV(SistemadeControldeVersiones)� Git� GitHub� Repositorio� C� C++� IDE(IntegratedDevelopmentEnviroment,
EntornoIntegradodeDesarrollo)
01
Prof. Esp. Ing. José María Sola 47
Tareasparalapróximaclase1. RealizarTP#0"Hello,World!”.
Prof. Esp. Ing. José María Sola 48
Marzo30,Jueves
Prof. Esp. Ing. José María Sola 51
Agendaparaestaclase� Repasodeclaseanterior� EstadodeTP#0� Análisisde"Hello,World!"Hola.cpp� TP#1Adición
Prof. Esp. Ing. José María Sola 52
/* Hello World * JMS * 20130411 */ #include <iostream> int main() { std::cout << "Hello, World!\n"; }
� Análisisdesdeelinterioralexterior� Cadena� Operadordeenvíooinserción� Objetocout� Funciónmain� #include
� ModeloConsola� Flujodedatos
� DeEntrada� Origen:Teclado
� DeSalida� Destino:Pantalla
� Procesamientoderenglones
AnálisisdeHelloWorld
Prof. Esp. Ing. José María Sola 53
� Problema� Escribirlospasosparamostrarlasumadedosnúmerosqueingresaelusuario.
� Algoritmo� Secuenciadepasosquecondatosgeneraresultados
� Léxico� Definicióndeelementosutilizadosenelalgoritmo,ejemplo:
� Resoluciones� RepresentacionesGráficas
� Lindsay/Chapin� Nassi–Shneiderman(NS)� Abstracta:Digrafo
� ¿Quérepresentanlasflechas?
� ¿Quérepresentanlosnodos?
� Textuales� Secuenciadepasosen
casellano� Pseudocódigo
� LenguajesdeProgramación� C++.
Problema:Adicióndedosnúmeros
Prof. Esp. Ing. José María Sola 54
x ∈ R
AdiciónyEntradaEstándar/* JMS * 20130411 * Adición */ #include <iostream> int main(){ int a; int b; std::cin >> a; std::cin >> b; std::cout << a + b; }
Prof. Esp. Ing. José María Sola 55
Proceso
Prof. Esp. Ing. José María Sola 56
PIInput Datos
(Entrada)
Output Resultados
(Salida)
O
Proceso, requiere recursos
espacio y tiempo
TP#1–Adición� Carpeta:Adición
� Readme.md� Enunciado� Análisis:Entradas,Proceso,Salidas� Algoritmo:VisualoTextual
� Adición.cpp
Términosdelaclase#Definircadatérminoconlabibliogra\a� Hello.cpp
� Cadena� Operadordeenvíooinserción
� Objetocout� Funciónmain� #include� Consola� Flujosdedatosestándar� Flujosdecarácter� Objetocin
� Addition.cpp� Algoritmo� Léxico� RepresentacionesdeAlgoritmos
� Lindsay/Chapin� Nassi–Shneiderman(NS)� Secuenciadepasosencasellano
� Pseudocódigo� ImplementacióndeAlgoritmos
02
Prof. Esp. Ing. José María Sola 58
Tareasparalapróximaclase1. RealizarTP#1Adición.
Prof. Esp. Ing. José María Sola 59