Title: ESTRUCTURAS REPETITIVAS
1ESTRUCTURAS REPETITIVAS
El que entendió entendió
2MENU DEL DIA
- Recorderis clase anterior
- Ciclos
3RECORDERIS CLASE ANTERIOR
condición
Instrucciones falso
Instrucciones verdadero
SI (condición) Instrucciones_verdadero DE_LO_C
ONTRARIO Instrucciones_falso FIN_SI
4EJEMPLO REPASO 1
- En un juego de preguntas que se responde SI o NO,
gana quien responda correctamente las tres
preguntas. Se responde mal cualquiera de ellas,
ya no se pregunta la siguiente y termina el
juego. Las preguntas son - Simon Bolivar liberto a Colombia?
- Camilo Torres fue un Guerrillero?
- El binomio de oro es un grupo de musica
vallenata? - Diseñe el registro de entrada
- Solución
- Codificación a mano ejemplo_repaso1.txt
- Codificación en pseint ejemplo_repaso1
- Nota En estas diapositivas se muestra la
codificación del ejemplo a mano levemente
modificado (Solamente en los mensajes de
escriba) para que cupiera
5EJEMPLO REPASO 1
algoritmo (ejemplo1) variables entero
respuesta INICIO ESCRIBA('-----------
--------------------------------------------------
--------') ESCRIBA('QUIEN QUIERE SER
MILLOSNARIO') ESCRIBA('-------------------------
--------------------------------------------')
ESCRIBA('Hola, les habla Pablo Laserna Philips')
ESCRIBA('A las siguientes preguntas digite 1 si
la respues es si o 0 si es no') ESCRIBA('1.
Simon Bolivar liberto a Colombia?')
LEA(respuesta) SI(respuesta 1) ENTONCES
ESCRIBA('2. Camilo Torres fue un
guerrillero?') LEA(respuesta) SI(respuesta
1) ENTONCES ESCRIBA('3. El binomio de oro
es un grupo de musica vallenata?')
LEA(respuesta) SI(respuesta 1) ENTONCES
ESCRIBA('Felicitaciones, gano una lechona')
SI_NO ESCRIBA('Hay que lastima, solo gana
un pase para ver alumbrados en chiva')
FIN_SI SI_NO ESCRIBA('Hay que
lastima,tome un pase para que vaya a pollos
Mario') FIN_SI SI_NO
ESCRIBA('Lamentablemente ha sido eliminado, tome
una porción de natilla') FIN_SI
FIN_INICIO fin(ejemplo1)
6EJEMPLO REPASO 1
7EJEMPLO REPASO 2
- Una frutería ofrece las manzanas con descuento
según la siguiente tabla - Determinar cuanto pagará una persona que compre
manzanas en esa frutería -
de manzanas compradas de descuento
0 -2 0
3 - 5 10
6 -10 15
11 en adelante 20
- Solución
- Codificación en pseint ejemplo_repaso2
8EJEMPLO REPASO 2
Si ((numApplesgt0) (numAppleslt2)) Entonces
descuentolt-0 Sino Si numAppleslt5 Entonces
descuentolt-0.1 Sino Si numAppleslt10
Entonces descuentolt-0.15 Sino
descuentolt-0.2 FinSi FinSi FinSi totallt-tot
al - descuentototal
9EJEMPLO REPASO 2
10CICLOS
- Que es un ciclo?
- Instrucción MIENTRAS
- Contadores
- Acumuladores
- Contadores y acumuladores
- Instrucción PARA.
- Ejercicios de repaso.
11QUE ES UN CICLO?
- Palabra clave Repetición
- Conjunto de sentencias que se repiten siempre que
una condición dada sea cierta. - Ejemplo Realizar un algoritmo que sume los 10
primeros números (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).
12QUE ES UN CICLO?
- Solución sin ciclos
- Que sucede para el caso en el cual se cambie el
enunciado del problema y ya se quieran sumar los
mil primeros números.
Algoritmo(suma_numeros) variables entera
suma 0 INICIO suma 0 1 2 3 4 5
6 7 8 9 ESCRIBA(La suma de los primeros
10 numeros es,suma) FIN Fin(suma_numeros)
13QUE ES UN CICLO?
- Siguiendo mi solución anterior
- Y si el problema cambia a los primeros 10000
números. No puede ser, nooooo!!!
Algoritmo(suma_numeros) variables entera
suma 0 INICIO suma 0 1 . . . 997
998 999 ESCRIBA(La suma de los primeros 10
numeros es,suma) FIN Fin(suma_numeros)
14QUE ES UN CICLO?
- La solución a todo esto esta en la implementación
de ciclos.
Algoritmo(suma_numeros_ciclos) variables
entera suma 0, numeroFinal 10, i 0 INICIO
MIENTRAS (i lt numeroFinal) HAGA suma
suma i i i 1 FIN_MIENTRAS FIN Fin(su
ma_numeros_ciclos)
15INSTRUCCIÓN MIENTRAS (1)
- Esta condición repite el cogido (secuencia)
contenido adentro siempre que la condición
(expresión) sea verdadera.
16INSTRUCCIÓN MIENTRAS (2)
- Condicion Expresión que puede tomar el valor de
falso o verdadero, ejemplo - a gt 10
- b lt -5
- c 3
- (a lt -4)(m 2)
- Instrucciones Conjunto de sentencias que se
encuentran dentro del bloque del ciclo, ejemplo - x1 (-b (b2-4ac)(1/2))/2
- x2 (-b - (b2-4ac)(1/2))/2
- m ((a b)2)/(a-b(cf2))
- a 3
- z z 1.
- Estructuras de control (condicionales, ciclos)
Bloque del ciclo
17INSTRUCCIÓN MIENTRAS (3)
DIAGRAMA DE FLUJO
PSEUDOCODIGO
18INSTRUCCIÓN MIENTRAS (6)
- PARA HACER (Ejemplo1.dfd)
- Hacer la prueba de escritorio del diagrama de
flujo. - Realizar la codificación en Pseudocódigo (En
la forma vista en clase). - Realizar la codificación en Pseudocódigo usando
PSeInt. - Mostrar el ejemplo en DFD.
19INSTRUCCIÓN MIENTRAS (6)
- Archivos
- Dfd ejemplo1.dfd.
- Pseint ejemplo1
Algoritmo(ejemplo1) variables entera b 2,
a 4 INICIO MIENTRAS (a lt 10) HAGA a a
1 b (-2)b FIN_MIENTRAS FIN Fin(ejempl
o1)
20INSTRUCCIÓN MIENTRAS (7)
- Archivos
- Dfd ejemplo2.dfd
- Pseint ejemplo2
Algoritmo(ejemplo2) variables entera b 2,
a 4 INICIO MIENTRAS (a lt 10) HAGA a a
2 b (-2)b FIN_MIENTRAS FIN Fin(ejempl
o2)
21INSTRUCCIÓN MIENTRAS (8)
- Archivos
- Dfd ejemplo3.dfd.
- Pseint ejemplo3
Algoritmo(ejemplo3) variables entera b 2,
a 4 INICIO MIENTRAS (a gt -10) HAGA a
a - 3 b (-2)b FIN_MIENTRAS FIN Fin(ejem
plo3)
22INSTRUCCIÓN MIENTRAS (9)
- Archivos
- Dfd ejemplo4.dfd.
- Pseint ejemplo4
Algoritmo(ejemplo4) variables entera b 2,
a 4 INICIO MIENTRAS (a lt 10) HAGA b
(-2)b FIN_MIENTRAS FIN Fin(ejemplo4)
23CONTADORES
- Ejemplo
- Hacer un algoritmo que vaya incrementando una
variable que empieza en cero 0 y termina en 9,
debe mostrar cada incremento (ejemplo5).
Algunos ejemplos j j 2 i i 1 carros
carros 1
CONTADOR Un contador es una variable que se
incrementa o disminuye en un valor constante. Un
contador tiene la siguiente forma contador
contador ltvalor constantegt
24CONTADORES
- Ejemplo
- Hacer un algoritmo que vaya incrementando una
variable que empieza en cero 0 y termina en 9,
debe mostrar cada incremento (ejemplo5).
algoritmo(ejemplo5) variables entera i
0 INICIO MIENTRAS (i lt 10) HAGA i i
1 ESCRIBA(i va en ,i)
FIN_MIENTRAS FIN Fin(ejemplo5)
25ACUMULADORES
- Ejemplo
- Modifique el ejemplo anterior de tal manera que
realice la suma de los 10 primeros números
(ejemplo 6).
Algunos ejemplos acum acum i suma suma
algo resta resta algo cerveza cerveza
tragos
ACUMULADOR Un acumulador o totalizador es una
variable cuya misión es el almacenamiento de
cantidades variables de procesos sucesivos. La
diferencia con el contador radica en que el
incremento o disminución del acumulador es
variable, la forma general de un acumulador es la
siguiente acumulador acumulador ltvalor
constantegt
26ACUMULADORES
- Ejemplo
- Modifique el ejemplo anterior de tal manera que
realice la suma de los 10 primeros números
(ejemplo 6).
algoritmo(ejemplo6) variables entera i
0,suma 0 INICIO MIENTRAS (i lt 10) HAGA
suma suma i ESCRIBA(i va en ,i, y
la suma en ,suma) i i 1
FIN_MIENTRAS FIN Fin(ejemplo5)
27CONTADORES Y ACUMULADORES
- Nota
- Antes de ser usados, tanto los contadores como
los acumuladores deben ser inicializados a un
valor conocido (generalmente 0).
dinero_Homero dinero_Moe barriles_cerveza t_cerv
eza_vendida
kw_hora_consumidos Total_kw
28ESQUEMAS DE SOLUCION CON CICLOS
- Existen dos esquemas de solución con ciclos, el
esquema cuantitativo y el esquema cualitativo. - El factor clave radica en si se tiene o no un
conocimiento previo de las iteraciones
(repeticiones) que debe realizar el ciclo. - En si, lo que se tiene que tener bien en claro es
como proceder si se conoce o no el numero de
iteraciones.
29ESQUEMA CUANTITATIVO
- Es utilizado cuando se conoce el numero de veces
que debe repetirse un ciclo determinado.
Ejemplo Realizar un algoritmo que sume N
números introducidos por teclado.
30ESQUEMA CUANTITATIVO
Ejemplo Realizar un algoritmo que sume N
números introducidos por teclado.
algoritmo(ejemplo7) variables entera N, i
0 real suma 0, num INICIO ESCRIBA(Digite
la cantidad de números a leer ) LEA(N)
MIENTRAS (i lt N) HAGA ESCRIBA(Digite el
numero ) LEA(num) suma suma num
i i 1 FIN_MIENTRAS ESCRIBA(La suma
de los numeros metidos da ,suma) FIN Fin(ejemplo
7)
31ESQUEMA CUANTITATIVO
Ejemplo Realizar un algoritmo que sume N
números introducidos por teclado.
32ESQUEMA CUALITATIVO
- Esquema utilizado cuando no se conoce el numero
de veces que debe repetirse la secuencia de
determinado ciclo.
- La resolución de este tipo de problemas puede ser
llevada a cabo de dos maneras - Preguntando antes de cada iteración.
- Haciendo uso de un registro centinela.
33ESQUEMA CUALITATIVO
- Ejemplo
- Mateo esta recaudando impuestos para los
romanos, al iniciar el día laboral abre caja en
0, a medida que van llegando usuarios va
acumulando la cantidad hasta que finalizar el
día. Realizar un programa que le ayude a Mateo a
llevar esta tarea.
34ESQUEMA CUALITATIVO SOLUCION PREGUNTANDO ANTES
DE CADA ITERACION
- El control del bucle usando este método se
realiza preguntando al usuario si existen mas
datos.
algoritmo(impuestos1) variables entera total
0, recaudo, ban INICIO ESCRIBA(Digite 1 si
hay un judio a quien cobrarle u otra cosa si no
) LEA(ban) MIENTRAS (ban 1) HAGA
ESCRIBA(Meta el recaudo ) LEA(recaudo)
total total recaudo ESCRIBA(Digite 1
si hay un judio a quien cobrarle u otra cosa si
no ) LEA(ban) FIN_MIENTRAS
ESCRIBA(El total de impuestos recolectados fue
de ,total) FIN Fin(impuestos1)
35ESQUEMA CUALITATIVO SOLUCION PREGUNTANDO ANTES
DE CADA ITERACION
- El control del bucle usando este método se
realiza preguntando al usuario si existen mas
datos. (Archivo pseint ejemplo8).
36ESQUEMA CUALITATIVO HACIENDO USO DE UN REGISTRO
CENTINELA
- En este caso la terminación del bucle se hace por
medio de un centinela. Un registro centinela es
un valor especial usado para indicar el final de
una lista de datos.
algoritmo(impuestos2) variables entera total
0, recaudo INICIO ESCRIBA(Digite el valor
del recaudo o -1 para terminar )
LEA(recaudo) MIENTRAS (recaudo gt -1) HAGA
total total recaudo ESCRIBA(Digite el
valor del recaudo o -1 para terminar )
LEA(recaudo) FIN_MIENTRAS ESCRIBA(El total
de impuestos recolectados fue de
,total) FIN Fin(impuestos2)
37ESQUEMA CUALITATIVO HACIENDO USO DE UN REGISTRO
CENTINELA
- En este caso la terminación del bucle se hace por
medio de un centinela. Un registro centinela es
un valor especial usado para indicar el final de
una lista de datos. (Archivo pseint ejemplo9).
38ESQUEMA CUALITATIVO HACIENDO USO DE UN REGISTRO
CENTINELA
- En este caso la terminación del bucle se hace por
medio de un centinela. Un registro centinela es
un valor especial usado para indicar el final de
una lista de datos.
- Ejemplo
- Hacer un algoritmo que encuentre la suma y el
promedio de un grupo de datos enteros positivos
que entran de a uno por registro.
39ESQUEMA CUALITATIVO HACIENDO USO DE UN REGISTRO
CENTINELA
Ejemplo Hacer un algoritmo que encuentre la
suma y el promedio de un grupo de datos enteros
positivos que entran de a uno por registro.
algoritmo(datos) variables entera suma 0,
dato, numdatos 0 real prom INICIO
ESCRIBA(Digite el dato o -1 para terminar )
LEA(dato) MIENTRAS (dato gt -1) HAGA suma
suma dato numdatos numdatos 1
ESCRIBA(Digite el dato o -1 para terminar )
LEA(dato) FIN_MIENTRAS prom
suma/numdatos ESCRIBA(Suma ,suma)
ESCRIBA(Promedio ,prom) FIN Fin(impuestos2)
40ESQUEMA CUALITATIVO HACIENDO USO DE UN REGISTRO
CENTINELA
Archivo pseint ejemplo10
41EJEMPLOS
- Ejemplo (ejemplo resuelto N18 libro Efrain
Oviedo - modificado) - Para cada de los estudiantes de una universidad,
donde cada uno cursa 4 materias se tienen los
siguientes datos - Código del estudiante.
- Nota materia 1.
- Nota materia 2.
- Nota materia 3.
- Nota materia 4.
- Hacer un algoritmo que encuentre y despliegue
para cada estudiante el promedio crédito.
Archivo pseint ejemplo11
42EJEMPLOS
43EJEMPLOS
Ejemplo 2 (ejemplo resuelto N20 libro Efrain
Oviedo) En un supermercado un ama de casa pone
en su carrito los artículos que va tomando de los
estantes. La señora quiere asegurarse de que el
cajero le cobre bien lo que ella ha comprado por
lo cual cada vez que ella compra un articulo
distinto le coloca un código numérico mayor que
0, anota la cantidad de artículos iguales y su
precio y, determina cuanto dinero gastara en este
articulo a esto le suma lo que iría gastando en
los demás artículos, hasta que decide que ya tomo
lo que necesitaba. Hacer un algoritmo que le
muestre a la señora el código del articulo, la
cantidad de artículos de cada especie, el importe
total por articulo y el importe total de la
compra.
Archivo pseint ejemplo12
44EJEMPLOS
45INSTRUCCIÓN HAGA
- La instrucción HAGA es como la instrucción
MIENTRAS solo que a diferencia de esta maneja la
inicialización y decremento de manera automática.
46INSTRUCCIÓN HAGA (2)
- Condicion A diferencia del caso MIENTRAS, en el
HAGA la condición es manejada de manera
automática de tal manera que cuando el valor de
VC supera (o es menor en el caso contrario) al
valor de LF se sale del ciclo - VC Variable de control del ciclo.
- LI Valor inicial de VC.
- LF Valor final de VC.
- INC Valor de incremento o disminución de la
variable de control
- Instrucciones Conjunto de sentencias que se
encuentran dentro del bloque del ciclo, ejemplo - a 3
- z z 1
Bloque del ciclo
47INSTRUCCIÓN HAGA (2)
48INSTRUCCIÓN HAGA (3)
- PARA HACER
- Hace lo mismo que en el caso de la instrucción
mientras.
49EJERCICIOS DE REPASO
- Ejercicios
- Hacer un algoritmo que se ejecute hasta que el
usuario introduzca una velocidad mayor que VMAX
(asuma VMAX igual a 80). El algoritmo al final
debe indicar que se excedió la velocidad y la
cantidad en la cual la velocidad máxima fue
excedida. - Hacer un algoritmo que cuente el numero de
automóviles. El conteo se debe realizar por medio
de una bandera.
50EJERCICIOS DE REPASO
- Dadas N notas de un estudiante del curso de
Informática 1, calcular - Cuantas notas tiene perdidas.
- Cuantas notas tiene ganadas.
- Cual es el promedio de notas.
- Cual fue la menor nota.
- Cual fue la mayor nota.
- Elabore un algoritmo que lea un numero entero n y
que imprima todos los múltiplos de 3 hasta n. - Elaborar un algoritmo que encuentre el mayor de
un grupo de datos positivos.
51MAS EJERCICIOS DE REPASO
- Dados N valores, diseñe un algoritmo que haga el
siguiente proceso - Si el valor es menor que cero, calcular su cubo.
- Si el valor esta entre 0 y 100, calcular su
cuadrado. - Si el valor esta entre 101 y 1000 calcular su
raiz cuadrada.
52(No Transcript)