25
Ing. Mónica Díaz Reátegui CIP. 63424 [email protected] INFORMÁTICA FACULTAD DE INGENIERÍA INDUSTRIAL

Unmsm05 2008

Embed Size (px)

Citation preview

Page 1: Unmsm05 2008

Ing. Mónica Díaz Reátegui CIP. 63424

[email protected]

INFORMÁTICA

FACULTAD DE INGENIERÍA INDUSTRIAL

Page 2: Unmsm05 2008

CONTENIDO

ESTRUCTURA SELECTIVAS MÚLTIPLES

Page 3: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

ESTRUCTURA SELECTIVA MÚLTIPLE

En la solución de problemas existe casos en que más de dos instrucciones tienen que ser ejecutadas en función al resultado de evaluar una condición en una estructura selectiva. Una primera forma de afrontarlo es a través de if anidados, pero existe otra forma de organizarlos en forma más ordenada.

Esta estructura es: En Caso ….. Sea…… Hacer  

Page 4: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

En C++ la forma de afrontar esta estructura tiene una variación con respecto a las estructuras en otros lenguajes.  En C ++ la estructura se aborda evaluando cada caso con un valor ordinal es decir un carácter o entero. 

Page 5: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Representación de la estructuras En caso con las diferentes herramientas para construir algoritmos: En un diagrama de flujo:

Donde: id es el nombre de una variable de tipo ordinal (entero o carácter)vi es una constante de tipo ordinal.

Page 6: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

En una carta N-S

Page 7: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

En Pseudo código En Caso N Sea 1 : Instrucción [ Salir]Sea 2 : Instrucción [ Salir]Sea 3 : Instrucción [ Salir]  O si no : Instrucción Fin del En caso 

Page 8: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Estructura "switch"

La estructura switch es una estructura de control selectiva múltiple que tienes por función transferir el flujo de ejecución por las diferentes entradas que proporciona la palabra reservada case y a partir de allí ejecuta las instrucciones hasta el final del bloque salvo que encuentre la instrucción de corte break.

Page 9: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Sintaxis:

Cuando se usa la estructura "switch" el control se transfiere al punto etiquetado con el "case" cuya expresión constante coincida con el valor de la variable del "switch". A partir de ese punto todas las instrucciones serán ejecutadas hasta el final del "switch", es decir hasta llegar al "}".

Page 10: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Esto es así porque las etiquetas sólo marcan los puntos de entrada después de una ruptura de la secuencia de ejecución, pero no marcan las salidas. Esta característica nos permite ejecutar las mismas instrucciones para varias etiquetas distintas, y se puede eludir usando la sentencia de ruptura "break" al final de las sentencias incluidas en cada "case". Si no se satisface ningún "case", el control parará a la siguiente sentencia después de la etiqueta "default". Esta etiqueta es opcional y si no aparece se abandonará el "switch".

Page 11: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

COMPORTAMIENTO DEL switch CON EL breakEl siguiente fragmento de programa esta presentado de cuatro formas diferentes :

Page 12: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Page 13: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Page 14: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Ejemplo 1A partir de una nota vigesimal mostrar su equivalente a caracteres

Page 15: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Análisis

Page 16: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Algoritmo : Diagrama de flujo

Page 17: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

 En código C++ #include <iostream>using namespace std;int main() {

int N;cout << “Ingrese una nota”;cin>>N,T;switch (N) {

case 18:case 19:case 20: T=”A”; break;case 15: case 16: case 17: T=”B”; break;case 11: case 12: case 13: case 14: T=”C”; break;case 6: case 7: case 8: case 9: case 10: T=”D”; break;case 0: case 1: case 2: case 3: case 4: case 5: T=”E”;

} cout<< T; return 0;}

Page 18: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Ejemplo 2 En este ejemplo letra es una variable de tipo "char". Si el valor de entrada en el "switch" corresponde a una vocal, Se mostrará el mensaje “Es vocal abierta”,o “Es vocal cerrada”, en caso contrario, saldrá un mensaje “Es consonante”.

Page 19: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Algoritmo: Cartas N-S

Page 20: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

En código C++ #include <iostream>using namespace std;int main() {

int N;cout << “Ingrese una nota”;cin>>N;switch(letra) { case 'a': case ‘A’:

case 'e': case ‘E’: case 'o': case ‘O’: cout<< “Es vocal abierta”; break; case 'i': case ‘I’: case 'u': case ‘U’: cout<< “Es vocal cerrada”; break; default: cout<< “es una consonante”; } return 0;}

Page 21: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

El ejemplo ilustra el uso del "break", si letra es 'a', se cumple el primer "case", y la ejecución continúa en la siguiente sentencia, ignorando el resto de los "case" hasta el "break".

Ejemplo 3

En este ejemplo num es un entero y va ha mostrar el texto correspondiente al día de la semana, debe validar los días válidos.

 

Page 22: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

Algoritmo: Pseudocódigo Inicio

Leer numSi (num>=1 Y num<=7)

 En caso (num)

Sea 1: Escribir “Domingo” , SalirSea 2: Escribir “Lunes” , SalirSea 3: Escribir “Martes” , SalirSea 4: Escribir “Miércoles” , SalirSea 5: Escribir “Jueves” , SalirSea 6: Escribir “Viernes” , SalirSea 7: Escribir “Sábado” ,

Fin del en casoO si no

Escribir “No es un número válido”Fin del si 

Fin

Page 23: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

En código C++

 #include <iostream>using namespace std;int main() {

int N;cout << “Ingrese una nota”;cin>>num;

Page 24: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

En código C++

if(num>=1 && num<=7) switch(num)

{ case 1: cout<< “Domingo”; break; case 2: cout<< “Lunes”; break; case 3: cout<< “Martes”; break; case 4: cout<< “Miercoles”; break; case 5: cout<< “Jueves”; break; case 6: cout<< “Viernes”; break; case 7: cout<< “Sabado”; } else cout<< “No es un número válido”;return 0; 

Page 25: Unmsm05 2008

ESTRUCTURA SELECTIVAS MÚLTIPLES

#include <iostream>#include <stdlib.h>using namespace std;int main(){ float CON, DES=0,MON; cout << "Ingrese consumo"; cin>> CON; if ( CON>50) DES=CON*0.05; MON=CON-DES; cout<<"El monto a pagar es "<<MON<<endl;  system("PAUSE"); return 0;}