La velocidad del sonido depende del material por el que pasa el sonido.

IDIOMA: C ++

DESAFÍO:

4.18: La velocidad del sonido
La velocidad del sonido depende del material por el que pasa el sonido.
A continuación se muestra la velocidad aproximada del sonido (en pies por segundo) para aire, agua y acero:
aire: 1,100 pies por segundo
agua: 4,900 pies por segundo
acero: 16,400 pies por segundo

Escriba un programa que muestre un menú que le permita al usuario seleccionar aire, agua o acero.
Una vez que el usuario ha realizado una selección, se le debe solicitar que ingrese la distancia que recorrerá una onda de sonido en el medio seleccionado.
A continuación, el programa mostrará la cantidad de tiempo que tardará.

Menú. El menú debería verse exactamente así:
Seleccione un medio:
1. Aire
2. Agua
3. Acero
Ingrese su elección:

SOLUTION:


#include <iostream>
#include <iomanip>
using namespace std;

int main(){
    const double AIR = 1100;
    const double WATER = 4900;
    const double STEEL = 16400;

    const int AIR_CHOICE = 1;
    const int WATER_CHOICE = 2;
    const int STEEL_CHOICE = 3;

    int choice;
    double distance; 
    double speed; 
    double time;

    cout << "Select a medium:\n" << "1. Air\n" << "2. Water\n" << "3. Steel\n\n" << "Enter your choice: ";
    cin >> choice;

    cout << fixed << showpoint << setprecision(4);

    switch(choice){
        case AIR_CHOICE: 
            speed = AIR;
            cout << "Enter the distance: ";
            cin >> distance;

            if (distance > 0){
                time = distance / speed;
                cout << "\nA sound wave takes " << time << " seconds to travel " << distance << " feet through air.\n";
            } else {
                cout << "\nDistance must be greater than zero.\n";
            }
            break;

        case WATER_CHOICE: 
            speed = WATER;
            cout << "Enter the distance: ";
            cin >> distance;

            if (distance > 0){
                time = distance / speed;
                cout << "\nA sound wave takes " << time << " seconds to travel " << distance << " feet through water.\n";
            } else {
                cout << "\nDistance must be greater than zero.\n";
            }
            break;

        case STEEL_CHOICE: 
            speed = STEEL;
            cout << "Enter the distance: ";
            cin >> distance;

            if (distance > 0){
                time = distance / speed;
                cout << "\nA sound wave takes " << time << " seconds to travel " << distance << " feet through steel.\n";
            } else {
                cout << "\nDistance must be greater than zero.\n";
            }
            break;

        default:
            cout << "\nThe valid choices are 1 through 3. Run the\n" << "program again and select one of those.\n";
    }

    return 0;
}