Módulo 3
Constructores
Básicos. Parte B
rogramación de
omputadores
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
Algoritmos:
Constructores Básicos
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
ESTRUCTURAS DE CONTROL
• Secuencia
• Selección
• Iteración
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
ITERACIÓN
• Definición
• Tipos de Iteración
• Tipos de Variables
• Correspondencia entre ciclos
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
DEFINICIÓN
Ejecución repetitiva de un conjunto de
instrucciones.
“Yo también” “Te quiero”
“Yo también” “Te quiero”
.
.
.
.
.
.
.
.
.
.
.
.
.
“Yo también” “Te quiero”
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
TIPOS DE ITERACIÓN
•Ciclo MIENTRAS
•Ciclo HAGA-MIENTRAS
•Ciclo PARA
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
CICLO MIENTRAS
Permite ejecutar repetidamente un
conjunto de instrucciones, mientras
que una condición sea verdadera.
La condición siempre se evalúa antes de
ejecutar el bloque de instrucciones.
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
CICLO MIENTRAS
PSEUDOCODIGO
DIAGRAMA DE FLUJO
mientras <condición> hacer
<bloque de
instrucciones>
fin_mientras
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
Módulo 3
Constructores
Básicos. Parte B
Escribir en pantalla los
números del uno al tres
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
:=
Módulo 3
Constructores
Básicos. Parte B
Programa
(Diagrama de Flujo)
:=
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLO
Programa
(pseudocódigo)
Memoria
x: entero
x=1
x
4
???
2
1
3
mientras x  3 haga
escribir x
x = x+1
Pantalla
1 2 3
fin_mientras
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
CICLO HAGA- MIENTRAS
En este ciclo la condición se evalúa después de
ejecutar el bloque de instrucciones, por lo
tanto, el bloque se ejecuta por lo menos una
vez y se repite en caso que la evaluación de la
condición sea verdadero.
“Veo el arco iris
mientras llueve y hace sol”
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
CICLO HAGA - MIENTRAS
PSEUDOCODIGO
DIAGRAMA DE FLUJO
haga
<bloque de
instrucciones>
mientras <condición>
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
Módulo 3
Constructores
Básicos. Parte B
Escribir en pantalla los
números del uno al tres
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
:=
Módulo 3
Constructores
Básicos. Parte B
Programa
(Diagrama de Flujo)
:=
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLO
Programa
(pseudocódigo)
x: entero
x=1
haga
escribir x
x = x+1
Memoria
x
4
???
2
1
3
Pantalla
1 2 3
mientras x < 4
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
CICLO PARA
Módulo 3
Constructores
Básicos. Parte B
Ejecuta un conjunto de instrucciones un
número determinado de veces. Ese
número es controlado por una variable
contadora (entera), que toma valores desde
un límite inferior hasta un límite superior.
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
CICLO PARA
Módulo 3
Constructores
Básicos. Parte B
PSEUDOCODIGO
DIAGRAMA DE FLUJO
ENTRADA
para variable limite_inf,
hasta limite_sup
<bloque de instrucciones>
para (<variable> :=
<lim_inf> hasta
<lim_sup>) hacer
<bloque
instrucciones>
fin_para
SALIDA
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
Módulo 3
Constructores
Básicos. Parte B
Realizar la suma de los números
del 1 hasta el N e imprimirla en
pantalla
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
INICIO
Leer N
suma  0
Programa
(Diagrama de Flujo)
Iteración
para i  1, hasta N
:=
suma  suma + i
:=
escribir
suma
FIN
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLO
Programa
(pseudocódigo)
suma, n, i: entero
suma = 0
leer n
para i=1 hasta n
hacer
suma = suma+i
fin_para
escribir suma
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Memoria
suma i ??? n
S
X4
xxx
0 xxx
1
3
6
1 xxx
2
3
3
6
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
TIPOS DE VARIABLES
• Variables Contadoras
• Variables Acumuladoras
• Variables Bandera
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
VARIABLES CONTADORAS
Se usan dentro de un ciclo para
CONTAR ( llevar la cuenta de
algo). Son de tipo entero
Ejemplo: Una variable de control en un
ciclo para.
1
ó
1
Generalmente
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
Módulo 3
Constructores
Básicos. Parte B
Leer números mientras una variable
contadora sea positiva
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLO
i, n: entero
i=5
mientras i >= 1
hacer
leer n
escribir n
i=i-2
fin_mientras
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Memoria
i
n
xxx
-1
1 xxx
3
5
7
0
2
2 0 7
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
VARIABLES ACUMULADORAS
Se usan dentro de un ciclo para
ACUMULAR (totalizar alguna cuenta).
Almacenan valores numéricos (entero o
real)
ó
Generalmente
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
Módulo 3
Constructores
Básicos. Parte B
Realizar la suma de i al cuadrado
para los números del 1 al 3
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLO
i, suma: entero
i=1
suma = 0
mientras i <= 3 hacer
suma = suma + i*i
i=i+1
fin_mientras
escribir suma
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Memoria
i
suma
xxx
3
2
1
4
xxx
14
0
5
1
14
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
VARIABLES BANDERA
Se usan dentro de un ciclo para
determinar si este continúa iterando o
no. Generalmente son de tipo booleano
o entero.
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
Módulo 3
Constructores
Básicos. Parte B
Leer un entero positivo y
determinar si tiene
divisores exactos
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO
n, d: entero
flag: booleano
leer n
d=2
flag = falso
mientras (~flag) & (d < n)
hacer
si n mod d = 0 entonces
flag = verdadero
fin_si
d = d+ 1
fin_mientras
si (flag) entonces
escribir “Divisor exacto”
fin_si
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 3
Constructores
Básicos. Parte B
Memoria
n
d
xx
4
xx
3
2
flag
verdadero
falso
xxx
Divisor
exacto
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
CORRESPONDENCIA ENTRE
CICLOS
Correspondencia entre el ciclo
mientras y el ciclo haga-mientras
mientras <condición>
haga
hacer
<bloque>
<bloque>
mientras (<condición>)
fin_mientras
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
CORRESPONDENCIA ENTRE EL
CICLO PARA Y EL CICLO MIENTRAS
para <variable> := <lim_inf> hasta <lim_sup>
hacer
<bloque>
fin _para
<variable> := <lim_inf>
mientras <variable> <= <lim_sup>
hacer
<bloque>
<variable> := <variable> +1
fin _mientras
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLO CORRESPONDENCIA
ENTRE CICLOS
Leer 5 números correspondientes
a las notas de un estudiante
del curso e imprimirlas en
pantalla
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
EJEMPLO “PARA”
Programa
(pseudocódigo)
i: entero
x: real
i=1
para i = 1 hasta 5
hacer
leer x
escribir x
i = i+1
fin_para
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Módulo 3
Constructores
Básicos. Parte B
Memoria
i
4
6
5
???
2
1
3
Pantalla
5 3.5 4
2.5 4.5
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLO “MIENTRAS”
Programa
(pseudocódigo)
i: entero
x: real
i=1
mientras i  5
hacer
leer x
escribir x
i = i+1
fin_mientras
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
Memoria
i
4
6
5
???
2
1
3
Pantalla
3 2.5 4
4.5 5
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLO “HAGA MIENTRAS”
Programa
(pseudocódigo)
i: entero
x: real
i=1
haga
leer x
escribir x
i = i+1
Memoria
i
4
6
5
???
2
1
3
4 4.5 3.9
4.5 5
mientras i  5
fin
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
TRADUCCION MIENTRAS
PSEUDOCODIGO
mientras <condición> hacer
<bloque instrucciones>
fin_mientras
CODIGO
while(<condición>)
{
<bloque instrucciones>
}
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
TRADUCCION HACER MIENTRAS
PSEUDOCODIGO
haga
<bloque instrucciones>
mientras <condición>
CODIGO
do
{
<bloque instrucciones>
}
while(<condición>);
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
TRADUCCION PARA
PSEUDOCODIGO
para (i := <lim_inf> hasta <lim_sup>) hacer
<bloque instrucciones>
fin_para
CODIGO
for (i = <lim_inf>; i <= <lim_sup>; i ++)
{
<bloque instrucciones>
}
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
EJEMPLOS EN C++
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Módulo 3
Constructores
Básicos. Parte B
FIN
Gracias por la atención
prestada
Facultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual
2008
Descargar

Historia de la Computación - Departamento de Ingeniería de