You are on page 1of 72

Programacin

Clase 2. Algoritmos
Prof. Gonzalo Mller
gmullerb@mail.com

Facultad de Ingeniera Universidad Central de Venezuela

Clase Anterior
Pautas de curso.
www.scribd.com/gmullerb

Definicin de Programador. Fases de la Programacin. Metodologa para resolucin de un problema: Definicin, Anlisis, Diseo del algoritmo, Prueba del Algoritmo e Implementacin Algoritmo Definicin, Caractersticas, Partes.
Programacin Prof. Gonzalo Mller Clase 2 GM - 2

Representacin de un algoritmo
Existen bsicamente tres formas de representar los algoritmos: Pseudo cdigo. Diagramas de Flujo. Diagramas Rectangulares Estructurados.

Programacin Prof. Gonzalo Mller Clase 2 GM - 3

Representacin de un algoritmo
Pseudo Cdigo (PC): Expresa a travs de frases cada uno de los pasos Casi cdigo. Exige una adecuada indentacin. Se debe enfocar a la lgica y no hay los detalles de implementacin. Es flexible. Permite una analoga que facilita la codificacin.

Programacin Prof. Gonzalo Mller Clase 2 GM - 4

Representacin de un algoritmo
Diagramas de Flujo (DF): Constituyen una representacin grfica de la secuencia de pasos a realizar. La operaciones se escriben con smbolos normalizados. Las lneas de flujo indica la secuencia de ejecucin. Pueden resultar inadecuados debido a que propicia algoritmos no estructurados (excesivas lneas de flujo).

Programacin Prof. Gonzalo Mller Clase 2 GM - 5

Representacin de un algoritmo
Diagramas Rectangulares Estructurados (DRE): Constituyen una representacin grfica de la secuencia de pasos a realizar. La operaciones se escriben con smbolos normalizados. Tambin conocidos como: Diagramas de NassiSchneiderman. Permiten mantener el orden. Permiten una analoga que facilita la codificacin.

Programacin Prof. Gonzalo Mller Clase 2 GM - 6

Representacin de un algoritmo
Smbolos Bsico de un Diagramas de Flujo: Lneas de Flujo: Establece la direccin de la secuencia de pasos
Una lnea de flujo con la direccin saliendo de un bloque, se conoce como una lnea de flujo de salida del bloque. Una lnea de flujo con la direccin entrando en un bloque, se conoce como una lnea de flujo de entrada del bloque.

Programacin Prof. Gonzalo Mller Clase 2 GM - 7

Representacin de un algoritmo
Bloque Terminal: Seala el inicio o el fin del algoritmo.
Inicio

Fin

Programacin Prof. Gonzalo Mller Clase 2 GM - 8

Representacin de un algoritmo
Bloque Terminal: Seala el inicio o el fin del algoritmo.
Inicio

Nombre

Fin

Programacin Prof. Gonzalo Mller Clase 2 GM - 9

Representacin de un algoritmo
Bloque Terminal: Seala el inicio o el fin del algoritmo.
Nombre
El bloque inicio siempre tiene solo una lnea y es de salida El bloque fin siempre tiene solo lneas de entrada

Fin

Programacin Prof. Gonzalo Mller Clase 2 GM - 10

Representacin de un algoritmo
Bloque Proceso: Se utiliza para indicar un proceso operacin.

Programacin Prof. Gonzalo Mller Clase 2 GM - 11

Representacin de un algoritmo
Bloque Proceso: Se utiliza para indicar un proceso operacin.

El bloque de proceso siempre tiene una lnea de salida (puede tener varias de entrada)
Programacin Prof. Gonzalo Mller Clase 2 GM - 12

Representacin de un algoritmo
Bloque Genrico Entrada-Salida: Indica una operacin de entrada salida sin especificar un dispositivo especifico para realizar la operacin.

Programacin Prof. Gonzalo Mller Clase 2 GM - 13

Representacin de un algoritmo
Bloque Genrico Entrada-Salida: Indica una operacin de entrada salida sin especificar un dispositivo especifico para realizar la operacin.

El bloque entrada-salida siempre tiene una lnea de salida (puede tener varias de entrada)
Programacin Prof. Gonzalo Mller Clase 2 GM - 14

Representacin de un algoritmo
Bloque de Decisin: Establece la direccin de los subsecuentes pasos en funcin de una condicin dada.

Programacin Prof. Gonzalo Mller Clase 2 GM - 15

Representacin de un algoritmo
Bloque de Decisin: Establece la direccin de los subsecuentes pasos en funcin de una condicin dada.

Programacin Prof. Gonzalo Mller Clase 2 GM - 16

Representacin de un algoritmo
Bloque de Decisin: Establece la direccin de los subsecuentes pasos en funcin de una condicin dada.

