Você está na página 1de 26

Fundamentos de Programación

Ing. Héctor Miguel Zelada Valdivieso


V.- Programación Estructurada

5.4.- Estructuras Repetitivas


Las estructuras repetitivas se utilizan cuando queremos repetir una operación o un
conjunto de ellas muchas veces.

Al segmento de un algoritmo o programa cuyas instrucciones se repiten un número


determinado de veces mientras se cumple una determinada condición se denomina
bucle o lazo; y se llama iteración al hecho de repetir la ejecución de una secuencia
de acciones.
En función de la forma o lugar de como se indica la condición que controlará las
iteraciones del bucle podemos distinguir tres tipos de estructuras repetitivas:
- Estructura desde/ para (for)
-Estructura mientras (while)
-Estructira Hacer mientras (do while)
- Estructura repetir (do until)
V.- Programación Estructurada

5.4.1.- Estructura repetitiva desde/ para (for)


Este tipo de estructura repetitiva se utiliza cuando de antemano se conoce el número de veces
que se desean ejecutar las acciones de un bucle. Es decir se sabe cuantas iteraciones hará el
bucle.
Las estructuras repetitivas for, con las herramientas de programación se representan así:

ascendente descendente
c  vi c  vf

Leyenda:
No No
c<= C>= vi vi: valor inicial
Si vf Si Vf: valor final
<acciones> <acciones>
Inc: valor del incremento
c  c + inc c  c - dec dec: valor del decremento

Diagrama de flujo

Ing. Héctor Miguel Zelada Valdivieso


V.- Programación Estructurada

desde c vi hasta vf inc/dec <valor> hacer desde c vi hasta vf inc/dec <valor> hacer
<acción 1>
<acción 2>
...
<acciones> <acción n>
fin_desde

Fin-desde

Pseudocódigo
Diagrama N-S
V.- Programación Estructurada

Ejemplo: Analizar y Diseñar la solución


Los salarios netos de 10 trabajadores
Construya un programa que calcule el salario neto de 10 trabajadores, sabiendo
que el salario neto es igual al salario bruto menos un descuento que se le aplica
a todos los trabajadores. El salario bruto de cada trabajador se calcula en
función del precio por hora del trabajador y la cantidad de horas trabajadas y el
descuento es el 25% del salario bruto. Finalmente muestre el salario bruto, el
descuento y el salario neto.

Ing. Héctor Miguel Zelada Valdivieso


V.- Programación Estructurada

a) Análisis del problema:

- Datos de entrada: Precio por hora, cantidad de horas

- Información de salida: Sueldo bruto, descuento, salario neto

Ing. Héctor Miguel Zelada Valdivieso


…Problema: La bodega de don Pepe
inicio
a) Diseño de la solución:
Var:
real: preHor, canHor, salBru, des, salNet
entero: c

c1

c <= 10
No

Si
escribir “precio hora”
leer preHor

escribir “cant. horas”


leer canHor

salBru  preHor*canHor
des  0.25*salBru
salNet  salBru - des

escribir salBru, des,


salNet

cc+1

Diagrama de Flujo
fin
…Problema: La bodega de don Pepe

a) Diseño de la solución:
Inicio
Algoritmo: Salario
Var:
Variables:
real: preHor, canHor, salBru, des, salNet
real: preHor, canHor, salBru, des, salNet
entero: c
entero: c

Inicio desde c 1 hasta 10 inc. 10 hacer


desde c 1 hasta 10 inc. 1 hacer
escribir “precio hora”
escribir “precio hora:”
leer preHor
leer preHor escribir “cant. Horas:”

escribir “cant. horas:” leer canHor


salBru  preHor*canHor
leer canHor
des  0.25*salBru
salBru  preHor*canHor salNet  salBru – des
escribir salBru, des, salNet
des  0.25*salBru
salNet  salBru – des Fin-desde
escribir salBru, des, salNet
Fin
fin_desde
Fin Pseudocodigo Diagrama N-S
V.- Programación Estructurada

