Programación

Clase 2. Algoritmos
Prof. Gonzalo Müller
gmullerb@mail.com

Facultad de Ingeniería Universidad Central de Venezuela

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

Definición de Programador. Fases de la Programación. Metodología para resolución de un problema: Definición, Análisis, Diseño del algoritmo, Prueba del Algoritmo e Implementación Algoritmo Definición, Características, Partes.
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 2

Representación de un algoritmo
Existen básicamente tres formas de representar los algoritmos: Pseudo código. Diagramas de Flujo. Diagramas Rectangulares Estructurados.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 3

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 implementación. Es flexible. Permite una analogía que facilita la codificación.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 4

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ímbolos normalizados. Las líneas de flujo indica la secuencia de ejecución. Pueden resultar inadecuados debido a que propicia algoritmos no estructurados (excesivas líneas de flujo).

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 5

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ímbolos normalizados. También conocidos como: Diagramas de NassiSchneiderman. Permiten mantener el orden. Permiten una analogía que facilita la codificación.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 6

Representación de un algoritmo
Símbolos Básico de un Diagramas de Flujo: Líneas de Flujo: Establece la dirección de la secuencia 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 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.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 7

Representación de un algoritmo
Bloque Terminal: Señala el inicio o el fin del algoritmo.
Inicio

Fin

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 8

Representación de un algoritmo
Bloque Terminal: Señala el inicio o el fin del algoritmo.
Inicio

Nombre

Fin

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 9

Representación de un algoritmo
Bloque Terminal: Señala el inicio o el fin del algoritmo.
Nombre
El bloque inicio siempre tiene solo una línea y es de salida El bloque fin siempre tiene solo líneas de entrada

Fin

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 10

Representación de un algoritmo
Bloque Proceso: Se utiliza para indicar un proceso ó operación.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 11

Representación de un algoritmo
Bloque Proceso: Se utiliza para indicar un proceso ó operación.

El bloque de proceso siempre tiene una línea de salida (puede tener varias de entrada)
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 12

Representación de un algoritmo
Bloque Genérico Entrada-Salida: Indica una operación de entrada salida sin especificar un dispositivo especifico para realizar la operación.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 13

Representación de un algoritmo
Bloque Genérico Entrada-Salida: Indica una operación de entrada salida sin especificar un dispositivo especifico para realizar la operación.

El bloque entrada-salida siempre tiene una línea de salida (puede tener varias de entrada)
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 14

Representación de un algoritmo
Bloque de Decisión: Establece la dirección de los subsecuentes pasos en función de una condición dada.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 15

Representación de un algoritmo
Bloque de Decisión: Establece la dirección de los subsecuentes pasos en función de una condición dada.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 16

Representación de un algoritmo
Bloque de Decisión: Establece la dirección de los subsecuentes pasos en función de una condición dada.

El bloque de decisión siempre tiene dos de salida (puede tener varias de entrada)
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 17

Representación de un algoritmo
Conectores: Establece la conexión entre dos bloques que espacialmente no puede ser conectados.
Se usan en pares.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 18

Representación de un algoritmo
Reglas de construcción 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 leída de arriba abajo y de izquierda a derecha.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 19

Representación de un algoritmo
Cada bloque debe tener al menos una línea de flujo de entrada, exceptuando el bloque de inicio. Cada bloque puede tener a lo sumo una línea de flujo de salida, exceptuando el bloque de decisión. El bloque de decisión debe tener dos líneas de flujo de salida.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 20

Representación de un algoritmo
Ejemplo: Construir el diagrama de flujo para leer y sumar dos números.

Fase 1: Análisis y Diseño: DES y DF

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 21

Representación de un algoritmo
Ejemplo: Construir el diagrama de flujo para indicar si un número es mayor o igual que otro.

Fase 1: Análisis y Diseño: DES y DF

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 22

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

Fase 1: Análisis y Diseño: DES y DF

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 23

