Você está na página 1de 10

1

Algoritmos: Estructuras de Repetición


ESTRUCTURAS DE REPETICIÓN:

En éste tipo de estructuras nos dan la posibilidad de repetir un conjunto de acciones un número
determinado de veces.

De acuerdo al tipo de control de la cantidad de repeticiones se pueden clasificar en:

 Controladas por una condición.


 Controladas por un contador.

Controladas por una condición:

Instrucción mientras:

Ejemplo 1 (Problema 27): Dados un conjunto de números, mostrar los números que sean mayores o iguales
a 5, suponiendo que se ingresan números hasta uno igual a cero.

El cero es el valor que necesitan ingresar al algoritmo indicando que se acabaron los valores. Es un valor
arbitrario, debe ser algún valor que no pertenezca al conjunto de los valores de entrada.

INICIO
MOSTRAR “Ingresar un número”
LEER num
MIENTRAS num <> 0
SI num >= 5 ENTONCES
MOSTRAR num
FIN-SI
MOSTRAR “Ingresar un número”
LEER num
FIN- MIENTRAS
FIN.

La acción de ingresar números aparece dos veces:

 Al principio (antes de comenzar el ciclo) para poder ingresar al ciclo la primera vez.
 Al final del ciclo para volver a ingresar al ciclo luego de cada repetición.

Ejemplo 2 (Problema 28): Dadas las notas y nombres de alumnos de un curso, imprimir los nombres de los
alumnos, cuya nota sea mayor que 7. El ingreso finaliza con nota igual a cero.

El valor de fin es cero, porque se parte de la base que ningún alumno va a tener esa nota, se podría poner
un valor negativo, para evitar conflictos
2
Algoritmos: Estructuras de Repetición
INICIO
MOSTRAR “Ingresar el nombre del alumno”
LEER nom
MOSTRAR “Ingresar la nota del alumno”
LEER nota
MIENTRAS nota <> 0
SI nota >= 7 ENTONCES
MOSTRAR nom
FIN-SI
MOSTRAR “Ingresar el nombre del alumno”
LEER nom
MOSTRAR “Ingresar la nota del alumno”
LEER nota
FIN- MIENTRAS
FIN.

Controladas por un contador:

Instrucción desde:

Ejemplo 3 (Problema 30): Dados 25 números, imprimir los números que sean mayores o iguales a 5.

INICIO
DESDE c=1 A 25
MOSTRAR “Ingresar un número”
LEER num
SI num >= 5 ENTONCES
MOSTRAR num
FIN-SI
FIN- DESDE
FIN.

 Se omite el paso porque va de a uno.

La variable “c” se utiliza para ir contando la cantidad de veces que se repite el ciclo, hasta llegar al
valor final, en este caso se repite el ciclo 25 veces.
3
Algoritmos: Estructuras de Repetición
Ejemplo 4 (Problema 31): Dadas 15 notas y nombres de alumnos de un curso, imprimir los nombres de los
alumnos cuya nota sea mayor que 7.

INICIO
DESDE c=1 A 15
MOSTRAR “Ingresar la nota del alumno”
LEER nota
MOSTRAR “Ingresar el nombre del alumno”
LEER nom
SI nota >= 7 ENTONCES
MOSTRAR nom
FIN-SI
FIN- DESDE
FIN.

Las variables las podemos utilizar como acumuladores o como contadores.


4
Algoritmos: Estructuras de Repetición
UTILIZACIÓN DE VARIABLES COMO ACUMULADOR:

Un acumulador es una variable que se incrementa o decrementa en un valor variable.

Variable acumulador = Variable acumulador + (-) variable

Como en toda sumatoria la variable debe ser inicializa en este caso en 0.

Ejemplo 5 (Problema 33): Dados 15 números imprimir la suma total.

INICIO
suma ← 0
DESDE c=1 A 15
MOSTRAR “Ingresar un número”
LEER num
suma ← suma + num
FIN- DESDE
MOSTRAR “La suma de los números es:”, suma
FIN.

Ejemplo 6 (Problema 34): Dados números hasta ingresar uno negativo, imprimir la suma total.

INICIO
suma ← 0
MOSTRAR ”Ingresar un número”
LEER num
MIENTRAS num >= 0
suma ← suma + num
MOSTRAR “Ingresar un número”
LEER num
FIN- MIENTRAS
MOSTRAR “La suma de los números es:”, suma
FIN.

Ejemplo 7 (Problema 35): Dados n números, imprimir el promedio.

