Lenguaje de Programación
Chiang Vizarreta, José Ignacio

Semana 12
Historia completa
EJERCICIO 2
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// Función para calcular la media ponderada
double calcularMediaPonderada(const vector<double>& notas, const vector<double>& pesos) {
double suma = 0.0;
double sumaPesos = 0.0;
for (size_t i = 0; i < notas.size(); ++i) {
suma += notas[i] * pesos[i];
sumaPesos += pesos[i];
}
if (sumaPesos == 0.0) {
cout << "No se pueden calcular la media ponderada. Suma de pesos es cero." << endl;
return 0.0;
}
return suma / sumaPesos;
}
// Función para calcular la nota más baja
double calcularNotaMasBaja(const vector<double>& notas) {
if (notas.empty()) {
cout << "No hay notas para calcular la nota más baja." << endl;
return 0.0;
}
return *min_element(notas.begin(), notas.end());
}
// Función para calcular la nota más alta
double calcularNotaMasAlta(const vector<double>& notas) {
if (notas.empty()) {
cout << "No hay notas para calcular la nota más alta." << endl;
return 0.0;
}
return *max_element(notas.begin(), notas.end());
}
int main() {
vector<double> notas;
vector<double> pesos;
char opcion;
cout << "Ingrese las notas y sus respectivos pesos." << endl;
cout << "Para finalizar, ingrese una nota negativa." << endl;
double nota;
double peso;
do {
cout << "Nota: ";
cin >> nota;
if (nota >= 0.0) {
notas.push_back(nota);
cout << "Peso: ";
cin >> peso;
pesos.push_back(peso);
}
} while (nota >= 0.0);
cout << "Seleccione una opción:" << endl;
cout << "i) Calcular la media ponderada." << endl;
cout << "ii) Calcular la nota más baja." << endl;
cout << "iii) Calcular la nota más alta." << endl;
cout << "Opción: ";
cin >> opcion;
switch (opcion) {
case 'i':
cout << "La media ponderada es: " << calcularMediaPonderada(notas, pesos) << endl;
break;
case 'ii':
cout << "La nota más baja es: " << calcularNotaMasBaja(notas) << endl;
break;
case 'iii':
cout << "La nota más alta es: " << calcularNotaMasAlta(notas) << endl;
break;
default:
cout << "Opción no válida." << endl;
break;
}
return 0;
}
EJERCICIO 2
#include <iostream>
using namespace std;
int encontrarMaximo(int a, int b, int c) {
int maximo = a;
if (b > maximo) {
maximo = b;
}
if (c > maximo) {
maximo = c;
}
return maximo;
}
int main() {
int num1, num2, num3;
cout << "Ingrese el primer número: ";
cin >> num1;
cout << "Ingrese el segundo número: ";
cin >> num2;
cout << "Ingrese el tercer número: ";
cin >> num3;
int maximo = encontrarMaximo(num1, num2, num3);
cout << "El valor máximo entre " << num1 << ", " << num2 << " y " << num3 << " es: " << maximo << endl;
return 0;
}
EJERCICIO 4
#include <iostream>
using namespace std;
int encontrarMinimo(int a, int b, int c) {
int minimo = a;
if (b < minimo) {
minimo = b;
}
if (c < minimo) {
minimo = c;
}
return minimo;
}
int main() {
int num1, num2, num3;
cout << "Ingrese el primer número: ";
cin >> num1;
cout << "Ingrese el segundo número: ";
cin >> num2;
cout << "Ingrese el tercer número: ";
cin >> num3;
int minimo = encontrarMinimo(num1, num2, num3);
cout << "El valor mínimo entre " << num1 << ", " << num2 << " y " << num3 << " es: " << minimo << endl;
return 0;
}
EJERCICIO 5
#include <iostream>
#include <cmath>
using namespace std;
double calcularFrecuenciaResonancia(double L, double C) {
if (L <= 0 || C <= 0) {
cout << "Error: Inductancia (L) y capacitancia (C) deben ser mayores que cero." << endl;
return 0.0;
}
double wo = 1.0 / sqrt(L * C);
return wo;
}
int main() {
double inductancia, capacitancia;
cout << "Ingrese la inductancia (L) en henrios: ";
cin >> inductancia;
cout << "Ingrese la capacitancia (C) en faradios: ";
cin >> capacitancia;
double frecuenciaResonancia = calcularFrecuenciaResonancia(inductancia, capacitancia);
if (frecuenciaResonancia != 0.0) {
cout << "La frecuencia de resonancia (wo) es: " << frecuenciaResonancia << " rad/s" << endl;
}
return 0;
}