You are on page 1of 9

Programación II

Ingeniería en Sistemas de Información Sabatino


Departamento de Computación
Facultad de Ciencias y Tecnología

Estructuras de control de repetición


do/while

Ejecuta una sentencia, simple o compuesta, una o más veces, dependiendo del
valor de una expresión.

do
{
Sentencia;

}while(expresión);

Expresión: Es cualquier expresión numérica, relacional o lógica.

Sentencia: Es una sentencia simple o compuesta.

La ejecución de una sentencia do…while sucede de la siguiente forma:

1. Se ejecuta la sentencia o cuerpo de la sentencia do.

2. Se evalúa la expresión.

3. Si el resultado de la expresión es cero (falso), se pasa a ejecutar


la siguiente sentencia en el programa.

4. Si el resultado de la expresión es distinto de cero (verdadero), el


proceso se repite comenzando en el punto 1.

1
Programación II
Ingeniería en Sistemas de Información Sabatino
Departamento de Computación
Facultad de Ciencias y Tecnología

Ejercicio 1. Veamos un ejemplo en donde se imprimen los números del 1 al 10


usando esta estructura. Al final también se imprime en pantalla el valor
contenido en la variable principal a fin de mostrar cuál es su valor final.

#include<stdio.h>
void main(void)
{
int num = 1;
do {
printf("%d\n", num);
num = num + 1;
} while (num<=10);
printf("La variable num vale: %d\n", num);
}

Esto imprime en pantalla:

2
Programación II
Ingeniería en Sistemas de Información Sabatino
Departamento de Computación
Facultad de Ciencias y Tecnología

Ejemplo 2. Elaborar un programa utilizando do…while que saque la


potencia de un número.

#include<stdio.h>

void main()

int num=0, opc;


do
{
printf ("\n");
printf ("MENUS DE LAS POTENCIAS DE NUMEROS\n");
printf ("Deme un numero: ");
scanf ("%d", &num);
printf ("1: Hallar el cuadrado.\n");
printf ("2: Hallar el cubo.\n");
printf ("0: Salir del programa.\n");
printf ("\n Elija opcion: ");
scanf ("%d", &opc);
if (opc == 1)
{
printf ("El cuadrado de %d es %d \n", num, num*num);
}
if (opc == 2)
{
printf ("El cubo de %d es %d \n", num, num*num*num);
}
} while ( opc != 0);

Esto imprime por pantalla:

3
Programación II
Ingeniería en Sistemas de Información Sabatino
Departamento de Computación
Facultad de Ciencias y Tecnología

Ejemplo 3. Este es un programa que permite imprimir el alfabeto en


minúsculas.

#include<stdio.h>
void main(void)
{
char car = 'a';
do
{
printf ( "%c \n", car);
car++;
}while (car <= 'z');
}

COMPARACIÓN DE BUCLES while, for y do…while

C proporciona tres sentencias para el control de bucles: while, for y do-while. El


bucle while se repite mientras su condición de repetición del bucle es
verdadero; el bucle for se utiliza normalmente cuando el conteo esté
implicado, o bien el número de iteraciones requeridas se pueda determinar al
principio de la ejecución del bucle, o simplemente cuando exista una necesidad
4
Programación II
Ingeniería en Sistemas de Información Sabatino
Departamento de Computación
Facultad de Ciencias y Tecnología

de seguir el número de veces que un suceso particular tiene lugar. El bucle do-
while se ejecuta de un modo similar a while excepto que las sentencias del
cuerpo del bucle se ejecutan siempre al menos una vez.

La Tabla siguiente describe cuando se usa cada uno de los tres bucles. En C, el
bucle for es el más frecuentemente utilizado de los tres. Es relativamente fácil
reescribir un bucle do-whi le como un bucle while, insertando una asignación
inicial de la variable condicional. Sin embargo, no todos los bucles whlle se
pueden expresar de modo adecuado como bucles do-while, ya que un bucle
do-while se ejecutará siempre al menos una vez y el bucle while puede no
ejecutarse. Por esta razón un bucle whlle suele preferirse a un bucle do-whil e,
a menos que esté claro que se debe ejecutar una iteración como mínimo.

El uso más frecuente es cuando la repetición no está


controlada por contador; el test de condición precede
while a cada repetición del bucle; el cuerpo del bucle puede
no ser ejecutado. Se debe utilizar cuando se desea
saltar el bucle si la condición es falsa.

