LABORATORIO 13
#include <iostream>
#include <cmath>
using namespace std;
int opcion, i, SUMA;
void ASIGNAR(), MOSTRAR(), SUMAR(), CODIGOS();
double posicionAmortiguada(double masa, double constanteAmortiguamiento, double velocidadInicial, double tiempo);
double caso6(double tiempo, double masa, double constanteAmortiguamiento, double velocidadInicial, double valorVariado);
double caso7(double masa, double constanteAmortiguamiento, double velocidadInicial, double tiempo, double valorVariado1, double valorVariado2);
// Variables globales para almacenar los valores ingresados en el caso 5
double masaGlobal, constanteGlobal, velocidadGlobal, tiempoGlobal;
int A[10];
char B[256];
int main() {
do {
cout<< " MENU DE VECTORES \n ";
cout<< " ------------------ \n ";
cout<< " 1.- ASIGNAR DATOS A UN VECTOR \n ";
cout<< " 2.- MOSTRAR DATOS DE UN VECTOR \n ";
cout<< " 3.- SUMA DE LOS ELEMENTOS \n ";
cout<< " 4.- LISTADO DE CODIGOS ASCII \n ";
cout<< " 5.- CASO A \n ";
cout<< " 6.- CASO B \n ";
cout<< " 7.- CASO C \n ";
cout<< "INGRESE UNA OPCION <> 0: ";
cin>>opcion;
switch(opcion) {
case 1: {
cout << "Asignar datos a un vector \n";
cout << "------------------------- \n";
ASIGNAR();
cout<<endl;
break;
}
case 2: {
cout << "Mostrar datos de un vector \n";
cout << "-------------------- \n";
MOSTRAR();
cout<<endl;
break;
}
case 3: {
cout << "Suma de los elementos \n";
cout << "------------------------- \n";
SUMAR();
cout << endl;
break;
}
case 4: {
cout << "Listado de códigos ASCII \n ";
CODIGOS();
cout << endl;
break;
}
case 5: {
cout << "Ingrese masa: ";
cin >> masaGlobal;
cout << "Ingrese constante de amortiguamiento: ";
cin >> constanteGlobal;
cout << "Ingrese velocidad inicial: ";
cin >> velocidadGlobal;
cout << "Ingrese tiempo: ";
cin >> tiempoGlobal;
cout << "Posición para el CASO A: " << posicionAmortiguada(masaGlobal, constanteGlobal, velocidadGlobal, tiempoGlobal) << endl;
break;
}
case 6: {
double valorVariado;
cout << "Ingrese valor variado para el caso B: ";
cin >> valorVariado;
cout << "Posición para el CASO B: " << caso6(tiempoGlobal, masaGlobal, constanteGlobal, velocidadGlobal, valorVariado) << endl;
break;
}
case 7: {
double valorVariado1, valorVariado2;
cout << "Ingrese primer valor variado para el caso C: ";
cin >> valorVariado1;
cout << "Ingrese segundo valor variado para el caso C: ";
cin >> valorVariado2;
cout << "Posición para el CASO C: " << caso7(masaGlobal, constanteGlobal, velocidadGlobal, tiempoGlobal, valorVariado1, valorVariado2) << endl;
break;
}
}
} while (opcion != 0);
return 0;
}
void ASIGNAR() {
for(i = 0; i < 10; i++) {
cout << "A[" << i << "] = ";
cin >> A[i];
}
}
void MOSTRAR() {
for(i = 0; i < 10; i++) {
cout << "A[" << i << "] = " << A[i] << endl;
}
}
void SUMAR() {
SUMA = 0;
for(i = 0; i < 10; i++) {
SUMA += A[i];
}
cout << "Suma de los elementos de A[]: " << SUMA << endl;
}
void CODIGOS() {
for(i = 0; i < 256; i++) {
B[i] = char(i);
cout << "B[" << i << "] = " << B[i] << endl;
}
cout << endl;
}
double posicionAmortiguada(double masa, double constanteAmortiguamiento, double velocidadInicial, double tiempo) {
double omega = sqrt(constanteAmortiguamiento / masa);
return exp(-constanteAmortiguamiento * tiempo / (2 * masa)) * (velocidadInicial / omega * sin(omega * tiempo) + masa * cos(omega * tiempo));
}
double caso6(double tiempo, double masa, double constanteAmortiguamiento, double velocidadInicial, double valorVariado) {
return posicionAmortiguada(masa, constanteAmortiguamiento, velocidadInicial, tiempo + valorVariado);
}
double caso7(double masa, double constanteAmortiguamiento, double velocidadInicial, double tiempo, double valorVariado1, double valorVariado2) {
return posicionAmortiguada(masa + valorVariado1, constanteAmortiguamiento + valorVariado2, velocidadInicial, tiempo);
}