Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O....

25
Agosto 2014 Programación I - Conceptos Básicos 1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento de Ciencias Básicas Universidad Nacional de Luján

Transcript of Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O....

Page 1: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 1

Programación I

Prof. Adjunto: Lic. Jorge O. Scucimarri

Licenciatura en Sistemas de InformaciónDepartamento de Ciencias Básicas

Universidad Nacional de Luján

Page 2: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

procedure conceptos_básicos (...)

var comprender: boolean;

begin comprender:= false;

repeat

Page 3: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 3

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.

Page 4: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 4

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.

Page 5: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 5

Conceptos básicos

Abstracción

Análisis

Descomposición

del problema

Modularización

Diseño

Verificación

Eficiencia

Mantenimiento

Reusabilidad

Page 6: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 6

Problemadel mundo

real Modelo

Sistema

MóduloPrograma

AbstracciónAnálisis

Descomposición

Diseño de algoritmos

Del problema real a la solución computable

Page 7: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 7

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.

Conceptos básicos

Page 8: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 8

Análisis:

Analizar el problema en su contexto del mundo real.

Obtener los requerimientos del usuario.

Obtener, como resultado del análisis, un modelo.

Conceptos básicos

Page 9: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 9

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.

Conceptos básicos

Page 10: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 10

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.

Page 11: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 11

Conceptos básicos Modularización

S ubp rob lem aA

S ubp rob lem aB 1

S ubp rob lem aB 2

S ubp rob lem aB

S ubp rob lem aC

P rob lem aO rig in a l

Page 12: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 12

Conceptos básicos

Especificación rigurosa de la secuencia de pasos (instrucciones) a realizar sobre un

autómata para alcanzar un resultado deseado en un tiempo finito.

Algoritmo

Page 13: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 13

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.

Conceptos básicos

Page 14: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 14

Conceptos básicos

Programación estructurada Edsgar Dijkstra (1965)

Corrado Böhm - Giuseppe Jiacopini (1966)

Page 15: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 15

Teroema de Böhm y Jacopini (1966)

Un programa propio puede ser escrito utilizando únicamente tres tipos de estructuras:

Secuencial

Alternativa o selectiva

Repetitiva

Page 16: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 16

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.

Page 17: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 17

Las partes de un programa

Instrucciones

DatosConstantesVariables

Comentarios

Page 18: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 18

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

Page 19: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

{ 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 19Programación I - Conceptos

Básicos

Page 20: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 20

Verificación

Un programa es correcto cuando cumple con su especificación.

La especificación debe ser:

Completa

Precisa

No ambigua

Page 21: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 21

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.

Page 22: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 22

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.

Page 23: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Agosto 2014Programación I - Conceptos

Básicos 23

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.

Page 24: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Validación de los datos de entrada

Page 25: Agosto 2014 Programación I - Conceptos Básicos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Licenciatura en Sistemas de Información Departamento.

Conceptos básicos

if entendí_todo then comprender := true;

until comprender;

end;