Clase 01
-
Upload
juan-navia -
Category
Education
-
view
140 -
download
0
Transcript of Clase 01
Fundamentos de Programación Clase 1
Contenido
Escuela de Sistemas, Facultad de Minas
Universidad Nacional de Colombia – Sede Medellín
� Introducción � Presentación del curso y cronograma del semestre� Metodología de trabajo� Conceptos básicos de programación
Profesores:
Jovani Alberto Jiménez Builes
William Álvarez Montoya
Guillermo González
Danilo Bedoya
Importancia de la computación
•• LosLos computadorescomputadores yy laslas redesredes dede computadorescomputadores sesehanhan convertidoconvertido enen unauna herramientaherramienta imprescindibleimprescindibleenen todatoda áreaárea técnicatécnica yy dede ingenieríaingeniería..
• TodoTodo técnicotécnico yy profesionalprofesional debedebe manejarmanejar yy aplicaraplicareficientementeeficientemente dichadicha herramienta,herramienta, enen sussus áreasáreaseficientementeeficientemente dichadicha herramienta,herramienta, enen sussus áreasáreaspropiaspropias dede profesiónprofesión..
Objetivos del curso
�� DesarrollarDesarrollar capacidadescapacidades lógicológico -- abstractasabstractas paraparaelel análisis,análisis, implementaciónimplementación yy soluciónsolución dedeproblemas,problemas, mediantemediante unun enfoqueenfoque algorítmicoalgorítmico..
�� IncentivarIncentivar elel aprendizajeaprendizaje dede unun lenguajelenguaje dede�� IncentivarIncentivar elel aprendizajeaprendizaje dede unun lenguajelenguaje dedeprogramaciónprogramación específicoespecífico:: VisualVisual BasicBasic forforApplicationsApplications (VBA)(VBA)..
�� IntroducciónIntroducción�� EntradaEntrada yy salidasalida dede datosdatos�� SecuenciamientoSecuenciamiento�� CondicionalesCondicionales
Contenido del curso
�� IteraciónIteración definidadefinida�� IteraciónIteración indefinidaindefinida�� VectoresVectores�� TiposTipos dede datosdatos definidosdefinidos porpor elel usuariousuario�� MatricesMatrices�� FuncionesFunciones yy subprogramassubprogramas
Metodología
•• ClasesClases magistralesmagistrales (Auditorio(Auditorio 1212--204204))..•• ClasesClases prácticasprácticas (Sala(Sala dede cómputocómputo 4141--214214))•• TareasTareas extraclaseextraclase•• TalleresTalleres yy asesoríasasesorías semanalessemanales•• SeguimientoSeguimiento dede lala páginapágina deldel cursocurso•• SeguimientoSeguimiento dede lala páginapágina deldel cursocurso•• AprendizajeAprendizaje víavía ejemplosejemplos yy aprendizajeaprendizaje activoactivo..
RequisitosRequisitos:: matemáticasmatemáticas básicasbásicas
Sobre técnicas básicas de estudio ver el documento: «Cómo es tudiary aprender una disciplina», por Richard Paul y Linda Elder, d e laFundación para El Pensamiento Crítico, 2003, www.critical thinking.org
Bibliografía y referencias
�� BrassardBrassard, G. y Bratley, P.: «Fundamentos de ALGORITMIA», Prentice Hall International, Madrid (España), 1997.
�� OviedoOviedo, Efraím: “Lógica para programación”, ECOE ediciones, Agosto 2004. (para la primera parte del curso), Caps.: 1, 2, 3, 4, 5, 6, 7, 8.
�� LopezLopez, Leobardo: “Programación Estructurada, un enfoque algorítmico”, AlfaOmega, 2002algorítmico”, AlfaOmega, 2002
�� Chapra, Steven C. & Canale, Raymond P.: «Numerical Methods Chapra, Steven C. & Canale, Raymond P.: «Numerical Methods for Engineers», McGrawfor Engineers», McGraw--Hill, 2002, Caps.: 1, 2, 5, 6, 8, 9, 12, 17, 20, Hill, 2002, Caps.: 1, 2, 5, 6, 8, 9, 12, 17, 20, 21, 22, 24.21, 22, 24.� Walkenbach, J.: «Microsoft Office Excel 2007 VBA Programming for DUMMIES», Wyley Publishing, Inc., 2007. (puede leerse online en http://www.docstoc.com/docs/document-preview.aspx?doc_id=1659168) capítulos: 3, 7, 10, 14, 15, 16, 17, 22.
http://virtual2.unalmed.edu.co/moodle
Facultad de minas – Fundamentos de programación
�� Clases prácticas y teóricasClases prácticas y teóricas
Página Web del curso
�� Clases prácticas y teóricasClases prácticas y teóricas
�� Ejemplos interactivosEjemplos interactivos
�� ProblematecaProblemateca
�� Talleres onlineTalleres online
�� Foros y chatForos y chat
�� Documentos, manuales y enlaces de interésDocumentos, manuales y enlaces de interés
��Técnicas de estudioTécnicas de estudio
Didáctica del curso
Clase TeóricaClase Teórica
Clase PrácticaClase Práctica
Antes:Leer guíaRepasar conceptos previos
Durante:Prestar atención y tomar apuntesGuardar proyecto (en la práctica)Formular preguntas.
Talleres y asesoríasTalleres y asesorías
Después:Realizar tareasContrastar con lo aprendido anteriormente
Trabajo personalTrabajo personal
Antes:Repasar conceptos vistos en clase
Durante:Prestar atención y tomar apuntesFormular preguntas
Después:Hacer los ejercicios de nuevo por si mismosRealizar tareas
ProblematecaTalleres en línea
Libros de textoNo dejar acumular contenidos
Para que el computador?
�� Cálculos RepetitivosCálculos Repetitivos
�� Grandes volúmenes Grandes volúmenes de informaciónde información
• En el diseño y cálculo de la estructura de un edificio, por ejemplo, se tardaría meses hacer las operaciones matemáticas manualmente.• El computador, mediante los programas respectivos, realiza tales procesos en pocos minutos.
• En las empresas, los procesos de inventarios, por ejemplo, con decenas de miles de artículos.• Otros ejemplos son los procesos de nómina, contables, de informaciónde información
�� Complejidad cálculosComplejidad cálculos
�� Velocidad de procesoVelocidad de procesoy de respuestay de respuesta
�� PrecisiónPrecisión
• Otros ejemplos son los procesos de nómina, contables, financieros, de facturación, de proveedores, etc.
• El software, a través de los computadores, puede manejar procesos complejos de tipo lógico y matemático.• Ejemplos: Inteligencia Artificial, Sistemas Expertos, etc.
• A todo nivel organizacional se requieren respuestas en tiempo real.
• Las máquinas (los computadores), en general, suelen ser más precisas que las personas.• Esta capacidad de las máquinas es especialmente útil en los cálculos de Ingeniería.
El concepto de algoritmo
¿Qué¿Qué eses unun algoritmo?algoritmo?
Es una secuencia de procesos (tareas, operaciones)ordenada lógicamente que permite obtener ciertosresultados a partir de ciertos datos.
Diseñar un buen algoritmo exige un buen nivel deabstracción, lógica, imaginación, creatividad, dominio delas técnicas de programación, y algo de dominio del áreadel problema que se intenta resolver.
Por esta razón es que diseñar un algoritmo se consideratanto ciencia como arte.
Estructuras Estructuras básicas•• Un algoritmo se elabora (construye) mediante ciertos Un algoritmo se elabora (construye) mediante ciertos componentes básicos llamados componentes básicos llamados estructurasestructuras•• Por esta razón, este tipo de programación se conoce Por esta razón, este tipo de programación se conoce como como programación estructuradaprogramación estructurada
Diseño de algoritmos
1. Entrada y salida de datos
•• Todo algoritmo tiene cero o más entradas y debe mostrar Todo algoritmo tiene cero o más entradas y debe mostrar uno o más resultadosuno o más resultados
4. Iteración
2. Secuencia
3. Selección lógica •• Permite elegir una de dos o más vías de acción Permite elegir una de dos o más vías de acción (alternativas)(alternativas)
•• Es la repetición de una o más operaciones.Es la repetición de una o más operaciones.•• De antemano, puede conocerse o no cuántas veces se De antemano, puede conocerse o no cuántas veces se repetirán las operaciones (iteración definida o indefinida)repetirán las operaciones (iteración definida o indefinida)
•• Todo algoritmo es una secuencia lógica de ciertas Todo algoritmo es una secuencia lógica de ciertas operacionesoperaciones
ENTRADA PROCESAMIENTO SALIDA
Diseño de algoritmos
MuestranCálculos matemáticos y ResultadosDatos de
Esquema genérico de un algoritmo secuencial
MuestranGraban
ImprimenTransmiten
Cálculos matemáticos y lógicos
ResultadosDatos de entrada
Diseño de algoritmos
EjemploEjemploDiseñar un algoritmo para calcular el área de un Diseñar un algoritmo para calcular el área de un triángulotriángulo
AnálisisAnálisis ::AnálisisAnálisis ::¿Cuáles son los datos de entrada?¿Cuáles son los datos de salida?¿Qué cálculos/procesos deben llevarse a cabo?
DATOS DE DATOS DE ENTRADAENTRADA
Base, AlturaBase, Altura
Diseño de algoritmos
PROCESAMIENTO Área = (Base*Altura)/2
DATOS DE DATOS DE SALIDASALIDA
ÁreaÁrea
Representación de algoritmos
PseudocódigoPseudocódigo
INICIOINICIOLeer Base, AlturaLeer Base, AlturaArea = (Base*Altura)/2Area = (Base*Altura)/2
Diagrama de cajaDiagrama de caja
INICIOINICIO
Leer Base, AlturaLeer Base, Altura
Area = (Base*Altura)/2Area = (Base*Altura)/2Area = (Base*Altura)/2Area = (Base*Altura)/2Mostrar AreaMostrar Area
FINFIN
Area = (Base*Altura)/2Area = (Base*Altura)/2
Mostrar AreaMostrar Area
FINFIN
Ejemplo 2Ejemplo 2Diseñar un algoritmo para calcular el perímetro de un Diseñar un algoritmo para calcular el perímetro de un círculocírculo
AnálisisAnálisis ::INICIOINICIO
Diseño de algoritmos
¿Cuáles son los datos de entrada?¿π es dato de entrada?¿Cuáles son los datos de salida?¿Qué cálculos/procesos deben llevarse a cabo?
INICIOINICIO
Leer RadioLeer Radio
Prm = 2*Pi*RadioPrm = 2*Pi*Radio
Mostrar PrmMostrar Prm
FINFIN
Ejemplo 3Ejemplo 3Suponga que se necesita un algoritmo para realizar la factura en un almacén que vende televisores al por mayor (suponiendo que de un solo tipo). La factura debe mostrar el valor total a pagar y el valor de los impuestos. El costo por unidad de los televisores es de $700.000 y el impuesto aplicado es del 16%.
AnálisisAnálisis ??
Diseño de algoritmos
AnálisisAnálisis ??
INICIOLeer numero_unidadesImpuestos = numero_unidades* $700.000 * 0.16Total = numero_unidades* $700.000 + ImpuestosMostrar Total, Impuestos
FIN
Algoritmo, Lenguaje y Programa
Los términos “algoritmo” y “programa” tienden aconfundirse y en algunos casos a utilizarseindiferentemente. Recordemos que el término“algoritmo” se refiere a la secuencia de pasos pararesolver un problema, pero independiente del lenguajeresolver un problema, pero independiente del lenguajede programación que se utilice, mientras que“programa” se refiere propiamente a la codificación deun algoritmo en algún lenguaje de programación.
Un conjunto de programas con un fin específicoconstituye un software.
•• Basic / Visual BasicBasic / Visual Basic
•• C / C++C / C++
•• JavaJava
•• PascalPascal
Lenguajes y entornos de programación
•• PascalPascal
•• Fortran / Visual Fortran / Visual FortranFortran
•• PHPPHP
•• ……
Metodología general de trabajo
1. Análisis del problema
2. Diseño de una
•• Entender el problema.Entender el problema.•• Identificar las variables (de entrada, de salida Identificar las variables (de entrada, de salida e intermedias) y las constantese intermedias) y las constantes•• Identificar las restricciones y relaciones Identificar las restricciones y relaciones matemáticas y lógicas entre variables y matemáticas y lógicas entre variables y constantesconstantes
• Representar la secuencia de pasos 2. Diseño de una solución
4. Codificación en un 4. Codificación en un lenguaje de programaciónlenguaje de programación
•• Elaborar la interfaz gráfica del usuario (si se Elaborar la interfaz gráfica del usuario (si se trata de un lenguaje de programación visual).trata de un lenguaje de programación visual).•• Escribir los procedimientos pertinentes.Escribir los procedimientos pertinentes.•• Ejecutar y depurar el códigoEjecutar y depurar el código
• Representar la secuencia de pasos (operaciones, o procesos) de manera lógica, (operaciones, o procesos) de manera lógica, mediante una forma apropiada (pseudocódigo, mediante una forma apropiada (pseudocódigo, diagrama de caja, diagrama de flujodiagrama de caja, diagrama de flujo).
3. Validación de la solución
• Realizar prueba de escritorio al algoritmo para validar que haga lo que debe hacer
1. Ingresar a la página del curso y resolver el primercuestionario
2. Elaborar algoritmos (en pseudocódigo odiagrama de caja) para los problemas 1 a 6 de laProblemateca 1.
Tareas
Problemateca 1.
3. Efectuar una lectura previa de la clase teórica 2 ypráctica 1
LasLas clasesclases prácticasprácticas comienzancomienzan lala próximapróximasemanasemana..
SeSe recomiendarecomienda llevarllevar memoriamemoria USBUSB parapara grabargrabarloslos trabajostrabajos oo emplearemplear elel servicioservicio dede ftpftp queque estáestá
Importante
loslos trabajostrabajos oo emplearemplear elel servicioservicio dede ftpftp queque estáestádisponibledisponible parapara todostodos loslos estudiantesestudiantes..