Programación I Universidad Nacional de Luján Licenciatura en Sistemas de Información Departamento de Ciencias Básicas Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Agosto 2014 Programación I - Conceptos Básicos 1 1
procedure conceptos_básicos (...) var comprender: boolean; begin comprender:= false; repeat
Programación I - Conceptos Básicos Objetivos de la asignatura Utilizar las distintas etapas en la resolución de problemas con computadoras. Identificar las distintas partes de un programa. Modelar problemas sencillos dividiéndolos en módulos. Agosto 2014 Programación I - Conceptos Básicos 3 3
Programación I - Conceptos Básicos Objetivos de la asignatura Construir algoritmos utilizando las estructuras de control básicas (secuencia, decisión, selección e iteración) y tipos de datos simples. Resolver problemas utilizando estructuras de datos compuestas (arreglos y archivos). Reconocer la importancia de utilizar una metodología en el desarrollo de software. Agosto 2014 Programación I - Conceptos Básicos 4 4
Programación I - Conceptos Básicos Abstracción Análisis Descomposición del problema Modularización Diseño Verificación Eficiencia Mantenimiento Reusabilidad Agosto 2014 Programación I - Conceptos Básicos 5 5
Programación I - Conceptos Básicos Del problema real a la solución computable Problema del mundo real Modelo Sistema Módulo Programa Abstracción Análisis Descomposición Diseño de algoritmos Agosto 2014 Programación I - Conceptos Básicos 6 6
Programación I - Conceptos Básicos Abstracción: proceso de análisis del mundo real para interpretar los aspectos esenciales de un problema y expresarlo en términos precisos. Contexto: marco de circunstancias en las que se sitúa un hecho. Agosto 2014 Programación I - Conceptos Básicos 7 7
Programación I - Conceptos Básicos Análisis: Analizar el problema en su contexto del mundo real. Obtener los requerimientos del usuario. Obtener, como resultado del análisis, un modelo. Agosto 2014 Programación I - Conceptos Básicos 8 8
Programación I - Conceptos Básicos Modelización: Abstraer un problema del mundo real y simplificar su expresión, tratando de encontrar los aspectos principales que se pueden resolver (requerimientos), los datos que se han de procesar y el contexto del problema. Agosto 2014 Programación I - Conceptos Básicos 9 9
Programación I - Conceptos Básicos Descomposición del problema Descomponer el problema en partes que tendrán una función bien definida y datos propios. Esta técnica es conocida como modularización o diseño Top Down. Agosto 2014 Programación I - Conceptos Básicos 10 10
Programación I - Conceptos Básicos Modularización Agosto 2014 Programación I - Conceptos Básicos 11 11
Programación I - Conceptos Básicos Algoritmo Especificación rigurosa de la secuencia de pasos (instrucciones) a realizar sobre un autómata para alcanzar un resultado deseado en un tiempo finito. Agosto 2014 Programación I - Conceptos Básicos 12 12
Programación I - Conceptos Básicos Precondición: información que se conoce como verdadera antes de iniciar el programa. Postcondición: información que debiera ser verdadera al concluir un programa, si se cumple con los requerimientos. Agosto 2014 Programación I - Conceptos Básicos 13 13
Programación I - Conceptos Básicos Programación estructurada Edsgar Dijkstra (1965) Corrado Böhm - Giuseppe Jiacopini (1966) Agosto 2014 Programación I - Conceptos Básicos 14 14
Programación I - Conceptos Básicos Teroema de Böhm y Jacopini (1966) Un programa propio puede ser escrito utilizando únicamente tres tipos de estructuras: Secuencial Alternativa o selectiva Repetitiva Agosto 2014 Programación I - Conceptos Básicos 15 15
Programación I - Conceptos Básicos Programa propio Tiene un solo punto de entrada y uno de salida Toda acción del algoritmo es accesible, es decir, existe al menos un camino que va desde el inicio hasta el fin del algoritmo, se puede seguir y pasa a través de dicha acción. No posee lazos o bucles infinitos. Agosto 2014 Programación I - Conceptos Básicos 16 16
Programación I - Conceptos Básicos Las partes de un programa Instrucciones Datos Constantes Variables Comentarios Agosto 2014 Programación I - Conceptos Básicos 17 17
Documentación de un programa Un programa bien documentado es más fácil de leer y mantener. Inserción de comentarios nivel general nivel de módulo nivel de secuencia Identificadres autoexplicativos Agosto 2014 Programación I - Conceptos Básicos 18 18
Programación I - Conceptos Básicos { Programa ejemplo de código Pascal } { Autor: Jorge Scucimarri } { Fecha creación: 01/07/2003 } { Versión 1.0 } {**********************************************************} Program Hola_Mundo; Uses Crt; {incluir la librer¡a CRT} Const {declarar constantes} Saludo := 'Hola, mundo !!!'; Procedure Escribe_Texto; {declarar procedimiento} Begin WriteLn (Saludo); {escribir la constante Saludo} End; Begin {iniciar el código principal} Escribe_Texto; {llamar al procedimiento} End. Agosto 2014 Programación I - Conceptos Básicos 19 19
Programación I - Conceptos Básicos Verificación Un programa es correcto cuando cumple con su especificación. La especificación debe ser: Completa Precisa No ambigua Agosto 2014 Programación I - Conceptos Básicos 20 20
Programación I - Conceptos Básicos Eficiencia de un algoritmo Métrica de calidad de los algoritmos, asociada con la utilización óptima de los recursos del sistema de cómputo. Se puede tener muchas soluciones algorítmicas para un mismo problema, sin embargo el uso de los recursos (tiempo, memoria), de cada solución puede ser muy diferente. Agosto 2014 Programación I - Conceptos Básicos 21 21
Programación I - Conceptos Básicos Mantenimiento Corregir errores Modificar código (por errores o por cambios) Si el código no ha sido apropiadamente modularizado el costo de mantenimiento es muy alto. Agosto 2014 Programación I - Conceptos Básicos 22 22
Programación I - Conceptos Básicos Reusabilidad del código Una idea simple: hacer uso del código que ya se ha escrito. Es posible si se realiza una solución bien modularizada. Agosto 2014 Programación I - Conceptos Básicos 23 23
Validación de los datos de entrada
Conceptos básicos if entendí_todo then comprender := true; until comprender; end;