Archivo de la etiqueta: while

Ficheros en C++


En ocasiones necesitamos almacenar la información con la que estamos trabajando. Para esto, tendremos que hacer uso de los ficheros.

Como ejemplos de aplicación en C++, vamos a hacer dos actividades. En la primera crearemos un programa que pida números y los guarde en un fichero llamado numeros.txt separados por espacios. El programa dejará de almacenar datos cuando incluyamos el 0.

El código y la salida del programa obtenida en el terminal la podemos observar en las siguientes imágenes.

En primer lugar hemos tenido que incluir la librería referente a ficheros con el comando #include <fstream>. Asimismo, con la orden ofstream fichero(“numeros.txt”) abrimos un fichero para escribir, con el nombre indicado entre comillas. Para ir almacenando la información en el fichero recurrimos a do-while, para que primero ejecute una acción y la mantenga mientras (while) se cumpla una condición, que será que el número introducido no sea 0 numero != 0. La orden para almacenar la información en fichero es fichero << numero << ” “.

Para terminar el programa cerraremos el fichero con la orden fichero.close().

La segunda actividad consiste en un programa que suma los números almacenados anteriormente en el fichero numeros.txt.

En las imágenes de abajo se aprecian el código del programa y su salida en el terminal.

En este programa se hace uso de do-while también. En primer lugar hemos tenido que incluir la librería referente a ficheros con el comando #include <fstream>. Con la orden ifstream fichero(“numeros.txt”) tenemos la posibilidad de leer los datos del archivo, y para calcular comenzamos inicializando esta variable a valor 0 y sumando cada uno de los valores (suma=suma+numero) mientras que no se llegue al final  del fichero (! fichero.eof()). Finalmente, como en el programa anterior, es importante cerrar el fichero con la orden fichero.close().

Anuncios

Bucles en C++


A la hora de programar, existen ocasiones en las que nos puede interesar comprobar una condición de forma repetida. Para ello hacemos uso de los bucles.

Como estamos viendo hasta ahora, voy a explicar cómo usar diferentes órdenes en C++ a través de ejemplos. Así, si queremos crear un programa que pida al usuario su contraseña, tantas veces como sea necesario, hasta que introduzca un número, la posible solución se muestra a continuación.

Como se puede observar, la orden utilizada es while, que repite el bucle de forma repetida mientras que se cumpla la condición que se establece entre paréntesis. El signo !, significa la negación de lo que hay a continuación.

La salida de este programa aparaece en la imagen de abajo.

Otro ejemplo de uso del while lo encontramos en un programa que escriba en pantalla, de mayor a menor, los números pares del 26 al 10. Como se observa, el bucle se repite mientras se cumpla la condición de que el número sea mayor o igual a 10.

La salida se muestra a continuación.

Asimismo, si queremos hacer un programa que pida un código de usuario y una contraseña para entrar a un sistema, también podemos hacer uso de la orden while. Como se puede advertir en la imagen de abajo, necesitamos que se cumplan dos condiciones en el bucle, por lo que incluimos el operador && (Y).

La salida de este programa con bucle se muestra a continuación.

Por último, si deseamos hacer un programa que de al usuario la oportunidad de adivinar un número del 1 al 100, en un máximo de seis intentos, teniendo en cuenta que en cada intento avisará al usuario si se ha pasado o se ha quedado corto, además de la orden while, nos hará falta la orden for. La sintaxis de esta última orden se plantea poniendo entre paréntesis los siguientes parámetros valor inicial, condición para que se cumpla y fórmula del incremento del bucle, separados por punto y coma. En este programa el bucle for se ha configurado para que contabilice los intentos, por eso sus llaves de apertura y cierre abarcan casi todo el código. Además, anidado hay otro bucle con while para evitar que el usuario introduzca un valor por debajo de 1 o por encima de 100. Nótese el uso del operador || (O).  Para averiguar si el número propuesto es el correcto, o si nos hemos pasado o quedado corto, se usa la orden if.

Como se puede observar, para que se genere un número aleatorio, se han utilizado las órdenes:

srand(time(NULL));
int numero=(rand()%100)+1, propuesto;

De esta forma, la semilla para generar el número aleatorio es la hora del sistema, y el número será como máximo 100, ya que el resto de dividir el número aleatorio entre 100 estará comprendido 0 y 99. Por eso le sumamos 1.

Además, tenemos que añadir #include <cstdlib> y #include <ctime> para poder usar las órdenes anteriores. La salida se aprecia abajo.