Vous êtes sur la page 1sur 72

Desarrollo de lógica

algorítmica
Introducción
• Algoritmo
• Método para resolver un problema.

• Pasos para la resolución de un problema:


1. Analizar el problema.
2. Diseñar el algoritmo –sin ambigüedades- que conduzca a la solución.
3. Expresar el algoritmo como un programa en un lenguaje de programación
(codificación).
4. Ejecución y validación del programa.
Problema Diseño del Programa de
algoritmo computadora

2
Introducción (cont.)
• Los algoritmos son independientes tanto del lenguaje de programación
como de la computadora que los ejecuta.

• Ejemplo, analogía ¿cómo preparar espaguetti?

Receta de espaguetti

Spaghetti recipe

¡Un lenguaje de programación es tan


sólo un medio para expresar un
Spaghetti recette algoritmo y una computadora es sólo
un procesador para ejecutarlo!
3
Características de los algoritmos
• Preciso:
• Sin ambigüedades e indicar el orden de realización de cada paso.

• Definido:
• Si se sigue dos veces se debe obtener el mismo resultado cada vez.

• Finito:
• Se debe terminar en algún momento, debe tener un número finito
de pasos.
4
Características de los algoritmos (cont.)
La definición de un algoritmo debe describir tres partes:
1. Entrada
2. Proceso
3. Salida

Por ejemplo para el algoritmo de la receta:


1. Entrada Ingredientes y utensilios empleados
2. Proceso Elaboración de la receta en la cocina
3. Salida Terminación del plato, el platillo en sí

5
Características de los algoritmos (cont.)
• Ejercicios:
1. Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco
de datos la ficha del cliente, si el cliente es solvente entonces la empresa
acepta el pedido; en caso contrario, rechazará el pedido. Redactar el
algoritmo correspondiente.
2. Se desea diseñar un algoritmo para saber si un número es primo o no.
3. Diseñar un algoritmo para obtener el número mayor de tres números dados
por el usuario.

6
Características de los algoritmos (cont.)
• Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la
ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso
contrario, rechazará el pedido. Algoritmo:

1. inicio
2. leer el pedido
3. examinar la ficha del cliente
4. si el cliente es solvente:
5. aceptar pedido
6. si no:
7. rechazar pedido
8. fin si
9. fin
7
Características de los algoritmos (cont.)
Pseudocódigo
• Algoritmo para saber si un número es primo o no:

1. inicio
2. leer el número (num)
3. establecer una variable x a 2
4. mientras x < num hacer:
5. si el resultado de num/x es entero:
6. escribir num no es un número primo
7. ir al paso 12
8. fin si
9. aumentar x en 1
10. fin mientras
11. escribir num es un número primo
12. fin

8
Características de los algoritmos (cont.)
• Algoritmo para obtener el número mayor de tres números dados por el usuario:

1. inicio
2. leer el número 1 (num1)
3. leer el número 2 (num2)
4. leer el número 3 (num3)
5. si num1>=num2 y num1>=num3:
6. escribir num1 es el número mayor
7. si no si num2>=num1 y num2>=num3:
8. escribir num2 es el número mayor
9. si no:
10. escribir num3 es el número mayor
11. fin si
12. fin

9
Diseño del algoritmo
• La técnica de diseño descendente es la más común.
• Diseño descendente:
• Descomposición del problema original en subproblemas más simples y a
continuación la división de estos subproblemas en otros más simples.

• Al proceso de ampliar la primera descripción del problema en una descripción


más detallada con más pasos específicos se le denomina refinamiento por
pasos.

• Para problemas complejos se necesitan con frecuencia diferentes niveles de


refinamiento antes de que se pueda obtener un algoritmo claro, preciso y
completo.

10
Diseño del algoritmo (cont.)
• Diseño descendente (cont.)
• Ejemplo, realizar el algoritmo para calcular el área de un triángulo a partir del valor
de sus lados:

Problema original Subproblemas Refinamiento


1. calcular área de un triángulo 1. leer valores de los lados 1a. leer valor de lado1 (l1)
a partir del valor de sus lados 1b. leer valor de lado2 (l2)
1c. leer valor de lado3 (l3)
2. calcular perímetro 2. p = l1 + l2 + l3
3. calcular semiperimetro 3. s = p / 2
4. calcular área 4. a = s(s − l1)(s − l2)(s − l3)
5. escribir resultados 5. escribir p, s y a