Problema propuesto:
Contar pares, nulos o impares entre 10 números
Construya un programa que permita determinar entre 10 números ingresados
por teclado, cuantos fueron pares, cuantos impares y cuantos fueron nulos.

Ing. Héctor Miguel Zelada Valdivieso


V.- Programación Estructurada

5.4.2.- Estructura repetitiva mientras (while)


La estructura repetitiva mientras (while) es aquella en la que el cuerpo
del bucle se repite mientras se cumple una determinada condición.

Cuando se ejecuta la instrucción mientras, la primera cosa que sucede


es que se evalúa la condición (expresión lógica), si se evalúa falsa
(false), ninguna acción se toma y el programa o algoritmo prosigue en la
siguiente instrucción después del bucle. Si la expresión lógica es
verdadera, entonces se ejecuta el cuerpo del bucle, después de lo cual
se evalúa de nuevo la expresión lógica. Este proceso se repite una y
otra vez mientras la expresión lógica sea verdadera.
V.- Programación Estructurada

Las estructuras repetitivas while, con las herramientas de programación se


representan así:

mientras <expresión> hacer


Expresi No mientras expresión <acción 1>
ón <acción 2>
...
Si
<acción n>
<acciones> <acciones> fin_mientras

Diagrama de flujo Diagrama N-S Pseudocódigo


V.- Programación Estructurada

Ejemplo: Analizar y diseñar la solución


Total gastado en un viaje
Construya un programa que permita a un grupo de excursionistas determinar el
total gastado en un viaje, donde todavía no se sabe cuantos gastos se han
realizado en total; Así que el jefe del grupo le solicita que el programa permita
ingresar cualquier cantidad de gastos y que cuando él ingrese como gasto el –1,
significará que ya termino de ingresar los gastos de su grupo y le debe de
mostrar el total gastado en el viaje que realizaron.

Ing. Héctor Miguel Zelada Valdivieso


V.- Programación Estructurada

a) Análisis del problema:

- Datos de entrada: gasto individual

- Información de salida: Total gastado en viaje

Ing. Héctor Miguel Zelada Valdivieso


Diagrama de Flujo

a) Diseño de la solución:
inicio

Var:
real: gasto, totalGasto

totalGasto  0

escribir “Ingrese Gasto:”


leer gasto

gasto <> -1 No

Si
totalGasto  totalGasto + gasto

escribir “Ingrese Gasto:”


leer gasto

escribir totalGasto

fin
a) Diseño de la solución:
Algoritmo: GastoViaje Inicio

Variables: Var
real: gasto, totalGasto real: gasto, totalGasto
Inicio
totalGasto 0
escribir “Ingrese Gasto:”
escribir “Ingrese Gasto:”
leer gasto
leer gasto

totalGasto  0 Mientras (gasto <> -1)


mientras (gasto <> -1 ) hacer
totalGasto  totalGasto + gasto
totalGasto  totalGasto + gasto
escribir “Ingrese Gasto:”
escribir “Ingrese Gasto:” leer gasto
leer gasto
fin_mientras escribir totalGasto

escribir totalGasto Fin

Fin

Diagrama N-S
Pseudocodigo
V.- Programación Estructurada

Problema Propuesto:
Contar pares, nulos o impares entre ? números
Resulta que ahora le piden que modifique el programa que contaba la cantidad
de pares, nulos o impares, para que no se sea sólo para 10 números, sino que
le dicen que el programa debe siempre pedir que se ingresen números por
teclado hasta que se le ingrese el número –1, después de que se le ingrese el
número –1, debe de mostrar la cantidad de pares que hubo, la cantidad de nulos
y la cantidad de impares
V.- Programación Estructurada

5.4.3.- Estructura repetitiva hacer mientras (do while)


