Post on 08-Apr-2015
description
transcript
Informática2
Prof. Gonzalo Müller gmullerb@mail.com
Facultad de IngenieríaUniversidad Central de Venezuela
Clase Anterior
� Pautas de curso.
� www.scribd.com/gmullerb
� Definición de Programador.
� Fases de la Programación.
�
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 2
� Metodología para resolución de un problema:
� Definición, Análisis, Diseño del algoritmo, Pruebadel Algoritmo e Implementación
� Algoritmo
� Definición, Características, Partes.
Representación de un algoritmo
� Existen básicamente tres formas de representar los algoritmos:
� Pseudo código.
� Diagramas de Flujo.
� Diagramas Rectangulares Estructurados.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 3
� Diagramas Rectangulares Estructurados.
Representación de un algoritmo
� Pseudo Código (PC): Expresa a través de frases cada uno de los pasos
� Casi código.
� Exige una adecuada indentación.
� Se debe enfocar a la lógica y no hay los detalles de
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 4
� Se debe enfocar a la lógica y no hay los detalles deimplementación.
� Es flexible.
� Permite una analogía que facilita la codificación.
Representación de un algoritmo
� Diagramas de Flujo (DF):
Constituyen una representación gráfica de la secuencia de pasos a realizar.
� La operaciones se escriben con símbolosnormalizados.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 5
� Las líneas de flujo indica la secuencia de ejecución.
� Pueden resultar inadecuados debido a que propiciaalgoritmos no estructurados (excesivas líneas deflujo).
Representación de un algoritmo
� Diagramas Rectangulares Estructurados (DRE):
Constituyen una representación gráfica de la secuencia de pasos a realizar.
� La operaciones se escriben con símbolosnormalizados.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 6
� También conocidos como: Diagramas de Nassi-Schneiderman.
� Permiten mantener el orden.
� Permiten una analogía que facilita la codificación.
Representación de un algoritmo
� Símbolos Básico de un Diagramas de Flujo:
� Líneas de Flujo: Establece la dirección de lasecuencia de pasos
� Una línea de flujo con la dirección saliendo de un
bloque, se conoce como una línea de flujo de salida
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 7
bloque, se conoce como una línea de flujo de salida
del bloque.
� Una línea de flujo con la dirección entrando en un
bloque, se conoce como una línea de flujo de
entrada del bloque.
Representación de un algoritmo
� Bloque Terminal: Señala el inicio o el fin delalgoritmo.
Inicio
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 8
Inicio
Fin
Representación de un algoritmo
� Bloque Terminal: Señala el inicio o el fin delalgoritmo.
Inicio
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 9
Inicio
Fin
Nombre
Representación de un algoritmo
� Bloque Terminal: Señala el inicio o el fin delalgoritmo.
Nombre
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 10
Nombre
Fin
El bloque fin siempre tiene
solo líneas de entrada
El bloque inicio siempre tiene
solo una línea y es de salida
Representación de un algoritmo
� Bloque Proceso: Se utiliza para indicar un proceso óoperación.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 11
…
Representación de un algoritmo
� Bloque Proceso: Se utiliza para indicar un proceso óoperación.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 12
…
El bloque de proceso siempre tiene una línea
de salida (puede tener varias de entrada)
Representación de un algoritmo
� Bloque Genérico Entrada-Salida: Indica unaoperación de entrada salida sin especificar undispositivo especifico para realizar la operación.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 13
…
Representación de un algoritmo
� Bloque Genérico Entrada-Salida: Indica unaoperación de entrada salida sin especificar undispositivo especifico para realizar la operación.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 14
…
El bloque entrada-salida siempre tiene una
línea de salida (puede tener varias de entrada)
Representación de un algoritmo
� Bloque de Decisión: Establece la dirección de lossubsecuentes pasos en función de una condicióndada.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 15
…
Representación de un algoritmo
� Bloque de Decisión: Establece la dirección de lossubsecuentes pasos en función de una condicióndada.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 16
…
Representación de un algoritmo
� Bloque de Decisión: Establece la dirección de lossubsecuentes pasos en función de una condicióndada.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 17
…
El bloque de decisión siempre tiene dos
de salida (puede tener varias de entrada)
Representación de un algoritmo
� Conectores: Establece la conexión entre dosbloques que espacialmente no puede serconectados.
� Se usan en pares.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 18
� Se usan en pares.
…
Representación de un algoritmo
� Reglas de construcción de Diagramas de Flujo:
� Contiene un único bloque terminal que indicainicio.
� Puede contener varios bloques terminal que indicanel final.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 19
el final.
� Debe ser organizado de tal forma que la secuenciasea leída de arriba abajo y de izquierda a derecha.
Representación de un algoritmo
� Cada bloque debe tener al menos una línea de flujode entrada, exceptuando el bloque de inicio.
� Cada bloque puede tener a lo sumo una línea deflujo de salida, exceptuando el bloque de decisión.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 20
flujo de salida, exceptuando el bloque de decisión.
� El bloque de decisión debe tener dos líneas de flujode salida.
Representación de un algoritmo
Ejemplo 2.1: Construir el diagramas de flujo para leer y sumar dos números.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 21
Representación de un algoritmo
� Reglas de construcción de DRE:
� Toda la secuencia de pasos se coloca dentro de unrectángulo:
Paso 1
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 22
Paso 1
Paso 2
…
Paso n
Representación de un algoritmo
� En el primer bloque se debe colocar el nombre delalgoritmo.
� En el último bloque se debe colocar Fin.
Nombre
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 23
Paso 1
Paso 2
…
FIN
Representación de un algoritmo
Ejemplo 2.2: Construir el DRE para leer y sumar dos números.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 24
Estructuras básicas
� Todo algoritmo se construye con 3 estructurasbásicas:
� Secuencial.
� Selectiva.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 25
� Selectiva.
� Repetitiva.
Estructura Secuencial
Un paso se ejecuta uno detrás de otro.
DF DRE
Paso 1
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 26
Paso 1
Paso 2
Paso n
Paso 1
Paso 2
Paso n
Estructura Secuencial
Ejemplo 2.3: Construir el DF y DRE para leer y sumar dos números.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 27
Estructura Selectiva
Una secuencia de pasos se ejecuta dependiendo de una condición dada.
� También se le llama condicional.
� Dos tipos:
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 28
� Dos tipos:
� Sencilla
� Doble
Estructura Selectiva
� Estructura Condicional Sencilla: Se ejecuta unainstrucción si la condición dada es verdadera.
DF DRE
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 29
Paso
CondiciónV
Paso
Condición
V
F
Ejemplo: fruta
Estructura Selectiva
� Estructura Condicional Sencilla: Se ejecuta unainstrucción si la condición dada es verdadera.
DF DRE
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 30
Paso
CondiciónV
Paso
Condición
V
F
Estructura Selectiva
Ejemplo 2.4: Construir el DF y DRE del algoritmopara convertir un número en negativo si es positivo.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 31
Estructura Selectiva
El paso contenido en las estructuras selectiva es ejecutado
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 32
El paso contenido en las estructuras selectiva es ejecutado
SIEMPRE y cuando la condición sea VERDADERA
Estructura Selectiva
� Estructura Condicional Doble: Se ejecuta una de dosde instrucciones dependiendo de la condición dada.
DF DRE
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 33
CondiciónV F
Paso’
CondiciónFV
Paso Paso Paso’
Estructura Selectiva
Ejemplo 2.5: Construir el DF y DRE del algoritmopara convertir un numero según la siguiente regla:Sumar 1 si es negativo o Restar 1 de lo contrario.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 34
Estructura Repetitiva
Una secuencia de pasos se repite en forma consecutiva dependiendo de una condición dada.
� También se le llama Bucle o Lazo.
� Cada repetición se conoce como ciclo o iteración.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 35
� Cada repetición se conoce como ciclo o iteración.
� Dos tipos:
� Hacer Mientras
� Se ejecuta al menos una vez la secuencia.
� Mientras
� Puede que nunca se ejecute la secuencia.
Estructura Repetitiva
� Estructura Repetitiva Hacer Mientras: Se repite unainstrucción mientras una condición dada seaverdadera.
DF DRE
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 36
Paso
Mientras (Condición)
Paso
CondiciónV
F
Estructura Repetitiva
� Estructura Repetitiva Hacer Mientras: Se repite unainstrucción mientras una condición dada seaverdadera.
DF DRE
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 37
Paso
Mientras (Condición)
Paso
CondiciónV
F
Estructura Repetitiva
Ejemplo 2.6: Se requiere leer un número no negativo.Construir el DF y DRE del algoritmo para leer unnumero hasta que este sea válido, y presentar en lasalida.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 38
Estructura Repetitiva
� Estructura Repetitiva Mientras: Se repite unainstrucción mientras una condición dada seaverdadera.
DF DRE
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 39
Mientras (Condición)
PasoPaso
Condición
V
F
Estructura Repetitiva
� Estructura Repetitiva Mientras: Se repite unainstrucción mientras una condición dada seaverdadera.
DF DRE
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 40
Mientras (Condición)
PasoPaso
Condición
V
F
Estructura Repetitiva
Ejemplo 2.7: Construir el DF y DRE de un algoritmopara convertir un numero dado, incrementándolo de 2de 2 mientras sea negativo.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 41
Estructura Repetitiva
El paso contenido en una estructura repetitiva es ejecutado
SIEMPRE y cuando la condición sea VERDADERA
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 42
Las corridas en frío son de gran utilidad
para algoritmos con estructuras repetitivas
Representación de un algoritmo
� Cuadro comparativo:
DF DRE
Mantiene el
OrdenNo Si
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 43
Orden
Fácil
codificaciónNo Si
Rápida
Comprensión+/– +/–
Uso Sencillo Si Si
Metodología para resolución de un problemaMetodología para resolución de un problema
Definición del problema
Análisis del problema
Diseño del
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 44
Diseño del algoritmo
Codificación del Algoritmo
Prueba del
Algoritmo
Corrida en frío
La corrida en frío permite realizar la prueba de unalgoritmo antes de pasar a la codificación.
� Una de las formas de realizar una corrida en frío esutilizando una tabla.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 45
� La tabla de corrida en frío debe contener:
1. Columnas para las datos utilizados.
2. Columnas para las condiciones.
3. Una columna de salida.
Corrida en frío
� Partiendo del Problema se definen una o más pruebas.Se debe conocer de antemano o estimar queresultados generan los datos de entrada para cadaprueba:
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 46
Entrada
conocida
Salida
esperada
Entrada
conocida
Salida
esperada
…
Corrida en frío
� Partiendo del Algoritmo se construye la Tabla:
Dato 1 Dato 2Dato
NCondición
1
Condición
2
Condición
M Salida
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 47
… … … … … … … … …
Datos Condiciones
Corrida en frío
� Para cada prueba se debe ejecutar uno a uno los pasosdel algoritmo desde los valores de entrada hastaobtener los valores de salida.
Entrada
conocida
Salida
esperada
Algoritmo
Correcto
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 48
conocida esperada
Entrada
conocida
Salida no
esperada
Algoritmo
Incorrecto
Correcto
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrario
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 49
1. Se realiza el análisis
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrario
Entrada Salida
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 50
2 1
-1 0
0 -1
Entrada
conocida
Salida
esperada
2. Se definen las pruebas
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 51
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
3. Se construye el algoritmo
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 52
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
n n<0 Salida
4. Se construye la tabla
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 53
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
n n<0 Salida
2
Entrada
conocida
5. Se realizan las corridas
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 54
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
n n<0 Salida
22
Entrada
conocida
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 55
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
n n<0 Salida
2
2 < 0
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 56
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
n n<0 Salida
2
2 < 0
F
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 57
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
n n<0 Salida
2
2-1
1
2 < 0
F
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 58
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
n n<0 Salida
2
2-1
1
2 < 0
F
1
2
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 59
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
n n<0 Salida
2
2-1
2 < 0
F
1
… … …
Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmodel ejemplo 2.5.
Convertir un numero según la siguiente regla: Sumar 1si es negativo o Restar 1 de lo contrarioAlgoritmo Corrida en frío
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 60
Convertidor
Leer n
n=n+1 n=n-1
Escribir n
Fin
n < 0V F
1
Salida
esperada
2
Entrada
conocida
n n<0 Salida
2
2-1
2 < 0
F
1
… … … �
Corrida en frío
Ejemplo 2.9: Realizar una corrida en frio para elalgoritmo del ejemplo 2.7.
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 61
Ejercicio
2. Para cada uno de los siguientes problemas:
a) Sumar 3 números.
b) Sumar 2 números si son iguales y los multiplique de lo contrario.
c) Dividir 2 números, el menor entre el mayor.
d) Leer números hasta que el leído sea 5 y escribir en
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 62
d) Leer números hasta que el leído sea 5 y escribir en la salida el último número.
e) Disminuir un número de 2 en 2 hasta que este sea negativo y escribir resultado en la salida.
Realizar el análisis.
Construir el DF y el DRE.
Realizar una corrida en frío.
Resumen
� Representación de un algoritmo:
� Pseudo Código.
� Diagramas de Flujo.
� Diagramas de Rectangulares Estructurados.
� Estructura Secuencial.
� Estructura Selectiva:
Informática – Prof. Gonzalo Müller – Clase 2 – GM - 63
� Estructura Selectiva:
� Sencilla
� Doble
� Estructura Repetitiva:
� Hacer Mientras
� Mientras
� Corrida en frío