Untitled

 avatar
unknown
plain_text
21 days ago
3.8 kB
1
Indexable
#include <iostream> // Incluir la biblioteca de entrada y salida estándar

using namespace std; 

char menu();

int main() {

    const int TAM=4;
    float v1[TAM];

    char option = menu();

    do {
        cout << "Opción seleccionada" << option << endl;

        switch(option) {
            case 'A':
                cout << "Opción A crear" << endl;
                cout << "Escribe los "<< TAM << " elementos del vector:" << endl;
                for(int i=0;i<TAM;i++){
                    cout << "Dime el elemento " << i << ": ";
                    cin >>v1[i];
                    cin.ignore();
                }
                cout << endl;
                break;
            case 'B':
                cout << "Opción B ver" << endl;
                /*for(int i=0;i<TAM;i++){
                    cout <<"["<<i<< "]"<< ": "<<v1[i]<<", ";
                }*/
                cout << "[";
                for(int i=0;i<TAM;i++){
                    cout << v1[i] <<", ";
                }
                cout << "]";
                cout << endl;
                break;
            case 'C':
                cout << "Opción C - ordenar" << endl;
                cout << "Se empieza con " << endl;
                // START: ESto es solo para que lo veamos visualmente
                cout << "[";
                for(int i=0;i<TAM;i++){
                    cout << v1[i] <<", ";
                }
                cout << "]";
                cout << endl;
                // END: ESto es solo para que lo veamos visualmente
                for(int i=0;i<TAM;i++){
                    // este primer for va a comparar cada posición con el resto a la derecha
                    cout << "Comparar el valor " << v1[i] << " de la posicicion " << i <<" con: " << endl;
                    for(int j=i+1;j<TAM;j++){
                        // este segunda se encarga de que cada uno de la derecha del priemr for se peuda compara
                        cout << " * el valor " << v1[j] << " de la posicicion " << j <<", " << endl; 
                        if (v1[j]<v1[i]) {
                            // si entra aqui es porque los valores del siguiente son más pequeños y debe intercambiarlos
                            cout << " -> como " << v1[j] << " es menor que " << v1[i] << " se intercambian...";
                            float temporal = v1[i];
                            // hace falta un temporal para no perder uno de los valores
                            v1[i] = v1[j];
                            v1[j] = temporal;
                            cout << " y el vector queda como " << endl;
                            // START: ESto es solo para que lo veamos visualmente
                            cout << "[";
                            for(int i=0;i<TAM;i++){
                                cout << v1[i] <<", ";
                            }
                            cout << "]";
                            cout << endl;
                            // END: ESto es solo para que lo veamos visualmente
                        }
                    }
                }
                cout << endl;
                break;
            default :
                cout << "Opción no válida, elige otra" << endl;
                break;
        }
        option = menu();
    } while (option != 'D');



    return 0; // Retornar 0 para indicar que el programa terminó correctamente
}

char menu() {
    char option;
    cout << endl;
    cout << "************ MENU ********************" << endl;
    cout << "* A.- Rellena" << endl;
    cout << "* B.- Ver" << endl;
    cout << "* C.- Ordenar" << endl;
    cout << "* D.- Salir" << endl;
    cout << "**************************************" << endl;
    cout << endl;

    cin >> option;

    return toupper(option);
}
Leave a Comment