Documente Academic
Documente Profesional
Documente Cultură
Estructura repetitiva
Hasta el momento se han estudiado dos tipos de estructuras que slo
se ejecutan una sola vez (estructura secuencial, estructura de
decisin lgica), en una gran cantidad de algoritmos, se necesita que
un conjunto de instrucciones sea ejecutado un nmero de veces
determinado o que se ejecuten hasta que cumplan una condicin
determinada, la estructura algortmica que responde a este tipo de
necesidades, es la estructura repetitiva (mientras).
Estructura
mientras (condicin lgica)
conjunto de instrucciones si la condicin lgica es verdadera
fin mientras
Funcionamiento
Cuando la condicin lgica es verdadera se ejecutan las instrucciones
que se encuentren entre mientras y fin mientras, el ciclo termina
cuando la condicin lgica a partir de la cual se esta controlando el
ciclo se vuelve falsa. Y se contina ejecutando las instrucciones que
se encuentren despus del fin mientras.
Observacin
Cuando se emplea la estructura mientras, se crea un ciclo que se
ejecuta un nmero determinado de veces, se debe garantizar que la
variable o las variables con las que se este evaluando la condicin
lgica, en algn momento se vuelvan falsas. Esto asegura que el ciclo
no se vuelve infinito y de esta forma se evita violar una de las
condiciones necesarias, para que un determinado conjunto de
instrucciones sea considerado algoritmo.
Elementos empleados cuando se emplea la estructura mientras
Contador
En ocasiones es importante llevar un conteo del nmero de veces que
un determinado suceso se presenta, el conteo se realiza con una
variable que se va incrementando a medida que el ciclo se repite, el
contador es una variable que aumenta o disminuye en un valor
constante, cada vez que el ciclo se ejecuta.
contador = contador + incremento
contador = contador - incremento
Mdulo Jorge Hernn lvarez
Ejemplo 2
Elaborar un algoritmo que sume los primeros cinco nmeros
naturales.
Inicio
Definicin de variables
suma: nmero
Algoritmo
suma = 1+2+3+4+5
muestre: el resultado de la suma es: , suma
fin_Inicio
si se necesitara sumar los 100 primeros nmeros naturales, se
necesitara realizar el siguiente clculo, 1 + 2 +3 + . +100, es
evidente que realizarlo de la forma que se ha venido trabajando es
muy complicado, ya que si se necesita sumar los 10000 primeros
nmeros
naturales,
el
clculo
seria
el
siguiente
1 + 2 +3 + 4 + 5 + 6 + + 10000, otra dificultad, parte del hecho
que la persona que realiza el algoritmo, tiene que estar realizando las
diferentes modificaciones cuando sean solicitadas. Una forma ms
adecuada de realizar el algoritmo, es replantearlo de la siguiente
forma:
Ejemplo 3
Elaborar algoritmo que sume los primeros n nmeros naturales,
donde n es un nmero que se ingresa por teclado. Los nmeros
naturales son: 1 2 3 4 5 6 7 8 9 10. n
Datos de entrada: n, el nmero de valores que se desean sumar
Datos de salida: la suma de los n primeros nmeros naturales
Variables
n: nmero , se almacena la cantidad de nmeros que se desean
sumar.
suma: nmero, se almacena la suma de los n primeros nmeros
naturales
i: nmero, contador
Estrategia
i
1
suma
0
i
1
2
suma
0
1
i
1
suma
0
2
3
1
3
i
1
2
3
4
suma
0
1
3
6
i
1
2
3
4
5
suma
0
1
3
6
10
i
1
2
3
4
5
6
suma
0
1
3
6
10
15
Algoritmo completo
Inicio
Definicin de variables
con, suma, prod, n: nmero
Algoritmo
lea: n
con = 1
prod =1
suma = 0
mientras (con<= n)
lea: valor
si (valor % 2==0) entonces
suma = suma + valor
sino
prod = prod * valor
fin si
con = con +1 el contador garantiza que el ciclo no se vuelva infinito
fin mientras
muestre: el resulta de la suma es: , suma, el resultado de la
productoria es: , prod
fin_Inicio
Ejemplo 5
Encontrar el error en el siguiente algoritmo
Inicio
Definicin de variables
i, j, k, n: nmero
Algoritmo
lea: n
i=1
j=2
k=3
mientras (i<= n)
j=j+k
k =2*j
fin mientras
muestre: el valor de j es: , j, el valor de k es: , k
fin_Inicio
Se puede observar que todas las variables que se emplean en el
algoritmo, han sido definidas con anterioridad.
Prueba de escritorio
Al introducir por teclado el nmero 3, la variable n toma el valor de
3, quedando la memoria de la siguiente manera.
n
3
i
1
j
2
k
3
i
1
j
2
5
15
45
135
405
.
.
.
.
k
3
10
30
90
270
810
.
.
.
.
Infinito
infinito
Ejemplo 5
Elaborar un algoritmo que calcule el promedio de una serie de
nmeros mayores que cero.
Datos de entrada: la serie de nmeros
Datos de salida: el promedio de la serie de nmeros
Variables
valor: nmero, en la variable valor, se almacenaran cada uno de los
nmeros a los cuales se desea calcular el promedio.
con: nmero, cuenta la cantidad de nmeros que se desean sumar
suma: nmero, almacena la suma de la serie de nmeros
pro: nmero, almacena el valor del promedio de la serie de nmeros
Estrategia
En este algoritmo no se conoce la cantidad de datos que se deben
ingresar, por tal motivo hay que definir una condicin que garantice,
que al ingresar un nmero que no sea mayor que cero, el ciclo
termine, la condicin es, mientras (valor > 0).
El promedio de una serie de nmeros se define, como la suma de la
serie de nmeros dividido la cantidad de nmeros.
pro = suma / con
Inicio
Definicin de variables
valor, con, suma, pro
Algoritmo
lea: valor
con = 0
suma = 0
mientras (valor > 0)
con = con + 1
suma = suma + valor
lea: valor
fin mientras
pro = suma /con
muestre: el promedio de la serie de nmeros es: , pro
Prueba de escritorio
Al ejecutar el programa el usuario ingresar por teclado los siguientes
valores: 1 4 6 7 8 9 -1, se realizara el seguimiento de lo que ocurre
cada vez que se ingresa cada uno de los valores.
Antes de comenzar el ciclo mientras, la memoria se encuentra de la
siguiente manera.
valor
1
suma
0
con
0
pro
Basura
suma
0
1
5
11
18
26
35
con
0
1
2
3
4
5
6
Pro
Basura
Ejemplo 6
Elaborar algoritmo que genere primeros n trminos de la siguiente
serie 10, 12, 13, 15, 16, 18, 19, 21
Datos de entrada: el nmero de trminos
Datos de salida: la serie de nmeros
variables
n: nmero, cantidad de trminos que se desean crear
bandera: nmero, variable que controla la generacin de los trminos
ter: nmero
j: nmero, variable tipo contador, que controla hasta que se hallan
generado los n trminos.
Estrategia
Se puede observar, que la serie se genera iniciando en 10 y se suma
de forma alternada 2 y 1, es evidente que es importante saber
cuando se suma 2 y cuando se suma 1, una posible solucin es
empleando una bandera, de forma que cuando la bandera valga 0 se
sume 2 al trmino y se cambie el valor de la bandera a uno, cuando
la bandera valga 1 se sume 1 al trmino y se cambie el valor de la
bandera a cero.
la variable bandera se inicializa en cero, para cuando se evalu la
condicin (bandera == 0) , se sume 2 al trmino, y as generar el
nmero 12.
la variable j se inicializa en 1
ter se inicializa en 10, porque es el primer nmero de la serie
la estructura lgica queda de la siguiente manera:
si (bandera == 0) entonces
ter = ter + 2
bandera = 1
sino
ter = ter + 1
bandera = 0
fin si
n
5
bandera
0
ter
10
j
1
bandera
0
1
0
1
0
1
ter
10
12
13
15
16
18
j
1
2
3
4
5
6
Todos los valores tachados con los que se encuentra la variable ter,
son mostrados por pantalla de la siguiente forma: 10 12 13 15 16.
Otra forma de realizar el mismo algoritmo, sin emplear variable tipo
bandera, es la siguiente.
Inicio
Definicin de variables
n, ter, j: nmero
lea: n
j=1
ter = 10
mientras (j<= n)
muestre: ter
si (j % 2 == 1) entonces
ter = ter + 2
sino
ter = ter + 1
fin si
j=j+1
fin mientras
fin_Inicio
La condicin (j % 2 == 1), asegura que el valor de la j en la primera
iteracin es impar, y suma 2 a la variable ter, en la segunda iteracin,
como la variable j es par, suma 1 a la variable ter, con esta condicin
se verifica, que en una iteracin se suma 2 y en la otra 1, tal como lo
hace el algoritmo con bandera.
Variables
fact
1
1
2
6
24
120
i
1
2
3
4
5
6