Sunteți pe pagina 1din 5

Introducción a la programación LENGUAJE CPP Doc. Ing.

Irma Prado

LABORATORIO DE LA SENTENCIA do while.

Objetivo.- Presentar algunos algoritmos clásicos de la utilización de esta sentencia de


repetición.

1. Validación de datos de entrada . En este caso utilizaremos esta sentencia para validar la
entrada de datos. Es decir, vamos a solicitar al usuario ingresar uno o más datos en un
rango que nosotros queremos. Ejemplos cortos, para explicar la validación de datos de
entrada:

Recuerde que la sentencia do{…}while repite la ejecución de las sentencias que se


encuentran entre sus llaves, si y solo sí, la evaluación de la condición que va en while es
VERDADERA

1.1. Realizar un programa que pida al usuario ingresar una nota comprendida entre 0 y
100, luego indicar si la nota corresponde “ aprobado” o “ reprobado”.

#include <iostream.h>
main()
{
int nota;
do{
cout<<"Escriba su nota (entre 0 y 100)? ";
cin>>nota;
}while(nota<0 || nota>100);
if(nota >=51) {
cout<<"Aprobado"<<endl;
}
else
{
cout<<"Reprobado"<<endl;
}
system("pause");
}
La línea de código clave para esta validación es :

}while(nota<0 || nota>100);

Porque programa cuándo se debe repetir la ejecución, en otras palabras, si nota es menos
a cero ó si nota es mayor a 100 repita. Al tener el conector lógico or podemos decir que si
una de las dos condiciones es verdad repita. ES MUY IMPORTANTE QUE ENTIENDA ESTA
CONDICIÓN.

1.2. Tarea 1. Realice un programa que lea la edad de una persona, luego indicar si es niño,
joven, adulto o anciano. La edad es una dato que no puede ser negativo, por razones
obvias, como máximo puede tomar el valor de 100.

1.3. Ahora vamos a ser más drásticos, obligando al usuario que digite un número en
particular, en este caso le vamos a pedir que ingrese un número 5. El usuario lo puede
1
Introducción a la programación LENGUAJE CPP Doc. Ing. Irma Prado

intentar toda la vida y mientras no escriba el dato pedido, el programa continuará


solicitándole el dato.

#include <iostream.h>
main()
{
int dato;
do{
cout<<"Escriba el número 5 : ";
cin>>dato;
}while(dato!=5);
}

1.4. En el siguiente programa, le vamos a pedir que ingrese un dato 5, pero solo le vamos
a dar 3 oportunidades para hacerlo. Entonces, tenemos que contar los intentos
realizados por el usuario. Al final si lo logró le mostramos caritas:

#include <iostream.h>
main()
{
int dato; //variable para el dato
int c=0; //contador para contar las oportunidades
do{
cout<<"Escriba el número 5 : ";
cin>>dato;
c++; //contamos el intento
}while(dato!=5 && c<3);
if (dato==5){
cout<<":) en "<<c<<" intentos....."<<endl;
}
else{
cout<<":("<<endl;
}
system("pause"); //detenemos la ejecución del programa
}

Para entender mejor las condiciones que se realizan en las sentencias condicionales y
repetitivas (if, while, do while), vamos a recurrir a las tablas de verdad de lógica matemática.
Donde VERDAD tiene el valor numérico de 1 y FALSO tiene el valor numérico de 0. Entonces
si la respuesta de una pregunta es falsa asumimos que es 0. Ahora los conectores lógicos que
utilizamos para agrupar varias preguntas en una son

AND en lenguaje Cpp se escribe &&

OR en lenguaje Cpp se escribe ||

2
Introducción a la programación LENGUAJE CPP Doc. Ing. Irma Prado

NOT en lenguaje Cpp se escribe !

Entonces ahora podemos aplicar las tablas de verdad para evaluar correctamente la
respuesta a las preguntas complejas que podamos tener, no se olvide que si la
respuesta es VERDAD asumimos el valor 1 y si la respuesta es FALSA asumimos el
valor 0. Veamos las tablas de verdad:

Ahora vamos a analizar la condición de la sentencia while, suponiendo que estamos


en el primer intento, o sea las condiciones iniciales son dato =8 y c=1;

}while(dato!=5 && c<3);


En este caso tenemos dos preguntas la primera es:
dato !=5
La segunda pregunta es:
C<3
El conector u operador lógico es AND en cpp &&. Con los datos que tenemos
analizamos sus valores de verdad de cada pregunta
8 es diferente de 5 VERDAD 1
1 es menor que 3 VERDAD 1
Ahora aplicamos la tabla AND y vemos que :

3
Introducción a la programación LENGUAJE CPP Doc. Ing. Irma Prado

Note en esta tabla que A es el valor de verdad de la primera pregunta, && el conector,
B es el valor de verdad de la segunda pregunta y Q eh la respuesta o valor de verdad
de toda la condición. En este caso, quiere decir que como la respuesta de la condición
de while es 1 toda la respuesta de la condición while es VERDAD, por lo que se repite la
ejecución de las sentencias entre llaves de do{…} while. No se olvide que do while no
repite cuando la condición es falsa.
1.5. Tarea 2. Se requiere saber los sgtes datos estadísticos de los estudiantes de un
curso, edad, número de materias que cursa y promedio de sus notas. Algunos
estudiantes cursan varias materias. Realice un programa que lea edad, número de
materias, notas y obtenga el promedio de edad de los alumnos del curso, cuántas
materias en promedio cursan los alumnos y el promedio de notas del curso.

1.6. Programa que cuenta datos que ingresa el usuario hasta antes que el usuario
ingrese el 999.

#include <iostream.h>
main()
{
int x; //para los datos que ingresa el usuario
int c=0; //para contar los números que van ingresando
do {
cout<<" (para salir 999) escriba el dato ";
cin>>x;
c++;
}while(x!=999);
cout<<" El usuario ha ingresado "<<c<<" datos incluyendo 999"<<endl;
system("pause");
}

1.7. Tarea 3.- Modifique el programa anterior de tal forma que sume los valores que ha
ingresado el usuario, en esta suma no debe estar considerado el valor 999 que se
utiliza para salir.

1.8. Programa para generar un número random. El defecto de este programa es que
cada vez que ejecute el programa generará el mismo número.

#include<stdlib.h>
/* el defecto de este programa es que en cada ejecucion

4
Introducción a la programación LENGUAJE CPP Doc. Ing. Irma Prado

imprime los mismos numeros*/


main()
{ int r;
r=rand();
cout<< r<<endl;
getch(); //otra forma de detener pantalla
}

1.9. Programa para generar 20 números primos, evitando que en cada ejecución del
programa inicien los mismos números.

#include <cstdlib>
#include <iostream.h>

int main()
{
srand((unsigned)time(0)); //utilizamos para evitar que se generen los mismos
//números en cada ejecución del programa
int i;
for(int k=1;k<=40;k++){ //vamos a generar 40 números
i=rand()%10; //obtiene números randómicos menores de 10, incluyendo el 0
cout << i << "\n"; }
system("pause");
}

1.10. Realice un programa para evaluar las operación de suma, a un niño. El


programa debe tener la siguiente presentación:

Sumar:

==

Y aquí espera la respuesta del estudiante. Si la respuesta es correcta escriba


FELICIDADES!. Si la respuesta es incorrecta que intente otra vez, dele 3
oportunidades.

Los números 3 y 5 del ejemplo fueron generados con números random que no pasan
de 10.

S-ar putea să vă placă și