11
Diseño del algoritmo (cont.)
• Diseño descendente (cont.)
• Ventajas:
• El problema se comprende mejor al dividirse en partes más simples
denominadas módulos.
• Las modificaciones en los módulos son más fáciles.
• La comprobación del problema se puede verificar fácilmente.

12
Diseño del algoritmo (cont.)

Diseño de un algoritmo

Escritura del algoritmo:


Diseño descendente Refinamiento por casos -pseudocódigo
(1) (2) -diagrama de flujo
-diagrama N-S
(3)

13
Pseudocódigo
• Es un lenguaje de especificación (descripción) de algoritmos con una gran similitud al
lenguaje natural, pero utilizando ciertas palabras reservadas.
… facilita la traducción a un lenguaje de programación.

• Originalmente se representaban las acciones con palabras reservadas en el idioma inglés:


• start, end, read, write, repeat, while…

• El algoritmo comienza con la palabra “inicio” y termina con la palabra “fin”.

• La línea precedida por “//” se denomina comentario.

• La escritura de pseudocódigo exige normalmente la indentación (sangría en el margen


izquierdo) de las diferentes líneas acorde al bloque al que pertenecen.

14
Pseudocódigo (cont.)
• Ejemplo, cálculo del salario de un trabajador:

INICIO
// Cálculo del salario:
LEER nombre, horas_trabajadas, pago_por_hora,
deducciones
salario = horas_trabajadas * pago_por_hora
salario_neto = salario – deducciones
ESCRIBIR nombre, salario, salario_neto
FIN

15
Diagrama de flujo
• Forma de representación de un algoritmo utilizando símbolos (cajas)
estándar unidas por flechas (denominadas líneas de flujo) que indican la
secuencia en que se debe ejecutar.

• Los símbolos son normalizados por la ANSI (American National Standars


Institute) y son muy variados, los más utilizados representan:
• inicio/fin
• proceso
• decisión
• entrada/salida
• conectores
• dirección del flujo

16
Diagrama de flujo (cont.)
• Plantilla típica para diagramas de flujo:

Terminador, representa el comienzo y final de un algoritmo,


puede representar también una parada o interrupción
programada.

Entrada/Salida, cualquier tipo de introducción de datos (entrada)


o registro de la información procesada en un periférico (salida).

Proceso, cualquier tipo de operación que pueda originar un


cambio de valor, formato o posición de la información
almacenada en memoria: operaciones aritméticas, de
asignación, etc.

17
Diagrama de flujo (cont.)
• Plantilla típica para diagramas de flujo (cont.):
no Decisión, indica operaciones lógicas o de comparación entre
datos, en función del resultado determina con cuál de los
sí caminos alternativos el algoritmo debe continuar.

Conector, sirve para enlazar dos partes cualesquiera del flujo del
diagrama a través de un conector en la salida y otro conector en
la entrada. Se refiere a la conexión en la misma página del
diagrama.

Conector, conexión entre dos puntos del algoritmo situado en


diferentes páginas.

18
Diagrama de flujo (cont.)
• Plantilla típica para diagramas de flujo (cont.):

Llamada a subrutina o a un proceso predeterminado, una


subrutina es una parte independiente del algoritmo que recibe
una entrada, realiza una tarea determinada y regresa, al
terminar, al algoritmo principal.

Comentario, se utiliza para añadir comentarios a otros símbolos


del diagrama de flujo, se pueden dibujar a cualquier lado del
símbolo.

19
Diagrama de flujo (cont.)
• Ejemplo, cálculo del salario de un trabajador:

inicio
cálculo del salario
leer nombre,
horas_trabajadas,
pago_por_hora,
deducciones

salario = horas_trabajadas * pago_por_hora

Es posible agregar varias acciones


similares en un solo símbolo: salario = horas_trabajadas * pago_por_hora
salario_neto = salario – deducciones
salario_neto = salario – deducciones

escribir nombre,
salario, salario_neto

fin 20
Diagrama de flujo (cont.)
• Ejercicio:
1. Realizar los diagramas de flujo de los algoritmos realizados
anteriormente:
• Determinar si un número es primo.
• Obtener el número mayor de tres números dados por el usuario.

2. Realizar el diagrama de flujo de un algoritmo que sume los números


