You are on page 1of 8

Programacin II Ingeniera en Sistemas de Informacin Sabatino Departamento de Computacin Facultad de Ciencias y Tecnologa

Estructuras de control de repeticin do/while


Ejecuta una sentencia, simple o compuesta, una o ms veces, dependiendo del valor de una expresin. do { Sentencia; }while(expresin); Expresin: Sentencia: Es cualquier expresin numrica, relacional o lgica. Es una sentencia simple o compuesta.

La ejecucin de una sentencia dowhile sucede de la siguiente forma: 1. Se ejecuta la sentencia o cuerpo de la sentencia do. 2. Se evala la expresin. 3. Si el resultado de la expresin es cero (falso), se pasa a ejecutar la siguiente sentencia en el programa. 4. Si el resultado de la expresin es distinto de cero (verdadero), el proceso se repite comenzando en el punto 1.

Programacin II Ingeniera en Sistemas de Informacin Sabatino Departamento de Computacin Facultad de Ciencias y Tecnologa
Ejercicio 1. Veamos un ejemplo en donde se imprimen los nmeros del 1 al 10 usando esta estructura. Al final tambin se imprime en pantalla el valor contenido en la variable principal a fin de mostrar cul 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:

Ejemplo 2. Elaborar un programa utilizando dowhile que saque la potencia de un nmero. #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"); 2

Programacin II Ingeniera en Sistemas de Informacin Sabatino Departamento de Computacin Facultad de Ciencias y Tecnologa

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:

Programacin II Ingeniera en Sistemas de Informacin Sabatino Departamento de Computacin Facultad de Ciencias y Tecnologa

Ejemplo 3. Este es un programa que permite imprimir el alfabeto en minsculas. #include<stdio.h> void main(void) { char car = 'a'; do { printf ( "%c \n", car); car++; }while (car <= 'z'); }

COMPARACIN DE BUCLES while, for y dowhile


C proporciona tres sentencias para el control de bucles: while, for y do-while. El bucle while se repite mientras su condicin de repeticin del bucle es verdadero; el bucle for se utiliza normalmente cuando el conteo est implicado, o bien el nmero de iteraciones requeridas se pueda determinar al principio de la ejecucin del bucle, o simplemente cuando exista una necesidad de seguir el nmero 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 ms frecuentemente utilizado de los tres. Es relativamente fcil reescribir un bucle do-whi le como un bucle while, insertando una asignacin 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 dowhile se ejecutar siempre al menos una vez y el bucle while puede no ejecutarse. Por esta razn un bucle whlle suele preferirse a un bucle do-whil e, a menos que est claro que se debe ejecutar una iteracin como mnimo. El uso ms frecuente es cuando la repeticin no est controlada por contador; el test de condicin precede a cada repeticin del bucle; el cuerpo del bucle puede no ser ejecutado. Se debe utilizar cuando se desea saltar el bucle si la condicin es falsa. Bucle de conteo, cuando el nmero de repeticiones se conoce por anticipado y puede ser controlado por un contador; tambin es adecuado para bucles que implican control no contable del bucle con simples etapas de inicializacin y de actualizacin; el test de la condicin precede a la ejecucin del cuerpo del bucle. Es adecuada para asegurar que al menos se ejecuta el bucle una vez. 4

while

for

dowhile

Programacin II Ingeniera en Sistemas de Informacin Sabatino Departamento de Computacin Facultad de Ciencias y Tecnologa

Comparacin 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 { ... cuenta++ ; }while (cuenta < valor_parada);

Programacin II Ingeniera en Sistemas de Informacin Sabatino Departamento de Computacin Facultad de Ciencias y Tecnologa

EJERCICIOS PROPUESTOS DE LA ESTRUCTURA DE CONTROL dowhile 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 tendrn 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 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 6

Programacin II Ingeniera en Sistemas de Informacin Sabatino Departamento de Computacin Facultad de Ciencias y Tecnologa

2. En un supermercado una ama de casa pone en su carrito los artculos que va tomando

de los estantes. La seora 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 artculos iguales que ha tomado y determina cunto dinero gastara en ese artculo; a esto le suma lo que ira gastando en los dems artculos, hasta que decide que ya tomo todo lo que necesitaba. Aydale a esta seora a obtener el total de sus compras.
Inicio Sum_C=0 Repetir Leer pre_articu, cant_articu Compra= pre_articu * cant_articu Sum_C= Sum_C+ Compra Imprimir Desea mas artculos? 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 calificacin mnima aprobatoria es de 70.


Inicio repro = 0, i=1 Repetir Leer calif SI (calif<70) entonces repro=repro+1 FIN SI 7

Programacin II Ingeniera en Sistemas de Informacin Sabatino Departamento de Computacin Facultad de Ciencias y Tecnologa

i=i+1 Hasta (i>50) porcent=(repro*100)/50 Imprimir Fin porcent

Elaborar el pseudocdigo y el programa en C de los siguientes ejercicios propuestos.

1. En la Cmara 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 nmero del candidato ganador y su cantidad de votos.

3. Suponga que tiene usted una tienda y desea registrar las ventas en su computadora. Disee un algoritmo que lea por cada cliente, el monto total de su compra. Al final del da que escriba la cantidad total de ventas y el nmero de clientes atendidos.

You might also like