PROGRAMACIÓN EN C++ – CLASE 07

(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)


Selección múltiple (case)

Es frecuente tener que comprobar más de una condición a la vez, o bien varias condiciones consecutivas. La estructura según nos permite optar por distintos caminos.


¿APROBADO O DESAPROBADO?

Vamos a crear un programa que, de acuerdo con la nota de un examen, nos diga si está
“Aprobado” (notas que van de 7 a 10) o “Desaprobado” (si ingresamos cualquier otro valor).


Veamos el código:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// PROG09 - SELECCION MULTIPLE.
#include <iostream>
using namespace std;
int nota;
int main()
{
cout << "Ingrese calificación: ";
cin >> nota;
switch(nota)
{
case 10:
case 9:
case 8:
case 7:
cout << "Aprobado." << endl;
break; // Detiene la ejecución en este caso.
default: // Cualquier otro caso responde por defecto.
cout << "Desaprobado." << endl;
}
return 0;
}
// PROG09 - SELECCION MULTIPLE. #include <iostream> using namespace std; int nota; int main() { cout << "Ingrese calificación: "; cin >> nota; switch(nota) { case 10: case 9: case 8: case 7: cout << "Aprobado." << endl; break; // Detiene la ejecución en este caso. default: // Cualquier otro caso responde por defecto. cout << "Desaprobado." << endl; } return 0; }
// PROG09 - SELECCION MULTIPLE.
#include <iostream>

using namespace std;

int nota;

