top of page

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;
    }
}

bottom of page