Bucle de conteo, cuando el número de repeticiones se


conoce por anticipado y puede ser controlado por un
for contador; también es adecuado para bucles que
implican control no contable del bucle con simples
etapas de inicialización y de actualización; el test de la
condición precede a la ejecución del cuerpo del bucle.

Es adecuada para asegurar que al menos se ejecuta el


do…while bucle una vez.

Comparación de tres bucles.

cuenta = valor_inicial;
while (cuenta < valor_parada)
{
...
cuenta+ + ;
} / * fin de while * /

for (cuenta = valor_inicial; cuenta < valor_parada; cuenta++)


{
…….
} / * fin de for * /

cuenta = valor_inicial;
if (valor-inicial && valor-parada)
do
{
5
Programación II
Ingeniería en Sistemas de Información Sabatino
Departamento de Computación
Facultad de Ciencias y Tecnología

...
cuenta++ ;
}while (cuenta < valor_parada);

EJERCICIOS PROPUESTOS DE LA ESTRUCTURA DE CONTROL do…while en C

1. En una tienda de descuento las personas que van a pagar el importe


de su compra llegan a la caja y sacan una bolita de color, que les dirá
que descuento tendrán sobre el total de su compra. Determinar la
cantidad que pagara cada cliente desde que la tienda abre hasta que
cierra. Se sabe que si el color de la bolita es roja el cliente obtendrá un
40% de descuento; si es amarilla un 25% y si es blanca no obtendrá
descuento.

Inicio
res= “SI”

Repetir

Leer bolita, imp_compra

SI bolita=”roja” entonces

6
Programación II
Ingeniería en Sistemas de Información Sabatino
Departamento de Computación
Facultad de Ciencias y Tecnología

Desc=imp_compra *0.40

SI NO

SI bolita =”amarilla” entonces

Desc=imp_compra *0.25

SI NO

SI bolita =”blanca” entonces

Desc=0

SI NO

Imprimir “El color de la bolita es invalido”

FIN SI

FIN SI

FIN SI

Can_pagar= imp_compra-Desc

Imprimir Can_pagar

Imprimir “Desea introducir otro cliente?”

Leer resp

Hasta (resp==”NO”)

Fin

2. En un supermercado una ama de casa pone en su carrito los artículos


que va tomando de los estantes. La señora quiere asegurarse de que el
cajero le cobre bien lo que ella ha comprado, por lo que cada vez que
toma un articulo anota su precio junto con la cantidad de artículos
iguales que ha tomado y determina cuánto dinero gastara en ese
artículo; a esto le suma lo que ira gastando en los demás artículos, hasta
que decide que ya tomo todo lo que necesitaba. Ayúdale a esta señora a
obtener el total de sus compras.

Inicio

Sum_C=0

Repetir

7
Programación II
Ingeniería en Sistemas de Información Sabatino
Departamento de Computación
Facultad de Ciencias y Tecnología

Leer pre_articu, cant_articu

Compra= pre_articu * cant_articu

Sum_C= Sum_C+ Compra

Imprimir “Desea mas artículos?”

Leer rep

Hasta (resp != n)

Imprimir Sum_C

Fin

3. Leer 50 calificaciones de un grupo de alumnos. Calcule y escriba el


porcentaje de reprobados. Tomando en cuenta que la calificación
mínima aprobatoria es de 70.

Inicio

repro = 0, i=1

Repetir

Leer calif

SI (calif<70) entonces

repro=repro+1

FIN SI

i=i+1

Hasta (i>50)

porcent=(repro*100)/50

Imprimir porcent

Fin

Elaborar el pseudocódigo y el programa en C de los siguientes ejercicios propuestos.

8
Programación II
Ingeniería en Sistemas de Información Sabatino
Departamento de Computación
Facultad de Ciencias y Tecnología

1. En la Cámara de Diputados se levanta una encuesta con todos los


integrantes con el fin de determinar qué porcentaje de los n diputados
esta a favor del Tratado de Libre Comercio, que porcentaje está en
contra y que porcentaje se abstiene de opinar.

2. Leer los 250,000 votos otorgados a los 3 candidatos a gobernador e


imprimir el número del candidato ganador y su cantidad de votos.

3. Suponga que tiene usted una tienda y desea registrar las ventas en
su computadora. Diseñe un algoritmo que lea por cada cliente, el monto
total de su compra. Al final del día que escriba la cantidad total de
ventas y el número de clientes atendidos.

You might also like