Este tipo de estructura repetitiva se utiliza cuando se desea que
un bucle se ejecute al menos una vez antes de comprobar la
condición de repetición.

Entonces la principal diferencia entre la estructura do while y la


estructura repetitiva while sería que en la estructura do while
se ejecutará el cuerpo del bucle al menos una vez
indistintamente de que la condición sea verdadera o falsa, en
cambio en la estructura while si desde el inicio la condición es
falsa no se ejecutará ninguna vez el cuerpo del bucle.
V.- Programación Estructurada

Las estructuras repetitivas do while, con las herramientas de programación se


representan así:

<acciones> hacer
<acción 1>
<acciones>
<acción 2>
No ...
Expresió <acción n>
n mientras <expresión>
Si Mientras expresión

Pseudocodigo
Diagrama N-S
Diagrama de flujo
V.- Programación Estructurada

Ejemplo: Analizar y Diseñar la solución


Validación de números positivos
Construya un programa que permita validar el ingreso de un número positivo.
Es decir que mientras no se ingrese un número positivo, debe de volver a pedir
que se ingrese un número de nuevo. Finalmente mostrar un mensaje cuando ya
se ha ingresado el número correctamente.

Ing. Héctor Miguel Zelada Valdivieso


V.- Programación Estructurada

a) Análisis del problema:

- Datos de entrada: numero

- Información de salida: mensaje

Ing. Héctor Miguel Zelada Valdivieso


Diagrama de Flujo

a) Diseño de la solución:
inicio

Var:
entero: numero

escribir “Ingrese Num:”


leer numero

No
numero < 0

Si

escribir “Número correcto”

fin
…Problema: La bodega de don Pepe

a) Diseño de la solución:
Var: Inicio

entero: numero Var


entero: numero
Inicio
hacer escribir “Ingrese Num.:”
leer numero
escribir “Ingrese Num.:”
leer numero
mientras (numero<0) Mientras (numero <0)
escribir “Número Correcto”
Fin escribir “Número Correcto”

Fin

Pseudocodigo
Diagrama N-S
V.- Programación Estructurada

Problema Propuesto:
Validación de números impares
Construya un programa que permita validar el ingreso de un número impar. Es
decir que mientras no se ingrese un número impar, debe de volver a pedir que
se ingrese un número de nuevo. Finalmente mostrar un mensaje cuando ya se
ha ingresado el número impar.

Ing. Héctor Miguel Zelada Valdivieso


V.- Programación Estructurada

Contadores:
- Normalmente en los procesos repetitivos se necesita contar los sucesos o acciones internas del
bucle, como pueden ser los elementos de un fichero, el número de iteraciones a realizar por el
bucle, etc. Es allí donde nace el concepto de contador, el cual es una variable cuyo valor se
incrementa o decrementa en una cantidad constante en cada iteración.

- El contador se representa de la siguiente manera:


Si es ascendente: cont  cont + K
donde cont es la variable contador y k la constante de incremento.

Si es descendente: cont  cont – K


donde cont es la variable contador y k la constante de decremento.

Observación: Siempre deberá inicializar el contador antes de ingresar al bucle, generalmente se

inicializa en cero (cont  0)

Ing. Héctor Miguel Zelada Valdivieso


V.- Programación Estructurada
Acumulador:
- Un acumulador o totalizador es una variable cuya misión es almacenar cantidades variables
resultantes de operaciones sucesivas realizadas generalmente dentro de un bucle, normalmente
totalizamos sumas sucesivas. El acumulador realiza la misma función que un contador, con la
diferencia de que el incremento o decremento de cada operación es variable en lugar de
constante.

- El acumulador para sumas sucesivas se representa de la siguiente manera:


ss+n
donde n es una variable en lugar de una constante.

Observación: Siempre deberá inicializar el acumulador antes de ingresar al bucle, generalmente


se inicializa en cero (s  0)

Ing. Héctor Miguel Zelada Valdivieso

Você também pode gostar