Ejercicios
Construir el diagrama de flujo para: a. Bajar de peso. b. Lavar la loza. c. Restar 2 de un número si es negativo y dejarlo igual de lo contrario. Fase 1: Análisis y Diseño: DES y DF

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 24

Representación de un algoritmo
Reglas de construcción de DRE: Toda la secuencia de pasos se coloca dentro de un rectángulo:
Paso 1 Paso 2 … Paso n

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 25

Representación 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
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 26

Representación de un algoritmo
Reglas de construcción de Pseudo Código: En la primera línea se debe colocar el nombre del algoritmo. Todo el cuerpo del algoritmo debe ser encerrado entre llaves {}. Nombre
{ Paso 1 Paso 2 … Paso n }
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 27

Representación de un algoritmo
Ejemplo 2.2: Construir el PC y DRE para leer y sumar dos números.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 28

Estructuras Básicas
Todo algoritmo se construye con 3 estructuras básicas:
Secuencial. Selectiva. Repetitiva.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 29

Estructura Secuencial
Un paso se ejecuta uno detrás de otro.
PC
Paso 1 Paso 2 … Paso n Paso n Paso 2

DF
Paso 1

DRE

Paso 1 Paso 2 Paso n

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 30

Estructura Secuencial
Ejemplo 2.3: Construir el PC y DRE para leer y sumar dos números.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 31

Estructura Selectiva
Una secuencia de pasos se ejecuta dependiendo de una condición dada. También se le llama condicional. Dos tipos:
Sencilla Doble

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 32

Estructura Selectiva
Estructura Condicional Sencilla: Se ejecuta una instrucción si la condición dada es verdadera.
PC
Si (Condición) { Paso } Condición
V F V

DF

DRE

Condición Paso

Paso

Ejemplo: fruta
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 33

Estructura Selectiva
Estructura Condicional Sencilla: Se ejecuta una instrucción si la condición dada es verdadera.
PC
Si (Condición) { Paso } Condición
V F V

DF

DRE

Condición Paso

Paso

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 34

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

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 35

Estructura Selectiva

El paso contenido en las estructuras selectiva es ejecutado SIEMPRE y cuando la condición sea VERDADERA

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 36

Estructura Selectiva
Estructura Condicional Doble: Se ejecuta una de dos de instrucciones dependiendo de la condición dada.
PC
Si (Condición) { Paso } sino { Paso’ }

DF

DRE

V

Condición

F

Condición
V F

Paso

Paso’

Paso

Paso’

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 37

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

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 38

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. Dos tipos:
Hacer Mientras
Se ejecuta al menos una vez la secuencia.

Mientras
Puede que nunca se ejecute la secuencia.
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 39

Estructura Repetitiva
Estructura Repetitiva Hacer Mientras: Se repite una instrucción mientras una condición dada sea verdadera.
PC
Hacer { Paso } Mientras (Condición)
F

DF

DRE

Paso Condición
V

Paso Mientras (Condición)

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 40

Estructura Repetitiva
Estructura Repetitiva Hacer Mientras: Se repite una instrucción mientras una condición dada sea verdadera.
PC
Hacer { Paso } Mientras (Condición)
F

DF

DRE

Paso Condición
V

Paso Mientras (Condición)

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 41

Estructura Repetitiva
Ejemplo 2.6: Se requiere leer un número no negativo. Construir el DF, DRE y PC del algoritmo para leer un numero hasta que este sea válido, y presentar en la salida.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 42

Estructura Repetitiva
Estructura Repetitiva Mientras: Se repite una instrucción mientras una condición dada sea verdadera.
PC
Mientras (Condición ) { Paso }

DF
F

DRE

Condición
V

Mientras (Condición) Paso Paso

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 43

Estructura Repetitiva
Estructura Repetitiva Mientras: Se repite una instrucción mientras una condición dada sea verdadera.
PC
Mientras (Condición ) { Paso }

DF
F

DRE

Condición
V

Mientras (Condición) Paso Paso

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 44

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

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 45

Estructura Repetitiva

