Está en la página 1de 8

Sentencias selectivas múltiple switch

Introducción

La estructura selectiva switch permite que el flujo del diagrama se divida por varias ramas
en el punto de la toma de decisión. La elección del camino a seguir depende del contenido
de la variable conocida como selector, la cual puede tomar valores de un conjunto
previamente establecido. El camino elegido, entonces, dependerá del valor que tome el
selector. Así, si el selector toma el valor 1 ejecutará la acción 1; si toma el valor 2, se
ejecutará la acción 2, y si toma el valor N, se realizará la acción N, es importante señalar
que la estructura switch es muy flexible, ya que si el selector tomara un valor distinto a los
comprendidos entre 1 y N, entonces deberá salir por el default.

valor1 default
proceso selector proceso

proceso valor2 ……………… valorN


proceso
Ejemplo 1

Desarrollar un diagrama de flujo, en el cual se reciba como dato el valor de un número


entero entre el 1 y 5 e imprimir su equivalente en romano. Para convertir de número arábigo
a romano no hay una fórmula.

Diagrama de flujo:

Inicio

numero

“Imprime el equivalente
en romano ”

“Introducir un
numero entero”

numero

1 default “Solo imprime números


“I” numero
entre el 1 y 5”

2 5
“ II ” “V”
3 4

“ III” “ IV ”

Fin
Codificación

#include <stdio.h>
void main()
{
int numero;
clrscr();
printf("\nImprime un numero romano del 1 al 5");
printf("\nIntroducir un numero entero: ");
scanf("%d",&numero);
switch(numero)
{
case 1:
printf("\nI");
break;
case 2:
printf("\nII");
break;
case 3:
printf("\nIII");
break;
case 4:
printf("\nIV");
break;
case 5:
printf("\nV");
break;
default:
printf("\nSolo numeros del 1 al 5");
}
printf("\nOprimir cualquier tecla para finalizar"); getche();
}
Ejemplo 2

La compañía de la luz desea generar el recibo de un cliente, el cual puede habitar en una
de las cuatro zonas en que se divide el área metropolitana. Desarrollar un diagrama de flujo,
en el cual se introduzca la siguiente información:

Nombre del cliente.

Consumo de kilowatts.

Zona en la que habita.

NOTA: El recibo solo deberá contener el nombre y el pago del cliente.

Zona Tarifa/kw
1.- Monterrey $0.85
2.- San Pedro $0.90
3.- San Nicolás $0.87
4.- Guadalupe $0.82
Diagrama de flujo:

Inicio

nom[30], kw, zona, pago

“Imprime el recibo de la
luz de un cliente”

“Introducir nombre
del cliente”

nom

“Kilowatts
consumidos”

kw

“Zonas
1.- Monterrey
2.- San Pedro
3.- San Nicolas
4.- Guadalupe”

“Seleccionar
número de zona”

zona

1
1

1 default “ERROR, ese número de


pago=kw*0.85 zona
zona no existe”

2
pago=kw*0.90
3 4

pago=kw*0.82
pago=kw*0.87

zona > 0

&&

zona < 5
V
F
nom, pago

Fin

Codificación

#include <stdio.h>

main()

int kw,zona;

float pago;

char nom[30];
printf("Recibo de la luz de un cliente utilizando SWITCH");

printf("\nNombre del cliente: ");

scanf("%[^\n]",nom);

printf("\nKilowatts consumidos: ");

scanf("%d",&kw);

printf("\nZONAS");

printf("\n1.- Monterrey ");

printf("\n2.- San Pedro ");

printf("\n3.- San Nicolas ");

printf("\n4.- Guadalupe ");

printf("\nSeleccionar el numero de la zona: ");

scanf("%d",&zona);

switch(zona)

case 1:

pago=kw*0.85;

break;

case 2:

pago=kw*0.90;

break;

case 3:

pago=kw*0.87;

break;
case 4:

pago=kw*0.82;

break;

default:

printf("\nNO EXISTE ESA ZONA");

if(zona>=1 && zona<=4)

printf("\nCOMPANIA DE LA LUZ");

printf("\nNombre: %s",nom);

printf("\nPago: %f",pago);

También podría gustarte