Programación en C++: Divisores, Rectángulos, Arrays y Ficheros con Ejemplos Prácticos
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;
}