2021-06-17 PC3 Mb545-G-Poo
2021-06-17 PC3 Mb545-G-Poo
2021-06-17 PC3 Mb545-G-Poo
Indicaciones generales:
1) La práctica es individual.
2) En el programa (al inicio) incluir un rótulo de identificación con el nombre del programa, autor
(apellidos y nombres), código, fecha y versión.
3) En el programa principal (main) no deberá realizar ninguna operación de cálculo ni de impresión
de resultados. Usar todos los métodos que sean necesarios.
4) No usar identificadores o variables globales, salvo el valor constante de PI.
5) Validar todos los datos ingresados y mostrar mensajes de error según sea el caso.
6) Usar comentarios con textos adecuados indicando la operación a realizar.
7) Los nombres de las variables deben ser afines a la función o tipo de valor que guardan.
8) El programa finalizará cuando el usuario responda con “S” a la pregunta “¿Desea Salir?”.
9) Copiar en este documento sólo el código fuente del programa (*.h, *.cpp) y además, incluir al
menos tres corridas (“pantallazos”) del programa.
10) Subir a la plataforma del Aula Virtual FIM-UNI, este mismo documento en WORD con la solución
y corridas. No lo convierta a formato PDF. Y en el nombre del archivo Word incluir también su
sección, apellido y nombre.
Pregunta 1:
Se solicita realizar un programa en el lenguaje de programación Visual C++ que - usando el paradigma de
Programación Orientada a Objetos POO (Clases, Atributos, Métodos, Objetos) – permita definir una
clase denominada cTRIANGULO la cual deberá tener cinco atributos [base, altura, lado1, lado2, lado3],
estos atributos deben ser de acceso privado. Para definir e implementar la clase deberá usar un archivo
cabecera *.h y *.cpp Los métodos a implementar, permitirá:
1) Deberá usar sobrecarga de constructores. Uno de los constructores se usará cuando se conozca
la base y la altura; mientras que el otro se usará cuando se sepan los valores de los tres lados.
Para ello deberá preguntar previamente al usuario que ingrese por teclado cuál de las dos
opciones empleará.
2) Usar un método para el cálculo del área del triángulo.
3) Usar un método para calcular el perímetro del triángulo.
4) Para el caso en que se conozca solo los tres lados, se deberá usar un método que valide si con
esos tres lados ingresados se puede formar o no un triángulo. Enviar un mensaje con el
resultado.
5) Usar un método para imprimir todos los resultados [área, perímetro].
Pregunta 2:
Solución (Pregunta 1)
//===========================================================//
// Programa_01.cpp //
// Autor: OBREGON AGUILAR JAHIR Código: 20172577I //
//Fecha: 17/06/2021 Versión: Visual c++ 2019 //
//===========================================================//
#include <iostream>
#include <string>
using namespace std;
int base;
int altura;
float lado1;
float lado2;
float lado3;
string opcion;
public:
cTRIANGULO(int, int);
cTRIANGULO(float, float, float);
float area_triangulo();
float perimetro_triangulo();
void validacion_triangulo();
void imprimir(string opcion);
};
//PROGRAMA MEDIO
// Constructor de la clase cTRIANGULO
cTRIANGULO::cTRIANGULO(int _base, int _altura)
{
base = _base;
altura = _altura;
}
cTRIANGULO::cTRIANGULO(float _lado1, float _lado2, float _lado3)
{
lado1 = _lado1;
lado2 = _lado2;
lado3 = _lado3;
}
float cTRIANGULO::perimetro_triangulo() {
float perimetro_triangulo;
perimetro_triangulo = (lado1 + lado2 + lado3);
return perimetro_triangulo;
}
void cTRIANGULO::validacion_triangulo() {
if ((lado2 - lado3) < lado1 < (lado2 + lado3) && (lado1 - lado3) < lado2 < (lado1
+ lado3))
cout << "Los lados del triangulo SI forman un triangulo ";
else
cout << "Los lados del triangulo NO forman un triangulo ";
}
void cTRIANGULO::imprimir(string opcion) {
if (opcion == "opc1") {
float area = area_triangulo();
cout << "El area del triangulo es... : " << area << endl;
}
if (opcion == "opc2") {
float perimetro = perimetro_triangulo();
float area = area_triangulo();
cout << "El area del triangulo es....: " << area << endl;
cout << "El perimetro del triangulo es....: " << perimetro << endl;
// Programa Principal
int main() {
int base, altura;
float lado1, lado2, lado3;
string opcion;
cout << "Si quiere colocar base y altura escriba: opc1" << endl;
cout << "Si quiere colocar los lados del triangulo escriba: opc" << endl;
cout << "opc1 o opc2 ,cual de esas opciones desea digitar :";getline(cin, opcion);
if (opcion == "opc1") {
cout << "Ingrese el valor de la base: "; cin >> base; cout << endl;
cout << "Ingrese el valor de la altura: "; cin >> altura; cout << endl;
cTRIANGULO SOLUCION1(base, altura);
SOLUCION1.imprimir(opcion);
cTRIANGULO VALIDACION1(base, altura);
VALIDACION1.validacion_triangulo();
}
if (opcion == "opc2") {
cout << "Ingrese el valor del lado1: "; cin >> lado1; cout << endl;
cout << "Ingrese el valor del lado2: "; cin >> lado2; cout << endl;
cout << "Ingrese el valor del lado3: "; cin >> lado3; cout << endl;
cTRIANGULO SOLUCION2(lado1, lado2, lado3);
SOLUCION2.imprimir(opcion);
cTRIANGULO VALIDACION2(lado1, lado2, lado3);
VALIDACION2.validacion_triangulo();
}
return 0;
}
Solución (Pregunta 2)
//===========================================================//
// Programa_02.cpp //
// Autor: OBREGON AGUILAR JAHIR Código: 20172577I //
//Fecha: 17/06/2021 Versión: Visual c++ 2019 //
//===========================================================//
#include <iostream>
#include <string.h>
// Constructor de la clase.
COracion::COracion(char _frase[128], int _caracteres) {
caracteres = _caracteres;
for (int i = 0; i < caracteres; i++) {
frase[i] = _frase[i];
}
}
return vocales;
}
if (codigo > 65 && codigo != 69 && codigo != 73 && codigo != 79 && codigo !
= 85 && codigo <= 90) {
consonantes++;
}
}
return consonantes;
}
return digitos;
}
if (codigo < 48 && codigo > 57 && codigo < 65 && codigo >90) {
simbolos++;
}
}
return simbolos;
}
cout << "La cantidad de vocales de la frase son: " << vocales << endl;
cout << "La cantidad de consonantes de la frase son: " << consonantes << endl;
cout << "La cantidad de digitos de la frase son: " << digitos << endl;
cout << "La cantidad de simbolos de la frase son: " << simbolos << endl;
int main()
{
int N; //Cantidad de caracteres;
char cadena1[128]; // Cadena donde se almacena la frase.
char continuar;
//Ingreso de datos.
cout << "Ingrese la cantidad de caracteres a escribir: "; cin >> N; cout << endl;
cin.ignore();
cout << "Ingrese la frase a escribir: "; cin.getline(cadena1, N); cout << endl;
cout << "Desea salir ? "; cin.ignore(); cin >> continuar; cout << endl;
return 0;
}