Post on 03-Jul-2015
Profesores
PHM/DCP
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 Herm
osilla Monckton
Daniel Cabrera Paniagua
Profesores
PHM/DCP
Tipos de Datos
El principal objetivo de todo computador es el m
anejo de inform
ación o datos.
Un datoes 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)
Lógicos(booleano)
Carácter
(char, string)
Datos
Carácter(es)
Lógico
Numérico
Real
Entero
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Elementos Básicos : Constantes, Variables,
Identificadores y Expresiones
Elemento o partida de datos cuyo
valor no cambiadurante el desarrollo del
algoritmo (o ejecución del programa).
Posición de m
emoria, referenciada por unidentificador, que almacena un
dato que perm
anece sin cambios durante el algoritmo (o ejecución del
programa).
Pueden ser de tipo: entera, real, caractero lógica.
Constante
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Variable
Elemento o partida de datos cuyo
valor puede cambiardurante el desarrollo
del algoritmo (o ejecución del programa).
Posición de m
emoria, referenciada por unidentificador, 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 definida de un cierto tipo sólo puede tomar valores de ese tipo.
Una variable posee los siguientes atributos :
1.Identificador (asignado por el programador).
2.Tipo (describe su uso).
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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…….
Identificador
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Expresiones
Combinaciones de constantes, variables, símbolos de operación, paréntesis y
funciones especiales.
Una expresión consta de: operadoresy operandos.
Cada expresión toma un valor que se determ
ina, 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
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Expresiones Aritm
éticas
•Análogas a las fórm
ulas 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
Operando
Operador
Resultado
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Tabla de operadores
Entero
Entero
Módulo o Resto
MOD
Entero
Entero
División Entera
DIV
Real
Entero/Real
División Real
/
Entero/Real
Entero/Real
Multiplicación
*
Entero/Real
Entero/Real
Resta/Cambio
Signo
-
Entero/Real
Entero/Real
Suma
+
Tipo Resultado
Tipo Operando
Significado
Operador
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Reglas de Prioridad
•Perm
iten determ
inar 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
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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ónEntera y Resto (*, /, DIV, MOD)
3.
Suma y Resta (+,-)
•OBS :Si coinciden varios operadores de igual prioridad en una
expresión o subexpresiónencerrada entre paréntesis, el orden de
evaluación es de izquierda a derecha.
•Ejemplo :((8-7+3) + (4*6/2))
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Expresiones Lógicas
•Un segundo tipo de expresiones son las de tipo lógica, que al ser
evaluadas su resultado puede serverdadero o falso.
•Las expresiones lógicas se form
an usando :
•Operadores booleanos
•Operadores relacionales o de comparación
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Operadores Booleanos
Disyunción de P y Q
P ∨ ∨∨∨Q
∨ ∨∨∨
Conjunción de P y Q
P ∧ ∧∧∧Q
∧ ∧∧∧
Negación de p
¬ ¬¬¬p
¬ ¬¬¬
Significado
Expresión Lógica
Operador
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Tablas de Verdad
P¬
¬
¬
¬
PV
FF
V
PQ
P ∧ ∧∧∧ Q
VV
VV
FF
FV
FF
FF
PQ
P ∨ ∨∨∨ Q
VV
VV
FV
FV
VF
FF
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Operadores Relacionales
•Perm
iten comparar valores de tipo numérico, carácter o lógico, y se
usan para expresarcondicionesdentro de los algoritmos.
•Los operadores relacionales son : >, <, =, >=, <=, <>
•SINTAXIS :<expresión 1>operador relacional<expresión 2>
⇓ ⇓⇓⇓
RESULTADO : Verdadero o Falso.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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)
EJE
MPLO : Si A
= 3 y B = 2
•A > B (VERDADERO)
•A + B = 5 (VERDADERA)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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
norm
alizado, por ejemplo, el código ASCII.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Tabla ASCII (Código estándar americano para el intercambio
de información ).
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP–
Aunque NO todos los computadores siguen el código norm
alizado
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.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Aplicación de los Operadores Relacionales
3.
Aplicación en valores de tipo lógico.
•Constante FALSO es menor que la constante VERDADERA.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
•OBS :En las expresiones lógicas se pueden m
ezclar operadores
relacionales y lógicos.
Ejemplo : ( 1>5 )
∧ ∧∧∧( 8<>9 )
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Ejemplos
•¬4 > 6
ERROR!!!!!!
•¬( 4 > 6 ) = VER
DAD
ERO
•Si X = 7 , Z = 4
(1 < X)
∧(X < Z + 7)CU
AL ES EL VALOR DE ES
TA EXP
RES
IÓN????
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Resolución de Problemas
•3 fases básicas:
–An
álisis del Problem
a
–Diseño del A
lgoritm
o
–Co
dificación del A
lgoritm
o en un LP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Análisis del Problema
•El análisis del problema requiere de unaprimera lectura,para tener unaidea
general.
•Una segunda lectura
nos perm
itirá
responder las siguientes preguntas :
–¿Quédatos se necesitan para resolver el problema ? ENTRADA
–¿Quéinform
ación debe proporcionar la resolución del problema ? SALIDA
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
EJEMPLO : Análisis del Problema
•Calcular promedio de 3 Notas
Entrada : 3 Notas
Proceso: Suma aritmética de las Notas dividido por el T
otal de Notas
Salida : Promedio de Notas
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Diseño del Algoritm
o => 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)
•ALGORITMOdebe ser representado a través de alguna técnica que
perm
ita 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-Schneiderm
an)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Pseudocódigo
•Lenguaje de especificación form
al de algoritmos que perm
ite representar
lasestructuras de controlde la programación estructurada.
•No puede ser ejecutadopor 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 perm
iten representar acciones.
•Su escritura exige el uso de indentación.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
VENTAJAS Pseudocódigo
•Programador se CO
NCE
NTR
A en la LÓGICA y en las ES
TRUCT
URAS
DE
CONTR
OL, y no tanto en las REG
LAS SINTÁ
CTICAS
propias de los LP.
•Fácil de modificar.
•Fácil de traducir a LP.
•Orig
inalmente en Inglés , EN LA AC
TUALIDAD
en ES
PAÑOL
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
¿Cómo escribir un ALGORITMO en pseudolenguaje?
•La estructura de un algoritmo en pseudocódigoposee dos PARTES :
–Cabecera
–Bloque (Cuerpo) del A
lgoritm
o
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Cabecera
•TODO algoritmo debe comenzar con una cabecera.
•Acción simple que comienza con la palabra reservadaALGORITMO,
seguida de un identificador.
SINTAXIS :
ALGORITMO<identificador>
EJEMPLO :
ALGORITMOPromedio_de_Notas
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Cuerpo del Algoritm
o
•Es el resto del algoritmoy esta com
puesto a su vez de 2 bloqu
es :
–Bloque de Declaraciones :contiene la declaración de las constantes
y varia
bles que serán utilizadas en el algoritm
o.
–Bloque de Pasos (Acciones o Instrucciones)
: contiene las acciones
que nos perm
itirán resolver el problema, para el cual fue diseñado
el algoritmo, cada acción se escribiráen una línea independiente.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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>
: :
<identificador_constante_N>= <valor_N>
Ejemplo :
CONST PI=3.141516
IVA=0.19
Valor determina Tipo
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Bloque de Acciones : Tipos de Instrucciones
•Repertorio
de instruccionesdisponibles en cada leng
uaje de
programación es variable.
•PE
RO …
…Existen instrucciones básicas, com
unes y soportadas por
todos los leng
uajes y qu
e pu
eden ser utilizadas de form
a generalen
la escritura de un algoritmo :
–Instrucciones deInicio-Fin.
–Instrucción deAsignación.
–Instrucción deLectura.
–Instrucción deEscritura.
–Instrucciones deBifurcación.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Tipo de Instrucciones : Instrucción de Asignación
•Perm
ite almacenar unvalor en unavariable.
•Operador de asignación :
← ←←←
Sintaxis :
< Identificador de Variable>
←<Valor>
•La instrucción de asignaciónse ejecuta en dos pasos :
1.
Se calcula el valoral 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 anteriorm
ente (instrucción DESTRUCTIVA).
<Valor> puede ser : una
constante, una variable
o el resultado de la
evaluación de una
expresión.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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 indeterm
inado
•INCOMPATIBILIDAD DE TIPOS
Varentero : A
Inicio
A ←
0
A ←
5.56
Fin
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Tipo de Instrucciones : Instrucción de Lectura
•Instrucción de Lectura o entrada de datos, perm
ite 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
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Tipo de Instrucciones : Instrucción de Escritura
•Instrucción de salida o escritura de resultadosperm
ite enviar resultados
hacia dispositivos de salida(pantalla, impresora etc...).
•Los datos enviados pueden ser constantes, variables, resultados de
expresiones, m
ensajeso una m
ezcla 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)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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_notasel resultado de nota1 + nota2 + nota3
5. Asignar a promedio el resultado de suma_de_notas/ 3
6. Escribir resultado
7. Fin
Algoritm
o Calcular_Promedio
Varreal: 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
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Estructuras de control
Las estructuras de controlson las que perm
iten conducir el flujo del
programa, existen dos tipos de estructuras de control las estructuras
selectivas y las estructuras repetitivas.
Estructuras selectivas
Las estructuras selectivasse utilizan para tomar decisiones lógicas, también
son llamadas estructuras de decisión o alternativas.
si <condicion>
entonces
<accion
1>
<accion
2>
<accion
n>
fin_si
Alternativa sim
ple
si (numero MOD 2 = 0)
entonces
escribir(“número es par”)
fin_si
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
si <condicion>
entonces
<accion1>
<accionn>
si_no
<accionp>
<accionz>
fin_si
Alternativa doble
si (numero MOD 2 = 0)
entonces
escribir(“número es par”)
si_noescribir(“número es impar”)
fin_si
segun_sea<expresion_E>hacer
e1: <accion1>
e2: <accion2>
e3: <accion3>
en: <accionn>
fin_si
Alternativa m
ultiple
segun_seadiaMOD 7hacer
1: escribir(“el día es Lunes”)
2: escribir(“el día es Martes”)
3: escribir(“el día es Miércoles”)
4: escribir(“el día es Jueves”)
5: escribir(“el día es Viernes”)
6: escribir(“el día es Sábado”)
0: escribir(“el día es Domingo”)
fin_si
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Estructuras selectivas anidadas
si <condicion
1>
entonces
si <condicion
2>
entonces
<accion
1>
<accion
2>
<accion
n>
fin_si
fin_si
Las
estructuras
selectivas
siy
si-sino
implican la selección de una de dos
alternativas. Es posible utilizar la instrucción
si para diseñar estructuras
de selección
que contengan más de dos alternativas.
si <condicion1>
entonces
si <condicion2>
entonces
<accion1>
.. ..
<accionn>
sino <accionp>
.. ..
<accions>
fin_si
sino si <condicion3>
entonces
<accionf>
.. ..
<accionk>
sino <accioni>
.. ..
<accionz>
fin_si
fin_si
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
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).
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Algoritm
o determ
inar_Aprobacion_Reprobacion
Varreal: nota1,nota2,nota3, suma_de_notas, prom
Inicioleer(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
PHM/DCP
Estructuras repetitivas
mientras <condicion>
hacer
<accion
1>
<accion
2>
<accion
n>
fin_mientras
Mientras
mientras (i< 10)
hacer
escribir(“el número es: ”, i)
i � ���
i+1
fin_mientras
Las estructuras repetitivasse utilizan para repetir una o varias acciones un
número determ
inado de veces.
repetir
<accion
1>
<accion
2>
<accion
n>
hasta_que
<condicion>
Repetir
repetir
escribir(“el número es:”, i)
i � ���
i+1
hasta_que
(i = 10)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
desde v � ���
vi
hasta
vf
[incremento/decremento
inc
]hacer<accion
1>
<accion
2>
<accion
n>
fin_desde
Desde
Desde i � ���
1hasta 10
hacer
escribir(“el número es:”, i)
fin_desde
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Ejercicio
•Desarrollar un algoritmo que sume n
números ingresados por un usuario, y
luego muestre la suma de ellos.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Algoritm
o sumar_numeros
Varreal: nuevo_numero, suma
caracter:continuar
Iniciocontinuar� ���
‘s’
suma � ���
0mientras (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
Utilizando la estructura repetitiva
“Mientras”
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Algoritm
o sumar_numeros
Varreal: nuevo_numero, suma
caracter:continuar
Iniciocontinuar� ���
‘s’
suma � ���
0repetir
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
¿Y si utilizamos la estructura
Repetir?
Profesores
PHM/DCP
Ejercicio
•Desarrolle un algoritmo que calcule el
factorial de un número X.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Análisis (1)
¿Quées el factorial de un número?
Resp: Producto que resulta de multiplicar un núm
ero
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
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
¿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.
Análisis (2)
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
¿Cuál es el proceso?
4! = 1 * 2 * 3 * 4 = 24
Análisis (3)
2* 6
24*
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Algoritm
o calcular_factorial
Varentero:numero, contador, factorial
Inicio
factorial � ���
1escribir (“Ingrese número para calcular factorial”)
leer(numero)
desde contador � ���
factorial + 1hastanumero
factorial � ���
factorial * contador
fin_desde
escribir (“Factorial es: ”,factorial)
Fin
Profesores
PHM/DCP
Estructuras repetitivas anidadas
Asícomo las instrucciones selectivas (de condición) se pueden anidar, de
igual form
a se pueden anidar estructuras de selección, es posible insertar un
bucle dentro de otro
mientras <condicion1>
hacer
mientras <condicion2>
hacer
<accion
1>
<accion
2>
<accion
n>
fin_mientras
fin_mientras
desde v � ���
vi
hasta
vf hacer
desde w � ���
wj
hasta
wg hacer
<accion
1>
<accion
2>
<accion
n>
fin_desde
fin_desde
repetir
repetir
<accion
1>
<accion
2>
<accion
n>
hasta_que
<condicion2>
hasta_que
<condicion1>
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Estructuras repetitivas anidadas (continuación)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
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
PHM/DCP
Ejercicio
•Desarrolle un algoritmo que perm
ita
calcular el promedio de ncantidad de
notas, para m
cantidad de asignaturas.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Algoritmo calcular_promedios
Varentero: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� ���
0contador_notas� ���
0repetir
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
PHM/DCP
Diagramas de Flujo
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Terminal
Inicio o final de
un algoritm
o
Entrada/Salida
Lectura de valores y
escritura de
mensajes
Decisión
Implica elección
entre secuencias
alternativas.
Proceso
Proceso diferente
de los procesos E/S
y Decisiones
Profesores
PHM/DCP
Estructuras de Control: Diagrama de Flujo
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Secuencia
Selección
Iteración
Profesores
PHM/DCP
Estructuras de Control:
Diagramas de Nassi-Schneiderman
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Ejercicio
•Desarrollar un diagrama de flujo que
perm
ita calcular el promedio simple de 3
notas, y que en base al resultado
obtenido, muestre la situación final
(aprobado-reprobado).
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Inicio
Fin
Leer NOTA1,
NOTA2, NOTA3
SUMA_NOTAS
NOTA1 + NOTA2 + NOTA3
PROM
SUMA_NOTAS/ 3
escribir PROM
PROM >= 40
escribir
“Aprobado !”
escribir “ánimo, hay
otra oportunidad ! ”