pares entre dos números dados por el usuario.

21
Diagrama de flujo (cont.)
Determinar si un número es primo.

22
Diagrama de flujo (cont.)
Obtener el número
mayor de tres
números.

23
Diagrama de flujo (cont.)
Sumar números pares entre dos números.

24
Diagrama de Nassi-Schneiderman (N-S)
• Diagrama N-S también conocido como diagrama de Chapin, es un
diagrama de flujo en el que se omiten las flechas de unión y las cajas
son contiguas.
• Las acciones sucesivas se escriben en cajas sucesivas y, como en los
diagramas de flujo, se pueden escribir diferentes acciones en una
caja.
• Un algoritmo se representa con un rectángulo en el que cada banda
es una acción a realizar.
25
Diagrama de Nassi-Schneiderman (N-S)
(cont.)
• Ejemplo, cálculo del salario de un trabajador:
Algoritmo cálculo del salario
leer nombre, horas_trabajadas, pago_por_hora, deducciones
calcular salario = horas_trabajadas * pago_por_hora
calcular salario_neto = salario – deducciones
escribir nombre, salario, salario_neto
fin
26
REALIZAR UN PSEUDOCODIGO, DIAGRAMA DE FLUJO Y
DIAGRAMA N-S
DE:
CALCULAR EL PROMEDIO DE 6 CALIFICACIONES DE UN
ALUMNO
CALCULAR EL MÁXIMO DE 3 NUMEROS
27
Sentencia
• Es una instrucción que podemos expresar en un lenguaje de
programación.
• La precisión de las sentencias determina la precisión de la ejecución
del programa y para conseguirla deben ajustarse a una sintaxis muy
concreta.
• Por extensión, se denomina también sentencia a las acciones
expresadas en un lenguaje algorítmico.
28
Tipos de sentencias
• Secuenciales: Son aquellas que se ejecutan en secuencia, es decir,
después de la anterior y antes de la siguiente.
• Selectivas: son aquellas que permiten condicionar la ejecución de
una o más sentencias al cumplimiento de una condición.
• Iterativas: son las que permiten conseguir que una determinada
acción (simple o compleja) se ejecute más de una vez.
29
Sentencias secuenciales
• Son aquellas donde el flujo normal del
algoritmo proviene de la anterior sentencia, se
ejecutan y el flujo continua en la siguiente
sentencia:
INICIO
<acción 1>
<acción 2>

