10
Universidad San Pedro Escuela: Ingeniería Informática y de Sistemas Curso: Introducción a la Ing. Informática y de Sistemas Ciclo: I Docente: Ing. CIP Jorge ALTERNATIVA MÚLTIPLE Una instrucción alternativa múltiple (o simplemente alternativa múltiple) permite seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a ejecutar de entre varios posibles. En Pseudocódigo: SegúnSea ( <expresión> ) Hacer Caso <lista_de_valores_1> : <bloque_de_instrucciones_1>; terminar: Caso <lista_de_valores_2> : <bloque_de_instrucciones_2>; terminar; ... Caso <lista_de_valores_n> : <bloque_de_instrucciones_n>; terminar; sino : <bloque_de_instrucciones_n+1>; FinSegunSea Diagrama de Flujo: El resultado de evaluar la <expresión> debe ser un valor perteneciente a un tipo de dato finito y ordenado, es decir, entero, carácter o enumerado. Dependiendo del valor obtenido al evaluar la <expresión>, se ejecutará un bloque de instrucciones u otro. Opcionalmente, se puede escribir un <bloque_de_instrucciones_n+1> después de Sino: Este bloque de instrucciones se ejecutará en el caso de que el valor obtenido al evaluar la <expresión>, no se encuentre en ninguna de las expresiones después de cada caso, es decir, si se quiere considerar un proceso para un resultado falso utilizamos la instrucción sino, que es el valor por omisión. Dado que cada uno de los casos puede contener varias expresiones debemos indicarle al compilador que el caso ha terminado y que debe salir del ciclo de selección, para este fin utilizamos la instrucción

Tema 07 seleccion multiple

Embed Size (px)

Citation preview

Page 1: Tema 07 seleccion multiple

Universidad San PedroFilial Barranca

Escuela: Ingeniería Informática y de SistemasCurso: Introducción a la Ing. Informática y de Sistemas Ciclo: I Docente: Ing. CIP Jorge Pariasca León

ALTERNATIVA MÚLTIPLE

Una instrucción alternativa múltiple (o simplemente alternativa múltiple) permite seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a ejecutar de entre varios posibles.

En Pseudocódigo:

SegúnSea ( <expresión> ) Hacer Caso <lista_de_valores_1> : <bloque_de_instrucciones_1>; terminar: Caso <lista_de_valores_2> : <bloque_de_instrucciones_2>; terminar; ... Caso <lista_de_valores_n> : <bloque_de_instrucciones_n>; terminar; sino : <bloque_de_instrucciones_n+1>; FinSegunSea

Diagrama de Flujo:

El resultado de evaluar la <expresión> debe ser un valor perteneciente a un tipo de dato finito y ordenado, es decir, entero, carácter o enumerado. Dependiendo del valor obtenido al evaluar la <expresión>, se ejecutará un bloque de instrucciones u otro. Opcionalmente, se puede escribir un <bloque_de_instrucciones_n+1> después de Sino: Este bloque de instrucciones se ejecutará en el caso de que el valor obtenido al evaluar la <expresión>, no se encuentre en ninguna de las expresiones después de cada caso, es decir, si se quiere considerar un proceso para un resultado falso utilizamos la instrucción sino, que es el valor por omisión. Dado que cada uno de los casos puede contener varias expresiones debemos indicarle al compilador que el caso ha terminado y que debe salir del ciclo de selección, para este fin utilizamos la instrucción terminar. Esto hace que siga la ejecución en la siguiente sentencia del SegúnSea.

Ejemplo 1: Se quiere escribir un programa que:1º) Pida por teclado el número (dato entero) de un día de la semana.2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día.

Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará el mensaje: "ERROR: Día incorrecto.".

Page 2: Tema 07 seleccion multiple

Universidad San PedroFilial Barranca

Escuela: Ingeniería Informática y de SistemasCurso: Introducción a la Ing. Informática y de Sistemas Ciclo: I Docente: Ing. CIP Jorge Pariasca León

