Programación en C++: Divisores, Rectángulos, Arrays y Ficheros con Ejemplos Prácticos

Informática y Telecomunicaciones6,24 KB

Ejercicios de programación en C++

A continuación se presentan varios ejemplos prácticos de programación en C++, con su código fuente comentado, que abarcan bucles, arrays, entrada y salida por consola, manejo de ficheros y funciones.

1. Divisores de un número

Este programa solicita un número entero y muestra todos sus divisores.

// Divisores de un número.
#include <iostream>
using namespace std;

int main()
{
    int numero;
    int divisor;
    cout << "Dime un número entero: ";
    cin >> numero;
    for (divisor = 1; divisor <= numero; divisor++)
        if (numero % divisor == 0)
            cout << divisor << " ";
    return 0;
}

2. Rectángulo de asteriscos

Dibuja un rectángulo de asteriscos a partir del ancho y el alto introducidos por el usuario.

// Rectángulo de asteriscos.
#include <iostream>
using namespace std;

int main()
{
    int alto;
    int ancho;
    int fila;
    int col;
    cout << "Dime el ancho: ";
    cin >> ancho;
    cout << "Dime el alto: ";
    cin >> alto;
    for (fila = 0; fila < ancho; fila++)
    {
        for (col = 0; col < alto; col++)
            cout << "*";
        cout << endl;
    }
    return 0;
}

3. Suma de números sin array

Pide 10 datos al usuario y calcula su suma acumulada.

// Sumar número sin array.
#include <iostream>
using namespace std;

int main()
{
    int dato;
    int suma = 0;
    for (int i = 0; i < 10; i++)
    {
        cout << "Dime un dato: ";
        cin >> dato;
        suma += dato;
    }
    cout << "La suma es: " << suma << endl;
    return 0;
}

4. Búsqueda en array

Almacena 10 datos en un array y muestra la posición en la que aparece cada número buscado, hasta que el usuario introduzca el valor 0.

// Buscar en array.
#include <iostream>
using namespace std;

int main()
{
    int datos[10];
    for (int i = 0; i < 10; i++)
    {
        cout << "Dime el dato " << i + 1 << ": ";
        cin >> datos[i];
    }
    int busqueda;
    do
    {
        cout << "Dime un número: ";
        cin >> busqueda;
        if (busqueda != 0)
            for (int i = 0; i < 10; i++)
                if (busqueda == datos[i])
                    cout << "Está en la posición " << i + 1 << endl;
    }
    while (busqueda != 0);
    cout << "¡Hasta luego!" << endl;
    return 0;
}

5. Búsqueda en array indicando si aparece o no

Variante del ejemplo anterior que informa únicamente si el valor se encuentra o no en el array.

// Buscar en array (indicar si aparece o no).
#include <iostream>
using namespace std;

int main()
{
    int datos[10];
    for (int i = 0; i < 10; i++)
    {
        cout << "Dime el dato " << i + 1 << ": ";
        cin >> datos[i];
    }
    int busqueda;
    do
    {
        cout << "Dime un número: ";
        cin >> busqueda;
        if (busqueda != 0)
        {
            int encontrados = 0;
            for (int i = 0; i < 10; i++)
            {
                if (busqueda == datos[i])
                    encontrados++;
            }
            if (encontrados != 0)
                cout << "Encontrado" << endl;
            else
                cout << "No encontrado" << endl;
        }
    }
    while (busqueda != 0);
    cout << "¡Hasta luego!" << endl;
    return 0;
}

6. Triángulo a fichero

Genera un triángulo de almohadillas y lo guarda en el fichero triangulo.txt.

// Triángulo a fichero.
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int ancho;
    cout << "Dime el ancho del triángulo: ";
    cin >> ancho;
    ofstream fichero("triangulo.txt");
    for (int fila = 0; fila < ancho; fila++)
    {
        for (int col = 0; col < ancho - fila; col++)
            fichero << "#";
        fichero << endl;
    }
    fichero.close();
    cout << "Fichero triangulo.txt creado" << endl;
    return 0;
}

7. Contar espacios en un fichero

Lee un fichero de texto y estima el número de palabras contando los espacios en cada línea.

// Contar espacios en un fichero.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    string nombre;
    string linea;
    int espacios = 0;
    int palabras = 0;
    cout << "Dime el nombre del fichero: ";
    getline(cin, nombre);
    ifstream fichero(nombre.c_str());
    while (!fichero.eof())
    {
        getline(fichero, linea);
        if (!fichero.eof())
        {
            for (int i = 0; i < linea.length(); i++)
                if (linea[i] == ' ')
                    espacios++;
            palabras += (espacios + 1);
        }
    }
    fichero.close();
    cout << "Estimación de palabras: " << palabras << endl;
    return 0;
}

8. Función EscribirNVeces

Ejemplo de una función que recibe un entero y una cadena, y escribe la cadena n veces.

// Función EscribirNVeces.
#include <iostream>
using namespace std;

void EscribirNVeces(int n, string texto)
{
    for (int i = 0; i < n; i++)
        cout << texto;
}

int main()
{
    EscribirNVeces(15, "Hola");
    return 0;
}

Descargar

PDF Word HTML