<acción n>
FIN
30
Sentencias secuenciales (cont.)
• Sentencia de asignación:
• Permiten asignar un valor a una variable.
• Esta asignación se puede hacer de forma
directa o mediante una expresión.
Ejemplo: calcular el área de un círculo:
INICIO
PI = 3.1416
LEER radio
area = PI * r * r
ESCRIBIR area
FIN
31
Sentencias secuenciales (cont.)
• Sentencias de entrada/salida:
• LEER variable1, variable2, …, variableN
• Permite asignar a las variables contenidas en la lista los valores dados por el usuario.
• ESCRIBIR variable1, variable2, …, variableN
• Permite presentar los valores de las variables contenidas en la lista.
• Es posible escribir una cadena de texto incluyéndola entre comillas dentro del listado.
32
Sentencias
secuenciales (cont.)
• Sentencias de entrada/salida
(cont.):
Ejemplo: preguntar el nombre y edad e
imprimirlos:
INICIO
ESCRIBIR “¿Cuál es tu nombre”
LEER nombre
ESCRIBIR “¿Cuál es tu edad?”
LEER edad
ESCRIBIR “Nombre: ”, nombre,
“Edad: “, edad
FIN 33
Sentencias selectivas
• Principales sentencias selectivas:
• Sentencia SI
• Sentencia CASO
34
Sentencia SI
• Sintaxis:
SI <expresión condición> ENTONCES
<sentencia si>
[SINO
<sentencia no>]
FIN SI
• Donde:
• <expresión condición>, expresión cuyo resultado sólo puede ser verdadero o falso.
• <sentencia si>, sentencia a ejecutar en caso de ser cierta la expresión de la condición.
• <sentencia no>, sentencia a ejecutar en caso de no ser cierta la expresión de la condición. Esta
parte de la sentencia es opcional.
• Tanto <sentencia si> como <sentencia no> pueden ser sentencias compuestas, es decir, formadas
por más de una sentencia simple.
35
Sentencia SI (cont.)
• Ejemplo, algoritmo para preguntar la edad de una persona e imprimir si es
o no mayor de edad:
INICIO
LEER edad
SI edad >= 18 ENTONCES
ESCRIBIR “Es mayor de edad”
SI NO
ESCRIBIR “No es mayor de edad”
FIN SI
FIN
36
Sentencia SI (cont.)
• Es posible agregar otra sentencia SI a partir del SI NO de la primera y así sucesivamente.
• Tener cuidado con la indentación y la colocación de los FIN SI
• Cuando hay anidación de sentencias SI sólo se coloca el FIN SI de la primera.
• Ejemplo, algoritmo para leer los lados de un triángulo y determinar e imprimir su tipo:
INICIO
LEER lado1, lado2, lado3
SI lado1 = lado2 Y lado2 = lado3 ENTONCES
ESCRIBIR “Equilatero”
SI NO SI lado1 <> lado2 Y lado2 <> lado3 ENTONCES
ESCRIBIR “Escaleno”
SI NO
ESCRIBIR “Isósceles”
FIN SI
FIN 37
Sentencia SI (cont.)
• La expresión de la condición puede incluir operadores lógicos.
• Los principales operadores lógicos son:
• Y, todas las condiciones se tienen que cumplir para que la expresión sea
verdadera.
• O, al menos una condición se tiene que cumplir para que la expresión sea
verdadera.
• NO, invierte el valor de verdad de la condición dada.
• Es recomendable el uso de los paréntesis para un mejor
entendimiento de la expresión.
38
Sentencia SI (cont.)
• Ejemplo, algoritmo para imprimir “está en el rango” en el caso de que
el número dado esté entre los rangos 5-10 o 20-25 y no sea el
número 22:
INICIO
LEER num
SI ((num > 5 y num < 10) O (num > 20 y num < 25)) Y NO (num = 22) ENTONCES
ESCRIBIR “está en el rango”
FIN SI
FIN
39
• Ejercicios, realizar los algoritmos para:
1. Leer un año y determinar si es bisiesto. Un año es bisiesto cuando
es múltiplo de 4 y no de 100 o cuando es múltiplo de 400. Por
ejemplo, el año 2000 por las dos primeras condiciones no sería
bisiesto, pero sí lo es porque es múltiplo de 400; el año 2100 no es
bisiesto porque aunque sea múltiplo de 4, también lo es de 100 y
no es múltiplo de 400.
1. Imprimir el día de la semana de acuerdo a un número de día leído.
Ejemplo, si el número leído es 1 imprimir “lunes”, si es 2 imprimir
“martes”, …, si es 7 imprimir “domingo”. Si el número es menor a 1
o mayor que 7 debe imprimir “día no válido”.
40
Sentencia SI (cont.)
Leer un año y determinar si es bisiesto. Un año es bisiesto cuando es
múltiplo de 4 y no de 100 o cuando es múltiplo de 400.
INICIO
LEER año
SI (año % 4 = 0 Y NO año % 100 = 0) O (año % 400 = 0) ENTONCES
ESCRIBIR año, “ SI es bisiesto”
SI NO
ESCRIBIR año, “ NO es bisiesto”
FIN SI
FIN
41
Sentencia SI (cont.)
Leer un año y determinar si es
bisiesto. Un año es bisiesto
cuando es múltiplo de 4 y no
de 100 o cuando es múltiplo
de 400.
42
INICIO
LEER numDia
Sentencia SI (cont.) SI numDia = 1 ENTONCES
dia = “lunes”
SI NO SI numDia = 2 ENTONCES
dia = “martes”
Imprimir el día de la semana SI NO SI numDia = 3 ENTONCES
de acuerdo a un número de dia = “miércoles”
día leído. SI NO SI numDia = 4 ENTONCES
dia = “jueves”
SI NO SI numDia = 5 ENTONCES
dia = “viernes”
SI NO SI numDia = 6 ENTONCES
dia = “sábado”
SI NO SI numDia = 7 ENTONCES
dia = “domingo”
SI NO
dia = “día no válido”
FIN SI
ESCRIBIR dia
FIN 43
Sentencia SI (cont.)
Imprimir el día de la semana de
acuerdo a un número de día leído.
44
Sentencia CASO
• Útil cuando se evalúan distintos valores de una misma expresión.
• De forma general, puede verse como una versión simplificada de tener varios SI
anidados comparando el valor de una misma expresión.
• Sintaxis:
CASO <expresión>
[<lista de constantes i> : <sentencias i>]1n
[DEFAULT <sentencias default>]
FIN CASO
• Donde:
1. <expresión> se evalúa al inicio de la ejecución de la sentencia CASO, obteniéndose un
determinado “valor”.
2. Se ejecuta <sentencias i>, tal que “valor” sea igual a una de las constantes obtenidas en
<lista de constantes i>. Pueden ser una o varias sentencias.
3. Si “valor” no coincide con ninguno de los valores de las constantes de las n listas, se
ejecuta <sentencias default>, si existe y, si no existe, no se realiza ninguna acción. 45
Sentencia CASO (cont.)
• Ejemplo, algoritmo para imprimir el día de la semana de acuerdo a un número de día leído. Si el
número leído es 1 imprimir “lunes”, si es 2 imprimir “martes”, …, si es 7 imprimir “domingo”. Si el
número es menor a 1 o mayor que 7 debe imprimir “día no válido”.
INICIO
LEER numDia
CASO numDia
1: ESCRIBIR “lunes”
2: ESCRIBIR “martes”
3: ESCRIBIR “miércoles”
4: ESCRIBIR “jueves”
5: ESCRIBIR “viernes”
6: ESCRIBIR “sábado”
7: ESCRIBIR “domingo”
DEFAULT: ESCRIBIR “día no valido”
FIN CASO
FIN
46
Sentencia CASO (cont.)
• Ejercicio, algoritmo que pida un número entero del 1 al 3 e imprima su
equivalente en número romano, si el número no está en el rango imprimir “no
pertenece al rango”:
INICIO
LEER num
CASO num
1: ESCRIBIR “I”
2: ESCRIBIR “II”
3: ESCRIBIR “III”
DEFAULT: ESCRIBIR “no pertenece al rango”
FIN CASO
FIN
47
Sentencia CASO (cont.)
• Ejemplo, algoritmo que pida un
número entero del 1 al 3 e imprima su
equivalente en número romano, si el
número no está en el rango imprimir
“no pertenece al rango”:
48
Sentencias iterativas
• Permiten ejecutar más de una vez una o varias sentencias.
• Toda sentencia iterativa tiene asociados los siguientes conceptos:
• Sentencia del bucle: sentencia o sentencias que se ejecutarán en cada
iteración.
• Condición de ejecución: expresión booleana (que genera falso o verdadero)
del resultado de cuya evaluación se deduce la ejecución o no de la sentencia
del bucle una vez (más).
• Inicialización: establecimiento del estado inicial o de entrada de las variables,
cuyo valor condiciona la ejecución de la sentencia del bucle, antes de
ejecutarse éste por primera vez.
• Condición final o de salida: estado de las variables manejadas en el bucle,
que determina la no ejecución del bucle ninguna vez más.
49
Sentencias iterativas (cont.)
• Principales sentencias iterativas:
• Sentencia PARA
• Sentencia MIENTRAS
• Sentencia HACER-MIENTRAS
50
Sentencia PARA
• La emplearemos cuando el número de iteraciones del bucle se
conozca antes de iniciarse la ejecución de éste.
• Una variable de contaje (contador) va contando las pasadas
(iteraciones) por el bucle.
• Las sentencias del bucle pueden repetirse cero o más veces.
• Sintaxis:
PARA <contador> = <expresión inicial> MIENTRAS
<condición de ejecución> SALTO <incremento> HACER
<sentencia del bucle>
FIN PARA
51
Sentencia PARA (cont.)
• Ejemplo, imprimir los números del 0 al 100:
PARA i = 0 MIENTRAS i <= 100 SALTO 1 HACER
ESCRIBIR i
FIN PARA
• Ejemplo, imprimir los números del 100 al 0:
PARA i = 100 MIENTRAS i >= 0 SALTO -1 HACER
ESCRIBIR i
FIN PARA
52
Sentencia PARA (cont.)
Ejercicios, realizar los algoritmos para:
1. Imprimir los múltiplos de tres entre el 1 y el 3000.
2. Calcular e imprimir el resultado de la sumatoria de los números pares entre
el -21 y 35.
3. Pedir dos números e imprimir el resultado de la suma de los números entre
ellos (incluyéndolos), ejemplo: si los números son 3 y 6 imprimir 18
(3+4+5+6)
53
Sentencia PARA (cont.)
Imprimir los múltiplos de tres entre el 1 y el
3000.
INICIO
PARA i = 3 MIENTRAS i < 3000 SALTO 3 HACER
ESCRIBIR i
FIN PARA
FIN
54
Sentencia PARA (cont.)
Calcular e imprimir el resultado de la sumatoria de
los números pares entre el -21 y 35.
INICIO
suma = 0
PARA i = -20 MIENTRAS i < 35 SALTO 2 HACER
suma = suma + i
FIN PARA
ESCRIBIR suma
FIN
55
Sentencia PARA (cont.)
Pedir dos números e imprimir el resultado de la suma de los
números entre ellos (incluyéndolos), ejemplo: si los números
son 3 y 6 imprimir 18 (3+4+5+6)
INICIO
LEER num1, num2
suma = 0
PARA i = num1 MIENTRAS i <= num2 SALTO 1 HACER
suma = suma + i
FIN PARA
ESCRIBIR suma
FIN
56
Sentencia MIENTRAS
• Utilizada cuando no se conoce el número exacto de veces que se
deben ejecutar las sentencias del bucle.
• El número de iteraciones depende de la evaluación de la condición.
• Las sentencias del bucle pueden repetirse cero o más veces.
• Sintaxis:
MIENTRAS <condición de ejecución> HACER
<sentencia del bucle>
FIN MIENTRAS
57
Sentencia MIENTRAS (cont.)
• Ejemplo, imprimir los números del 0 al 100:
i=0
MIENTRAS i <= 100 HACER PARA i = 0 MIENTRAS i <= 100 SALTO 1 HACER
ESCRIBIR i
ESCRIBIR i
FIN PARA
i = i + 1
FIN MIENTRAS
• Ejemplo, imprimir los números del 100 al 0:
i = 100
MIENTRAS i >= 0 HACER PARA i = 100 MIENTRAS i >= 0 SALTO -1 HACER
ESCRIBIR i ESCRIBIR i
i = i - 1 FIN PARA
FIN MIENTRAS
58
Sentencia MIENTRAS (cont.)
• Ejercicio, realizar los algoritmos para:
1. Imprimir los múltiplos de tres entre el 1 y el 3000.
2. Calcular e imprimir el resultado de la sumatoria de los números pares entre
el -21 y 35.
3. Pedir dos números e imprimir el resultado de la suma de los números entre
ellos (incluyéndolos), ejemplo: si los números son 3 y 6 imprimir 18
(3+4+5+6)
4. Pedir calificaciones hasta que la calificación dada sea -1, calcular el
promedio e imprimir el resultado.
59
Sentencia MIENTRAS (cont.)
Imprimir los múltiplos de tres entre el 1 y el
3000.
INICIO
i = 3
MIENTRAS i < 3000 HACER
ESCRIBIR i
i = i + 3
FIN MIENTRAS
FIN
60
Sentencia MIENTRAS (cont.)
Calcular e imprimir el resultado de la sumatoria de
los números pares entre el -21 y 35.
INICIO
suma = 0
i = -20
MIENTRAS i < 35 HACER
suma = suma + i
i = i + 2
FIN MIENTRAS
ESCRIBIR suma
FIN
61
Sentencia MIENTRAS (cont.)
Pedir dos números e imprimir el resultado de la suma de los
números entre ellos (incluyéndolos), ejemplo: si los números
son 3 y 6 imprimir 18 (3+4+5+6)
INICIO
LEER num1, num2
suma = 0
i = num1
MIENTRAS i <= num2 HACER
suma = suma + i
i = i + 1
FIN MIENTRAS
ESCRIBIR suma
FIN
62
Sentencia MIENTRAS (cont.)
Pedir calificaciones hasta que la calificación dada sea -1, calcular el
promedio e imprimir el resultado.
INICIO
suma = 0
i = 0
lEER calif
MIENTRAS calif <> -1 HACER
suma = suma + calif
i = i + 1
LEER calif
FIN MIENTRAS
SI i > 0 ENTONCES
promedio = suma / i
ESCRIBIR promedio
FIN SI
63
FIN
Sentencia HACER-MIENTRAS
• Es similar a la sentencia MIENTRAS, las sentencias del bucle se
ejecutan una y otra vez mientras que la condición sea verdadera.
• La diferencia es que garantiza que las sentencias del bucle se ejecuten
al menos una vez antes de que se evalúe la condición.
• Sintaxis:
HACER
<sentencia del bucle>
MIENTRAS <condición de ejecución>
64
Sentencia HACER-MIENTRAS (cont.)
• Ejemplo, imprimir los números del 0 al 100:
i=0 i = -1 i = 0
HACER HACER MIENTRAS i <= 100 HACER
ESCRIBIR i i = i + 1 ESCRIBIR i
i = i + 1 ESCRIBIR i i = i + 1
MIENTRAS i <= 100 MIENTRAS i < 100 FIN MIENTRAS
• Ejemplo, imprimir los números del 100 al 0:
i = 100 i = 101 i = 100
HACER HACER MIENTRAS i >= 0 HACER
ESCRIBIR i i = i - 1 ESCRIBIR i
i = i - 1 ESCRIBIR i i = i - 1
MIENTRAS i >= 0 MIENTRAS i > 0 FIN MIENTRAS
65
Sentencia HACER-MIENTRAS (cont.)
• Ejercicio, realizar los algoritmos para:
1. Imprimir los múltiplos de tres entre el 1 y el 3000.
2. Calcular e imprimir el resultado de la sumatoria de los números pares entre
el -21 y 35.
3. Pedir dos números e imprimir el resultado de la suma de los números entre
ellos (incluyéndolos), ejemplo: si los números son 3 y 6 imprimir 18
(3+4+5+6)
4. Pedir calificaciones hasta que la calificación dada sea -1, calcular el
promedio e imprimir el resultado.
66
Sentencia HACER-MIENTRAS (cont.)
Imprimir los múltiplos de tres entre el 1 y el
3000.
INICIO
i = 3
HACER
ESCRIBIR i
i = i + 3
MIENTRAS i < 3000
FIN
67
Sentencia HACER-MIENTRAS (cont.)
Calcular e imprimir el resultado de la sumatoria de
los números pares entre el -21 y 35.
INICIO
suma = 0
i = -20
HACER
suma = suma + i
i = i + 2
MIENTRAS i < 35
ESCRIBIR suma
FIN
68
Sentencia HACER-MIENTRAS (cont.)
Pedir dos números e imprimir el resultado de la suma de los
números entre ellos (incluyéndolos), ejemplo: si los números
son 3 y 6 imprimir 18 (3+4+5+6)
INICIO
LEER num1, num2
suma = 0
i = num1
HACER
suma = suma + i
i = i + 1
MIENTRAS i <= num2
ESCRIBIR suma
FIN
69
Sentencia HACER-MIENTRAS (cont.)
Pedir calificaciones hasta que la calificación dada sea -1, calcular el
promedio e imprimir el resultado.
INICIO
suma = 0
i = 0
HACER
LEER calif
SI calif <> -1
suma = suma + calif
i = i + 1
FIN SI
MIENTRAS calif <> -1
SI i > 0 ENTONCES
promedio = suma / i
ESCRIBIR promedio
FIN SI
FIN 70
Sentencias de quiebre y continuación
• Sentencia ROMPER:
• Utilizada para salir de un ciclo cuando se considere necesario.
• Ejemplo, desarrollar un algoritmo que pida números e imprima su cuadrado, terminar
cuando el número dado sea igual a 0:
INICIO
MIENTRAS verdadero HACER
LEER num
SI num = 0 ENTONCES
ROMPER
FIN SI
cuadrado = num * num
ESCRIBIR cuadrado
FIN MIENTRAS
FIN
71
Sentencias de quiebre y continuación (cont.)
• Sentencia CONTINUAR:
• Utilizada para saltar directamente hasta la siguiente iteración del ciclo.
• Ejemplo, desarrollar un algoritmo que imprima los números impares entre el 1 y el
100:
INICIO
PARA i = 2 MIENTRAS i < 100 SALTO 1 HACER
SI i % 2 = 0 ENTONCES
CONTINUAR
FIN SI
ESCRIBIR i
FIN PARA
FIN
72

Vous aimerez peut-être aussi