En pantalla:

Algoritmo Dia_de_la_semana

Variables Entero dia;

Inicio Escribir ( "Introduzca día de la semana: " ); Leer ( dia ); SegunSea ( dia ) Hacer caso 1 : Escribir( "Lunes" ); terminar; caso 2 : Escribir( "Martes" ); terminar; caso 3 : Escribir( "Miércoles"); terminar; caso 4 : Escribir( "Jueves" ); terminar; caso 5 : Escribir( "Viernes"); terminar; caso 6 : Escribir( "Sábado" ); terminar; caso 7 : Escribir( "Domingo"); terminar; Sino: Escribir( "ERROR: Día incorrecto." ); FinSegunSeaEscribir(“Fin del programa”)Fin

Algoritmo Dia_de_la_semana

Variables Caracter dia;

Inicio Escribir ( "Introduzca día de la semana: " ); Leer ( dia ); SegunSea ( dia ) Hacer caso ‘L’ : Escribir( "Lunes" ); terminar; caso ‘M’ : Escribir( "Martes" ); terminar; caso ‘N’ : Escribir( "Miércoles"); terminar; caso ‘J’ : Escribir( "Jueves" ); terminar; caso ‘V’ : Escribir( "Viernes"); terminar; caso ‘S’ : Escribir( "Sábado" ); terminar; caso ‘D’ : Escribir( "Domingo"); terminar; Sino: Escribir( "ERROR: Día incorrecto." ); FinSegunSeaEscribir(“Fin del programa”)Fin

Ejemplo 2: En la siguiente tabla se muestran las categorías a las que pertenecen los signos del zodíaco:

Signo Categoría1. Aries2. Tauro3. Géminis4. Cáncer5. Leo6. Virgo7. Libra8. Escorpio9. Sagitario10. Capricornio11. Acuario12. Piscis

FuegoTierraAireAguaFuegoTierraAireAguaFuegoTierraAireAgua

Introduzca día de la semana: 2

Martes

Introduzca día de la semana: 9

ERROR: Día incorrecto.

Page 3: Tema 07 seleccion multiple

Universidad San PedroFilial Barranca

Escuela: Ingeniería Informática y de SistemasCurso: Introducción a la Ing. Informática y de Sistemas Ciclo: I Docente: Ing. CIP Jorge Pariasca León

Se quiere escribir un programa que:1º) Muestre el listado de los signos del zodíaco, con sus números asociados.2º) Pida por teclado un número (dato entero) asociado a un signo del zodíaco.3º) Muestre la categoría a la que pertenece el signo del zodíaco seleccionado.

Nota: Si el número introducido por el usuario, no está asociado a ningún signo del zodíaco, se mostrará el mensaje: "ERROR: <número> no está asociado a ningún signo.".

En pantalla: Listado de signos del zodiaco: 1. Aries 2. Tauro 3. Geminis 4. Cancer 5. Leo 6. Virgo 7. Libra 8. Escorpio 9. Sagitario 10. Capricornio 11. Acuario 12. Piscis

Algoritmo Signo_del_zodiaco

Variables Entero numero

Inicio Escribir( "Listado de signos del zodíaco:" ); Escribir( "1. Aries" ); Escribir( "2. Tauro" ); Escribir( "3. Géminis" ); Escribir( "4. Cáncer" ); Escribir( "5. Leo" ); Escribir( "6. Virgo" ); Escribir( "7. Libra" ); Escribir( "8. Escorpio" ); Escribir( "9. Sagitario" ); Escribir( "10. Capricornio" ); Escribir( "11. Acuario" ); Escribir( "12. Piscis" ); Escribir( "Introduzca número de signo: " );

Introduzca numero de signo: 7 Es un signo de Aire.