INICIO
MOSTRAR “Ingrese la cantidad de números”
LEER n
suma ← 0
DESDE c=1 A n
MOSTRAR “Ingresar un número”
LEER num
suma ← suma + num
FIN- DESDE
prom ← suma/n
MOSTRAR “El promedio es:”, prom
FIN.
5
Algoritmos: Estructuras de Repetición
UTILIZACIÓN DE VARIABLES COMO CONTADOR DE EVENTOS:

Variable contador = Variable contador + (-) contador

Como en toda sumatoria la variable debe ser inicializa en este caso en 0

Ejemplo 8 (Problema 36): Dados 10 números, imprimir cuántos son positivos, cuántos son negativos,
cuántos son cero.

INICIO
pos ← 0
neg ← 0
DESDE c=1 A 10
MOSTRAR “Ingrese un número”
LEER num
SI num > 0 ENTONCES
pos ← pos + 1
SINO
SI num < 0 ENTONCES
neg ← neg + 1
FIN-SI
FIN-SI
FIN- DESDE
ceros ← 10 – pos - neg
MOSTRAR “La cantidad de positivos es:”, pos
MOSTRAR “La cantidad de negativos es:”, neg
MOSTRAR “La cantidad de ceros es:”, ceros
FIN.

Para contar los ceros también se puede usar un contador.


INICIO
pos ← 0
neg ← 0
ceros ← 0
DESDE c=1 A 10
MOSTRAR “Ingrese un número”
LEER num
SI num > 0 ENTONCES
pos ← pos + 1
SINO
SI num < 0 ENTONCES
neg ← neg + 1
SINO
ceros ← ceros + 1
FIN-SI
FIN-SI
FIN- DESDE
MOSTRAR “La cantidad de positivos es:”, pos
MOSTRAR “La cantidad de negativos es:”, neg
MOSTRAR “La cantidad de ceros es:”, ceros
FIN.
6
Algoritmos: Estructuras de Repetición

Ejemplo 9 (Problema 37): Dados los sueldos de n empleados, imprimir cuántos ganan más de $2000 y
cuántos ganan menos de $2000.

INICIO
MOSTRAR “Ingrese la cantidad de empleados”
LEER n
mas ← 0
menos ← 0
DESDE c=1 A n
MOSTRAR “Ingrese el sueldo”
LEER sueldo
SI sueldo > 2000 ENTONCES
mas ← mas + 1
SINO
SI sueldo < 0 ENTONCES
menos ← menos + 1
FIN-SI
FIN-SI
FIN- DESDE
MOSTRAR “La cantidad de empleados que cobran más de $2000:”, mas
MOSTRAR “La cantidad de empleados que cobran menos de $2000 es:”, menos
FIN.
7
Algoritmos: Estructuras de Repetición
MÁXIMOS Y MÍNIMOS:

Ejemplo 10: Dadas dos temperaturas, imprimir la mayor (considerando que las temperaturas son distintas).

INICIO
MOSTRAR “Ingrese la primer temperatura:”
LEER temp1
MOSTRAR “Ingrese la segunda temperatura:”
LEER temp2
SI temp1 > temp2 ENTONCES
MOSTRAR temp1
SINO
MOSTRAR temp2
FIN-SI
FIN.

Ejemplo 11: Dados 15 concentraciones imprimir el máximo.

INICIO
max ← 0
DESDE c=1 A 15
MOSTRAR “Ingrese el valor de la concentración”
LEER conc
SI conc > max ENTONCES
max ← conc
FIN-SI
FIN-DESDE
MOSTRAR “La concentración máxima es:”, max
FIN.

La variable max se inicializó en cero para asegurarse que en la primera pasada del ciclo la primera
concentración sea considerada como máximo. Sólo cuando se ingrese en una nueva pasada un valor
mayor de concentración, se reasignará nuevamente max.
Al finalizar el ciclo quedará almacenado en max el valor de la concentración máxima.
Pero en realidad se podría haber inicializado max con cualquier valor que asegure ser menor que los
valores de sueldo que se van a procesar.

INICIO
MOSTRAR “Ingrese el valor de la concentración”
LEER conc
max ← conc
DESDE c=2 A 15
MOSTRAR “Ingrese el valor de la concentración”
LEER conc
SI conc > max ENTONCES
max ← conc
FIN-SI
FIN-DESDE
MOSTRAR “La concentración máxima es:”, max
FIN.
8
Algoritmos: Estructuras de Repetición
En este caso se ingresa el primer sueldo y se lo asigna directamente a la variable max, luego se arranca el
ciclo a partir del segundo valor del sueldo.