El paso contenido en una estructura repetitiva es ejecutado SIEMPRE y cuando la condición sea VERDADERA

Las corridas en frío son de gran utilidad para algoritmos con estructuras repetitivas

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 46

Representación de un algoritmo
Cuadro comparativo:
PC Fácil codificación Mantiene el Orden Rápida Comprensión Uso Sencillo Si +/– No +/– DF No No +/– Si DRE Si Si +/– Si

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 47

Metodología para resolución de un problema
Definición del problema Análisis del problema Diseño del algoritmo

Prueba del Algoritmo

Codificación del Algoritmo
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 48

Corrida en frío
La corrida en frío permite realizar la prueba de un algoritmo antes de pasar a la codificación Partiendo del Problema se definen una o más 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

n
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 49

Corrida en frío
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

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 50

Corrida en frío
Una de las formas de realizar una corrida en frío es utilizando una tabla. La tabla de corrida en frío debe contener: 1. Sentencia a ejecutar. 2. Columnas para las datos utilizados. 3. Columnas para las condiciones. 4. Una columna de salida.
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 51

Corrida en frío
A partier del Algoritmo se construye la Tabla:
Sentencia

Dato 1

Dato 2

Dato N

Condición 1

Condición 2

Condición M

Salida

Datos

Condiciones

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 52

Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero según la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario • entradas y salidas, • requerimientos, • teoría asociada, • restricciones, • etc.
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 53

1. Se realiza el análisis

Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.5. Convertir un numero según la siguiente regla: Sumar 1 si es negativo o Restar 1 de lo contrario
Entrada conocida 2 -1 0 Salida esperada 1 0 -1
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 54

2. Se definen las pruebas

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

n<0

F

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 55

3. Se construye el algoritmo

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

Corrida en frío
Sentencia

n<0

F

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 56

4. Se construye la tabla

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

Corrida en frío
Sentencia

n Datos

n<0

F

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 57

4. Se construye la tabla

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

Corrida en frío
Sentencia

n

n<0 Condiciones

n<0

F

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 58

4. Se construye la tabla

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

Corrida en frío
Sentencia

n

n<0

Salida

n<0

F

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 59

4. Se construye la tabla

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

Corrida en frío
Entrada conocida
Sentencia

n

n<0

Salida

2
F

n<0

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 60

5. Se realizan las corridas

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

Corrida en frío
Entrada conocida
Sentencia

n
2

n<0

Salida

2
F

n<0

Leer n

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 61

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

Corrida en frío
Sentencia

n
2

n<0
2<0

Salida

n<0

Leer n F si

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 62

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

Corrida en frío
Sentencia

n
2

n<0
2<0 F

Salida

n<0

Leer n F si

n=n+1

n=n-1

Escribir n Fin
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 63

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

Corrida en frío
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

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 64

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

Corrida en frío
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

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 65

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

Corrida en frío
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

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 66

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

Corrida en frío
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

1

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 67

Corrida en frío

¿Cuantos casos de pruebas definir?
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 68

Corrida en frío
Tratar de definir tantos casos de pruebas como caminos críticos tenga el algoritmo de tal manera de evaluarlos todos
Convertidor Leer n
V

n<0

F

n=n+1

n=n-1

Escribir n Fin

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 69

Corrida en frío
Ejemplo: Realizar una corrida en frio para el algoritmo del ejemplo 2.7.

Programación – Prof. Gonzalo Müller – Clase 2 – GM - 70

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 mayor que 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. Fase 1: Análisis y Diseño: DES, DF y DRE. Realizar una corrida en frío.
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 71

Resumen
Representación de un algoritmo: Pseudo Código. Diagramas de Flujo. Diagramas de Rectangulares Estructurados. Estructura Secuencial. Estructura Selectiva: Sencilla Doble Estructura Repetitiva: Hacer Mientras Mientras Corrida en frío
Programación – Prof. Gonzalo Müller – Clase 2 – GM - 72

Sign up to vote on this title
UsefulNot useful