El bloque de decisin siempre tiene dos de salida (puede tener varias de entrada)
Programacin Prof. Gonzalo Mller Clase 2 GM - 17

Representacin de un algoritmo
Conectores: Establece la conexin entre dos bloques que espacialmente no puede ser conectados.
Se usan en pares.

Programacin Prof. Gonzalo Mller Clase 2 GM - 18

Representacin de un algoritmo
Reglas de construccin de Diagramas de Flujo: Contiene un nico bloque terminal que indica inicio. Puede contener varios bloques terminal que indican el final. Debe ser organizado de tal forma que la secuencia sea leda de arriba abajo y de izquierda a derecha.

Programacin Prof. Gonzalo Mller Clase 2 GM - 19

Representacin de un algoritmo
Cada bloque debe tener al menos una lnea de flujo de entrada, exceptuando el bloque de inicio. Cada bloque puede tener a lo sumo una lnea de flujo de salida, exceptuando el bloque de decisin. El bloque de decisin debe tener dos lneas de flujo de salida.

Programacin Prof. Gonzalo Mller Clase 2 GM - 20

Representacin de un algoritmo
Ejemplo: Construir el diagrama de flujo para leer y sumar dos nmeros.

Fase 1: Anlisis y Diseo: DES y DF

Programacin Prof. Gonzalo Mller Clase 2 GM - 21

Representacin de un algoritmo
Ejemplo: Construir el diagrama de flujo para indicar si un nmero es mayor o igual que otro.

Fase 1: Anlisis y Diseo: DES y DF

Programacin Prof. Gonzalo Mller Clase 2 GM - 22

Representacin de un algoritmo
Ejemplo: Construir el diagrama de flujo para comprar el libro de Harry Potter 8.

Fase 1: Anlisis y Diseo: DES y DF

Programacin Prof. Gonzalo Mller Clase 2 GM - 23

Ejercicios
Construir el diagrama de flujo para: a. Bajar de peso. b. Lavar la loza. c. Restar 2 de un nmero si es negativo y dejarlo igual de lo contrario. Fase 1: Anlisis y Diseo: DES y DF

Programacin Prof. Gonzalo Mller Clase 2 GM - 24

Representacin de un algoritmo
Reglas de construccin de DRE: Toda la secuencia de pasos se coloca dentro de un rectngulo:
Paso 1 Paso 2 Paso n

Programacin Prof. Gonzalo Mller Clase 2 GM - 25

Representacin de un algoritmo
En el primer bloque se debe colocar el nombre del algoritmo. En el ltimo bloque se debe colocar Fin.
Nombre
Paso 1 Paso 2 FIN
Programacin Prof. Gonzalo Mller Clase 2 GM - 26

Representacin de un algoritmo
Reglas de construccin de Pseudo Cdigo: En la primera lnea se debe colocar el nombre del algoritmo. Todo el cuerpo del algoritmo debe ser encerrado entre llaves {}. Nombre
{ Paso 1 Paso 2 Paso n }
Programacin Prof. Gonzalo Mller Clase 2 GM - 27

Representacin de un algoritmo
Ejemplo 2.2: Construir el PC y DRE para leer y sumar dos nmeros.

Programacin Prof. Gonzalo Mller Clase 2 GM - 28

Estructuras Bsicas
Todo algoritmo se construye con 3 estructuras bsicas:
Secuencial. Selectiva. Repetitiva.

Programacin Prof. Gonzalo Mller Clase 2 GM - 29

Estructura Secuencial
Un paso se ejecuta uno detrs de otro.
PC
Paso 1 Paso 2 Paso n Paso n Paso 2

DF
Paso 1

DRE

Paso 1 Paso 2 Paso n

Programacin Prof. Gonzalo Mller Clase 2 GM - 30

Estructura Secuencial
Ejemplo 2.3: Construir el PC y DRE para leer y sumar dos nmeros.

Programacin Prof. Gonzalo Mller Clase 2 GM - 31

Estructura Selectiva
Una secuencia de pasos se ejecuta dependiendo de una condicin dada. Tambin se le llama condicional. Dos tipos:
Sencilla Doble

Programacin Prof. Gonzalo Mller Clase 2 GM - 32

Estructura Selectiva
Estructura Condicional Sencilla: Se ejecuta una instruccin si la condicin dada es verdadera.
PC
Si (Condicin) { Paso } Condicin
V F V

DF

DRE

Condicin Paso

Paso

Ejemplo: fruta
Programacin Prof. Gonzalo Mller Clase 2 GM - 33

Estructura Selectiva
Estructura Condicional Sencilla: Se ejecuta una instruccin si la condicin dada es verdadera.
PC
Si (Condicin) { Paso } Condicin
V F V

DF

DRE

Condicin Paso

Paso