Listado de signos del zodiaco: 1. Aries 2. Tauro 3. Geminis 4. Cancer 5. Leo 6. Virgo 7. Libra 8. Escorpio 9. Sagitario 10. Capricornio 11. Acuario 12. Piscis

Introduzca numero de signo: 15 ERROR: 15 no esta asociado a ningún signo.

Page 4: Tema 07 seleccion multiple

Universidad San PedroFilial Barranca

Escuela: Ingeniería Informática y de SistemasCurso: Introducción a la Ing. Informática y de Sistemas Ciclo: I Docente: Ing. CIP Jorge Pariasca León

leer( numero );

SegunSea ( numero ) Hacer caso1: caso 5: caso 9 : Escribir( "Es un signo de Fuego." ); terminar; caso 2: caso 6: caso 10 : Escribir( "Es un signo de Tierra." ); terminar; caso 3: caso 7: caso 11 : Escribir( "Es un signo de Aire." ); terminar; caso 4: caso 8: caso 12 : Escribir( "Es un signo de Agua." ); terminar; Sino : Escribir( "ERROR: ", numero, " no está asociado a ningún signo." ); FinSegunSeaEscribir( "Fin del programa" ); Fin

Ejemplo 3 - Número del dado: Escribir un programa que:1º) Pida por teclado el resultado (dato entero) obtenido al lanzar un dado de seis caras.2º) Muestre por pantalla el número en letras (dato cadena) de la cara opuesta al resultado obtenido.

Nota 1: En las caras opuestas de un dado de seis caras están los números: 1-6, 2-5 y 3-4.

Nota 2: Si el número del dado introducido es menor que 1 ó mayor que 6, se mostrará el mensaje: "ERROR: Número incorrecto.".

En pantalla:

Solución

Algoritmo Numero_del_dado

Variables Entero numero;

Inicio Escribir( "Introduzca número del dado: " ); Leer( numero );

SegunSea ( numero ) Hacercaso 1 : Escribir( "En la cara opuesta está el \"seis\"." ); terminar;caso 2 : Escribir( "En la cara opuesta está el \"cinco\"." ); terminar;caso 3 : Escribir( "En la cara opuesta está el \"cuatro\"." ); terminar;caso 4 : Escribir( "En la cara opuesta está el \"tres\"." ); terminar;caso 5 : Escribir( "En la cara opuesta está el \"dos\"." ); terminar;caso 6 : Escribir( "En la cara opuesta está el \"uno\"." ); terminar;Sino : Escribir( "ERROR: Número incorrecto." );FinSegunSea

Introduzca número del dado: 5En la cara opuesta está el "dos".

Introduzca número del dado: 8ERROR: Número incorrecto.

Page 5: Tema 07 seleccion multiple

Universidad San PedroFilial Barranca

Escuela: Ingeniería Informática y de SistemasCurso: Introducción a la Ing. Informática y de Sistemas Ciclo: I Docente: Ing. CIP Jorge Pariasca León

Escribir( "Fin del programa" ); Fin

Ejemplo 4 - Habitaciones de una casa rural En la siguiente tabla se muestra el número de camas de las habitaciones de una casa rural, además de la planta donde está ubicada cada una de ellas:

Habitación Camas Planta1. Azul 2 Primera2. Roja 1 Primera

3. Verde 3 Segunda4. Rosa 2 Segunda5. Gris 1 Tercera

Escribir un programa que:1º) Muestre el listado de las habitaciones de la casa rural.2º) Pida por teclado el número (dato entero) asociado a una habitación.3º) Muestre por pantalla la planta y el número de camas de la habitación seleccionada.

Nota: Si el número introducido por el usuario, no está asociado a ninguna habitación, se mostrará el mensaje: "ERROR: <número> no está asociado a ninguna habitación.".En pantalla:

Solución: Algoritmo Habitaciones_de_una_casa_rural

Variables Entero numero;

