Unmsm05 2008

Post on 27-Jun-2015

357 views 0 download

Transcript of Unmsm05 2008

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

monicdre@yahoo.com

INFORMÁTICA

FACULTAD DE INGENIERÍA INDUSTRIAL

CONTENIDO

ESTRUCTURA SELECTIVAS MÚLTIPLES

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  

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. 

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.

ESTRUCTURA SELECTIVAS MÚLTIPLES

En una carta N-S

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 

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.

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 "}".

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".

ESTRUCTURA SELECTIVAS MÚLTIPLES

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

ESTRUCTURA SELECTIVAS MÚLTIPLES

ESTRUCTURA SELECTIVAS MÚLTIPLES

ESTRUCTURA SELECTIVAS MÚLTIPLES

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

ESTRUCTURA SELECTIVAS MÚLTIPLES

Análisis

ESTRUCTURA SELECTIVAS MÚLTIPLES

Algoritmo : Diagrama de flujo

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;}

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”.

ESTRUCTURA SELECTIVAS MÚLTIPLES

Algoritmo: Cartas N-S

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;}

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.

 

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

ESTRUCTURA SELECTIVAS MÚLTIPLES

En código C++

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

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

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; 

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;}