Vous êtes sur la page 1sur 40

ALGORITMOS

PARTE II
Recordando… para RESOLVER UN
PROBLEMA… consideramos los siguientes
pasos:

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

D
‐ Leer y comprender el ‐ Secuencia ordenada de pasos o E
problema que se instrucciones claras y finitas.
plantea. ‐ Representación de algoritmos: E
‐ Definir los datos de • Diagramas de Flujo S
C
entrada. • Pseudocódigo
R
‐ Información requerida • Diagramas N‐S I
de salida ‐ Se implementan la: T
‐ Métodos y fórmulas • Estructura Secuencial O
para procesar los • Estructura Condicional R
I
datos • Estructura Repetitiva
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
30
a=b*h
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.
• Se pueden manejar tres 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 Y 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

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
INICIO

Entero b, h, a, p

Leer b, h

Punto de entrada
V b>0 y F
h>0
a=b*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 PSEUDOCODIGO Y
CODIFICACION POSTERIOR
• ESTRUCTURA DE DECISIÓN SIMPLE: Al cumplirse la condición
entonces si se van a ejecutar dos o varias acciones es
necesario colocar FIN ENTONCES, si sólo hay una acción es
OPCIONAL

SI (condición) ENTONCES
acción 1 SI (condición) ENTONCES
acción 2 acción 1
: FIN ENTONCES
acción n FIN SI
FIN ENTONCES
FIN SI

OPCIONAL
NOTA: EN PSEUDOCODIGO Y
CODIFICACION POSTERIOR
• ESTRUCTURA DE DECISIÓN DOBLE: IDEM al caso anterior si la
condición es Verdadera. Si el resultado de la evaluación de la
condición es FALSO y hay 2 o más acciones por ejecutar es
necesario colocar FIN SINO.
SI (condición) ENTONCES
acción 1
acción 2 SI (condición) ENTONCES
: acción 1
acción n FIN ENTONCES
FIN ENTONCES SINO
SINO acción 1
acción 1
FIN SINO
acción 2
FIN SI
:
acción n
FIN SINO
FIN SI 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 ó
Acciones
PSEUDOCODIGO
FIN ENT
SINO
SI (condición) ENTONCES
Acción ó
Acciones
FIN ENT
SINO
Acción ó
Acciones
FIN SINO
FIN SI
FIN SINO
FIN SI
SI (condición) ENTONCES
SI (condición) ENTONCES
Acción ó PSEUDOCODIGO
Acciones
FIN ENT
SINO
Acción ó
Acciones
FIN SINO
FIN SI
FIN ENT
SINO
Acción ó
Acciones
FIN SINO
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)


INICIO
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 valor es

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)
INICIO
CASO ´+´: res=n1+n2
CASO ´‐´: res=n1‐n2
CASO ´*´: res=n1*n2
CASO ´/´: res=n1/n2
FIN SEGUN
Escribir “Resultado = ”
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


Ejercicios: ESTRUCTURAS
CONDICIONALES
Hacer a) ANALISIS del PROBLEMA, b) DISEÑO del ALGORITMO
(diagrama de flujo o pseudocódigo o diagrama NS) y c) PRUEBA DE
ESCRITORIO para cada uno de los siguientes ejercicios.
1. Luego de evaluar a X alumnos del curso de Introducción a la
computación se tiene que Y alumnos tienen una nota igual o mayor a
once. Si Y ≤ X , calcular el porcentaje de aprobados y de desaprobados.
En caso contrario escribir “No se puede calcular”.
2. Se sabe que un Megabyte equivale a 1024 Kbytes y un Gigabyte
equivale a 1024 Megabytes. Si mi Computadora tiene un disco duro de
X Gigabytes. Indicar si el disco duro tiene mas de 20000 Mega bytes.
3. Un alumno ingresa a prácticas a las X:00 am y sale a las Y:00 am. Si el
tiempo que estuvo en el laboratorio es ≤ a una hora, expresar este
tiempo en segundos. Si el tiempo es mayor a una hora y menor o igual
a 3 horas, expresar el tiempo en minutos. En caso contrario expresar el
tiempo en horas.

Vous aimerez peut-être aussi