top of page

CODIGO DE LA PRACTICA CALIFICADA

#include <iostream>
#include <cmath>
using namespace std;

// Declaración de funciones
int SUMAR(int x, int y);
double SERIE_SENO(int x);
int fecha_valida(int dia, int mes, int anio);
int bisiesto(int anio);
int calcular_edad(int dia_nacimiento, int mes_nacimiento, int anio_nacimiento, int dia_actual, int mes_actual, int anio_actual);
double convertir_a_radianes(double grados);
double convertir_a_centesimales(double grados);

int main() {
    int angulo, Opcion, a, b, dia_nac, mes_nac, anio_nac, dia_act, mes_act, anio_act;

    do {
        cout << "   M E N U  de FUNCIONES  \n";
        cout << "------------   \n";
        cout << "1.- SUMA  \n";
        cout << "2.- SERIE SENO  \n";
        cout << "3.- Calcular Edad \n";
        cout << "4.- Convertir Grados \n";
        cout << "0.- Salir \n";

        cout << "INGRESE UNA OPCION <> 0: "; cin >> Opcion;

        switch (Opcion) {
            case 1: {
                cout << "1.- SUMA DE DOS NUMEROS \n";
                cout << "Ingrese el numero 1: "; cin >> a;
                cout << "Ingrese el numero 2: "; cin >> b;
                int A = SUMAR(a, b);
                cout << "La suma es: " << A << endl;
                break;
            }
            case 2: {
                cout << "2.- SERIE SENO  \n";
                cout << "Ingrese el valor del angulo: "; cin >> angulo;
                double B = SERIE_SENO(angulo);
                cout << "La suma de la serie seno es: " << B << endl;
                break;
            }
            case 3: {
                cout << "3.- Calcular Edad \n";
                cout << "Ingrese la fecha de nacimiento (DD MM AAAA): ";
                cin >> dia_nac >> mes_nac >> anio_nac;
                cout << "Ingrese la fecha actual (DD MM AAAA): ";
                cin >> dia_act >> mes_act >> anio_act;

                int edad = calcular_edad(dia_nac, mes_nac, anio_nac, dia_act, mes_act, anio_act);
                cout << "La edad es: " << edad << " años" << endl;
                break;
            }
            case 4: {
                cout << "4.- Convertir Grados \n";
                double grados;
                cout << "Ingrese los grados sexagesimales: ";
                cin >> grados;
                double radianes = convertir_a_radianes(grados);
                double centesimales = convertir_a_centesimales(grados);
                cout << "Grados en radianes: " << radianes << endl;
                cout << "Grados en centesimales: " << centesimales << endl;
                break;
            }
        }
    } while (Opcion != 0);

    return 0;
}

// Función de suma
int SUMAR(int x, int y) {
    return x + y;
}

// Función para calcular la serie seno
double SERIE_SENO(int x) {
    const double PI = 3.141592;
    double RAD = (2 * PI * x) / 360;
    int n;
    double SUMA = RAD;
    int CC = 0;
    int FACT = 1;

    cout << "Cuántos términos sumar: ";
    cin >> n;

    for (int c = 1; c <= n; c += 2) {
        double M = pow(RAD, c);
        int N = FACT * c;
        CC++;

        if (CC % 2 != 0)
            SUMA = SUMA + M / N;
        else
            SUMA = SUMA - M / N;
    }
    return SUMA;
}

// Función para validar una fecha
int fecha_valida(int dia, int mes, int anio) {
    // Validación básica: mes entre 1 y 12, y día dentro de los límites de cada mes
    if (mes < 1 || mes > 12 || dia < 1)
        return 0;
    if (mes == 2) {
        if (bisiesto(anio))
            return dia <= 29;
        else
            return dia <= 28;
    } else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
        return dia <= 30;
    } else {
        return dia <= 31;
    }
}

// Función para determinar si un año es bisiesto
int bisiesto(int anio) {
    return (anio % 4 == 0 && anio % 100 != 0) || (anio % 400 == 0);
}

// Función para calcular la edad
int calcular_edad(int dia_nacimiento, int mes_nacimiento, int anio_nacimiento, int dia_actual, int mes_actual, int anio_actual) {
    if (!fecha_valida(dia_nacimiento, mes_nacimiento, anio_nacimiento) || !fecha_valida(dia_actual, mes_actual, anio_actual)) {
        cout << "Fechas inválidas." << endl;
        return -1;
    }

    int edad = anio_actual - anio_nacimiento;
    if (mes_actual < mes_nacimiento || (mes_actual == mes_nacimiento && dia_actual < dia_nacimiento))
        edad--;

    return edad;
}

// Función para convertir grados sexagesimales a radianes
double convertir_a_radianes(double grados) {
    const double PI = 3.141592;
    return (grados * PI) / 180;
}

// Función para convertir grados sexagesimales a grados centesimales
double convertir_a_centesimales(double grados) {
    return (grados * 100) / 90;
}
 

bottom of page