Tutorial para crear números aleatorios en C++ con ciclos

0

Tutorial para crear programas que generen números aleatorios utilizando funciones, ciclo while y estructura switch case

Tutoriales sobre el lenguaje de programación C++

En este tutorial veremos cómo generar números aleatorios en el lenguaje de programación C++, ya sea sin ciclos o con ciclos. En este ejemplo se utilizó el compilador WxDevC++ pero puedes utilizar el de tu preferencia.

Generar números aleatorios en C++ sin ciclos

Con el siguiente código puedes generar un número aleatorio entre 1 y 100:

#include <iostream>
#include <cstdlib> // Se incluye la biblioteca para generar numeros aleatorios
#include <ctime> // Se incluye la biblioteca para obtener la hora actual
#include <stdlib.h> // Se incluye la biblioteca para utilizar comandos del sistema

int main() {
    // Generamos una semilla para la generación de números aleatorios
    std::srand(std::time(0));
    
    // Generamos un número aleatorio entre 1 y 100
    int numeroAleatorio = std::rand() % 100 + 1;
    
    // Mostramos el número aleatorio en pantalla
    std::cout << "Numero aleatorio: " << numeroAleatorio << std::endl;
    system ("PAUSE()");
    return 0;
}

El código es muy sencillo y se puede saber qué hace cada línea de código con los comentarios, pero para resumir, se crea la variable numeroAleatorio de tipo entero, donde se almacenará el número aleatorio generado entre 1 y 100. Después, se mostrará en la pantalla el número y se hará una pausa para que no se cierre la ventana hasta que el usuario presione cualquier tecla.

Generar números aleatorios con un ciclo While

El siguiente código generará un número aleatorio entre 1 y 100, pero a diferencia del código anterior, se usa un ciclo while para mantener el programa en ejecución, generando números aleatorios hasta que el usuario decida salir:

#include <iostream>
#include <cstdlib> // Se incluye la biblioteca para generar números aleatorios
#include <ctime> // Se incluye la biblioteca para obtener la hora actual

int main() {
    // Generamos una semilla para la generación de números aleatorios
    std::srand(std::time(0));
    
    char opcion;
    
    while (true) {
        // Generamos un numero aleatorio entre 1 y 100
        int numeroAleatorio = std::rand() % 100 + 1;
        
        // Mostramos el numero aleatorio en pantalla
        std::cout << "Numero aleatorio: " << numeroAleatorio << std::endl;
        
        // Pedimos al usuario que ingrese una opción para continuar o salir del ciclo
        std::cout << "¿Deseas generar otro numero aleatorio? (s/n): ";
        std::cin >> opcion;
        
        if (opcion != 's' && opcion != 'S') {
            break; // Salir del ciclo si la opción no es 's' o 'S'
        }
    }
    
    return 0;
}

Con este programa, se genera un número aleatorio entre 1 y 100, al mostrarlo en la pantalla, se pide al usuario que elija entre crear otro número o presionar otra tecla para salir.

Generar números aleatorios usando ciclo do while y función switch case

Con el siguiente código, se utiliza un ciclo do while donde se anida una estructura switch case para mostrar un menú con 2 opciones; generar otro número o salir:

#include <iostream>
#include <cstdlib> // Se incluye la biblioteca para generar números aleatorios
#include <ctime> // Se incluye la biblioteca para obtener la hora actual

// Función para generar y mostrar un número aleatorio
void generarNumeroAleatorio() {
    // Generamos un número aleatorio entre 1 y 100
    int numeroAleatorio = std::rand() % 100 + 1;
    
    // Mostramos el número aleatorio en pantalla
    std::cout << "Numero aleatorio: " << numeroAleatorio << std::endl;
}

int main() {
    // Generamos una semilla para la generación de números aleatorios
    std::srand(std::time(0));
    
    char opcion;
    
    do {
        // Menu de opciones
        std::cout << "1. Generar numero aleatorio" << std::endl;
        std::cout << "2. Salir" << std::endl;
        std::cout << "Ingrese una opcion: ";
        std::cin >> opcion;
        
        // Realizamos una acción según la opción seleccionada
        switch (opcion) {
            case '1':
                generarNumeroAleatorio();
                break;
            case '2':
                std::cout << "Saliendo del programa..." << std::endl;
                break;
            default:
                std::cout << "Opcion invalida. Intente nuevamente." << std::endl;
        }
        
        std::cout << std::endl; // Salto de línea
    } while (opcion != '2');
    
    return 0;
}

Este código involucra un ciclo do while y una estructura switch case, además de utilizar una función. Se crea una función llamada generarNumeroAleatorio en la que se crea un número aleatorio entre 1 y 100 y se almacena en la variable de tipo entero numeroAleatorio.

Posteriormente, con un ciclo do while, se muestra el menú de opciones, con la estructura switch case se elije el caso respectivo a lo que el usuario ingrese, ya sea 1, 2 o cualquier otra tecla. Para el caso del 1, se llama a la función generarNumeroAleatorio y se muestra en pantalla, además de desplegar nuevamente el menú, con la opción 2 se cierra el programa, y si se presiona cualquier otra tecla, aparece un mensaje de error.

El ciclo se repite con un while mientras el usuario ingrese una opción distinta a 2.

Si requieres algún programa en específico, no dudes en contactarnos aquí para una cotización.

Si tienes alguna duda o comentario sobre estos programas, déjala aquí abajo para debatirlo!


Gracias por apoyar el libre conocimiento con tu donación!
Bitcoin: bc1q4sw9260twfcxatj8mjp7358cyvrf8whzlelyhj
Ethereum: 0xFb93D2a3c9d1A0b83EE629c2dE1725BCa192e581
Litecoin: LbFduJmHvQXcpCnwfUT7aJ4DYoWSL3iQw8
Dogecoin: D7QQVqNR5rk215A4zd2gyzV9P2bLQtZHFV
Transferencia bancaria en México:
Cuenta CLABE: 661610005838513425 Nombre: Masterhacks LATAM Banco: Alternativos

Unete a nuestros grupos:
WhatsApp: https://chat.whatsapp.com/HcazyklpyeU4X3BF657KFQ
Telegram: https://t.me/masterhacks_net
Canal de WhatsApp https://whatsapp.com/channel/0029VaBBLCn5vKAH9NOWCl3K

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *