Você está na página 1de 4

UNIVERSIDAD DEL CAUCA – FIET

Departamento de Sistemas

ESTRUCTURAS REPETITIVAS REPETIR Y HACER-MIENTRAS

OBJETIVO
 Conocer de qué manera se codifica la estructura repetitiva REPETIR en LPP
 Conocer de qué manera se codifica la estructura repetitiva HACER-MIENTRAS en
lenguaje C

1. ESTRUCTURA REPETIR ("REPEAT”)

Existen muchas situaciones en las que se desea que un bucle se ejecute al menos una
vez antes de comprobar la condición de repetición. En la estructura mientras si el valor de
la expresión booleana es inicialmente falso, el cuerpo del bucle no se ejecutará; por ello,
se necesitan otros tipos de estructuras repetitivas.

Figura 1. Estructura repetir: pseudocódigo, diagrama de flujo, diagrama N-S.

La estructura repetir (repeat) se ejecuta hasta que se cumpla una condición determinada
que se comprueba al final del bucle. El bucle repetir-hasta_que se repite mientras el valor
de la expresión booleana de la condición sea falsa, justo la opuesta de la sentencia
mientras.

NOTA: Cabe resaltar que en lenguaje C no se puede implementar esta estructura, en su


lugar existe la estructura Hacer-Mientras, que será explicada en el punto 2.

Ejemplo1: Algoritmo que lee 30 números reales desde el teclado por medio de una
estructura repetitiva REPETIR en LPP

MSc. Sara Donnelly Garcés Agredo


UNIVERSIDAD DEL CAUCA – FIET
Departamento de Sistemas

REAL numero
ENTERO contador
INICIO
contador<-1
REPITA
ESCRIBA "Digite un número "
LEA numero
contador<-contador+1

HASTA contador >30


ESCRIBA "Se han leído 30 números"
FIN

En el ejemplo anterior, el bucle se repite hasta que el valor de la variable contador exceda
a 30, lo que sucederá después de 30 ejecuciones del cuerpo del bucle.

Ejemplo 2.
Desarrollar el algoritmo necesario para calcular el factorial de un número n que responda
a la fórmula:
n ! = 1 * 2 * 3 *…* (n-2) * (n- 1) * n

Análisis:
Entrada: Un número entero positivo mayor o igual a cero
Salida: El factorial del número
Procedimiento:
1. Leer el número
2. Hacer f = 1 * 2 * 3 * ... * (n-1) * n
3. Escribir el factorial
Diseño:
ENTERO i, numero, factorial
INICIO
ESCRIBA "Digite un número para encontrar su factorial "
LEA numero
SI numero>0 ENTONCES
factorial<-1
i<-1
REPITA
factorial<-factorial * i
i<-i+1
HASTA i =numero+1
ESCRIBA "El factorial es ",factorial
FIN SI
FIN

Con una estructura REPITA el cuerpo del bucle se ejecuta siempre al menos una vez.
Cuando una instrucción repetir se ejecuta, lo primero que sucede es la ejecución del bucle
y, a continuación, se evalúa la expresión booleana resultante de la condición. Si se evalúa
como falsa, el cuerpo del bucle se repite y la expresión booleana se evalúa una vez.
Después de cada iteración del cuerpo del bucle, la expresión booleana se evalúa; si es
verdadera, el bucle termina y el programa continua en la siguiente instrucción a HASTA

MSc. Sara Donnelly Garcés Agredo


UNIVERSIDAD DEL CAUCA – FIET
Departamento de Sistemas

2. ESTRUCTURA HAGA-MIENTRAS (DO-WHILE)

Existen muchas situaciones en las que se desea que un bucle se ejecute al menos una
vez antes de comprobar la condición de repetición. En la estructura mientras si el valor de
la expresión booleana es inicialmente falso, el cuerpo del bucle no se ejecutará; por ello,
se necesitan otros tipos de estructuras repetitivas.

La estructura HAGA-MIENTRAS (DO-WHILE) se ejecuta hasta que la condición se deje


de cumplir, la comprobación se realiza al final del bucle. El bucle DO-WHILE se repite
mientras el valor de la expresión booleana de la condición sea verdadero.

Ejemplo 3: Es muy frecuente tener que realizar validación de entrada de datos en la


mayoría de las aplicaciones. Este ejemplo detecta cualquier entrada comprendida entre 1
y 12, rechazando las restantes, ya que se trata de leer los números correspondientes a
los meses del año.

#include <stdio.h>
#include <conio.h>

int main()
{
//variable para leer el mes
int mes;

do
{
//pide el número
printf ("Introducir el número del mes ");
//lee el mes
scanf ("%d",&mes);
//verifica que el mes esté entre 1 y 12
if ((mes < 1)||(mes > 12))
{
//muestra un mensaje de error
printf ("el valor debe estar entre 1 y 12 \n");
}

}while((mes < 1)||(mes > 12));//comprobación de la condición


printf ("chao");

getch();
return 0;
}

MSc. Sara Donnelly Garcés Agredo


UNIVERSIDAD DEL CAUCA – FIET
Departamento de Sistemas

EJERCICIOS

Cree un archivo para cada uno de los siguientes algoritmos, en el encabezado del archivo
incluya el análisis: identifique variables de entrada, variables de salida y proceso.

1. Calcular el N-ésimo término de la serie de Fibonaci definida por:

A1 = 1
A2 = 1
A3 = 1 + 2 = A1 + A2
...
An-1 + An-2 (n >=3).
Por ejemplo si se ingresa N = 8 la serie de Fibonacci seria: 21
(1,1,2,3,5,8,13,21)

2. Se desea conocer una serie de datos de una empresa con 50 empleados:


a) ¿Cuántos empleados ganan más de 3.000.000 pesos al mes (salarios altos)
b) Entre 1.000.000 y 3.000.000 de pesos (salarios medios)
c) Menos de 1.000.000 de pesos (salarios bajos)?

3. Hacer un algoritmo verifique el usuario digite números de tres cifras.

4. En el estanco "A su salud" necesitan un programa que facture las ventas a un


cliente. Cada venta puede constar de al menos uno o más artículos, con un
determinado precio, y en una cantidad variable. Se ingresan artículos hasta que el
nombre del articulo sea igual a "***". Se debe mostrar el valor neto de cada artículo,
el IVA (del 16%) y el valor total a pagar.

5. La compañía Lácteos Puracé abre diariamente una caja con $500.000 para la cual
se registran egresos (en números positivos). Calcular los egresos de la compañía
y mostrar cuanto queda en caja. (El programa termina cuando se ingresa un egreso
imaginario de 0).

Condiciones de entrega: La entrega se hará individual y consistirá de un archivo


empaquetado en formato zip o rar que contenga: el archivo en Word con el análisis de
los ejercicios y los ejercicios resueltos en lenguaje C. El archivo debe contener una
carpeta con el nombre del estudiante que realizó el trabajo, seguido por el número de
laboratorio, por ejemplo: SaraGarcés_La6. La fecha y la hora límite de entrega se
establecerá previamente con el docente y deberá enviarse a través de
pis.unicauca.edu.co/moodle

REFERENCIAS
JOYANES Luis. Fundamentos de programación, Algoritmos y estructura de datos.
McGraw – Hill

MSc. Sara Donnelly Garcés Agredo

Você também pode gostar