CODIGO 1
#include <iostream>
using namespace std;
class CFac {
private:
int num; // Número para el que se calcula el factorial (0 < num <= 33)
float fact; // Factorial calculado del número
public:
// Constructor por defecto
CFac() : num(0), fact(1) {
cout << "Objeto creado." << endl;
// Método para leer el número
void ent() {
do {
cout << "Ingrese un número entero (1 <= num <= 33): ";
cin >> num;
} while (num < 1 || num > 33);
// Método para calcular el factorial e imprimir valores intermedios
void proc() {
fact = 1;
cout << "Cálculo del factorial: " << endl;
for (int i = 1; i <= num; ++i) {
fact *= i;
cout << "Intermedio (" << i << "): " << fact << endl;
// Método para imprimir el resultado del factorial
void sal() const {
cout << "El factorial de " << num << " es: " << fact << endl;
// Destructor
~CFac() {
cout << "Objeto destruido. Liberando recursos." << endl;
};
int main() {
CFac obj; // Crear el objeto de la clase
obj.ent(); // Leer el número
obj.proc(); // Calcular el factorial
obj.sal(); // Imprimir el factorial
return 0;
}
Programa 2
#include <iostream>
using namespace std;
class CCalProm {
private:
float calificaciones[5]; // Arreglo para almacenar las calificaciones
float promedio; // Variable para almacenar el promedio
int aprobadas; // Número de calificaciones aprobadas
int reprobadas; // Número de calificaciones reprobadas
public:
// Constructor por defecto
CCalProm() : promedio(0), aprobadas(0), reprobadas(0) {
cout << "Objeto creado." << endl;
// Método para procesar las calificaciones
void proc() {
char continuar;
do {
aprobadas = 0;
reprobadas = 0;
promedio = 0;
cout << "\nIngrese 5 calificaciones (0 <= calificación <= 10):" << endl;
for (int i = 0; i < 5; ++i) {
do {
cout << "Calificación " << i + 1 << ": ";
cin >> calificaciones[i];
if (calificaciones[i] < 0 || calificaciones[i] > 10) {
cout << "Error: La calificación debe estar entre 0 y 10." << endl;
} while (calificaciones[i] < 0 || calificaciones[i] > 10);
// Contar aprobadas y reprobadas
if (calificaciones[i] >= 6) {
aprobadas++;
} else {
reprobadas++;
promedio += calificaciones[i]; // Sumar para calcular el promedio
promedio /= 5; // Calcular el promedio
// Mostrar resultados
cout << "\nResultados:" << endl;
cout << "Promedio de calificaciones: " << promedio << endl;
cout << "Cantidad de aprobadas: " << aprobadas << endl;
cout << "Cantidad de reprobadas: " << reprobadas << endl;
// Preguntar si desea repetir el programa
cout << "\n¿Desea repetir el programa? (s/n): ";
cin >> continuar;
} while (continuar == 's' || continuar == 'S');
// Destructor
~CCalProm() {
cout << "Objeto destruido. Liberando recursos." << endl;
};
int main() {
CCalProm obj; // Crear un objeto de la clase
obj.proc(); // Procesar calificaciones y manejar repetición
cout << "Fin del programa." << endl;
return 0;
}
Programa 3
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class RandomGenerator {
private:
int n; // Cantidad de números aleatorios entre 100 y 500
int ArrAle[500]; // Arreglo para almacenar los números aleatorios entre 0 y 10
int Arr0_10[11]; // Contador de números entre 0 y 10
char opc; // Opción para repetir el proceso
public:
// Método para imprimir un encabezado
void let() {
cout << "\nESIME - IE-2EM9\n" << endl;
// Método para leer la cantidad de números
void ent() {
do {
cout << "Ingrese la cantidad de números aleatorios a generar (entre 100 y 500):
";
cin >> n;
if (n < 100 || n > 500) {
cout << "Error: La cantidad debe estar entre 100 y 500." << endl;
} while (n < 100 || n > 500);
// Método para generar y procesar números aleatorios
void proc() {
// Inicializar la semilla para números aleatorios
srand(static_cast<unsigned>(time(0)));
// Inicializar contadores
for (int i = 0; i <= 10; ++i) {
Arr0_10[i] = 0;
// Generar números aleatorios y procesar
cout << "\nGenerando " << n << " números aleatorios entre 0 y 10:" << endl;
for (int i = 0; i < n; ++i) {
ArrAle[i] = rand() % 11; // Número aleatorio entre 0 y 10
cout << ArrAle[i] << " ";
Arr0_10[ArrAle[i]]++; // Incrementar el contador correspondiente
cout << endl;
// Método para mostrar resultados
void sal() {
cout << "\nResultados:" << endl;
// Mostrar el conteo de números entre 0 y 10
int total0_10 = 0;
for (int i = 0; i <= 10; ++i) {
total0_10 += Arr0_10[i];
cout << "Números " << i << ": " << Arr0_10[i] << endl;
cout << "Total de números generados entre 0 y 10: " << total0_10 << endl;
};
int main() {
char continuar;
do {
RandomGenerator obj; // Crear un objeto de la clase
obj.let(); // Imprimir encabezado
obj.ent(); // Leer la cantidad de números
obj.proc(); // Generar y procesar números
obj.sal(); // Mostrar resultados
// Preguntar si desea repetir el programa
cout << "\n¿Desea repetir el programa? (s/n): ";
cin >> continuar;
} while (continuar == 's' || continuar == 'S');
cout << "Fin del programa." << endl;
return 0;
Programa 4
#include <iostream>
#include <cmath>
using namespace std;
class CCilindro {
private:
float r; // Radio del cilindro
float h; // Altura del cilindro
public:
// Constructor
CCilindro() : r(0), h(0) {
cout << "Cilindro creado." << endl;
// Método para leer los valores del radio y la altura
void Leer(float radio, float altura) {
r = radio;
h = altura;
// Método para calcular e imprimir el área de la base
void areaBase() {
float area_base = M_PI * r * r;
cout << "Área de la base: " << area_base << " unidades cuadradas" << endl;
// Método para calcular el área total
float areaTotal() {
float area_base = M_PI * r * r;
float area_lateral = 2 * M_PI * r * h;
return 2 * area_base + area_lateral; // Área total: 2*base + lateral
// Método para mostrar los resultados
void dsp() {
cout << "\nResultados del Cilindro:" << endl;
cout << "Radio: " << r << endl;
cout << "Altura: " << h << endl;
areaBase(); // Imprime el área de la base
cout << "Área total: " << areaTotal() << " unidades cuadradas" << endl;
// Destructor
~CCilindro() {
cout << "Cilindro destruido. Liberando recursos." << endl;
};
int main() {
char opc;
do {
float radio, altura;
// Crear una instancia del objeto CCilindro dentro del main
CCilindro obj;
// Leer los datos
cout << "Ingrese el radio del cilindro: ";
cin >> radio;
cout << "Ingrese la altura del cilindro: ";
cin >> altura;
// Asignar los valores al objeto y mostrar resultados
obj.Leer(radio, altura);
obj.dsp();
// Preguntar si desea repetir el programa
cout << "\n¿Desea calcular otro cilindro? (s/n): ";
cin >> opc;
} while (opc == 's' || opc == 'S');
cout << "Fin del programa." << endl;
return 0;
Programa 5
/* P27HrMam.cpp */
#include <conio.h>
#include <cstdlib>
#include <cstring>
#include <iostream>
using namespace std;
class Mamifero {
protected:
char dieta[30], lugNac[30], raza[30];
int anioNac;
public:
Mamifero(char[], char[], char[], int);
virtual void imprime();
~Mamifero() {
cout << "\nMamifero destruido";
}
};
Mamifero::Mamifero(char d[], char ln[], char r[], int anio) {
strcpy(dieta, d);
strcpy(lugNac, ln);
strcpy(raza, r);
anioNac = anio;
cout << "\nMamifero construido";
void Mamifero::imprime() {
cout << "\n\nDieta: " << dieta
<< "\nLugar de Nacimiento: " << lugNac
<< "\nRaza: " << raza
<< "\nAño de Nacimiento: " << anioNac;
class Felino : public Mamifero {
protected:
char nomCirco[20];
public:
Felino(char[], char[], char[], int, char[]);
void cambiaCirco(char[]);
void imprime();
~Felino() {
cout << "\nFelino destruido";
};
Felino::Felino(char d[], char ln[], char r[], int anio, char nc[])
: Mamifero(d, ln, r, anio) {
strcpy(nomCirco, nc);
cout << "\nFelino construido";
void Felino::cambiaCirco(char nuevoCirco[]) {
strcpy(nomCirco, nuevoCirco);
void Felino::imprime() {
Mamifero::imprime();
cout << "\nNombre del Circo: " << nomCirco;
class Gato : public Felino {
private:
char duenio[20];
public:
Gato(char[], char[], char[], int, char[], char[]);
void cambiaDuenio(char[]);
void imprime();
~Gato() {
cout << "\nGato destruido";
};
Gato::Gato(char d[], char ln[], char r[], int anio, char nc[], char du[])
: Felino(d, ln, r, anio, nc) {
strcpy(duenio, du);
cout << "\nGato construido";
void Gato::cambiaDuenio(char nuevoDuenio[]) {
strcpy(duenio, nuevoDuenio);
void Gato::imprime() {
Felino::imprime();
cout << "\nDueño: " << duenio;
void usaHerenciaPolimorfismo() {
Mamifero* obj1;
Mamifero* obj2;
Felino objFel("Carnivoro", "Africa", "León", 2015, "Circo Roma");
Gato objGat("Carnivoro", "Mexico", "Siames", 2020, "Circo Sol", "Carlos");
obj1 = &objFel;
obj2 = &objGat;
cout << "\n\n--- Felino ---";
obj1->imprime();
obj1->Mamifero::imprime();
cout << "\n\n--- Gato ---";
obj2->imprime();
obj2->Mamifero::imprime();
cout << "\n\n\nMostrando objetos directamente:";
cout << "\n\nFelino:";
objFel.imprime();
cout << "\n\nGato:";
objGat.imprime();
int main() {
system("cls");
usaHerenciaPolimorfismo();
getch();
return 0;
}