PROGRAMA REALIZADO EN CLASES-PRACTICA 3
#include <iostream>
#include <cmath>
using namespace std;
int Opcion;
double A,B,P,Xc, Xl, Z, R, L, C, w;
float IMPEDANCIA (double x, double y, double z); // 2.ASIGNACIOON
float PHASE (double p, double q, double r);
void calcularEdad();
bool fechaValida(int dia, int mes, int anio);
bool bisiesto(int anio);
void dibLineas(int anchura, int altura);
int main()
{
do
{
cout << " M E N U \n";
cout << "------------ \n";
cout << "1.- Calculo de la IMPEDANCIA \n";
cout << "2.- CALCULO DE FASE \n";
cout << "3.- Calcular Edad \n";
cout << "4.- Dibujar Lineas \n";
cout << "INGRESE UNA OPCION <> 0: "; cin >> Opcion;
switch (Opcion)
{
case 1:
{
cout << endl;
cout << "1.- CALCULO DE IMPEDANCIA \n";
cout << "Ingrese la resistencia R = "; cin >> R;
cout << "Ingrese la inductancia L = "; cin >> L;
cout << "Ingrese la capacitanica C = "; cin >> C;
cout << "Ingrese la veloc angular w = "; cin >> w;
Xc = 1 / (w * C);
Xl = w * L;
B = IMPEDANCIA (R, Xl, Xc);
cout << "La impedancia Z = " << B;
cout << endl;
}; break;
case 2:
{
cout << "2.- CALCULO DE FASE \n";
cout << endl;
cout << endl;
cout << "1.- CALCULO DE IMPEDANCIA \n";
cout << "Ingrese la reactancia inductiva Xl = "; cin >> Xl;
cout << "Ingrese la reactancia capacitiva Xc = "; cin >> Xc;
for (R = 10; R <= 20; R = R + 0.5)
{
A = PHASE (R, Xl, Xc);
cout << "La FASE ES PHI = " << A << " PARA R=" << R;
cout << endl;
}
}; break;
case 3:
{
cout << "3.- Calcular Edad \n";
calcularEdad();
}; break;
case 4:
{
cout << "4.- Dibujar Lineas \n";
dibLineas(10, 5);
}; break;
} // fin del switch
} while (Opcion != 0); // FIN DEL DO WHILE
return 0;
}
float IMPEDANCIA (double x, double y, double z)
{
Z = sqrt(pow(x,2) + pow((y - z), 2));
return Z;
}
float PHASE (double p, double q, double r)
{
P = atan((q - r) / p);
return P;
}
void calcularEdad()
{
int dia_actual, mes_actual, anio_actual;
int dia_nacimiento, mes_nacimiento, anio_nacimiento;
cout << "Ingrese la fecha actual (dia mes anio): ";
cin >> dia_actual >> mes_actual >> anio_actual;
cout << "Ingrese la fecha de nacimiento (dia mes anio): ";
cin >> dia_nacimiento >> mes_nacimiento >> anio_nacimiento;
if (fechaValida(dia_actual, mes_actual, anio_actual) && fechaValida(dia_nacimiento, mes_nacimiento, anio_nacimiento))
{
int edad = anio_actual - anio_nacimiento;
if (mes_actual < mes_nacimiento || (mes_actual == mes_nacimiento && dia_actual < dia_nacimiento))
edad--;
cout << "La edad es: " << edad << " años." << endl;
}
else
{
cout << "Fechas no válidas." << endl;
}
}
bool fechaValida(int dia, int mes, int anio)
{
if (mes < 1 || mes > 12 || dia < 1)
return false;
switch (mes)
{
case 2:
return (dia <= (bisiesto(anio) ? 29 : 28));
case 4:
case 6:
case 9:
case 11:
return (dia <= 30);
default:
return (dia <= 31);
}
}
bool bisiesto(int anio)
{
return ((anio % 4 == 0 && anio % 100 != 0) || (anio % 400 == 0));
}
void dibLineas(int anchura, int altura)
{
int nFila;
int nColumna;
for (nFila = 1; nFila <= altura; nFila++)
{
for (nColumna = 1; nColumna <= anchura; nColumna++)
{
cout << "-";
}
cout << endl;
}
}