top of page

#include <iostream>
#include <cmath> // Para usar funciones matemáticas como sin()

using namespace std;

// Prototipos de funciones
void asignarDatos(), mostrarDatos(), sumarElementos(), listarCodigos();
void movimientoOndulatorio(), variarFrecuenciaAngular(), variarAmplitud();

int opcion, SUMA;
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.- PROBLEMA CASO A \n ";
        cout << " 6.- PROBLEMA CASO B \n ";
        cout << " 7.- PROBLEMA CASO C \n ";
        cout << " INGRESE UNA OPCION <> 0: ";
        cin >> opcion;

        switch (opcion) {
            case 1:
                cout << "Asignar datos a un vector \n";
                cout << "------------------------- \n";
                asignarDatos();
                cout << endl;
                break;

            case 2:
                cout << "Mostrar datos de un vector \n";
                cout << "------------------------- \n";
                mostrarDatos();
                cout << endl;
                break;

            case 3:
                cout << "Suma de los elementos \n";
                cout << "------------------------- \n";
                sumarElementos();
                cout << endl;
                break;

            case 4:
                cout << "LISTADO DE CODIGOS ASCII \n";
                cout << "------------------------- \n";
                listarCodigos();
                cout << endl;
                break;

            case 5:
                cout << "Movimiento Ondulatorio \n";
                cout << "----------------------- \n";
                movimientoOndulatorio();
                cout << endl;
                break;

            case 6:
                cout << "Variación de la Frecuencia Angular \n";
                cout << "---------------------------------- \n";
                variarFrecuenciaAngular();
                cout << endl;
                break;

            case 7:
                cout << "Variación de la Amplitud \n";
                cout << "------------------------ \n";
                variarAmplitud();
                cout << endl;
                break;

            default:
                cout << "Opción inválida. Intente nuevamente.\n\n";
                break;
        }
    } while (opcion != 0);

    cout << "Programa terminado.\n";
    return 0;
}

void asignarDatos() {
    // Implementación de la función
}

void mostrarDatos() {
    // Implementación de la función
}

void sumarElementos() {
    // Implementación de la función
}

void listarCodigos() {
    // Implementación de la función
}

void movimientoOndulatorio() {
    double amplitud, numeroOnda, frecuenciaAngular, faseInicial;
    double posicion, tiempo;

    cout << "Ingrese la amplitud (A): ";
    cin >> amplitud;
    cout << "Ingrese el número de onda (k): ";
    cin >> numeroOnda;
    cout << "Ingrese la frecuencia angular (w): ";
    cin >> frecuenciaAngular;
    cout << "Ingrese la fase inicial (phi): ";
    cin >> faseInicial;

    cout << "Ingrese la posición (x) y el tiempo (t) para calcular la amplitud resultante:\n";
    cout << "Posición (x): ";
    cin >> posicion;
    cout << "Tiempo (t): ";
    cin >> tiempo;

    double amplitudResultante = amplitud * sin(numeroOnda * posicion - frecuenciaAngular * tiempo + faseInicial);
    cout << "Amplitud resultante en la posición " << posicion << " y el tiempo " << tiempo << ": " << amplitudResultante << endl;
}

void variarFrecuenciaAngular() {
    double amplitud, numeroOnda, faseInicial;
    double posicion, tiempo;

    cout << "Ingrese la amplitud (A): ";
    cin >> amplitud;
    cout << "Ingrese el número de onda (k): ";
    cin >> numeroOnda;
    cout << "Ingrese la fase inicial (phi): ";
    cin >> faseInicial;

    cout << "Ingrese la posición (x) y el tiempo (t) para calcular la amplitud resultante con diferentes frecuencias angulares:\n";
    cout << "Posición (x): ";
    cin >> posicion;
    cout << "Tiempo (t): ";
    cin >> tiempo;

    for (double frecuenciaAngularVariacion = 1.0; frecuenciaAngularVariacion <= 5.0; frecuenciaAngularVariacion += 0.5) {
        double amplitudResultante = amplitud * sin(numeroOnda * posicion - frecuenciaAngularVariacion * tiempo + faseInicial);
        cout << "Amplitud resultante en la posición " << posicion << " y el tiempo " << tiempo << " con w = " << frecuenciaAngularVariacion << ": " << amplitudResultante << endl;
    }
}

void variarAmplitud() {
    double numeroOnda, frecuenciaAngular, faseInicial;
    double posicion, tiempo;

    cout << "Ingrese el número de onda (k): ";
    cin >> numeroOnda;
    cout << "Ingrese la frecuencia angular (w): ";
    cin >> frecuenciaAngular;
    cout << "Ingrese la fase inicial (phi): ";
    cin >> faseInicial;

    cout << "Ingrese la posición (x) y el tiempo (t) para calcular la amplitud resultante con diferentes amplitudes:\n";
    cout << "Posición (x): ";
    cin >> posicion;
    cout << "Tiempo (t): ";
    cin >> tiempo;

    for (double amplitudVariacion = 1.0; amplitudVariacion <= 5.0; amplitudVariacion += 1.0) {
        double amplitudResultante = amplitudVariacion * sin(numeroOnda * posicion - frecuenciaAngular * tiempo + faseInicial);
        cout << "Amplitud resultante en la posición " << posicion << " y el tiempo " << tiempo << " con A = " << amplitudVariacion << ": " << amplitudResultante << endl;
    }
}

bottom of page