caratula unsa

Upload: julio-carita

Post on 06-Mar-2016

222 views

Category:

Documents


0 download

DESCRIPTION

CARATULA

TRANSCRIPT

Sentenciaswitch

1. Definicin

Esta sentencia es una generalizacin de las sentenciasif...else. En el caso de las sentenciasif, la expresin que se evala como condicin es booleana, lo que quiere decir que slo hay dos valores posibles, y por lo tanto, slo se puede elegir entre dos sentencias a ejecutar.

Es una sentencia que facilita la posibilidad de eleccin mltiple, basndose en una expresin constante.En el caso de la sentenciaswitch, la expresin a evaluar ser entera, por lo tanto, el nmero de opciones es mucho mayor, y en consecuencia, tambin es mayor el nmero de diferentes sentencias que se pueden ejecutar.

Cuando se usa la sentenciaswitchel control se transfiere al punto etiquetado con elcasecuya expresin constante coincida con el valor de la expresin entera evaluada dentro delswitch. A partir de ese punto todas las sentencias sern ejecutadas hasta el final delswitch, es decir hasta llegar al "}". Esto es as porque las etiquetas slo marcan los puntos de entrada despus de una ruptura de la secuencia de ejecucin, pero no marcan los puntos de salida.Esta estructura est diseada para ejecutar cierta secuencia de instrucciones, empezando a partir de un punto diferente, en funcin de un valor entero y dejando sin ejecutar las anteriores a ese punto.

El switch evala cada caso, cuando coincide uno de ellos con el contenido de la variable, ejecuta las sentencias del caso y termina el switch. En caso de no encontrar ningn case que corresponda, en igualdad, con el contenido de la variable, ejecuta las sentencias de la clusula default, si esta ha sido especificada, sino termina el switch.

2. Sintaxis

Su sintaxis es:switch (expresin)

{

case expres_const_1:

sentencias_1;

break;

case expres_const_2:

sentencias_2;

break;

/* ... */

default:

sentencias_n;

}Cada caso (case) es etiquetado con un nmero entero o por una expresin constante. Cuando la etiqueta corresponda con el valor de la expresin evaluada, la ejecucin comenzar en ese punto. Al contrario de lo que ocurre en las sentencias if, la ejecucin de cada case no es excluyente, sino que, una vez comenzada, sta contina en los case que siguen, salvo que cada bloque termine con la instruccin break; que sale del bucle switch. Debemos resear que break se puede ejecutar tambin dentro de otras sentencias de control de flujo, como los bucles while, for o do, para salir de ellos.

3. Ejemplos

3.1Crear un programa que lea una opcin por pantalla de 4 opciones ofrecidas, y le informe al usuario de cul ha elegido.

#include #include using namespace std;

int main ()

{

int option;

printf ("Introduce tu opcion :\n""1. Opcion n1\n""2. Opcion n2\n""3. Opcion n3\n""4. Opcion n4\n");

cin>>option;

switch ( option )

{

case 1:

printf ("Elegiste la opcion n1\n");

break;

case 2:

printf ("Elegiste la opcion n2\n");

break; case 3:

printf ("Elegiste la opcion n3\n");

break;

case 4:

printf ("Elegiste la opcion n4\n");

break;

default:

printf ("Error en la lectura de la opcion\n");

}

system("pause");

}

3.2 Crear un programa que pida un nmero del 1 al 7 y diga el da de la semana correspondiente#include #include int main(void)

{

int i;

printf("Introduzca nmero del 1 al 7:");

scanf("%d",&i);

switch(i){

case 1:

printf ("Lunes\n");

break;

case 2:

printf ("Martes\n");

break;

case 3:

printf ("Mircoles\n");

break;

case 4:

printf ("Jueves\n");

break;

case 5:

printf ("Viernes\n");

break;

case 6:

printf ("Sbado\n");

break;

case 7:

printf ("Domingo\n");

break;

default:

printf ("Opcin no vlida\n");

break;

}

system("PAUSE");

return 0;

}

3.3 Crear un programa que pida una letra y detecte si es una vocal.#include #include int main(void)

{

char c;

printf("Introduzca un carcter:");

scanf("%c",&c);

switch (c)

{

case 'a':

printf ("Es vocal\n");

break;

case 'e':

printf ("Es vocal\n");

break;

case 'i':

printf ("Es vocal\n");

break;

case 'o':

printf ("Es vocal\n");

break;

case 'u':

printf ("Es vocal\n");

break;

default:

printf ("No es vocal\n");

break;

}

system("PAUSE");

return 0;

}

4. Ejercicio

Desarrollar un Programa que calcule y devuelva lo siguiente:

Ingresar Apellidos y nombres del alumno y su curso y Categora, adems de 3 notas, calcular el promedio y mostrar lo siguiente:

Si el promedio esta entre 0 y 10, su estado es Desaprobado

Si el promedio esta entre 11 y 14, su estado es Regular

Si el promedio es mayor a 14 y menor 17, su estado es Bueno.

Caso contrario su estado es Excelente

Adems del mensaje:

Apto, si su estado es Excelente y su categora es A, caso contrario es No Apto#include#include#includeusing namespace std;

int promedio,n1,n2,n3,cat;

char nomape[40],cur[20];

int main()

{

printf("\t\tingrese nombres y apellidos del alumno\n");

gets(nomape);

printf("\t\tingrese curso \n");

gets(cur);

printf("\t\telija una categoria \n");

printf("\t\t1 - A\t\t \n");

printf("\t\t2 - B\t\t \n");

printf("\t\t3 - C\t\t \n");

cin>>cat;

printf("\t\tingrese 3 notas \n");

scanf("%i""%i""%i",&n1,&n2,&n3);

system("cls");

if (n1>=0&&n2>=0&&n3>=0)

promedio=(n1+n2+n3)/3 ;

else

cout