Clase 01

26
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

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..

Fundamentos de Programación Clase 1

FIN DE LA CLASE

Gracias por la atención

Escuela de Sistemas, Facultad de Minas

Universidad Nacional de Colombia – Sede Medellín