Anda di halaman 1dari 40

ALGORITMOS

PARTE II
Ing. Sandra Rodríguez 2016-I
Recordando… para RESOLVER UN
PROBLEMA… consideramos los siguientes
pasos:

PRUEBA DE ESCRITORIO
P
R
PU
ANALISIS DEL DISEÑO DEL E
PROBLEMA ALGORITMO B
A

- Leer y comprender el - Secuencia ordenada de pasos o D


E
problema que se instrucciones claras y finitas.
plantea. - Representación de algoritmos: E
- Definir los datos de • Diagramas de Flujo S
entrada. • Pseudocódigo C
- Información requerida • Diagramas N-S R
I
de salida - Se implementan la:
T
- Métodos y fórmulas • Estructura Secuencial O
para procesar los • Estructura Condicional R
datos • Estructura Repetitiva I
- O
PRUEBA DE ESCRITORIO
• Para cerciorarnos de que el diagrama (y/o el pseudocódigo)
está bien, y, para garantizar que el programa que
codifiquemos luego también funcione correctamente, es
conveniente someterlo a una Prueba de Escritorio.
• Consiste en que damos diferentes datos de entrada al
programa y seguimos la secuencia indicada en el algoritmo
hasta obtener los resultados.
• El análisis de estos nos indicará si el algoritmo esta correcto o
si hay necesidad de hacer ajustes.
• Se recomienda dar diferentes datos de entrada y considerar
todos los posibles casos, aun los de excepción o no
esperados, para asegurarnos de que el programa no producirá
errores en ejecución cuando se presenten estos casos.
TABLA DE VARIABLES-PRUEBA DE
ESCRITORIO
Inicio
b h a p Pantalla
Entero b, h, a, p
Leer b, h 10 3

a=b*h 30
26
p = 2 *(b + h)
Area: 30
Escribir “Area:", a Perímetro: 26
Escribir “Perímetro:", p
Fin
Resumiendo la Tabla de Variables
para varias ejecuciones
No de b h a p Pantalla
ejecuciones
1. 10 3 30 26 Area: 30
Perímetro: 26
2. 5 7 35 24 Area: 35
Perímetro: 24
3. 1 0 0 2 Area: 0
Perímetro: 2
4. -5 2 -10 -6 Area: -10
Perímetro: -6
5. -20 -5 100 -50 Area: 100
Perímetro: -50

¿Son correctas las salidas de las ejecuciones 4 y 5?


B. ESTRUCTURA CONDICIONAL O DE
DECISION O SELECTIVA
• Permiten que el algoritmo tome decisiones y ejecute u omita
algunos procesos dependiendo del cumplimiento de una
condición (revisar a partir de pag. 15
ModuloComputaciónAlgoritmos).
• Se pueden manejar cuatro tipos de decisiones: simple, doble,
anidadas y múltiple.
B1. ESTRUCTURA DE DECISIÓN SIMPLE
• Una decisión es simple, cuando solo se tiene determinado los
pasos (acciones) a seguir si el resultado de la condición
(evaluación de una expresión lógica) es verdadero, mientras que
si es falso, la ejecución del algoritmo continúa después de la
estructura condicional.
• La representación en Pseudocódigo, Diagrama de Flujo y
Diagrama N-S se presenta a continuación:
PSEUDOCODIGO
SI (condición) ENTONCES

Acción ó
Acciones

FIN SI

DIAGRAMA DE FLUJO
Punto de entrada

V
condición

Acción ó
Acciones

Punto de salida
DIAGRAMA N-S

condición
V

Acción ó
Acciones
Estructura Condicional-EJEMPLO 1: Diseñar un algoritmo para
calcular el área y el perímetro de un rectángulo.

PASO 1: Definición del problema (es el enunciado)


PASO 2: Análisis del problema
Para desarrollar este problema es necesario conocer las
fórmulas para obtener tanto el área como el perímetro de un
rectángulo. Sea b = base, h = altura, a=área y p=perímetro, las
fórmulas a utilizar son:
a = b * h y p = 2 * (b + h)
Pero si los datos de base (b) y altura(h) son cero o negativo no
tendría sentido el rectángulo.
Datos de entrada: b y h (base y altura)
Datos de salida: a y p
Procesos: a = b * h y p = 2 * (b + h)
PASO 3: Diseño de la solución o del Algoritmo -
PSEUDOCODIGO
Inicio
Entero b, h, a, p
Leer b, h
//Estructura Condicional Simple
SI (b>0 ^ h>0) ENTONCES
a=b*h
p = 2 *(b + h)
Escribir “Area:", a
Escribir “Perímetro:", p
FIN SI
Fin
PASO 3: Diseño de la solución o del Algoritmo - DF
INICIO

Entero b, h, a, p

Leer b, h

