top of page

Práctica

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

// Declaracion de funciones
double calcularCorriente(double voltaje, double resistencia);
double calcularRegresionLineal(const vector<double>& x, const vector<double>& y);
float potencia(int x, double y);
float serie(int z);

// Declaracion de variables globales para la regresion lineal
double sum_x = 0, sum_y = 0, sum_xy = 0, sum_x_squared = 0;
double a, b;

int main() {
    int opcion = 0, numerodedatos;
    vector<double> x, y;

    do {
        cout << "MENU\n";
        cout << "1.- Potencia\n";
        cout << "2.- Serie\n";
        cout << "3.- Regresion Lineal Simple\n";
        cout << "4.- Corriente\n";
        cout << "Ingrese una opcion <> 0: ";
        cin >> opcion;

        switch (opcion) {
            case 1: {
                cout << "Potencia\n";
                cout << "Ingrese la base: ";
                int base;
                cin >> base;
                cout << "Ingrese el exponente: ";
                double exponente;
                cin >> exponente;
                float resultado_potencia = potencia(base, exponente);
                cout << "El resultado de " << base << " elevado a la " << exponente << " es: " << resultado_potencia << endl;
                break;
            }

            case 2: {
                cout << "Serie\n";
                cout << "Ingrese el numero de terminos: ";
                int num_terminos;
                cin >> num_terminos;
                float resultado_serie = serie(num_terminos);
                cout << "El resultado de la serie es: " << resultado_serie << endl;
                break;
            }

            case 3: {
                cout << "Regresion Lineal Simple\n";
                cout << "Introduce el numero de datos: ";
                cin >> numerodedatos;

                // Ingresar los datos
                cout << "Introduce los valores de x:" << endl;
                for (int i = 0; i < numerodedatos; ++i) {
                    double valor_x;
                    cin >> valor_x;
                    x.push_back(valor_x);
                }

                cout << "Introduce los valores de y:" << endl;
                for (int i = 0; i < numerodedatos; ++i) {
                    double valor_y;
                    cin >> valor_y;
                    y.push_back(valor_y);
                }

                // Calcular la regresión lineal simple
                double resultado_regresion = calcularRegresionLineal(x, y);

                // Imprimir los resultados
                cout << "El coeficiente a (intercepto) es: " << a << endl;
                cout << "El coeficiente b (pendiente) es: " << b << endl;
                break;
            }

            case 4: {
                cout << "Corriente\n";
                double voltaje, resistencia;
                cout << "Ingrese el voltaje (en voltios): ";
                cin >> voltaje;
                cout << "Ingrese la resistencia (en ohmios): ";
                cin >> resistencia;
                double corriente = calcularCorriente(voltaje, resistencia);
                cout << "La corriente en el circuito es: " << corriente << " amperios" << endl;
                break;
            }
            
            default:
                cout << "Opcion invalida. Intentelo de nuevo." << endl;
        } // FIN DEL SWITCH
    } while (opcion != 0); // fin del programa

    return 0;
}

double calcularCorriente(double voltaje, double resistencia) {
    // Aplicar la ley de Ohm (I = V / R) para calcular la corriente
    return voltaje / resistencia;
}

double calcularRegresionLineal(const vector<double>& x, const vector<double>& y) {
    int n = x.size();
    for (int i = 0; i < n; ++i) {
        sum_x += x[i];
        sum_y += y[i];
        sum_xy += x[i] * y[i];
        sum_x_squared += pow(x[i], 2);
    }

    // Calcular la regresion lineal simple
    b = (n * sum_xy - sum_x * sum_y) / (n * sum_x_squared - pow(sum_x, 2));
    a = (sum_y - b * sum_x) / n;

    return a;
}

float potencia(int x, double y) {
    return pow(x, y);
}

float serie(int z) {
    int fact = 1;
    float suma = 0;
    for (int c = 1; c <= z; c++) {
        fact *= c;
        float B = 2 + pow(c, c);
        suma += fact / B;
    }
    return suma;
}

Se encuentra los codigos completos mi tema como parte de la práctica fue REGRESION LINEAL SIMPLE, el codigo se ejecuta correctamente, wix ya no me permite subir imagenes y videos ya que se alcanzó el limite de almacenamiento, por ende solo se esta subiendo el codigo.

bottom of page