INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
INGENIERÍA EN CONTROL Y AUTOMATIZACIÓN
Nombre del alumno: Alvarez Rios Daniela
Nombre del profesor: De Santillana Verdín Atalo
Grupo: 2AM6
Fecha de inicio: 09/Oct/2023
Fecha de entrega: 18/Oct/2023
Tarea 2_02 Cuadrática
DESARROLLO
En cada uno de los ejercicios comente las líneas de código (\\ \’ \”), imagen del programa
y adicione un método portada que incluya sus datos, el diagrama UML y describa qué
hace el programa. Y la imagen de la ejecución o corrida del programa.
1.- EJERCICIO CUADRÁTICA
Realice un programa con una clase class que calcule las soluciones de la ecuación
cuadrática.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
<Class> MiClase
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
private:
float: x1r,x1i, x2r, x2i, d;
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Public:
MiClase(float _a, float _b; float _c); \\ constructor
~MiClase(); \\ destructor
Void Setter(float _a, float _b, float _c); \\ construc
Void Getter(float *_a, float * _b, float *_c float *_x1r, float * _x1i; float *_x2r,
float
*_x2i);
Void Mostrar(),
Void Scuadratica();
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Asigne valores desde el objeto
Sea
Objeto1 x^2 + 2 x + 1 (x+1)(x+1)
Objeto2 x^2 + 5 x + 6 (x+2)(x+3)
Objeto3 x^2 + 2 x + 2 (x+1+i)(x+1-i)
// cuadratica class y ciclo de repeticion#include <iostream>
#include <cmath>
using namespace std;
class MiClase {
private:
float a, b, c; // Coeficientes de la ecuación cuadrática
float x1r, x1i; // Raíces x1 reales e imaginarias
float x2r, x2i; // Raíces x2 reales e imaginarias
float discriminante; // Discriminante de la ecuación
public:
MiClase(float _a, float _b, float _c); // Constructor
~MiClase() {} // Destructor
void Setter(float _a, float _b, float _c); // Método para establecer nuevos coeficientes
void Getter(float* _a, float* _b, float* _c, float* _x1r, float* _x1i, float* _x2r, float* _x2i); // Método para
obtener coeficientes y raíces
void Mostrar(); // Método para mostrar las raíces
void SolucionCuadratica(); // Método para calcular las raíces
void DESUMLPORTADA(); //Metodo para imprimir el diagrama uml, laportada y la descripcion.
};
MiClase::MiClase(float _a, float _b, float _c) {
Setter(_a, _b, _c);
}
void MiClase::Setter(float _a, float _b, float _c) {
a = _a;
b = _b;
c = _c;
}
void MiClase::Getter(float* _a, float* _b, float* _c, float* _x1r, float* _x1i, float* _x2r, float* _x2i) {
*_a = a;
*_b = b;
*_c = c;
*_x1r = x1r;
*_x1i = x1i;
*_x2r = x2r;
*_x2i = x2i;
}
void MiClase::Mostrar() {
cout << "Las raíces de la ecuación cuadrática " << a << "x^2 + " << b << "x + " << c << " son:" << endl;
if (discriminante > 0) {
cout << "x1 = " << x1r << " y x2 = " << x2r << " (raíces reales y diferentes)" << endl;
}
else if (discriminante == 0) {
cout << "x1 = x2 = " << x1r << " (raíces reales e iguales)" << endl;
}
else {
cout << "x1 = " << x1r << " + " << x1i << "i y x2 = " << x2r << " - " << x2i << "i (raíces complejas
conjugadas)" << endl;
}
}
void MiClase::SolucionCuadratica() {
discriminante = b * b - 4 * a * c;
if (discriminante > 0) {
x1r = (-b + sqrt(discriminante)) / (2 * a);
x2r = (-b - sqrt(discriminante)) / (2 * a);
x1i = x2i = 0;
}
else if (discriminante == 0) {
x1r = x2r = -b / (2 * a);
x1i = x2i = 0;
}
else {
x1r = x2r = -b / (2 * a);
x1i = sqrt(-discriminante) / (2 * a);
x2i = -x1i;
}
}
void MiClase::DESUMLPORTADA() {
//PORTADA
cout << "/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./" << endl; // impresion secuencias de espape para
margen
cout << "INSTITUTO POLITECNICO NACIONAL" << endl; //Impresion del instituto.
cout << "Escuela Superior de Ingeneria Mecanica y Electrica" << endl; //impresion de la escuela.
cout << "Ingeniria en Control y Automatizacion" << endl;//impresion del nombre de la carrera.
cout << "Nombre del alumno; \n Alvarez Rios Daniela" << endl; //impresion del nombre del alumno.
cout << "Nombre del profesor: \n De Santillana Verdin Atalo" << endl; //impresion del nombre del profesor.
cout << "Grupo: \n 2AM6" << endl; //impresion del grupo.
cout << "/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./" << endl; // impresion secuencias de espape para
margen
cout << "El programa es una herramienta que ayuda a calcular y visualizar las soluciones de ecuaciones
cuadráticas de manera interactiva." << endl;
cout << "Además, incluye métodos para imprimir una portada, un diagrama UML básico y una descripción que,
en este caso, no tiene implementación." << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;
// Incluye aquí el diagrama UML
cout << "----------------------------------------" << endl;
cout << "| MiClase |" << endl;
cout << "----------------------------------------" << endl;
cout << "| - a: float |" << endl;
cout << "| - b: float |" << endl;
cout << "| - c: float |" << endl;
cout << "| - x1r: float |" << endl;
cout << "| - x1i: float |" << endl;
cout << "| - x2r: float |" << endl;
cout << "| - x2i: float |" << endl;
cout << "| - discriminante: float |" << endl;
cout << "----------------------------------------" << endl;
cout << "| + MiClase(_a: float, _b: float, _c: float) |" << endl;
cout << "| + ~MiClase() |" << endl;
cout << "| + Setter(_a: float, _b: float, _c: float) |" << endl;
cout << "| + Getter(_a: float, _b: float, _c: float, _x1r: float, _x1i: float, _x2r: float, _x2i: float) |" << endl;
cout << "| + Mostrar() |" << endl;
cout << "| + SolucionCuadratica() |" << endl;
cout << "| + Portada() |" << endl;
cout << "| + DiagramaUML() |" << endl;
cout << "----------------------------------------" << endl;
cout << "\n/-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./-./\n" << endl;
}
int main() {
int op;
MiClase Objeto1(1, 2, 1);
Objeto1.DESUMLPORTADA();
MiClase Objeto2(1, 5, 6);
MiClase Objeto3(1, 2, 2);
do {
Objeto1.SolucionCuadratica();
Objeto1.Mostrar();
cout << "¿Quieres volver a realizar? Escribe 1: ";
cin >> op;
} while (op == 1);
do {
Objeto2.SolucionCuadratica();
Objeto2.Mostrar();
cout << "¿Quieres volver a realizar? Escribe 2: ";
cin >> op;
} while (op == 2);
do {
Objeto3.SolucionCuadratica();
Objeto3.Mostrar();
cout << "¿Quieres volver a realizar? Escribe 3: ";
cin >> op;
} while (op == 3);
return 0;
}