Punto de entrada
V b>0 y
h>0
a=b*h
*h
p=2*(b+h)

Escribir
“Area: “, a
“Perimetro: “, p

Punto de salida
FIN
No de b h b>0 y h>0 a p Pantalla
ejecuciones

1. 10 3 V 30 26 Area: 30
Perímetro: 26

2. 5 7 V 35 24 Area: 35
Perímetro: 24

3. 1 0 F - - -

4. -5 2 F - - -

5. -20 -5 F - - -
PASO 3: Diseño de la solución o del Algoritmo –
DIAGRAMA N-S
IInicio

Entero b, h, a, p

Leer b, h

V b>0 y h>0

a = b*h

p = 2 *(b + h)

Escribir “Area= “, a

Escribir “Perímetro= “, p

Fin
B2. ESTRUCTURA DE DECISIÓN DOBLE
• Una decisión es doble cuando se tiene un
curso de acción para el caso que el resultado
de la comparación sea verdadero y otro para
cuando sea falso.
SI (condición) ENTONCES
Acción ó
Acciones PSEUDOCODIGO
SINO
Acción ó
Acciones
FIN SI

DIAGRAMA DE FLUJO
Punto de entrada

V F
condición

Acción ó Acción ó
Acciones Acciones

Punto de salida
DIAGRAMA N-S

condición
V F
Acción ó
Acciones
Acción ó Acción ó
Acciones Acciones
Estructura Condicional-EJEMPLO 1: Diseñar un algoritmo para
calcular el área y el perímetro de un rectángulo.
PASO 1: Definición del problema (es el enunciado)
PASO 2: Análisis del problema
Para desarrollar este problema es necesario conocer las
fórmulas para obtener tanto el área como el perímetro de un
rectángulo. Sea b = base, h = altura, a=área y p=perímetro, las
fórmulas a utilizar son:
a = b * h y p = 2 * (b + h)
Pero si los datos de base (b) y altura(h) son cero o negativo no
tendría sentido el rectángulo por lo que los datos son
inválidos.
Datos de entrada: b y h (base y altura)
Datos de salida: a y p
Procesos: a = b * h y p = 2 * (b + h)
PASO 3: Diseño de la solución o del Algoritmo -
PSEUDOCODIGO
Inicio
Entero b, h, a, p
Leer b, h
//Estructura Condicional Doble
SI (b>0 Y h>0) ENTONCES
a=b*h
p = 2 *(b + h)
Escribir “Area:", a
Escribir “Perímetro:", p
SINO
Escribir “Datos inválidos!!!"
FIN SI
Fin
PASO 3: Diseño de la solución o del Algoritmo - DF
p
INICIO

Entero b, h, a, p

Leer b, h

Punto de entrada
V b>0 y F
h>0
a=b*h
*h
Escribir
p=2*(b+h) “Datos inválidos!!!“

Escribir
“Area: “, a
“Perimetro: “, p

Punto de salida
FIN
No de b h b>0 y h>0 a p Pantalla
ejecuciones

1. 10 3 V 30 26 Area: 30
Perímetro: 26

2. 5 7 V 35 24 Area: 35
Perímetro: 24

3. 1 0 F - - Datos
inválidos!!!
4. -5 2 F - - Datos
inválidos!!!
5. -20 -5 F - - Datos
inválidos!!!
PASO 3: Diseño de la solución o del Algoritmo –
DIAGRAMA N-S
IInicio

Entero b, h, a, p

Leer b, h

V b>0 y h>0 F
a = b*h

p = 2 *(b + h) Escribir “Datos inváli-


dos!!!
Escribir “Area= “, a

Escribir “Perímetro= “, p

Fin
NOTA: EN CODIFICACION JAVA
• ESTRUCTURA DE DECISIÓN SIMPLE: Al
cumplirse la condición entonces si se van a
ejecutar dos o varias acciones será necesario
colocar las llaves de inicio y fin de bloque, {
} si sólo hay una acción es OPCIONAL el uso
de las llaves.
NOTA: EN CODIFICACION JAVA

• ESTRUCTURA DE DECISIÓN DOBLE: IDEM al caso


anterior, EN CODIFICACION JAVA si la condición es
Verdadera o el resultado de la evaluación de la
condición es FALSO y hay 2 o más acciones por
ejecutar es necesario colocar las llaves de inicio y
fin de bloque, de lo contrario es OPCIONAL.
Recapitulando los tipos de ESTRUCTURA DE
DECISIÓN, SELECCION O CONDICIONAL
B3. ESTRUCTURA DE DECISIÓN
ANIDADA
• Las estructuras condicionales pueden
anidarse, lo que significa que una estructura
selectiva puede contener a su vez otra
estructura selectiva, dentro de cualquiera de
las secciones de una estructura condicional,
sea simple o doble, puede incluirse otra
estructura condicional que a su vez puede ser
simple o doble y puede contener también
dentro de ella, otras estructuras condicionales
o selectivas.
SI (condición) ENTONCES
Acción ó
PSEUDOCODIGO
Acciones
SINO
SI (condición) ENTONCES
Acción ó
Acciones
SINO
Acción ó
Acciones
FIN SI

