LENGUAJE DE PROGRAMACION I DEV C++ Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE CAPITULO IV Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1 LENGUAJE DE PROGRAMACION I DEV C++ 4.3 El lazo while Su formato es: while (expresion) instrucción Su funcionalidad debe simplemente repetir la declaración mientras la condición puesta en la expresión es verdadera( distinto de cero). Por ejemplo, vamos a hacer un programa con la cuenta regresiva que usa un lazo-while: Programa # 14 // conteo descendente usando While #include <iostream> using namespace std; int main () { int n; cout << "Ingrese numero inicial > "; cin >> n; while (n>0) { cout << n << ", "; --n; } cout << "FIN\n"; system(“pause”); return 0; } Ejecución del programa ; Ingrese numero inicial > 7 7, 6 , 5 , 4 , 3 , 2 . 1 , FIN presione una tecla para continuar . . . Cuando el programa comienza pide al usuario ingresar un número de partida para la cuenta regresiva. Entonces el lazo while comienza, si el valor ingresado Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 2 LENGUAJE DE PROGRAMACION I DEV C++ por el usuario cumple con la condición n> 0 ( n es mayor cero) el bloque que sigue a la condición será ejecutada y repetida mientras la condición (n > 0) siga siendo verdadera El proceso total del programa anterior puede ser interpretado según la secuencia siguiente (comenzando en main ): 1. El usuario asigna un valor a n 2. La condicion while es evaluada (n>0). En este punto hay dos posibilidades : * La condicion es verdadera : La instruccion es ejecutada ( ir al paso 3) * la condicion es falsa : ignorar instrucción y continuar (ir al paso 5) 3. Ejecutar instruccion: cout << n << ", "; --n; (imprime el valor de n en la pantalla y decrementa el valor de n en 1) 4. Fin del bloque . Regresar automaticamente al paso 2 Continuar el programa después del bloque : Imprimir FIN y terminar el programa. Cuando creamos un lazo While , siempre debemos considerar que tiene que terminarse en algún punto, por lo tanto debemos proporcionar dentro del bloque algún método de obligar a la condición de hacerse falsos en algún punto, si no el lazo seguirá infinitamente. En este caso hemos incluido - la n; que disminuye el valor de la variable que es evaluada en la condición (n) en cada iteración , hasta que el valor de n se hace cero y por tanto la condición sea falsa terminando el lazo. Desde luego esto es una acción tan simple para nuestro ordenador que la cuenta regresiva entera es realizada al instante y sin demora . Ejercicios Propuestos 1 - Realizar un programa que imprima 25 términos de la serie 11 - 22 - 33 - 44, etc. (No se ingresan valores por teclado). 2 - Mostrar los múltiplos de 8 hasta el valor 500. Debe aparecer en pantalla 8 -16 -24, etc. 3 - Escribir un programa que lea 10 notas de alumnos y nos informe cuántos tienen notas mayores o iguales a 11 y cuántos menores. 4 - Se ingresan un conjunto de 5 alturas de personas por teclado. Mostrar la altura promedio de las personas 5 - En una empresa trabajan 5 empleados cuyos sueldos oscilan entre $100 y $500, realizar un programa que lea los sueldos que cobra cada empleado e informe cuántos empleados cobran entre $100 y $300 y cuántos cobran más de $300. Además el programa deberá informar el importe que gasta la empresa en sueldos al personal. 6 - Desarrollar un programa que permita cargar 5 números enteros y luego nos informe cuántos valores fueron pares y cuántos impares. Emplear el operador "%" en la condición de la estructura condicional Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 3 LENGUAJE DE PROGRAMACION I DEV C++ if (valor%2==0) El operador "%" retorna el resto de la división valor / 2. Por ejemplo: 12 % 2, retorna 0; 13 % 2, retorna 1, porque el resto de dividir 13 en 2 es 1. 4.4 El lazo do-while Su formato es : do instrucciòn while (condicion); Su funcionalidad es exactamente la misma que el lazo WHILE , con la excepción que en el do-while la condición es evaluada después de la ejecución de la instrucción , permitiendo al menos una ejecución de la instrucción incluso si la condición fuese falsa . Por ejemplo, el programa de ejemplo siguiente repite cualquier número en el que usted ingrese hasta que usted ingrese 0 Programa # 15 #include <iostream> using namespace std; int main () { unsigned long n; do { cout << "Ingrese un numero (0 para terminar): "; cin >> n; cout << "Ha ingresado: " << n << "\n"; } while (n != 0); system(“pause”); return 0; } Ejecución del programa: Ingrese un numero (0 para terminar ) : 12 Ha ingresado 12 Ingrese un numero (0 para terminar ) : 0 Ha ingresado 0 Presione cualquier tecla para continuar. . . Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 4 LENGUAJE DE PROGRAMACION I DEV C++ Programas Propuestos 1. Realizar un programa que acumule (sume) valores ingresados por teclado hasta ingresa el 9999 (no sumar dicho valor, solamente indica que ha finalizado la carga). Imprimir el valor acumulado e informar si dicho valor es cero, mayor a cero o menor a cero En un banco se procesan datos de las cuentas corrientes de sus clientes. De cada cuenta corriente se conoce: número de cuenta, nombre del cliente y saldo actual. El ingreso de datos debe finalizar al ingresar un valor negativo en el número de cuenta. Se pide confeccionar un programa que lea los datos de las cuentas corrientes e informe: a) De cada cuenta: número de cuenta, nombre del cliente y estado de la cuenta según su saldo, sabiendo que: Estado de la cuenta `Acreedor ´si el saldo es < 0 'Deudor' si el saldo es <0 'Nulo' si el saldo es =0. b) La suma total de los saldos acreedores. 3 - Se realizó un censo provincial y se desea procesar la información obtenida en dicho censo. De cada una de las personas censadas se tiene la siguiente información: número de documento, edad y sexo ('femenino' o 'masculino'). Se pide confeccionar un programa que lea los datos de cada persona censada (para finalizar ingresar el valor cero en el número de documento) e informar: a) b) c) Cantidad total de personas censadas. Cantidad de varones. Cantidad de mujeres. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 5