Este documento presenta los conceptos básicos de algoritmos y programación para el curso INF 140 - Informática I en la Pontificia Universidad Católica de Valparaíso. Introduce los tipos de datos, constantes, variables, identificadores y expresiones aritméticas y lógicas, así como operadores relacionales y de prioridad. Explica la resolución de problemas en tres fases: análisis, diseño del algoritmo y codificación.
[Inf 140] Estructuras Repetitivas Y Selectivas (1 X Hoja)
1. Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Informática
“Algoritmos: Definiciones, Estructuras de
Control”
Asignatura
INF 140 – Informática I
Profesores
Pamela Hermosilla Monckton
Daniel Cabrera Paniagua
Profesores
PHM/DCP
2. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tipos de Datos
El principal objetivo de todo computador es el manejo de información o datos.
Un dato es la expresión general que describe los elementos con los cuales
opera un computador.
Existen dos clases de tipos de datos: simples (sin estructura)
y compuestos (estructurados)
Los tipo de datos simples son los siguientes:
Numéricos (entero, real)
Datos
Lógicos (booleano)
Carácter (char, string)
Numérico Carácter(es) Lógico
Entero Real
Profesores
INF 140 – Informática I
PHM/DCP
3. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Elementos Básicos : Constantes, Variables,
Identificadores y Expresiones
Constante
Elemento o partida de datos cuyo valor no cambia durante el desarrollo del
algoritmo (o ejecución del programa).
Posición de memoria, referenciada por un identificador, que almacena un
dato que permanece sin cambios durante el algoritmo (o ejecución del
programa).
Pueden ser de tipo: entera, real, caracter o lógica.
Profesores
INF 140 – Informática I
PHM/DCP
4. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Variable
Elemento o partida de datos cuyo valor puede cambiar durante el desarrollo
del algoritmo (o ejecución del programa).
Posición de memoria, referenciada por un identificador, donde se almacena
un dato que puede cambiar durante el algoritmo (o ejecución del programa).
Pueden ser de tipo: entero, real, carácter o lógica.
Una variable posee los siguientes atributos :
1. Identificador (asignado por el programador).
2. Tipo (describe su uso).
Una variable definida de un cierto tipo sólo puede tomar valores de ese tipo.
Profesores
INF 140 – Informática I
PHM/DCP
5. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Identificador
Nombre que posee una variable o constante (ALGORITMO).
• Compuesto por un conjunto de caracteres alfanuméricos (El primero es
usualmente una letra).
• Deben ser significativos y tener relación con el objeto que representan.
• No se deben utilizar como identificadores palabras reservadas del lenguaje
de programación.
• Ejemplo :
• Nombre_Alumno, X, Edad, Sueldo_Bruto…….
Profesores
INF 140 – Informática I
PHM/DCP
6. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Expresiones
Combinaciones de constantes, variables, símbolos de operación, paréntesis y
funciones especiales.
Una expresión consta de: operadores y operandos.
Cada expresión toma un valor que se determina, de acuerdo a :
• Los valores que posean las variables y constantes implicadas.
• La ejecución de las operaciones involucradas.
Según el tipo de objetos que se manipulan las expresiones se clasifican en :
• Aritméticas
• Lógicas
Profesores
INF 140 – Informática I
PHM/DCP
7. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Expresiones Aritméticas
• Análogas a las fórmulas matemáticas :
– Las variables y constantes (operandos) que las componen son de
tipo numérico (entero o real)
– Sus operadores son aritméticos : suma, resta, multiplicación,
división, división entera y resto.
• Ejemplo :
5+3=8 Resultado
Operando Operador
Profesores
INF 140 – Informática I
PHM/DCP
8. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tabla de operadores
Operador Significado Tipo Operando Tipo Resultado
+ Suma Entero/Real Entero/Real
- Resta/Cambio Entero/Real Entero/Real
Signo
* Multiplicación Entero/Real Entero/Real
/ División Real Entero/Real Real
DIV División Entera Entero Entero
MOD Módulo o Resto Entero Entero
Profesores
INF 140 – Informática I
PHM/DCP
9. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Reglas de Prioridad
• Permiten determinar el orden en que se deben ejecutar las
operaciones, cuando una expresión posee más de un operador.
Orden de Prioridad
• Las operaciones entre paréntesis se evalúan primero.
• Si existen paréntesis anidados, las expresiones más internas tienen
prioridad.
• Ejemplo : ((5+3)+(4+8)/2)+1
Profesores
INF 140 – Informática I
PHM/DCP
10. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Orden de Prioridad en Operadores Aritméticos
• Las operaciones aritméticas dentro de una expresión suelen seguir el
siguiente orden de prioridad :
1. Cambio de Signo ( - )
2. Multiplicación , División, División Entera y Resto (*, /, DIV, MOD)
3. Suma y Resta (+,-)
• OBS : Si coinciden varios operadores de igual prioridad en una
expresión o subexpresión encerrada entre paréntesis, el orden de
evaluación es de izquierda a derecha.
• Ejemplo : ((8-7+3) + (4*6/2))
Profesores
INF 140 – Informática I
PHM/DCP
11. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Expresiones Lógicas
• Un segundo tipo de expresiones son las de tipo lógica, que al ser
evaluadas su resultado puede ser verdadero o falso.
• Las expresiones lógicas se forman usando :
• Operadores booleanos
• Operadores relacionales o de comparación
Profesores
INF 140 – Informática I
PHM/DCP
12. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Operadores Booleanos
Operador Expresión Lógica Significado
¬ Negación de p
¬p
∧ Conjunción de P y Q
P∧Q
∨ Disyunción de P y Q
P∨Q
Profesores
INF 140 – Informática I
PHM/DCP
13. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tablas de Verdad
P Q P∧ Q
P ¬P V V V
V F V F F
F V F
F V
F F F
P Q P∨ Q
V V V
V F V
F V V
F F F
Profesores
INF 140 – Informática I
PHM/DCP
14. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Operadores Relacionales
• Permiten comparar valores de tipo numérico, carácter o lógico, y se
usan para expresar condiciones dentro de los algoritmos.
• Los operadores relacionales son : >, <, =, >=, <=, <>
• SINTAXIS : <expresión 1> operador relacional <expresión 2>
⇓
RESULTADO : Verdadero o Falso.
Profesores
INF 140 – Informática I
PHM/DCP
15. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Aplicación de los Operadores Relacionales
• Se aplican sobre datos de tipo: entero, real, lógico y carácter.
1. Aplicación en valores numéricos. (CONOCIDA)
EJEMPLO : Si A = 3 y B = 2
• A > B (VERDADERO)
• A + B = 5 (VERDADERA)
Profesores
INF 140 – Informática I
PHM/DCP
16. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Aplicación de los Operadores Relacionales
2. Aplicación en valores de tipo carácter.
• Requiere de una secuencia de ordenación de los caracteres:
– Alfabética (mayúsculas y minúsculas).
– Creciente en caracteres numéricos.
– Pero si se consideran caracteres especiales, se recurre a un código
normalizado, por ejemplo, el código ASCII.
Profesores
INF 140 – Informática I
PHM/DCP
17. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tabla ASCII (Código estándar americano para el intercambio
de información ).
Profesores
INF 140 – Informática I
PHM/DCP
18. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
– Aunque NO todos los computadores siguen el código normalizado
en su juego completo de caracteres, sí son prácticamente estándar,
los códigos de los caracteres alfanuméricos más usuales:
• Caracteres especiales : # , % , $ , ( , ) , + , - , / etc... , exigen
consultar el código de ordenación.
• Caracteres Numéricos : se encuentran en su orden natural.
(0...9)
• Caracteres Alfabéticos :
– Mayúsculas A...Z (orden alfabético).
– Minúsculas a..z siguen el criterio anterior.
Profesores
INF 140 – Informática I
PHM/DCP
19. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Aplicación de los Operadores Relacionales
3. Aplicación en valores de tipo lógico.
• Constante FALSO es menor que la constante VERDADERA.
Profesores
INF 140 – Informática I
PHM/DCP
20. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
• OBS : En las expresiones lógicas se pueden mezclar operadores
relacionales y lógicos.
Ejemplo : ( 1 > 5 ) ∧ ( 8 <> 9 )
Profesores
INF 140 – Informática I
PHM/DCP
21. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Prioridad de Operadores en Expresiones Lógicas
– Prioridad 1 : ¬
– Prioridad 2 : ∧
– Prioridad 3 : ∨
– MENOR PRIORIDAD QUE TODOS LOS OPERADORES :
Relacionales ( <, >, <=……)
– TAMBIEN SE USAN PARÉNTESIS (MAYOR PRIORIDAD QUE
TODOS)
Profesores
INF 140 – Informática I
PHM/DCP
22. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Ejemplos
• ¬ 4 > 6 ERROR!!!!!!
• ¬ ( 4 > 6 ) = VERDADERO
• Si X = 7 , Z = 4
(1 < X) ∧ (X < Z + 7) CUAL ES EL VALOR DE ESTA EXPRESIÓN????
Profesores
INF 140 – Informática I
PHM/DCP
23. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Resolución de Problemas
• 3 fases básicas:
– Análisis del Problema
– Diseño del Algoritmo
– Codificación del Algoritmo en un LP
Profesores
INF 140 – Informática I
PHM/DCP
24. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Análisis del Problema
• AYUDA a tener una compresión de la naturaleza del problema.
– PROBLEMA bien definido → solución satisfactoria.
– Especificaciones de entrada y salida descritas con detalle.
SON REQUISITOS fundamentales para una solución eficaz.
Profesores
INF 140 – Informática I
PHM/DCP
25. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Análisis del Problema
• El análisis del problema requiere de una primera lectura, para tener una idea
general.
• Una segunda lectura nos permitirá responder las siguientes preguntas :
– ¿ Qué datos se necesitan para resolver el problema ? ENTRADA
– ¿ Qué información debe proporcionar la resolución del problema ? SALIDA
Profesores
INF 140 – Informática I
PHM/DCP
26. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
EJEMPLO : Análisis del Problema
• Calcular promedio de 3 Notas
Entrada : 3 Notas
Proceso: Suma aritmética de las Notas dividido por el Total de Notas
Salida : Promedio de Notas
Profesores
INF 140 – Informática I
PHM/DCP
27. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Diseño del Algoritmo => Pseudocódigo
• Computador sólo resuelve problemas cuando : se le indican los pasos
sucesivos que debe ejecutar (ALGORITMO).
• Técnicas de Diseño :
– Diseño Descendente (DIVIDE y VENCERAS)
– Refinamiento Sucesivo (Primeros pasos INCOMPLETOS-
GENERALES)
• ALGORITMO debe ser representado a través de alguna técnica que
permita independizarlo del lenguaje de programación que se seleccionará
para codificarlo.
• La técnica de representación puede ser :
– Descriptiva (PSEUDOLENGUAJE)
– Gráfica (Diagrama de Flujo, Diagrama de Nassi-Schneiderman)
Profesores
INF 140 – Informática I
PHM/DCP
28. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Pseudocódigo
• Lenguaje de especificación formal de algoritmos que permite representar
las estructuras de control de la programación estructurada.
• No puede ser ejecutado por un computador (debe ser traducido a un LP).
• Compuesto por palabras reservadas, similares a las de sus homónimos
en los lenguajes de programación que permiten representar acciones.
• Su escritura exige el uso de indentación.
Profesores
INF 140 – Informática I
PHM/DCP
29. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
VENTAJAS Pseudocódigo
• Programador se CONCENTRA en la LÓGICA y en las ESTRUCTURAS DE
CONTROL, y no tanto en las REGLAS SINTÁCTICAS propias de los LP.
• Fácil de modificar.
• Fácil de traducir a LP.
• Originalmente en Inglés , EN LA ACTUALIDAD en ESPAÑOL
Profesores
INF 140 – Informática I
PHM/DCP
30. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
¿Cómo escribir un ALGORITMO en pseudolenguaje?
• La estructura de un algoritmo en pseudocódigo posee dos PARTES :
– Cabecera
– Bloque (Cuerpo) del Algoritmo
Profesores
INF 140 – Informática I
PHM/DCP
31. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Cabecera
• TODO algoritmo debe comenzar con una cabecera.
• Acción simple que comienza con la palabra reservada ALGORITMO,
seguida de un identificador.
SINTAXIS :
ALGORITMO <identificador>
EJEMPLO :
ALGORITMO Promedio_de_Notas
Profesores
INF 140 – Informática I
PHM/DCP
32. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Cuerpo del Algoritmo
• Es el resto del algoritmo y esta compuesto a su vez de 2 bloques :
– Bloque de Declaraciones : contiene la declaración de las constantes
y variables que serán utilizadas en el algoritmo.
– Bloque de Pasos (Acciones o Instrucciones) : contiene las acciones
que nos permitirán resolver el problema, para el cual fue diseñado
el algoritmo, cada acción se escribirá en una línea independiente.
Profesores
INF 140 – Informática I
PHM/DCP
33. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Bloque de Declaraciones : Declaración de Constantes
• Esta sección comienza con la palabra reservada CONST (abreviatura
de Constante) y su sintaxis es :
CONST <identificador_constante_1> = <valor_1>
<identificador_constante_2> = <valor_2>
Valor determina Tipo
:
:
<identificador_constante_N> = <valor_N>
Ejemplo : CONST PI=3.141516
IVA=0.19
Profesores
INF 140 – Informática I
PHM/DCP
34. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Bloque de Declaraciones : Declaración de Variables
• Esta sección comienza con la palabra reservada VAR (abreviatura de
Variable) y su sintaxis es :
Var <tipo 1> : <lista de variables (separadas por ,) >
…
<tipo j> : <lista de variables (separadas por ,) >
Ejemplo : VAR real : x,y,z
entero : a,b,c
caracter : letra
Profesores
INF 140 – Informática I
PHM/DCP
35. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Bloque de Acciones : Tipos de Instrucciones
• Repertorio de instrucciones disponibles en cada lenguaje de
programación es variable.
• PERO …… Existen instrucciones básicas, comunes y soportadas por
todos los lenguajes y que pueden ser utilizadas de forma general en
la escritura de un algoritmo :
– Instrucciones de Inicio-Fin.
– Instrucción de Asignación.
– Instrucción de Lectura.
– Instrucción de Escritura.
– Instrucciones de Bifurcación.
Profesores
INF 140 – Informática I
PHM/DCP
36. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tipo de Instrucciones : Instrucciones de Inicio-Fin
• La primera instrucción del bloque de acciones del algoritmo será
INICIO y la última instrucción será FIN.
INICIO
<acción 1>
<acción 2>
<acción 3>
:
<acción n>
FIN
Profesores
INF 140 – Informática I
PHM/DCP
37. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tipo de Instrucciones : Instrucción de Asignación
<Valor> puede ser : una
• Permite almacenar un valor en una variable.
constante, una variable
o el resultado de la
• Operador de asignación : ← evaluación de una
expresión.
Sintaxis : < Identificador de Variable> ← <Valor>
• La instrucción de asignación se ejecuta en dos pasos :
1. Se calcula el valor al lado derecho del operador de asignación.
2. El valor calculado se almacena en la variable cuyo nombre aparece
a la izquierda del operador de asignación, sustituyendo el valor
que esta tenía anteriormente (instrucción DESTRUCTIVA).
Profesores
INF 140 – Informática I
PHM/DCP
38. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tipo de Instrucciones : Instrucción de Asignación
• Ejemplos :
A←1
B←A+3
C ← B/2
Vocal ← ‘A’
• INICIALIZACIÓN DE UNA VARIABLE : Variables al ser
declaradas tienen un valor indeterminado
• INCOMPATIBILIDAD DE TIPOS
Var entero : A
Inicio
A←0
A ← 5.56
Fin
Profesores
INF 140 – Informática I
PHM/DCP
39. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tipo de Instrucciones : Instrucción de Lectura
• Instrucción de Lectura o entrada de datos, permite extraer uno o más
valores desde un dispositivo de entrada (teclado, unidades de disco etc...) y
almacenarlos en memoria en la(s) variable(s) indicada(s) dentro de la propia
instrucción.
• Sintaxis : Leer ( < lista_de_variables > )
ó
Leer ( < variable_1 > )
Leer ( < variable_2 > )
Leer ( < variable_3 > )
• ¿ Cuál será el significado de la siguiente instrucción de lectura ?
Leer(edad, peso)
• Si se ingresan los valores 25 – 59.3
• NO SE PUEDEN LEER DATOS DE TIPO Lógico
Profesores
INF 140 – Informática I
PHM/DCP
40. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Tipo de Instrucciones : Instrucción de Escritura
• Instrucción de salida o escritura de resultados permite enviar resultados
hacia dispositivos de salida (pantalla, impresora etc...).
• Los datos enviados pueden ser constantes, variables, resultados de
expresiones, mensajes o una mezcla de ellos separados en dicho caso por
comas.
• Sintaxis : Escribir ( < lista_de_expresiones > )
• ¿ Cuál será el significado de la siguiente instrucción de escritura ?
Escribir(“HOLA”)
Escribir(“promedio = ”, promedio)
Escribir (“ A + B “, A+B)
Profesores
INF 140 – Informática I
PHM/DCP
41. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Calcular el promedio de 3 notas.
1. Inicio
2. Leer nota 1
3. Leer nota 2
3. Leer nota 3
4. Asignar a suma_de_notas el resultado de nota1 + nota2 + nota3
5. Asignar a promedio el resultado de suma_de_notas / 3
6. Escribir resultado
7. Fin
Algoritmo Calcular_Promedio
Var real: nota1,nota2,nota3, suma_de_notas, prom
Inicio
leer (nota1)
leer (nota2)
leer (nota3)
suma_de_notas nota1 + nota2 + nota3
prom suma_de_notas / 3
escribir(“promedio es: “,prom)
Fin
Profesores
INF 140 – Informática I
PHM/DCP
42. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Estructuras de control
Las estructuras de control son las que permiten conducir el flujo del
programa, existen dos tipos de estructuras de control las estructuras
selectivas y las estructuras repetitivas.
Estructuras selectivas
Las estructuras selectivas se utilizan para tomar decisiones lógicas, también
son llamadas estructuras de decisión o alternativas.
Alternativa simple
si <condicion> entonces si (numero MOD 2 = 0) entonces
<accion 1> escribir(“número es par”)
<accion 2> fin_si
<accion n>
fin_si
Profesores
INF 140 – Informática I
PHM/DCP
43. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Alternativa doble
si <condicion> si (numero MOD 2 = 0)
entonces entonces
<accion 1> escribir(“número es par”)
si_no
<accion n> escribir(“número es impar”)
si_no fin_si
<accion p>
<accion z>
fin_si
Alternativa multiple
segun_sea <expresion_E> hacer segun_sea dia MOD 7 hacer
e1: <accion 1> 1: escribir(“el día es Lunes”)
e2: <accion 2> 2: escribir(“el día es Martes”)
e3: <accion 3> 3: escribir(“el día es Miércoles”)
4: escribir(“el día es Jueves”)
en: <accion n> 5: escribir(“el día es Viernes”)
fin_si 6: escribir(“el día es Sábado”)
0: escribir(“el día es Domingo”)
fin_si
Profesores
INF 140 – Informática I
PHM/DCP
44. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
si <condicion 1>
Estructuras selectivas anidadas
entonces
si <condicion 2>
Las estructuras selectivas si y si-sino entonces
implican la selección de una de dos <accion 1>
.. ..
alternativas. Es posible utilizar la instrucción
<accion n>
si para diseñar estructuras de selección
sino
que contengan más de dos alternativas. <accion p>
.. ..
<accion s>
fin_si
si <condicion 1> entonces
sino
si <condicion 2> entonces
si <condicion 3>
<accion 1>
entonces
<accion 2> <accion f>
.. ..
<accion n> <accion k>
sino
fin_si
<accion i>
fin_si
.. ..
<accion z>
fin_si
fin_si
Profesores
INF 140 – Informática I
PHM/DCP
45. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Ejercicio
• Desarrollar un algoritmo que calcule el
promedio simple de 3 notas, y que en
base al resultado obtenido, muestre la
situación final (aprobado-reprobado).
Profesores
INF 140 – Informática I
PHM/DCP
46. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Algoritmo determinar_Aprobacion_Reprobacion
Var real: nota1,nota2,nota3, suma_de_notas, prom
Inicio
leer (nota1)
leer (nota2)
leer (nota3)
suma_de_notas nota1 + nota2 + nota3
prom suma_de_notas / 3
escribir (“promedio es: “,prom)
si (prom >= 40 ) entonces
escribir (“Aprobado !!! … Felicitaciones !!!”)
sino
escribir (“Ánimo, hay otra oportunidad !!! ”)
fin_si
Fin
Profesores
INF 140 – Informática I
PHM/DCP
47. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Estructuras repetitivas
Las estructuras repetitivas se utilizan para repetir una o varias acciones un
número determinado de veces.
Mientras
mientras (i< 10) hacer
mientras <condicion>
escribir(“el número es: ”, i)
hacer
<accion 1> i i+1
<accion 2> fin_mientras
<accion n>
fin_mientras
Repetir
repetir repetir
<accion 1> escribir(“el número es:”, i)
<accion 2> i i+1
hasta_que (i = 10)
<accion n>
hasta_que <condicion>
Profesores
INF 140 – Informática I
PHM/DCP
48. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Desde
desde v vi hasta vf
[ incremento/decremento inc ]
hacer
<accion 1>
<accion 2>
<accion n>
fin_desde
Desde i 1 hasta 10 hacer
escribir(“el número es:”, i)
fin_desde
Profesores
INF 140 – Informática I
PHM/DCP
49. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Ejercicio
• Desarrollar un algoritmo que sume n
números ingresados por un usuario, y
luego muestre la suma de ellos.
Profesores
INF 140 – Informática I
PHM/DCP
50. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Utilizando la estructura repetitiva
“Mientras”
Algoritmo sumar_numeros
Var real: nuevo_numero, suma
caracter: continuar
Inicio
continuar ‘s’
suma 0
mientras (continuar = ‘s’) hacer
escribir (“Ingrese un número”)
leer (nuevo_numero)
suma suma + nuevo_numero
escribir (“¿Desea continuar ingresando otro número? s = si ; n = no”)
leer (continuar)
fin_mientras
escribir(“La suma total es: “,suma)
fin
Profesores
INF 140 – Informática I
PHM/DCP
51. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
¿Y si utilizamos la estructura
Repetir?
Algoritmo sumar_numeros
Var real: nuevo_numero, suma
caracter: continuar
Inicio
continuar ‘s’
suma 0
repetir
escribir (“Ingrese un número”)
leer (nuevo_numero)
suma suma + nuevo_numero
escribir (“¿Desea continuar ingresando otro número? s = si ; n = no”)
leer (continuar)
hasta_que (continuar = ‘n’)
escribir(“La suma total es: “,suma)
Fin
Profesores
INF 140 – Informática I
PHM/DCP
52. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Ejercicio
• Desarrolle un algoritmo que calcule el
factorial de un número X.
Profesores
INF 140 – Informática I
PHM/DCP
53. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Análisis (1)
¿Qué es el factorial de un número?
Resp: Producto que resulta de multiplicar un número
entero positivo por todos los números inferiores a él,
llegando hasta el número 1.
Ejemplos: 3! = 1 * 2 * 3 = 6
4! = 1 * 2 * 3 * 4 = 24
5! = 1 * 2 * 3 * 4 * 5 = 120
Profesores
INF 140 – Informática I
PHM/DCP
54. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Análisis (2)
¿Cuáles son las entradas?
Resp: un número entero positivo.
¿Cuáles son las salidas?
Resp: un número entero positivo, producto de
multiplicaciones sucesivas.
Profesores
INF 140 – Informática I
PHM/DCP
55. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Análisis (3)
¿Cuál es el proceso?
4! = 1 * 2 * 3 * 4 = 24
2*
6*
24
Profesores
INF 140 – Informática I
PHM/DCP
56. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Algoritmo calcular_factorial
Var entero: numero, contador, factorial
Inicio
factorial 1
escribir (“Ingrese número para calcular factorial”)
leer (numero)
desde contador factorial + 1 hasta numero
factorial factorial * contador
fin_desde
escribir (“ Factorial es: ”,factorial)
Fin
Profesores
INF 140 – Informática I
PHM/DCP
57. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Estructuras repetitivas anidadas
Así como las instrucciones selectivas (de condición) se pueden anidar, de
igual forma se pueden anidar estructuras de selección, es posible insertar un
bucle dentro de otro
mientras <condicion1> hacer
mientras <condicion2> hacer
desde v vi hasta vf hacer
<accion 1>
desde w wj hasta wg hacer
<accion 2>
<accion 1>
<accion 2>
<accion n>
fin_mientras
<accion n>
fin_mientras
fin_desde
repetir fin_desde
repetir
<accion 1>
<accion 2>
<accion n>
hasta_que <condicion2>
hasta_que <condicion1>
Profesores
INF 140 – Informática I
PHM/DCP
58. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Estructuras repetitivas anidadas (continuación)
mientras <condicion1> hacer
repetir
<accion 1>
<accion 2>
<accion n>
hasta_que <condicion2>
fin_mientras
repetir
mientras <condicion-i> hacer
<accion 1>
<accion 2>
<accion n>
fin_mientras
hasta_que <condicion-j>
Profesores
INF 140 – Informática I
PHM/DCP
59. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Ejercicio
• Desarrolle un algoritmo que permita
calcular el promedio de n cantidad de
notas, para m cantidad de asignaturas.
Profesores
INF 140 – Informática I
PHM/DCP
60. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Algoritmo calcular_promedios
Var entero: nota, suma_de_notas, contador_notas, prom
carácter: nombre_asignatura, continuar, nueva_nota
Inicio
continuar ‘s’
mientras (continuar = ‘s’) hacer
escribir (“Ingrese nombre de la asignatura”)
leer (nombre_asignatura)
suma_de_notas 0
contador_notas 0
repetir
escribir (“Ingrese nota:”)
leer (nota)
suma_de_notas suma_de_notas + nota
contador_notas contador_notas + 1
escribir (“¿Desea ingresar una nueva nota? s = si ; n = no”)
leer (nueva_nota)
hasta_que (nueva_nota = ‘n’)
prom suma_de_notas / contador_notas
escribir (“Asignatura: ”, nombre_asignatura)
escribir (“Promedio: “,prom)
escribir (“¿Desea ingresar una nueva asignatura? s = si ; n = no”?”)
leer (continuar)
fin_mientras
fin
Profesores
INF 140 – Informática I
PHM/DCP
61. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Diagramas de Flujo
Decisión
Terminal
Implica elección
Inicio o final de
entre secuencias
un algoritmo
alternativas.
Entrada/Salida Proceso
Lectura de valores y Proceso diferente
escritura de de los procesos E/S
mensajes y Decisiones
Profesores
INF 140 – Informática I
PHM/DCP
62. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Estructuras de Control: Diagrama de Flujo
Iteración
Secuencia Selección
Profesores
INF 140 – Informática I
PHM/DCP
63. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Estructuras de Control:
Diagramas de Nassi - Schneiderman
Profesores
INF 140 – Informática I
PHM/DCP
64. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Ejercicio
• Desarrollar un diagrama de flujo que
permita calcular el promedio simple de 3
notas, y que en base al resultado
obtenido, muestre la situación final
(aprobado-reprobado).
Profesores
INF 140 – Informática I
PHM/DCP
65. Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
Inicio
Leer NOTA1,
NOTA2, NOTA3
SUMA_NOTAS
NOTA1 + NOTA2 + NOTA3
PROM
SUMA_NOTAS / 3
escribir PROM
PROM >= 40
escribir escribir “ ánimo, hay
“Aprobado !” otra oportunidad ! ”
Fin
Profesores
INF 140 – Informática I
PHM/DCP