documento do while

Anuncio
Sentencia do…while Sabatino
2010
EL BUCLE do…while
La sentencia do-while se utiliza para especificar un bucle condicional que se ejecuta al
menos una vez. Esta situación se suele dar en algunas circunstancias en las que se ha de
tener la seguridad de que una determinada acción se ejecutará una o varias veces, pero al
menos una vez.
Sintaxis:
do
sentencia
while(expresión);
La construcción do comienza ejecutando sentencia. Se evalúa a continuación expresión. Si
expresión es verdadera, entonces se repite la ejecución de sentencia. Este proceso
continúa hasta que expresión es falsa.
Ejemplo 1:
#include <stdio.h>
int numero;
void main(void)
{
do
{
printf("Introduzca un numero (0 - 5): ");
scanf("%d",&numero);
}while((numero <0) || (numero > 5));
Ejemplo 2:
#include <stdio.h>
void main()
{
char op;
do
{
printf("Bienvenida");
printf(“Presione una letra s si desea leer la bienvenida”);
printf("y a continuación pulse enter: ");
Sentencia do…while Sabatino
2010
fflush(stdin);
scanf("%c",&opcion);
}while(op == 's' || op == 'S');
printf("Bienvenidos al curso de do…while");
}
fflush sierve para liberar memoria de
algun bufer, un lugar donde es
recomendable usarla es:
fflush(stdin);
getch();
ó
fflush(stdin);
scanf(“%s %d”,&cadena,&numero);
Ejemplo 3:
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á qué descuento tendrán sobre el total de su
compra. Determinar la cantidad que pagará 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.
#include <stdio.h>
#include <string.h>
float importecompra, desc, cantidadpagar;
void main(void)
{
char resp;
char colorbolita[20];
do
{
printf("\nColor de la bolita: ");
fflush(stdin);
gets(colorbolita);
printf("Importe de compra: ");
fflush(stdin);
scanf("%f",&importecompra);
if(!strcmp(colorbolita,"roja"))
desc = importecompra * 0.4;
else if(!strcmp(colorbolita,"amarilla"))
desc = importecompra * 0.25;
else if(!strcmp(colorbolita,"blanca"))
desc = 0;
else
printf("Color invalido\n");
cantidadpagar = importecompra - desc;
Compara la cadena
apuntada por var1 con
la cadena apuntada por
var2.
Sentencia do…while Sabatino
2010
printf("\nCantidad a pagar = %.2f\n",cantidadpagar);
printf("\nDesea introducir otro cliente?\n");
fflush(stdin);
resp = getchar();
}while(resp == 's' || resp == 'S');
}
Lee un carácter del
teclado. Espera
hasta que se pulsa
una tecla y
entonces devuelve
su valor
EJERCICIOS PROPUESTOS
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 está a favor del Tratado de
Libre Comercio, que porcentaje está en contra y que porcentaje se abstiene de
opinar.
2. Una persona que va de compras a la tienda “Enano, S.A.”, decide llevar un control
sobre lo que va comprando, para saber la cantidad de dinero que tendrá que pagar
al llegar a la caja. La tienda tiene una promoción del 20% de descuento sobre
aquellos artículos cuya etiqueta sea roja. Determinar la cantidad de dinero que
esta persona deberá pagar.
3. Un jefe de casilla desea determinar cuántas personas de cada una de las secciones
que componen su zona asisten el día de las votaciones. Las secciones son: norte,
sur y centro. También desea determinar cuál es la sección con mayor número de
votantes.
Descargar