Tema4 PDF
Tema4 PDF
Tema4 PDF
I
n
t
r
o
d
u
z
c
a
t
r
e
s
n
u
m
e
r
o
s
)
L
e
e
r
(
a
,
b
,
c
)
S
I
a
>
b
E
N
T
O
N
C
E
S
/
*
1
*
/
S
I
a
>
c
E
N
T
O
N
C
E
S
m
a
y
=
a
S
I
N
O
m
a
y
=
c
F
I
N
S
I
S
I
N
O
S
I
b
>
c
E
N
T
O
N
C
E
S
m
a
y
=
b
S
I
N
O
m
a
y
=
c
F
I
N
S
I
F
I
N
S
I
/
*
1
*
/
E
s
c
r
i
b
i
r
(
m
a
y
)
F
I
N
M
A
Y
O
R
E
j
e
m
p
l
o
:
A
l
g
o
r
i
t
m
o
p
a
r
a
d
e
t
e
r
m
i
n
a
r
e
l
m
a
y
o
r
d
e
t
r
e
s
v
a
l
o
r
e
s
Introduccin a los computadores
Estructuras Selectivas
? Matiz referente a la legibilidad
Los siguientes grupos de sentencias ejecutan lo mismo:
CASO Operador SEA
+ : Resultado = a+b
- : Resultado = a-b
* : Resultado = a*b
/ : Resultado = a/b
SINO
Escribir( Operador Indefinido)
FINCASO
Introduccin a los computadores
Estructuras Selectivas
SI Operador ==+ENTONCES
Resultado=a+b
SINO
SI Operador==- ENTONCES
Resultado=a-b
SINO
SI Operador==* ENTONCES
Resultado= a*b
SINO
SI Operador==/ENTONCES
Resultado=a/b
SINO
Escribir(Operador Indefinido)
FINSI
FINSI
FINSI
FINSI
Insertar los nmeros de las sentencias
SI entre comentarios
Introduccin a los computadores
Estructuras Selectivas (C)
if (CondControl) {
accionesSI
}
accionseguida
if (CondControl) {
accionesSI
}
else {
accionesEOC
}
accionseguida
Introduccin a los computadores
Estructuras Selectivas (C)
if (CondControl) {
accionesSI
}
else if ( CondControl1) {
accionesCC1
}
else if (CondControl2) {
accionesCC2
}
else {
accioneselse
}
accionseguida
Introduccin a los computadores
Estructuras Selectivas (C)
switch (expresion){
case exp-const: proposiciones
break;
case exp-const: proposiciones
break;
case exp-const: proposiciones
break;
default : proposiciones
break;
}
Introduccin a los computadores
Estructuras Repetitivas
Necesarias en la mayora de los algoritmos.
Estructura repetitiva = bucle = lazo.
Iteracin
Ejecutan un conjunto de operaciones un nmero
determinado o indeterminado a priori de veces.
Cuantas veces se ejecutan las instrucciones?
Condicin de control
Introduccin a los computadores
Estructuras Repetitivas
A) Nmero de veces indeterminado a priori.
Estructura MIENTRAS
Sintaxis :
MIENTRAS CondControl HACER
Acciones
FINMIENTRAS
Introduccin a los computadores
Estructuras Repetitivas
Acciones
CondControl
falso
Diagrama de flujo
verdad
ero
Introduccin a los computadores
Estructuras Repetitivas
Condicin de control del bucle = expresin lgica
Las sentencias que forman el cuerpo del bucle se ejecutan 0
o ms veces.
BUCLE PREPRUEBA.
Condicin verdadero seguir ejecutando el cuerpo
Algunos ejemplos de bucles con nombre:
Bucle controlado por contador
Bucle controlado por centinela
Bucle contador
Introduccin a los computadores
Estructuras Repetitivas
Bucle controlado por contador
Se ejecuta un nmero determinado de veces.
Variable de control del bucle
inicializacin, evaluacin, incremento
i=1 /*Inicializacin*/
MIENTRAS i<10 HACER /*Evaluacin*/
acciones
i=i+1 /*Incremento*/
FINMIENTRAS
Cuantas veces se ejecuta el anterior bucle?
Introduccin a los computadores
Estructuras Repetitivas
Bucle controlado por centinela
Centinela = valor especial que controla el final del bucle
Es necesario actualizar el centinela en cada iteracin
LECTURA ADELANTADA
Leer(centinela)/*lectura adelantada*/
MIENTRAS centinela!=0 HACER
acciones
Leer(centinela)/*actualizacin*/
FINMIENTRAS
Introduccin a los computadores
Estructuras Repetitivas
Bucle contador
til cuando se quiere contar el nmero de veces que se
ejecuta el bucle.
La expresin lgica no depende del contador
cont=0
Leer(ch)
MIENTRAS ch!= . HACER
Escribir(ch)
cont=cont+1
Leer(ch)
FINMIENTRAS
Introduccin a los computadores
Estructuras Repetitivas
Estructura REPETIR
Sintaxis :
REPETIR
Acciones
HASTA QUE CondControl
Introduccin a los computadores
Estructuras Repetitivas
Diagrama de flujo.
Acciones
CondControl
falso
verdad
ero
Introduccin a los computadores
Estructuras Repetitivas
Condicin de control del bucle = expresin lgica
Las sentencias que forman el cuerpo del bucle se
ejecutan 1 o ms veces.
BUCLE POSTPRUEBA.
Condicin falso seguir ejecutando el cuerpo
Menos general que el bucle MIENTRAS.
Introduccin a los computadores
Estructuras Repetitivas
B) Nmero de veces determinado a
priori.
Estructura PARA
Sintaxis :
PARA vcb=vi HASTA vf ( PASO p)HACER
acciones
FINPARA
Introduccin a los computadores
Estructuras Repetitivas
Cmo se ejecuta?
Ejemplo: Suma=0
PARA i= 1 HASTA 10 HACER
Leer(valor)
Escribir(valor)/*Eco*/
Suma=Suma + valor
FINPARA
Introduccin a los computadores
Estructuras Repetitivas
?La vcb se incrementa (decrementa) automticamente.
?El valor de la vcb puede usarse, pero no cambiarse
dentro del bucle.
?La vcb queda indefinida al salir del bucle.
?La vcb puede ser de cualquier tipo ordinal.
?El bucle se ejecuta en su totalidad.
?Los valores de vi y vf se evalan una sola vez.
Introduccin a los computadores
Estructuras Repetitivas
Fcilmente podemos disear un bucle MIENTRAS
equivalente
vcb=vi
MIENTRAS (vcb<=vf) HACER
/*si paso negativo MIENTRAS (vcb>=vf)*/
acciones
vcb=vcb + paso
FINMIENTRAS
Igual podemos construir un bucle REPETIR
Introduccin a los computadores
Estructuras Repetitivas
Ejemplo: Calcular el factorial de un nmero.
ALGORITMO Factorial;
VAR
Z factorial, n, indice
INICIO
factorial=1
Leer(n)
PARA indice= 2 HASTA n HACER
factorial=factorial * indice
FINPARA
Escribir(factorial)
FIN Factorial
Introduccin a los computadores
Estructuras Repetitivas
Ejemplo:Sumar los n ( n>=0 ) primeros nmeros naturales.
ALGORITMO Sumanaturales
VAR
N num,suma,contador
INICIO
Escribir(Introduzca el nmero n:)
Leer(num)
suma=0
PARA contador= 1 HASTA num HACER
suma=suma+contador
FINPARA
Escribir(suma)
FIN Sumanaturales
Introduccin a los computadores
Estructuras Repetitivas
Anidamientos
Al igual que en las estructuras selectivas, no hay
restricciones en las sentencias del cuerpo del bucle
La estructura interna debe de estar incluida en la externa
totalmente
Introduccin a los computadores
Estructuras Repetitivas
La vcb toma valores de modo tal que por cada valor de la
variable control del bucle del ciclo externo se debe ejecutar
totalmente el bucle interno.
Ejemplo:
PARA i= 1 HASTA 20 HACER
PARA j= 1 HASTA 10 HACER
acciones
FINPARA
FINPARA
Introduccin a los computadores
Sentencias Repetitivas
Ejemplo:Algoritmo que escriba un tringulo de
nmeros. La altura se introduce como dato y debe ser
menor de 10.
Con altura=4 quedara como sigue:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
Observaciones:
Una iteracin por cada lnea de dgitos
Cada lnea se realiza en dos mitades:ejemplo:la lnea 3
123--21
Introduccin a los computadores
Estructuras Repetitivas
ALGORITMO triangulo
CONST
C consblanco=
VAR
Z altura,blancos,fila
Z mitad1,mitad2
INICIO
Leer(altura)
PARA fila=1 HASTA altura HACER
PARA blancos=1 HASTA (altura-fila) HACER
Escribe(consblanco)
FINPARA
PARA mitad1=1 HASTA fila HACER
Escribe(mitad1)
FINPARA
PARA mitad2=fila-1 HASTA 1 (PASO -1) HACER
Escribe(mitad2)
FINPARA
Saltar_Linea
FINPARA
FIN triangulo
Introduccin a los computadores
Estructuras Repetitivas (C)
while (expresion) {
acciones
}
for (expr1;expr2;expr3) {
acciones
}
do {
acciones
} while (expresion);
Introduccin a los computadores
Programacin Estructurada
BOHM Y JACOPINI: 1.965
Bases de la Programacin Estructurada
"Se demuestra que todo problema que pueda resolverse en un numero
finito de pasos puede expresarse usando nicamente 3 tipos de
estructuras o bloques fundamentales con una sola entrada y una sola
salida para organizar dichos pasos:
- Una caja proceso o de tratamiento secuencial.
- Un mecanismo de decisin binaria.
- Un mecanismo de bucle generalizado."
Introduccin a los computadores
Bibliografa
Programacin en C++. Algoritmos, estructuras de datos y
obj etos. L. Joyanes. McGraw-Hill, 2000
Cmo programar en C/ C++. H.M. Deitel, P.J. Deitel. Prentice
Hall, 1995
Pascal. Dale/Orshalick. Ed. McGrawHill 1986
Programacin I . Jos A. Cerrada y Manuel Collado. U.N.E.D.
1993.
Fundamentos de Programacin. Joyanes Aguilar. McGrawHill.
2 Edicin, 1996.