Inicio Escribir( "Listado de habitaciones:" ); Escribir( "1. Azul" ); Escribir( "2. Roja" ); Escribir( "3. Verde" ); Escribir( "4. Rosa" ); Escribir( "5. Gris" ); Escribir( "Introduzca número de habitación: " );

Listado de habitaciones:

1. Azul2. Roja3. Verde4. Rosa5. Gris

Introduzca número de habitación: 3La Verde tiene 3 camas y está en la segunda planta.

Listado de habitaciones:

1. Azul2. Roja3. Verde4. Rosa5. Gris

Introduzca número de habitación: 7ERROR: 7 no está asociado a ninguna habitación.

Page 6: Tema 07 seleccion multiple

Universidad San PedroFilial Barranca

Escuela: Ingeniería Informática y de SistemasCurso: Introducción a la Ing. Informática y de Sistemas Ciclo: I Docente: Ing. CIP Jorge Pariasca León

Leer( numero );

SegunSea ( numero ) Hacer caso 1 : Escribir( "La Azul tiene 2 cama/s y está en la primera planta." ); terminar; caso 2 : Escribir( "La Roja tiene 1 cama/s y está en la primera planta." ); terminar; caso 3 : Escribir( "La Verde tiene 3 cama/s y está en la segunda planta." ); terminar; caso 4 : Escribir( "La Rosa tiene 2 cama/s y está en la segunda planta." ); terminar; caso 5 : Escribir( "La Gris tiene 1 cama/s y está en la tercera planta." ); terminar; Sino : Escribir( "ERROR: ", numero, " no está asociado a ninguna habitación." ); FinSegunSeaEscribir( "Fin del programa" ); Fin

AnidamientoLas instrucciones alternativas y condicionales pueden escribirse una dentro de otra. A este hecho se le conoce como anidamiento. Las instrucciones permiten realizar las siguientes combinaciones de anidamiento:

Doble en múltiple. Simple en múltiple. Múltiple en múltiple. Múltiple en doble. Múltiple en simple.

De ellas, vamos a estudiar, como ejemplo, las siguientes combinaciones: Múltiple en doble.

Page 7: Tema 07 seleccion multiple

Universidad San PedroFilial Barranca

Escuela: Ingeniería Informática y de SistemasCurso: Introducción a la Ing. Informática y de Sistemas Ciclo: I Docente: Ing. CIP Jorge Pariasca León

EJERCICIOS PROPUESTOS:

1. Escriba un programa tal, que al escribir el número de mes muestre el nombre completo del mes.

2. Leer un número comprendido entre 1 y 10 y visualizar si el número es par o impar.

3. Realizar un programa que determine los años más importantes de la historia universal (al menos 5), es decir si el usuario coloca 1492 como resultado se debe obtener: Descubrimiento de América.

4. Un trabajador recibe el 40% de aumento si tiene 4 hijos, 30% si tiene 3, 20% si tiene 2, 10% si tiene 1 y si no tiene hijos no recibe aumento, realizar un programa que solicite el nombre del trabajador, el sueldo asignado y el número de hijos, como salida se debe obtener: Nombre del trabajador, aumento y sueldo final.

5. Elabore un programa que pida dos números y que permita mostrar un menú con las cuatro operaciones básicas, donde el usuario pueda seleccionar la operación que desea realizar (basta con que seleccione el número).

6. Modifique el anterior programa para que en vez de solicitar el número del menú seleccione el operador, es decir, + - * /.

7. En una empresa, se darán aumentos a los empleados según la categoría de su contrato actual de la siguiente forma:

Clave de categoría

Categoría Aumento %

S Sindicalizado 25C Confianza 13D Directivo 8E Ejecutivo 5

Elabore un programa que solicite la clave de la categoría y el sueldo actual de un empleado y calcule e imprima el nuevo salario.

8. Realizar un programa que determine según elección del usuario:1. Área del Cuadrado2. Área del Rectángulo3. Área del Triángulo4. Área del círculo