ESTRUCTURAS DE REPETICIÓN - cs.buap.mxmtovar/doc/rep.pdf · En equipo de 4 diseña el Diagrama de...
Transcript of ESTRUCTURAS DE REPETICIÓN - cs.buap.mxmtovar/doc/rep.pdf · En equipo de 4 diseña el Diagrama de...
ESTRUCTURASDE
AREA PROGRAMACIÓN 1
DE REPETICIÓN
Estructuras de repetición
l Repetir:l Ejecutar una instrucción o conjunto de instrucciones y luego regresar y ejecutarla (s) una y otra vez hasta
AREA PROGRAMACIÓN 2
ejecutarla (s) una y otra vez hasta terminar la tarea.
Aplicaciones
La introducción de muchos datos.
La clasificación periódica de una gran colección de datos.
AREA PROGRAMACIÓN 3
colección de datos.
Aplicaciones
l La búsqueda de un dato en una gran colección.
l Fórmulas científicas que sólo se pueden calcular por aproximaciones sucesivas.
AREA PROGRAMACIÓN 4
calcular por aproximaciones sucesivas.
Mecanismos de iteración
1. Para todos los valores de la progresión.
2. Mientras se valida una condición.
AREA PROGRAMACIÓN 5
3. Repetir- hasta que se satisfaga una condición.
PARA
l Es usado cuando se conoce de antemano, el número de veces que debe repetirse una instrucción o conjunto de ellas.
AREA PROGRAMACIÓN 6
ellas.
PARA
l Los valores de la progresión deben ser asignados a una variable, la cual sedenomina variable de control.
AREA PROGRAMACIÓN 7
Variables contadoras
l Se usan para contar, por lo tanto deben ser de tipo entero.
l Ejemplo: Variable de control en un Ciclo Para.
AREA PROGRAMACIÓN 8
Para.
Variables acumuladoras
l La función de una variable acumuladora es almacenar valores numéricos que generalmente se Suman (o multiplican) en cada iteración.
AREA PROGRAMACIÓN 9
en cada iteración. l La variable debe ser de tipo entero o real.
Variables bandera
l Utilizada dentro de la condición de un ciclo, para determinar cuándo un Ciclo se sigue iterando o cuando no.
AREA PROGRAMACIÓN 10
l Debe ser de tipo booleano o entero.
Para
<variable=<valor_ inicial> Valor_final>[incremento <valor_incremento> | Decremento <valor_decremento>]
AREA PROGRAMACIÓN 11
<bloque_de_instrucciones>
SINO
Pseudo código
l Para <Variable de control> <valor_inicial> hasta <valor_final> hacer
acción 1
...
AREA PROGRAMACIÓN 12
...acción n
Fin_para
Ejemplo: Imprime los primeros 10 números naturales
SI Contador =1 10incremento 1
Inicio
AREA PROGRAMACIÓN 13
NO
incremento 1
Escribir(contador)
Fin
Pseudo código
l Nombre del algoritmo: Numeros_del_1_al_10
Variables: contador Tipo enteroInicio
Para contador ← 1 hasta 10 incremento 1 Hacer
AREA PROGRAMACIÓN 14
Para contador ← 1 hasta 10 incremento 1 Hacer
escribir( contador )Fin_para
Fin
Traza (Prueba de escritorio)
Secuencia: Acción (instrucción):
Valor de: contador
1 contador ← 1 1
2 (Comprobar si contador es menor o igual que 10 ) 1
contador sí es menor o igual que 10. Inicio de la iteración 1.
3 escribir( contador ) 1
Fin de la iteración 1.
4 (Sumar a contador el valor 1 ) 2
5 (Comprobar si contador es menor o igual que 10 ) 2
contador sí es menor o igual que 10.
AREA PROGRAMACIÓN 15
contador sí es menor o igual que 10. Inicio de la iteración 2.
6 escribir( contador ) 2
Fin de la iteración 2.
...
n-3 (Comprobar si contador es menor o igual que 10 ) 10
contador sí es menor o igual que 10. Inicio de la iteración 10.
n-2 escribir( contador ) 10
Fin de la iteración 10.
n-1 (Sumar a contador el valor 1 ) 11
n (Comprobar si contador es menor o igual que 10 ) 11
contador no es menor o igual que 10.
El bucle finaliza después de 10 iteraciones.
Ejemplo: Suma los números pares de 0..100
SI par =0100
Inicio
suma=0
AREA PROGRAMACIÓN 16
NO
100incremento 2
Escribir(suma)
Fin
suma=suma+par
Pseudo código
l Nombre del algoritmo: Numeros_del_1_al_100
Variables: suma,par Tipo enteroIniciosuma 0
AREA PROGRAMACIÓN 17
suma 0Para par ← 0 hasta 100 incremento 2 Hacer
suma ← suma + parFIn_paraEscribir(suma)
Fin
Práctica: Equipo de 4
Diseña el Diagrama de flujo y pseudo código para los siguientes ejercicios
AREA PROGRAMACIÓN 18
siguientes ejercicios
Ejercicios
1.Generar los primeros n números pares.2.Generar los primeros n números primos.
3. Obtener el factorial de un número N.
AREA PROGRAMACIÓN 19
3. Obtener el factorial de un número N.4.Obtener los primeros N números de la serie de Fibonacci.
5.Sumar los cuadrados de los primeros N números naturales.
6.La sumatoria ∑=
n
x
x1
Mientras
l Ejecuta un bloque de instrucciones, mientras una expresión lógica dada se cumpla.
AREA PROGRAMACIÓN 20
Mientras
l Si la condición se cumple, el bloque se ejecuta, después, la condición se vuelve a evaluar.
l Si la condición se evalúa la primera vez
AREA PROGRAMACIÓN 21
l Si la condición se evalúa la primera vez como falsa, el bloque de instrucciones no será ejecutado.
Diagrama de Flujo
Mientras<expresión_lógica>
SI
AREA PROGRAMACIÓN 22
<expresión_lógica>
<bloque_de_instrucciones>NO
Pseudo código
Mientras (<expresión_lógica> )<bloque_de_instrucciones>
Fin_mientras
AREA PROGRAMACIÓN 23
Fin_mientras
Ejemplo: Escribe los primeros 10 números enteros
Mientras contador<=10
Inicio
contador=1
No
AREA PROGRAMACIÓN 24
SI
contador<=10
Escribir (contador)
contador=contador+1
Fin
Pseudo código
Nombre del algoritmo: Serie_del_1_al_10Variables: contador Tipo enteroIniciocontador 1
AREA PROGRAMACIÓN 25
contador 1Mientras (contador <= 10) escribir (contador)contador contador + 1
Fin_mientrasfin
Traza (Prueba de escritorio)
S e c u e n c i a :
A c c i ó n ( i n s t r u c c i ó n ) :
V a l o r d e : c o n t a d o r
1 C o n t a d o r ? 1 1
2 ( C o m p r o b a r s i c o n t a d o r < = 1 0 ) 1
L a c o n d i c i ó n e s v e r d a d e r a .
I n i c i o d e l a i t e r a c ió n 1 .
3 e s c r i b i r ( c o n t a d o r ) 1
4 c o n t a d o r ? c o n t a d o r + 1 2
F i n d e l a i t e r a c ió n 1 .
5 ( C o m p r o b a r s i c o n t a d o r < = 1 0 ) 2
L a c o n d i c i ó n e s v e r d a d e r a . I n i c i o d e l a
AREA PROGRAMACIÓN 26
I n i c i o d e l a i t e r a c ió n 2 .
6 e s c r i b i r ( c o n t a d o r ) 2
7 c o n t a d o r ? c o n t a d o r + 1 3
F i n d e l a i t e r a c ió n 2 .
. . .
n - 3 ( C o m p r o b a r s i c o n t a d o r < = 1 0 ) 1 0
L a c o n d i c i ó n e s v e r d a d e r a .
I n i c i o d e l a i t e r a c ió n 1 0 .
n - 2 e s c r i b i r ( c o n t a d o r ) 1 0
n - 1 c o n t a d o r ? c o n t a d o r + 1 1 1
F i n d e l a i t e r a c ió n 1 0 .
n ( C o m p r o b a r s i c o n t a d o r < = 1 0 ) 1 1
L a c o n d i c i ó n e s f a l s a .
E l b u c le f in a l i z a d e s p u é s d e 1 0
i t e r a c io n e s .
Ejemplo: Suma los números pares de 0..100
SI
Inicio
suma=0par= 0
Mientras suma=suma+par
AREA PROGRAMACIÓN 27
SI
NO
Escribir(suma)
Fin
par=par+2
Mientras par<=100suma=suma+par
Pseudo código
l Nombre del algoritmo: Numeros_del_1_al_100Variables: suma,par Tipo enteroIniciopar=0suma =0
AREA PROGRAMACIÓN 28
suma =0Mientras (par <=100) suma ← suma + parpar=par+2
Fin_mientrasEscribir(suma)
Fin
Práctica
l De forma individual analiza los siguientes algoritmos y de ser necesario corrige los errores.
l Debes identificar las tres partes para
AREA PROGRAMACIÓN 29
l Debes identificar las tres partes para cada ciclo de repetición:l Iniciol Actualización de la variable de controll Fin(condicional)
Ejercicio 1: Escribe los primeros 10 enteros
Nombre del algoritmo: Ciclo?Variables: contador Tipo enteroInicio
contador ← 10 Mientras ( contador <= 10 )
AREA PROGRAMACIÓN 30
Mientras ( contador <= 10 )escribir( contador )contador ← contador - 1
Fin_mientrasFin
Ejercicio 2: Escribe los primeros 10 enteros
Nombre del algoritmo: Imprime?Variables: contador Tipo enteroInicio
contador ← 1
AREA PROGRAMACIÓN 31
contador ← 1Mientras ( contador >= 1 )
escribir( contador )contador ← contador - 1
Fin_mientrasFin
Ejercicio 3: Escribe los primeros 10 enteros
Nombre del algoritmo: Ciclo ?Variables: contador Tipo enteroInicio
contador ← 10
AREA PROGRAMACIÓN 32
contador ← 10 Mientras ( contador >= 1 )
escribir( contador )
Fin_mientrasFin
Práctica: en equipo de 4
Diseña el Diagrama de flujo y Pseudo código para los siguientes ejercicios.
AREA PROGRAMACIÓN 33
siguientes ejercicios.
Ejercicios
1. Determinar si un número dado X es múltiplo de otro número dado Y.
2. Determinar los dos números pares más próximos entre los que se encuentra un número entero X dado.
3. Leer N números y obtener el promedio solo de los números pares de la lista.
AREA PROGRAMACIÓN 34
números pares de la lista.4. Introducir un conjunto de M números, determinar la
cantidad de números positivos y negativos del conjunto.
5. La sumatoria∑=
n
x
x1
Hacer..Mientras
l Se ejecuta el bloque de instrucciones y después se evalúa la condición.
AREA PROGRAMACIÓN 35
Hacer..Mientras
l Si es verdadera, se vuelve a ejecutar el bloque de instrucciones.
l Y así sucesivamente, hasta que, la
AREA PROGRAMACIÓN 36
l Y así sucesivamente, hasta que, la condición sea falsa.
Diagrama de Flujo
<bloque_de_instrucciones>
AREA PROGRAMACIÓN 37
<expresión_lógica>SI
NO
Pseudo código
Hacer<bloque_de_instrucciones>
Mientras(<expresión_lógica> )
AREA PROGRAMACIÓN 38
Ejemplo: Escribe los primeros 10 números enteros
Inicio
contador=1
Escribir (contador
AREA PROGRAMACIÓN 39
SI Mientras contador<=10
)
contador=contador+1
Fin
No
Pseudo código
Nombre del algoritmo: Números_del_1_al_10Variables: contador Tipo enteroInicio
contador ← 1 /* Inicialización del contador */
Hacer
AREA PROGRAMACIÓN 40
Hacerescribir ( contador ) /* Salida */contador ← contador + 1 /*
Incremento */Mientras ( contador <= 10 ) /*
Condición */Fin
Traza (Prueba de escritorio)
Secuencia: Acción (instrucción):
Valor de: contador
1 contador ? 1 1
Inicio de la iteración 1.
2 escribir( contador ) 1
3 contador ? contador + 1 2
Fin de la iteración 1.
4 (Comprobar si contador <= 10) 2
La condición es verdadera. Inicio de la iteración 2.
5 escribir( contador ) 2
AREA PROGRAMACIÓN 41
5 escribir( contador ) 2
6 contador ? contador + 1 3
Fin de la iteración 2.
...
n-3 (Comprobar si contador <= 10)
10
La condición es verdadera. Inicio de la iteración 10.
n-2 escribir( contador ) 10
n-1 contador ? contador + 1 11
Fin de la iteración 10.
n (Comprobar si contador <= 10) 11
La condición es falsa.
El bucle finaliza después de 10 iteraciones.
Práctica
En equipo de 4 diseña el Diagrama de flujo y Pseudo código para los siguientes
AREA PROGRAMACIÓN 42
código para los siguientes ejercicios
Ejercicios
1.Obtener el máximo y el mínimo de n números.
2.Realizar la suma de dos números con incrementos de 1.
3.Realizar la resta de dos números con
AREA PROGRAMACIÓN 43
3.Realizar la resta de dos números con decrementos de 1
4.Realizar la multiplicación de dos números con sumas sucesivas.
5.Realizar la división de dos números con restas sucesivas.
6.La sumatoria ∑=
n
x
x1