Ejemplo 12: Dados una cierta cantidad de sueldos imprimir el máximo. El ingreso finaliza con sueldo=0.

INICIO
MOSTRAR “Ingrese el sueldo”
LEER sueldo
max ← sueldo
MIENTRAS sueldo <> 0
SI sueldo > max ENTONCES
max ← sueldo
FIN-SI
MOSTRAR “Ingrese el sueldo”
LEER sueldo
FIN-MIENTRAS
MOSTRAR “El sueldo máximo es:”, max
FIN.

Ejemplo 13: Dados 15 sueldos, imprimir el mínimo.

INICIO
min ← 9999999999
DESDE c=1 A 15
MOSTRAR “Ingrese el sueldo”
LEER sueldo
SI sueldo < min ENTONCES
min = sueldo
FIN-SI
FIN-DESDE
MOSTRAR “El sueldo mínimo es:”, min
FIN.

Se puede apreciar que el algoritmo es muy similar al cálculo del máximo. Se inicializó la variable min con
un valor cualquiera tan alto que garantice que la primer pasada por el ciclo, se almacene en min el primer
sueldo. De la misma manera que en la determinación del máximo, se reasignará min cuando se ingrese un
valor inferior al que previamente fue almacenado.
Al finalizar el ciclo, min guardará el menor valor del sueldo de los 15 leídos.

********************************************************************************
Otra forma sería
Esto hace que no se inicialice fuera del ciclo y que el min se actualice cuando el c sea igual a 1 o sea la
primera vez que entra al ciclo o cuando el sueldo sea menor al min
INICIO
DESDE c=1 A 15
MOSTRAR “Ingrese el sueldo”
LEER sueldo
SI c=1 v sueldo < min ENTONCES
min = sueldo
FIN-SI
FIN-DESDE
MOSTRAR “El sueldo mínimo es:”, min
FIN.
9
Algoritmos: Estructuras de Repetición

Ejemplo 14: Dados una cierta cantidad de sueldos, imprimir el mínimo. El ingreso de datos finaliza cuando se
ingresa un sueldo =0.

INICIO
MOSTRAR “Ingrese el sueldo:”
LEER sueldo
min ← sueldo
MIENTRAS sueldo <> 0
SI sueldo < min ENTONCES
min ← sueldo
FIN-SI
MOSTRAR “Ingrese el sueldo”
LEER sueldo
FIN-MIENTRAS
MOSTRAR “El sueldo mínimo es:”, min
FIN.

Ejemplo 15 (Problema 46): Dados 15 nombres y edades de alumnos de un curso, imprimir el nombre del
alumno de edad máxima.

INICIO
max ← 0
DESDE c=1 A 15
MOSTRAR “Ingrese nombre del alumno”
LEER nom
MOSTRAR “Ingrese la edad del alumno”
LEER edad
SI edad > max ENTONCES
max ← edad
nommax ← nom
FIN-SI
FIN-DESDE
MOSTRAR “El alumno de mayor edad es:”, nonmax
FIN.
10
Algoritmos: Estructuras de Repetición
Ejemplo 16: Dados cierta cantidad de nombres y edades de alumnos de un curso, imprimir el nombre del
alumno de edad máxima. El ingreso finaliza con edad=0.

INICIO
MOSTRAR “Ingrese nombre del alumno”
LEER nom
MOSTRAR “Ingrese la edad del alumno”
LEER edad
max ← edad
nommax ← nom
MIENTRAS sueldo <> 0
SI edad > max ENTONCES
max ← edad
FIN-SI
MOSTRAR “Ingrese nombre del alumno”
LEER nom
MOSTRAR “Ingrese la edad del alumno”
LEER edad
FIN-MIENTRAS
MOSTRAR “El alumno de mayor edad es:”, nommax
FIN.

Ejemplo 17: En una carrera compiten 45 autos. Al finalizar las vueltas de clasificación se tienen los tiempos
de cada uno. Se pide imprimir:
 El número del auto que llegó primero.
 El número del auto que llegó último.

INICIO
tmax ← 0
tmin ← 9999999999
DESDE c=1 A 45
MOSTRAR “Ingrese número del auto”
LEER auto
MOSTRAR “Ingrese el tiempo”
LEER t
SI t > tmax ENTONCES
tmax = t
ultimo = auto
SINO
SI t < tmin ENTONCES
tmin = t
primero = auto
FIN-SI
FIN-SI
FIN-DESDE
MOSTRAR “El auto de menor tiempo es:”, primero
MOSTRAR “El auto de mayor tiempo es:”, ultimo
FIN.

Você também pode gostar