top of page
FIMEE-ELECTRÓNICA, UNICA
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