Академический Документы
Профессиональный Документы
Культура Документы
INC102
Departamento de Computación
Universidad de Valparaíso
Profesores: Eliana Providel – Roberto Muñoz
Unidad 2: Algoritmos
Contenidos,
Definiciones
Conceptos básicos
Diagramas de Flujo
Programa
Estructuras algorítmicas: Selección
Estructura selectiva simple
Estructura selectiva doble
Estructura selectiva múltiple
Estructuras Anidadas
Estructuras algorítmicas: Repetición y ciclos
Repetir
Mientras
2
Unidad 2: Algoritmos
Definiciones
Algoritmo
3
Unidad 2: Algoritmos
Definiciones
Algoritmos,
características
Secuencia finita de instrucciones
Realizables
No son ambiguos
Su ejecución resuelve una tarea
Bajo los mismos datos de entrada, arroja siempre el
mismo resultado
Resultado
Se obtiene una solución genérica y repetible que
transmitimos e interiorizamos, olvidando la inteligencia
que contienen.
4
Unidad 2: Algoritmos
Definiciones
Características de un algoritmo
Precisión: los pasos a seguir deben ser precisados
claramente
5
Unidad 2: Algoritmos
Definiciones
Máquinas algorítmicas
Artefactos
con la capacidad de llevar a cabo un algoritmo
Ejemplos: calculadoras, celular,........,computadores
6
Unidad 2: Algoritmos
Definiciones
Representar el algoritmo en
un lenguaje de programación
7
Unidad 2: Algoritmos
Definiciones
Problema
8
Unidad 2: Algoritmos
Definiciones
Algoritmo
9
Unidad 2: Algoritmos
Conceptos Básicos
Tipos de datos
Simples: identificador de una variable simple
Referencia un único valor
10
Unidad 2: Algoritmos
Conceptos Básicos
Tipos de datos
Datos numéricos
Enteros: 127 -23 -8743 89
Reales: 7.5 -0.496 198.0 -178.0
Enumerados:
• Ej.
• {Enero, Febrero, Marzo, Abril, Mayo, Junio}
• {Blanco, Rojo, Azul}
• {cara, sello}
11
Unidad 2: Algoritmos
Conceptos Básicos
Tipos de datos
Datos alfanuméricos:
Carácter simple: ‘1’ ‘&’ ‘a’
Cadena de caracteres (string): ‘abcxt’ ‘l%u12’ ‘Paulina’
Datos lógicos
Booleanos: datos que sólo pueden tomar el valor
verdadero (true) o falso (false)
12
Unidad 2: Algoritmos
Conceptos Básicos
Identificadores
Un identificador es el nombre que sirve para referenciar
casillas de memoria en donde se almaceno algún valor.
13
Unidad 2: Algoritmos
Conceptos Básicos
Constante
Objetos cuyo valor no cambia durante la ejecución de un
programa
Se denominan mediante identificadores
Ejemplos:
PI 3,14
NOMBRE `Jose´
LETRA ´k´
VERDADERO
100
14
Unidad 2: Algoritmos
Conceptos Básicos
Variables
Son objetos que pueden cambiar su valor durante la
ejecución de un programa
Normalmente aceptan valores de su tipo (en algunos
lenguajes se puede realizar una conversión a otros tipos)
Se denominan mediante identificadores
Ejemplos:
base /* tipo entero*/
nombre /* tipo string*/
velocidad /* tipo real*/
cumple /* tipo booleano*/
días /* tipo enumerado*/
Letra /* tipo caracter*/
15
Unidad 2: Algoritmos
Conceptos Básicos
Operaciones Aritméticas
Potencia **
Multiplicación *
División /
Suma +
Resta -
16
Unidad 2: Algoritmos
Conceptos Básicos
Jerarquía de los operadores Aritméticos
Operador Jerarquía
** Mayor
*, /, mod, div
+, - menor
Los operadores aritméticos se aplican teniendo en cuenta la
jerarquía, y de izquierda a derecha
Si una expresión contiene subexpresiones entre paréntesis,
éstas se evalúan primero
Si las subexpresiones se encuentran anidadas por
paréntesis, primero se evalúan las expresiones de último
nivel de anidamiento
17
Unidad 2: Algoritmos
Conceptos Básicos
Jerarquía de los operadores Aritméticos
7 * 8 * ( 160 mod 3 ** 3 ) div 5 * 13 – 28
7 * 8 * ( 25 ) div 5 * 13 – 28
56 * ( 25 ) div 5 * 13 – 28
1400 div 5 * 13 – 28
280 * 13 – 28
3640 – 28 = 3612
18
Unidad 2: Algoritmos
Conceptos Básicos
Expresiones lógicas
Están constituidas por números, constantes o variables y
operadores lógicos o relaciones
19
Unidad 2: Algoritmos
Conceptos Básicos
Operadores Lógicos
Negación NO
Conjunción Y
Disyunción O
20
Unidad 2: Algoritmos
Conceptos Básicos
Operadores Relacionales
Permiten comparar dos operandos (números,
alfanuméricos, constantes o variables)
Su resultado es verdadero o falso
Operación Operador
Igual que =
Distinto que <>
Menor que <
Mayor que >
Menor igual que <=
Mayor igual que >=
21
Unidad 2: Algoritmos
Conceptos Básicos
Jerarquía de operadores
Permiten comparar dos operandos (números,
alfanuméricos, constantes o variables)
Su resultado es verdadero o falso
Operador Jerarquía
() (mayor)
**
*,/,mod,div
+,-
No
O (menor)
22
Unidad 2: Algoritmos
Conceptos Básicos
Bloque de asignación
Se utiliza para asignar valores o expresiones a una variable
Es una operación destructiva
<variable> <expresión>
La expresión puede ser aritmética o lógica, o una constante o
una variable
23
Unidad 2: Algoritmos
Conceptos Básicos
Bloque de asignación
Ejemplo
Se tienen las siguientes variables:
i, ACUM y J que son de tipo entero.
24
Unidad 2: Algoritmos
Tabla de ruta del bloque de asignación
26
Unidad 2: Algoritmos
Diagramas de Flujo
27
Unidad 2: Algoritmos
Diagramas de Flujo
28
Unidad 2: Algoritmos
Diagramas de Flujo
29
Unidad 2: Algoritmos
Diagramas de Flujo
30
Unidad 2: Algoritmos
Diagramas de Flujo
31
Unidad 2: Algoritmos
Diagramas de Flujo
Inicio
Lectura de
datos
Procesamiento
de datos
Impresión de
resultados
fin
32
Unidad 2: Algoritmos
Construcción de diagrama de flujo
Ejemplo
Dada las dos notas de
los certámenes de Fundamentos
Inicio
de Programación.
Construya un diagrama de flujo
Nota1, Nota2
que imprima el promedio
de las notas.
Promedio (Nota1+ Nota2) / 2
Promedio
fin
33
Unidad 2: Algoritmos
Construcción de diagrama de flujo
Ejemplo
Ejemplo (1/2)
Inicio
Construya el diagrama de flujo
que dado los datos enteros
A, B, C
A, B y C escriba el resultado
de la siguiente expresión.
Suma1 A+ B
(A+B)+(C+B)² Suma2 (C+B)**2
2 Suma3 Suma1 +Suma2
Res suma3 DIV 2
A, B y C variables de tipo entero
Suma1, suma2 y suma3 variables de tipos Res
entero que almacenan resultados de las
diferentes sumas.
Res variable de tipo entero que almacena el fin
resultado de la expresión
34
Unidad 2: Algoritmos
Construcción de diagrama de flujo
Inicio
1 2 3 4
Suma1 A+ B
Suma2 (C+B)**2 2 5 49 54 27
Suma3 Suma1 +Suma2
Res suma3 DIV 2
Ejemplo Ejecución 2 del programa
# A B C Suma1 Suma2 Suma3 Res
Res
1 1 5 2
fin 2 6 49 55 27
35
Unidad 2: Algoritmos
Programa
Lenguaje de programación:
esta constituido por un conjunto de reglas sintácticas y
semánticas que hacen posible escribir un programa
36
Unidad 2: Algoritmos
Programa
37
Unidad 2: Algoritmos
Programa
Leer…
B, C
Leer B, C
Hacer …
A B +C
Hacer AB+C
Escribir
A
Escribir A
38
Unidad 2: Algoritmos
Programa
Inicio
Inicio
fin
39
Unidad 2: Algoritmos
Programa
Ejemplo: Programa que calcula el promedio y lo imprime en
lenguaje algorítmico.
Calcula_Promedio
{El programa, dado Nota1, Nota2 calcula el promedio de las
variables}
{Nota1, Nota2 y Promedio son de tipo Real}
1. Leer Nota1, Nota2
3. Escribir Promedio
40
Unidad 2: Algoritmos
Programa
Ejemplo: Describa mediante un diagrama de flujo y pseudo-
código un programa que permita calcular e imprimir el
cuadrado y cubo de un entero positivo NUM
Inicio
Cuadrado_cubo
41
Unidad 2: Algoritmos
Estructuras Selectivas, Introducción
42
Unidad 2: Algoritmos
Estructuras Selectivas, Introducción
43
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
44
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
Falso Donde:
Condición Condición: Expresa la condición o
lógica conjunto de condiciones
NO
lógicas a evaluar
SI Verdadero Operación: expresa la operación
o conjunto de operaciones a
realizar si la condición resulta
operación verdadera
45
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
SI ENTONCES en Pseudo-código
…
…
Si condición entonces
hacer Operaciones
…
{Fin de la condición}
…
…
46
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
SI ENTONCES en Pseudo-código
Ejemplo
Dada las dos notas de los certámenes de Fundamentos de
Programación. Construya un programa que calcule el
promedio de las dos notas y si el promedio es mayor o igual
a 4,0 escriba que el alumno esta aprobado.
47
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
Ejemplo
Diagrama de Flujo
Inicio
Nota1, Nota2
No (Falso)
Promedio >= 4,0
SI (Verdadero)
“Aprobado”
fin
48
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
Ejemplo
Seudo código
Calcula_Promedio
{El programa, dado Nota1, Nota2 calcula el promedio
de las variables}
{Nota1, Nota2 y Promedio son de tipo Real}
Inicio
1. Leer Nota1, Nota2
2. Hacer Promedio (Nota1 + Nota2) / 2
3. Si Promedio >= 4,0 entonces
• 3.1 Escribir “Aprobado”
4. {Fin de la condición Paso 3 }
Fin programa
49
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
Ejemplo
Una persona va a comprar un computador y cuenta con
$250.000, al revisar la lista de precios se da cuenta que en el
precio no esta incluido el IVA.
Además el vendedor le dice que existe un descuento de un
5% sobre el precio con IVA.
Desarrolle un programa que dado un valor (precio) calcule el
precio final que incluye el IVA y aplique el descuento de el
5% si es que el precio con IVA es menor que el presupuesto
de la persona y debe mostrar el precio final del producto
El IVA equivale al 18% del precio neto.
50
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
Ejemplo
Inicio
DFD
Precio, pres
No (falso)
precio_final <= pres
Si (verdadero)
51 fin
Unidad 2: Algoritmos
Estructuras Selectivas, Simple
Ejemplo
Seudo código
Calcula_IVA
{el programa, dado como dato el precio de un producto calcula el IVA
del precio que equivale al 18%, si el presupuesto es mayor al precio con
IVA aplica un descuento de un 5%}
{pres, Precio, precio_final e IVA son variables enteras}
Inicio
1. Leer Precio, pres
2. Hacer IVA precio * 0,18 y precio_final precio + IVA
3. Si precio_final <= pres entonces
Hacer precio_final precio_final – (precio_final * 0.05)
Escribir “El precio final es”, Precio_final
4. {Fin condición paso 3 }
Fin Programa
52
Unidad 2: Algoritmos
Estructuras Selectiva Doble
Si entonces / sino
53
Unidad 2: Algoritmos
Estructuras Selectiva Doble
Diagrama de Flujo si entonces / sino
Donde:
Condición: Expresa la condición
Verdadera Falsa o conjunto de condiciones a
Condición evaluar
SI NO Operación1: expresa la
operación o conjunto de
operaciones a realizar si la
condición resulta verdadera
operación2 Operación2: expresa la
operación1
operación o conjunto de
operaciones a realizar si la
condición resulta falsa
54
Unidad 2: Algoritmos
Estructuras Selectiva Doble
Pseudo- código Si entonces / sino
...
Si condición Entonces
Hacer Operación1
....
Hacer Operación k
Sino
Hacer Operación 2
...
Hacer Operación j
{Fin condición}
55
Unidad 2: Algoritmos
Estructuras Selectiva Doble
Ejemplo 1,
Dada las dos notas de los certámenes de Fundamentos de
Programación. Construya un programa que calcule el
promedio de las dos notas y si el promedio es mayor o igual
a 4,0 escriba que el alumno esta aprobado en caso contrario
que esta reprobado.
56
Unidad 2: Algoritmos
Estructuras Selectiva Doble
Ejemplo 1, diagrama de flujo
Inicio
Nota1, Nota2
SI (Verdadero) No (Falso)
“Aprobado” “Reprobado”
fin
57
Unidad 2: Algoritmos
Estructuras Selectiva Doble
Ejemplo 1, seudo código
Calcula_Promedio
{El programa, dado Nota1, Nota2 calcula el promedio de las
variables}
{Nota1, Nota2 y Promedio son de tipo Real}
Inicio
1. Leer Nota1, Nota2
2. Hacer Promedio (Nota1 + Nota2) / 2
3. Si Promedio >= 4,0 entonces
Escribir “Aprobado”
sino
Escribir “Reprobado”
4. {Fin de la condición Paso 3 }
Fin Programa
58
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Si múltiple
Permite que el flujo se bifurque por varias ramas en el punto
de toma de decisión.
Dependiendo del valor del selector es cual operación se
realizara
Ejemplo
Selector = 1 => operación 1
59
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Si múltiple
Características
Selector Es la variable o expresión a evaluar y por la
cual se toma la decisión.
Acción 1 expresa una operación al tomar el selector el
valor 1
Acción 2 expresa una operación al tomar el selector el
valor 2
Acción N expresa una operación al tomar el selector el
valor N
Acción N+1 expresa la operación a realizar cuando se
continúe con el flujo normal del diagrama acción n+1
60
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Si múltiple, diagrama de flujo
Selector
Acción N+1
61
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Si múltiple, seudo código
Si SELECTOR igual
valor 1: hacer Acción 1
...
62
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Ejemplo
Dado la categoría y sueldo de un trabajador, calcule el
aumento y el nuevo sueldo de un trabajador
calcular el aumento correspondiente teniendo en cuenta la
siguiente tabla:
63
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Ejemplo, DFD inicio
cate, sue
1 2 4
3
nsue sue* 1,15 nsuesue * 1,10 nsue sue* 1,08 nsuesue * 1,07
cate, nsue
fin
64
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Ejemplo, seudo código
aumento_sel_múltiple
{El programa calcula el aumento de sueldo de los trabajadores.
considerando la categoría. El aumento se incorpora al salario}
{cate es una variable de tipo entero. sue y nsue son variables de
tipo real}
1. leer cate, sue
2. si cate igual
1: hacer nsue sue * 1,15
2: hacer nsue sue * 1,10
3: hacer nsue sue * 1,08
4: hacer nsue sue * 1,07
{Fin condición paso 2}
4. Escribir cate, nsue
65
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
66
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Aplicación para si múltiple
Selector
de
otra
forma
1 2 3
acción 1 acción 2 acción 3 acción X
acción Y
67
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Aplicación para si múltiple
Seudo código
…
Si Selector igual
1: hacer acción 1
2: hacer acción 2
3: hacer acción 3
de otra forma: hacer acción X
{Fin del condicional}
Hacer acción Y
…
68
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Aplicación para si múltiple
Selector
de
otra
forma
1,2 3,4,5,6 7
acción 1 acción 2 acción 3 acción 4
acción Y
69
Unidad 2: Algoritmos
Estructuras Selectiva Múltiple
Aplicación para si múltiple
Seudo código
…
Si Selector igual
1,2: hacer acción 1
3,4,5,6: hacer acción 2
7: hacer acción 3
de otra forma: hacer acción 5
{Fin del condicional}
Hacer acción Y
70
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
71
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
Estructura Simple NO
SI ENTONCES
Condición 1
Estructura Doble
SI ENTONCES / SINO SI
SI NO
Condición 2
72
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
Primer caso - seudo-código
1. Si condición1 entonces
1.1 si condición2 entonces
hacer operación 2.1
sino
hacer operación 2.2
1. 2 {fin de condición del paso 1.1 }
2. {fin de condicional paso 1}
73
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
segundo caso - DFD
Estructura Doble
SI ENTONCES / SINO SI NO
Condición 1
Estructura Simple
SI ENTONCES
SI NO
Condición2 Condición3
NO
SI
74
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
segundo caso – Seudo-código
...
N. Si condición 1 entonces
N.1. si condicion2 entonces
hacer operación 2.1
Sino
hacer operación 2.2
N.2. {fin condicional N.1 }
Sino
N.3. si condición3 entonces
hacer operación 3.1
N.4 {fin condicional del paso N.3}
N+1. {fin condicional del paso N
75
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
tercer caso – DFD
Estructura Doble
SI ENTONCES / SINO
Estructura Múltiple
SI MULTIPLE
SI NO
CONDICION1
NO
SELECTOR
CONDICION5
V2 D.O.F
V1 SI
NO SI NO
OPERACION2.1 CONDICION3 CONDICION4 OPERACION5.1
SI
77
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
Ejemplo
Diseñar un algoritmo que lea las longitudes de los tres lados
de un triángulo (A, B, C) y determine qué tipo de triángulo
es, de acuerdo a los siguientes casos. Suponiendo que A
determina el mayor de los tres lados y, B y C corresponden a
los otros dos, entonces:
Si A >= (B + C) No se trata de un triángulo
Si A**2 = B**2 + C**2 Es un triángulo rectángulo
Si A**2 > B**2 + C**2 Es un triángulo con ángulo
obtuso
Si A**2 < B**2 + C**2 Es un triángulo con ángulo
agudo
78
Unidad 2: Algoritmos Inicio
Ejemplo A,B,C
si no
A> = (B + C)
no
“No es un triángulo” si
A**2 = B**2 + C**2
“es un triángulo
con angulo recto” si no
A**2 > B**2 + C**2
“es un triángulo
con ángulo obtuso
“es un triángulo
con ángulo
agudo”
79
Fin
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
Ejemplo Programa _ triángulo
81
Unidad 2: Algoritmos inicio
OPERACION
no
Control= - RES
1
si
Escribir “Error”
82 fin
Unidad 2: Algoritmos
Estructuras Selectiva en cascada (anidadas)
Ejemplo
Programa _ menú
{Num1, Num2, RES, control son variables de tipo entera, OPERACION es del tipo carácter.}
1. Inicio
2. Leer Num1, Num2, OPERACION
3. hacer Control0;
4. Si OPERACION igual
5. ‘s’ : Hacer RES Num1 + Num2
6. ‘r’ : Hacer RES Num1 – Num2
7. ‘d’ : Hacer RES Num1 div Num2
8. ‘m’: Hacer RES Num1 * Num2
9. d.o.f.: Hacer Control -1
10. {Fin selector línea 4}
11. Si Control = -1 Entonces
12. Escribir “Error”
13. Sino
14. Escribir RES
15. {fin condicional línea 11}
16. Fin_programa
83
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
84
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
Ejemplo
Construya un diagrama de flujo tal que dados como
datos los sueldos de empleados de una empresa, obtenga
el total de los sueldos.
85
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
INICIO
Donde:
SUE1 .. SUE5: variables de tipo real
SUE1, SUE2, SUE3, SUE4, SUE5 NOMINA : variable de tipo real.
Almacena la suma de los sueldos de los
empleados.
NOMINA SUE1+ SUE2+ SUE3+ SUE4+ SUE5
NOMINA
¿Que pasa si la empresa tuviese mas de cinco
empleados, ej. 100 o 1000…etc.?
El problema se resuelve utilizando estructuras
FIN
algorítmicas repetitivas
86
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
Clasificación
a) repetir (For-to)
b) Mientras (while)
87
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
a) repetir (Para-a o For-to)
Se utiliza cuando se conoce a priori cuantas veces se debe
ejecutar el algoritmo
88
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
a.1) repetir ascendente DFD
V VI
NO
Donde:
V <= VF
SI V es la variable de control del
ciclo.
VI es el valor inicial.
PROCESO VF es el valor final.
INC es el incremento cuando la
V V + INC
estructura repetir es ascendente.
89
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
a.1) repetir ascendente, seudo código
Hacer V VI
Repetir con V desde VI hasta VF
…
{Proceso}
…
Hacer V V + INC
{Fin ciclo}
90
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
a.2) repetir descendente, DFD
V VI
NO
Donde:
V >= VF V es la variable de control del
SI ciclo.
VI es el valor inicial.
VF es el valor final.
PROCESO
DEC es el decremento cuando la
estructura repetir es descendente.
V V - DEC
91
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
a.2) repetir descendente, Seudo Código
Hacer V VI
Repetir con V desde VI hasta VF
…
{Proceso}
…
Hacer V V - DEC
{Fin ciclo}
92
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
a) Repetir
Ejemplo
Construya un diagrama de flujo tal que dados como
datos los sueldos de cinco empleados de una empresa,
obtenga el total de los sueldos.
Utilizando estructuras repetitivas
93
INICIO
94 FIN
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
a) Repetir
Ejemplo: Seudo código
Programa _ nómina
{ El programa calcula el total de la nómina de un grupo de 5 empleados}
Inicio _ programa
{I es una variable de tipo entero. SUE y NOMINA son variables de tipo enterol}
1. Hacer NOMINA 0 e I1
2. repetir con I desde 1 hasta 5
Leer SUE
Hacer NOMINA NOMINA + SUE
Hacer I I + 1
3. {fin del ciclo}
4. Escribir NOMINA
Fin _ programa
95
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
INICIO
a) Repetir
res 0
Ejemplo:
Sumar 10 números consecutivos. i 0
• DFD
NO
i <= 9
SI
resres+ I
ii+1
res
FIN
96
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
a) Repetir
Ejemplo:
Sumar 10 números consecutivos.
• Seudo código
Programa_NOMINA
{ El progrma suma los primeros 10 números consecutivos}
Inicio_Programa
{res e I son variables de tipo entero}
Hacer res 0 e I0
Repetir con I desde 0 hasta 9
Inicio
Hacer res res + I
Hacer I I + 1
{fin del ciclo}
Escribir res
Fin_programa
97
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
b) Mientras (while)
Estructura que es útil cuando NO se conoce la cantidad
de veces que se debe repetir un ciclo
98
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
b) Mientras (while)
En el Mientras se distinguen dos partes:
99
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
b) Mientras (while)
P PROPOSICION INICIAL
DONDE:
P : La proposición inicial, debe tener
un valor verdadero inicialmente. Si el
NO valor de P es falso, entonces el
EVALUACIÓN DE
ciclo no se ejecuta.
P
SI
P MODIFICACIÓN INICIAL
100
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
b) Mientras (while)
Importante:
Debe existir también un enunciado dentro del ciclo que
afecte la condición para evitar que el ciclo se ejecute
infinitamente.
101
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
b) Mientras (while)
...
Hacer P Proposición inicial
Mientras P es verdadero repetir
…
...
{PROCESO}
...
Hacer P modificación de P
{fin del ciclo}
102
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
b) Mientras (while)
Ejemplo:
Hacer un algoritmo que permita obtener la suma de los
gastos que se hicieron en un viaje, pero no se sabe
exactamente cuántos fueron. Los datos son expresados en
forma:
Datos: gasto_1, gasto_2,...,-1
• Donde: gasto_i es una variable de tipo real que representa
el gasto número i.
103
INICIO
Unidad 2: Algoritmos
SUMGAS0
Estructuras Algorítmicas Repetitivas,
b) Mientras (while)
GASTO
Ejemplo:
NO
GASTO > 0
SI
MIENTRAS
SUMGAS SUMGAS + GASTO
FIN
104
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
b) Mientras (while)
Ejemplo:
Programa_SUMA_GASTOS
{El programa obtiene el total de gastos de un viaje}
{GASTO y SUMGAS son variables de tipo real}
Inicio
Hacer SUMGAS 0
Leer GASTO
Mientras GASTO > 0 repetir
Hacer SUMGAS SUMGAS + GASTO
Leer GASTO
{fin del ciclo}
Escribir “El gasto total es:”, SUMGAS
Fin_programa
105
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
Ejemplo:
Una persona esta estudiando un plan de ahorro para los
próximos 20 años. La persona estima que podrá ahorrar
mensualmente una cantidad de $100.000. Además, al final
de cada año piensa agregar $200.000 al monto acumulado.
El banco le ofrece un interés mensual de 1, 5% los cuales son
agregados al capital al final de cada mes. De esta manera, al
final del primer mes tendrá 100.000 *1, 015; al final del
segundo mes tendrá (100,000* 1, 015 + 100.000) *1, 015; y
así sucesivamente.
106
Unidad 2: Algoritmos
Estructuras Algorítmicas Repetitivas,
Ejemplo:
PROGRAMA calcular_ahorros;
ahorro_mensual 100000 { Definición de Constantes}
ahorro_anual 200000, m 20, n 12
{i, j son variables enteras, monto, intereses son variables reales}
INICIO
monto 0
Repetir con i desde 1 hasta m
repetir con j desde 1 a n
Hacer monto monto + ahorro_mensual;
Hacer monto monto * 1.015
Hacer j j + 1
Fin_repetir
Hacer monto monto + ahorro_anual
Hacer i i + 1
Fin repetir
Escribir monto {Mostrar monto total e intereses}
Hacer intereses monto - (ahorro_mensual*m*n + ahorro_anual*n)
Escribir intereses
Fin_Programa
107
Consultas ?