Programacin Prof. Gonzalo Mller Clase 2 GM - 34

Estructura Selectiva
Ejemplo 2.4: Construir el DF, DRE y PC del algoritmo para convertir un nmero en negativo si es positivo.

Programacin Prof. Gonzalo Mller Clase 2 GM - 35

Estructura Selectiva

El paso contenido en las estructuras selectiva es ejecutado SIEMPRE y cuando la condicin sea VERDADERA

Programacin Prof. Gonzalo Mller Clase 2 GM - 36

Estructura Selectiva
Estructura Condicional Doble: Se ejecuta una de dos de instrucciones dependiendo de la condicin dada.
PC
Si (Condicin) { Paso } sino { Paso }

DF

DRE

Condicin

Condicin
V F

Paso

Paso

Paso

Paso

Programacin Prof. Gonzalo Mller Clase 2 GM - 37

Estructura Selectiva
Ejemplo 2.5: Construir el DF, DRE y PC del algoritmo para convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario.

Programacin Prof. Gonzalo Mller Clase 2 GM - 38

Estructura Repetitiva
Una secuencia de pasos se repite en forma consecutiva dependiendo de una condicin dada. Tambin se le llama Bucle o Lazo. Cada repeticin se conoce como ciclo o iteracin. Dos tipos:
Hacer Mientras
Se ejecuta al menos una vez la secuencia.

Mientras
Puede que nunca se ejecute la secuencia.
Programacin Prof. Gonzalo Mller Clase 2 GM - 39

Estructura Repetitiva
Estructura Repetitiva Hacer Mientras: Se repite una instruccin mientras una condicin dada sea verdadera.
PC
Hacer { Paso } Mientras (Condicin)
F

DF

DRE

Paso Condicin
V

Paso Mientras (Condicin)

Programacin Prof. Gonzalo Mller Clase 2 GM - 40

Estructura Repetitiva
Estructura Repetitiva Hacer Mientras: Se repite una instruccin mientras una condicin dada sea verdadera.
PC
Hacer { Paso } Mientras (Condicin)
F

DF

DRE

Paso Condicin
V

Paso Mientras (Condicin)

Programacin Prof. Gonzalo Mller Clase 2 GM - 41

Estructura Repetitiva
Ejemplo 2.6: Se requiere leer un nmero no negativo. Construir el DF, DRE y PC del algoritmo para leer un numero hasta que este sea vlido, y presentar en la salida.

Programacin Prof. Gonzalo Mller Clase 2 GM - 42

Estructura Repetitiva
Estructura Repetitiva Mientras: Se repite una instruccin mientras una condicin dada sea verdadera.
PC
Mientras (Condicin ) { Paso }

DF
F

DRE

Condicin
V

Mientras (Condicin) Paso Paso

Programacin Prof. Gonzalo Mller Clase 2 GM - 43

Estructura Repetitiva
Estructura Repetitiva Mientras: Se repite una instruccin mientras una condicin dada sea verdadera.
PC
Mientras (Condicin ) { Paso }

DF
F

DRE

Condicin
V

Mientras (Condicin) Paso Paso

Programacin Prof. Gonzalo Mller Clase 2 GM - 44

Estructura Repetitiva
Ejemplo 2.7: Construir el DF, DRE y PC de un algoritmo para convertir un numero dado, incrementndolo de 2 de 2 mientras sea negativo.

Programacin Prof. Gonzalo Mller Clase 2 GM - 45

Estructura Repetitiva

El paso contenido en una estructura repetitiva es ejecutado SIEMPRE y cuando la condicin sea VERDADERA

Las corridas en fro son de gran utilidad para algoritmos con estructuras repetitivas

Programacin Prof. Gonzalo Mller Clase 2 GM - 46

Representacin de un algoritmo
Cuadro comparativo:
PC Fcil codificacin Mantiene el Orden Rpida Comprensin Uso Sencillo Si +/ No +/ DF No No +/ Si DRE Si Si +/ Si

Programacin Prof. Gonzalo Mller Clase 2 GM - 47

Metodologa para resolucin de un problema


Definicin del problema Anlisis del problema Diseo del algoritmo

Prueba del Algoritmo

Codificacin del Algoritmo


Programacin Prof. Gonzalo Mller Clase 2 GM - 48

Corrida en fro
La corrida en fro permite realizar la prueba de un algoritmo antes de pasar a la codificacin Partiendo del Problema se definen una o ms pruebas. Se debe conocer de antemano o estimar que resultados generan los datos de entrada para cada prueba: Entrada Salida
conocida 1 Entrada conocida Salida esperada esperada 1

n
Programacin Prof. Gonzalo Mller Clase 2 GM - 49