FIN SI
SI (condición) ENTONCES
SI (condición) ENTONCES PSEUDOCODIGO
Acción ó
Acciones
SINO
Acción ó
Acciones
FIN SI

SINO
Acción ó
Acciones

FIN SI
DIAGRAMA DE FLUJO

Punto de entrada

V F
condición

V F
Acción ó condición
Acciones

Acción ó Acción ó
Acciones Acciones

Punto de salida
DIAGRAMA DE FLUJO

Punto de entrada

V F
condición

V condición
F Acción ó
Acciones

Acción ó Acción ó
Acciones Acciones

Punto de salida
DIAGRAMA N-S

condición
Acción ó
V F
Acciones
C
condición
Acción ó V F
Acciones
Acción ó Acción ó
Acciones Acciones
DIAGRAMA N-S

condición
Acción ó
V F
Acciones
C C
condición condición
V F V F
Acción ó Acción ó Acción ó Acción ó
Acciones Acciones Acciones Acciones
B4. ESTRUCTURA DE DECISIÓN
MULTIPLE
• A veces es necesario que existan más de dos
elecciones posibles Este problema se podría
resolver por estructuras selectivas simples o
dobles que estuvieran anidadas; sin embargo por
este método si el número de alternativas es grande
puede plantear serios problemas de escritura del
algoritmo y naturalmente de legibilidad.
• La estructura de decisión múltiple evalúa una
expresión que pueda tomar n valores (enteros,
caracteres y lógicos pero nunca reales) y ejecuta
una acción o grupo de acciones diferente en función
del valor tomado por la expresión selectora.
PSEUDOCODIGO

SEGUN (variable selector)


CASO valor 1: Acción ó Acciones 1
CASO valor 2: Acción ó Acciones 2
CASO valor 3: Acción ó Acciones 3

CASO valor n: Acción ó Acciones n
CASO CONTRARIO Acción ó Acciones
FIN SEGUN
DIAGRAMA DE FLUJO

Punto de entrada

valor 1 variable otros valores


valor 2 selector valor n
valor 3
Acción ó Acción ó Acción ó Acción ó Acción ó
Acciones 1 Acciones 2 Acciones 3 Acciones n Acciones

Punto de salida
DIAGRAMA N-S

variable selector

valor 1 valor 2 valor 3 … valor n otros valores

Acción Acciones

Acción ó Acción ó Acción ó Acción ó Acción ó


Acciones 1 Acciones 2 Acciones 3 Acciones n Acciones
Estructura Condicional-EJEMPLO 1: Diseñar un algoritmo que
permita realizar y mostrar el resultado de la suma (+), resta(-),
multiplicación(*) o división(/) de dos números según sea el
operador aritmético ingresado.
PASO 1: Definición del problema (es el enunciado)
PASO 2: Análisis del problema
Datos de entrada: num1(numero 1) y num2 (numero 2)
Procesos:
Según sea op (operador aritmético)
Caso ´+´ : res = num1+num2
Caso ´-´ : res = num1-num2
Caso ´*´ : res = num1*num2
Caso ´/´ : res = num1/num2
Datos de salida: res (resultado)
PASO 3: Diseño de la solución o del Algoritmo -PSEUDOCODIGO
Inicio
Real n1, n2, res
Carácter op
Leer n1, n2
Escribir “Ingrese op. aritmetico: ”
Leer op
//Estructura de Selección Múltiple
SEGUN (op)
CASO ´+´: res=n1+n2
CASO ´-´: res=n1-n2
CASO ´*´: res=n1*n2
CASO ´/´: res=n1/n2
FIN SEGUN
Escribir “Resultado = ”, res
Fin
PASO 3: Diseño de la solución o del Algoritmo -PSEUDOCODIGO
Inicio
Entero nd
Leer nd
//Estructura de Selección Múltiple
SEGUN (nd)
CASO 1: Escribir “Domingo”
CASO 2: Escribir “Lunes”
CASO 3: Escribir “Martes”
CASO 4: Escribir “Miercoles”

CASO CONTRARIO: Escribir “Dato invalido”


FIN SEGUN
Fin
No de n1 n2 op res Pantalla
ejecuciones

1. 10 5 + 15 Resultado = 15

2. 0 -2 - 2 Resultado = 2

3. 0 0 * 0 Resultado = 0

4. 15 10 / 1.5 Resultado = 1.5

5. -20 -5 + -25 Resultado = -25

Anda mungkin juga menyukai