int main()
{
    cout << "Ingrese calificación: ";
    cin >> nota;
    switch(nota)
    {
        case 10:
        case 9:
        case 8:
        case 7:
            cout << "Aprobado." << endl;
        break; // Detiene la ejecución en este caso.
        default: // Cualquier otro caso responde por defecto.
            cout << "Desaprobado." << endl;
        }
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // SELECCION MULTIPLE.

Esta es una línea de comentario, es decir, no se considera código ejecutable. Es un comentario general para el programa.

Línea 2: #include <iostream>

Esta línea incluye la biblioteca iostream, que proporciona funciones de entrada y salida estándar (como cout y cin) en C++.

Línea 4: using namespace std;

Esta línea indica que se va a utilizar el espacio de nombres “std” para acceder a las clases y funciones definidas en ese espacio de nombres. En este caso, se utiliza para acceder a la clase cout y cin.

Línea 6: int nota;

Se declara una variable entera llamada nota. Esta variable almacenará el valor de la calificación introducida por el usuario.

Línea 8: int main()

Se define la función principal del programa, que es donde se inicia la ejecución del programa. La función main devuelve un valor entero que indica el estado de la ejecución del programa (0 significa éxito).

Línea 10: cout << "Ingrese calificación: ";

Se imprime el mensaje “Ingrese calificación:” en la salida estándar.

Línea 11: cin >> nota;

Se lee un valor entero desde la entrada estándar y se almacena en la variable nota.

Línea 12: switch(nota)

Se inicia un bucle switch que evalúa el valor de la variable nota. El caso que se va a ejecutar depende del valor de nota.

Líneas 14-17:

case 10:

case 9:

case 8:

case 7:

Estas líneas especifican los valores de nota que corresponden al caso que se va a ejecutar. En este caso, si el valor de la variable nota es 10, 9, 8 o 7, se ejecutará el código que se encuentra en las siguientes líneas.

Línea 18: cout << "Aprobado." << endl;

Se imprime el mensaje “Aprobado.” seguido por un salto de línea.

Línea 19: break;

Esta línea detiene la ejecución del bucle switch en este caso específico (es decir, si el valor de la variable nota es 10, 9, 8 o 7).

Línea 20: default:

Esta línea especifica el caso por defecto que se va a ejecutar si el valor de la variable nota no coincide con los valores especificados anteriormente.

Línea 21: cout << "Desaprobado." << endl;

Se imprime el mensaje “Desaprobado.” seguido por un salto de línea.

Línea 23: return 0;

La función main devuelve el valor 0, lo que indica que la ejecución del programa ha sido exitosa.


Ahora vamos a crear un programa que funcione como un examen múltiple choice.


Veamos el código:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// PROG09B - SELECCION MULTIPLE. CREANDO UNA PRUEBA MÚLTIPLE CHOICE.
#include <iostream>
using namespace std;
int respuesta;
int main()
{
cout << "¿Qué color se genera mezclando azul y amarillo?" << endl;
cout << "1 - Rojo." << endl;
cout << "2 - Violeta." << endl;
cout << "3 - Verde." << endl;
cout << "4 - Negro." << endl << endl;
cout << "Elija una opción: ";
cin >> respuesta;
switch(respuesta)
{
case 1:
cout << "Respuesta incorrecta." << endl;
break; // Detiene la ejecución en este caso.
case 2:
cout << "Respuesta incorrecta." << endl;
break; // Detiene la ejecución en este caso.
case 3:
cout << "Correcto." << endl;
break; // Detiene la ejecución en este caso.
case 4:
cout << "Respuesta incorrecta." << endl;
break; // Detiene la ejecución en este caso.
default: // default, es el bloque que se ejecuta en caso de que no se dé ningún caso.
cout << "Opción Incorrecta." << endl;
}
return 0;
}
// PROG09B - SELECCION MULTIPLE. CREANDO UNA PRUEBA MÚLTIPLE CHOICE. #include <iostream> using namespace std; int respuesta; int main() { cout << "¿Qué color se genera mezclando azul y amarillo?" << endl; cout << "1 - Rojo." << endl; cout << "2 - Violeta." << endl; cout << "3 - Verde." << endl; cout << "4 - Negro." << endl << endl; cout << "Elija una opción: "; cin >> respuesta; switch(respuesta) { case 1: cout << "Respuesta incorrecta." << endl; break; // Detiene la ejecución en este caso. case 2: cout << "Respuesta incorrecta." << endl; break; // Detiene la ejecución en este caso. case 3: cout << "Correcto." << endl; break; // Detiene la ejecución en este caso. case 4: cout << "Respuesta incorrecta." << endl; break; // Detiene la ejecución en este caso. default: // default, es el bloque que se ejecuta en caso de que no se dé ningún caso. cout << "Opción Incorrecta." << endl; } return 0; }
// PROG09B - SELECCION MULTIPLE. CREANDO UNA PRUEBA MÚLTIPLE CHOICE.
#include <iostream>

using namespace std;

int respuesta;

int main()
{
    cout << "¿Qué color se genera mezclando azul y amarillo?" << endl;
    cout << "1 - Rojo." << endl;
    cout << "2 - Violeta." << endl;
    cout << "3 - Verde." << endl;
    cout << "4 - Negro." << endl << endl;
    cout << "Elija una opción: ";
    cin >> respuesta;
    switch(respuesta)
    {
	case 1:
            cout << "Respuesta incorrecta." << endl;
			break; // Detiene la ejecución en este caso.
        case 2:
            cout << "Respuesta incorrecta." << endl;
			break; // Detiene la ejecución en este caso.
        case 3:
            cout << "Correcto." << endl;
			break; // Detiene la ejecución en este caso.
        case 4:
            cout << "Respuesta incorrecta." << endl;
			break; // Detiene la ejecución en este caso.
        default: // default, es el bloque que se ejecuta en caso de que no se dé ningún caso.
            cout << "Opción Incorrecta." << endl;
        }
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // PROG09B - SELECCION MULTIPLE. CREANDO UNA PRUEBA MÚLTIPLE CHOICE.

Esta línea es un comentario que describe el propósito del programa.

Línea 2: #include <iostream>

Esta línea incluye la biblioteca iostream, que proporciona funciones de entrada y salida estándar (como cout y cin) en C++.

Línea 4: using namespace std;

Esta línea indica que se va a utilizar el espacio de nombres “std” para acceder a las clases y funciones definidas en ese espacio de nombres. En este caso, se utiliza para acceder a la clase cout y cin.

Línea 6: int respuesta;

Se declara una variable entera llamada respuesta. Esta variable almacenará el valor de la respuesta del usuario.

Línea 8: int main()

Se define la función principal del programa, que es donde se inicia la ejecución del programa. La función main devuelve un valor entero que indica el estado de la ejecución del programa
(0 significa éxito).

Líneas 10-15

cout << "¿Qué color se genera mezclando azul y amarillo?" << endl;

cout << "1 - Rojo.";

cout << "2 - Violeta.";

cout << "3 - Verde.";

cout << "4 - Negro.";

cout << "Elija una opción: ";

Estas líneas imprimen varios mensajes en la salida estándar, incluyendo un mensaje que pregunta al usuario sobre el resultado de mezclar azul y amarillo, y otro mensaje que pide al usuario que ingrese su respuesta.

Línea 16: cin >> respuesta;

Se lee un valor entero desde la entrada estándar y se almacena en la variable respuesta.

Líneas 17-33:

switch(respuesta) { ... }

Se inicia un bucle switch que evalúa el valor de la respuesta del usuario.

Cada caso (1, 2, 3, 4):

Estos casos son bloques que se ejecutan si el valor de la variable respuesta coincide con el número correspondiente. En este caso, cada caso imprime un mensaje diferente según sea correcto o incorrecto.

  • Case 1 y 2: Imprimen “Respuesta incorrecta.” y detienen la ejecución.
  • Case 3: Imprime “Correcto.” y detiene la ejecución.
  • Case 4: Imprime “Respuesta incorrecta.” y detiene la ejecución.
  • Default (caso no especificado): Imprime “Opción Incorrecta.“.

Línea 34: return 0;

La función main termina y devuelve el valor 0, indicando que la ejecución fue exitosa.


TAREA PARA EL HOGAR

  1. Crear un examen de 10 preguntas y que al finalizar nos diga la nota final, todo esto de acuerdo a las respuestas correctas. También que analice la nota y que diga si estamos Aprobados o Desaprobados.
  2. Crear un algoritmo en donde se utilice la misma estructura, pero que funcione como un menú de selección para tres de los programas creados anteriormente, y que descarte (como en este último ejemplo) cualquier número que no sea parte del menú.
    Recordar que las variables analizadas en esta estructura deben tener un valor numérico, no pueden ser textos.