Corrida en fro
Para cada prueba se debe ejecutar uno a uno los pasos del algoritmo desde los valores de entrada hasta obtener los valores de salida.
Entrada conocida Entrada conocida Salida esperada Salida no esperada

Algoritmo Correcto Algoritmo Incorrecto

Programacin Prof. Gonzalo Mller Clase 2 GM - 50

Corrida en fro
Una de las formas de realizar una corrida en fro es utilizando una tabla. La tabla de corrida en fro debe contener: 1. Sentencia a ejecutar. 2. Columnas para las datos utilizados. 3. Columnas para las condiciones. 4. Una columna de salida.
Programacin Prof. Gonzalo Mller Clase 2 GM - 51

Corrida en fro
A partier del Algoritmo se construye la Tabla:
Sentencia

Dato 1

Dato 2

Dato N

Condicin 1

Condicin 2

Condicin M

Salida

Datos

Condiciones

Programacin Prof. Gonzalo Mller Clase 2 GM - 52

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario entradas y salidas, requerimientos, teora asociada, restricciones, etc.
Programacin Prof. Gonzalo Mller Clase 2 GM - 53

1. Se realiza el anlisis

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Entrada conocida 2 -1 0 Salida esperada 1 0 -1
Programacin Prof. Gonzalo Mller Clase 2 GM - 54

2. Se definen las pruebas

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

n<0

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 55

3. Se construye el algoritmo

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n<0

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 56

4. Se construye la tabla

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n Datos

n<0

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 57

4. Se construye la tabla

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n<0 Condiciones

n<0

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 58

4. Se construye la tabla

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n<0

Salida

n<0

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 59

4. Se construye la tabla

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Entrada conocida
Sentencia

n<0

Salida

2
F

n<0

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 60

5. Se realizan las corridas

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Entrada conocida
Sentencia

n
2

n<0

Salida

2
F

n<0

Leer n

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 61

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n
2

n<0
2<0

Salida

n<0

Leer n F si

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 62

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n
2

n<0
2<0 F

Salida

n<0

Leer n F si

n=n+1

n=n-1

Escribir n Fin
Programacin Prof. Gonzalo Mller Clase 2 GM - 63

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n
2

n<0
2<0 F

Salida

n<0

Leer n F si n=n-1

n=n+1

n=n-1

2-1 1

Escribir n Fin

Programacin Prof. Gonzalo Mller Clase 2 GM - 64

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n
2

n<0
2<0 F

Salida

n<0

Leer n F si n=n-1
Escribir n

n=n+1

n=n-1

2-1 1 1

Escribir n Fin

Programacin Prof. Gonzalo Mller Clase 2 GM - 65

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Sentencia

n
2

n<0
2<0 F

Salida

n<0

Leer n F si n=n-1
Escribir n

n=n+1

n=n-1

2-1 1 1

Escribir n Fin

Programacin Prof. Gonzalo Mller Clase 2 GM - 66

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero segn la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Algoritmo Convertidor Leer n
V

Corrida en fro
Entrada conocida
Sentencia

n
2

n<0
2<0 F

Salida

2
F

n<0

Leer n si n=n-1
Escribir n

n=n+1

n=n-1

2-1 1 1

Salida esperada

Escribir n Fin

Programacin Prof. Gonzalo Mller Clase 2 GM - 67

Corrida en fro

Cuantos casos de pruebas definir?


Programacin Prof. Gonzalo Mller Clase 2 GM - 68

Corrida en fro
Tratar de definir tantos casos de pruebas como caminos crticos tenga el algoritmo de tal manera de evaluarlos todos
Convertidor Leer n
V

n<0

n=n+1

n=n-1

Escribir n Fin

Programacin Prof. Gonzalo Mller Clase 2 GM - 69

Corrida en fro
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.7.

Programacin Prof. Gonzalo Mller Clase 2 GM - 70

Ejercicio
2. Para cada uno de los siguientes problemas: a) Sumar 3 nmeros. b) Sumar 2 nmeros si son iguales y los multiplique de lo contrario. c) Dividir 2 nmeros, el menor entre el mayor. d) Leer nmeros hasta que el ledo sea mayor que 5 y escribir en la salida el ltimo nmero. e) Disminuir un nmero de 2 en 2 hasta que este sea negativo y escribir resultado en la salida. Fase 1: Anlisis y Diseo: DES, DF y DRE. Realizar una corrida en fro.
Programacin Prof. Gonzalo Mller Clase 2 GM - 71

Resumen
Representacin de un algoritmo: Pseudo Cdigo. Diagramas de Flujo. Diagramas de Rectangulares Estructurados. Estructura Secuencial. Estructura Selectiva: Sencilla Doble Estructura Repetitiva: Hacer Mientras Mientras Corrida en fro
Programacin Prof. Gonzalo Mller Clase 2 GM - 72

You might also like