Está en la página 1de 8

UAAAN. DEC. ACADEMIA DE CÓMPUTO. PROGAMACIÓN.

LECCIÓN CORTA: menú Y switch-case 1

La instrucción switch-case es utilizada para seleccionar una opción de entre varias y, en consecuencia, de esta
selección, ejecutar varias acciones dadas por el programador. Switch es conmutar o cambiar: esta instrucción
conmuta o cambia o selecciona una opción de entre varias. Estas opciones son los “case”. El formato de la
sentencia switch-case es:

switch expresion
case valor1
grupo1 de instrucciones a ejecutar
case valor2
grupo2 de instrucciones a ejecutar
case valor3
grupo3 de instrucciones a ejecutar
.
.
otherwise
grupoN de instrucciones a ejecutar
end

El switch empieza con switch y termina con un end.


Después de switch escribimos una variable o expresión que tiene un valor escalar o es una cadena (palabra).
Luego escribimos los comandos “case” seguidos por valores escalares o cadenas, que se supone que
concuerdan con los valores o cadenas dadas en “expresion”. Cada “case” contiene una serie de instrucciones
(grupo de instrucciones a ejecutar) que son las que queremos que se ejecuten dada esa selección.
Dependiendo del “case” que se seleccione se ejecutan las instrucciones programadas en ese case.
Si no se selecciona ninguna de las opciones case, se puede agregar (es opcional) la instrucción “otherwise” (en
otro caso, de otra manera) también con su grupo de instrucciones a ejecutar.
El valor de la expresión que sigue a switch se compara con cada valor de cada case. Si son iguales, se
ejecutan las instrucciones de este case. Si o se encuentran coincidencias se ejecuta el otherwise, y si no hay
otherwise (recuerda que es opcional) y no se hace nada. Veamos un ejemplo sencillo:

 Pedir dos números (denominados “a” y


a=input('DAME EL PRIMER NÚMERO: ');
“b”)
b=input('DAME ELSEGUNDO NÚMERO: ');
 Pedir una operación (opción) a realizar, var=input('Operación que desea realizar: \n\n 1=Suma\n 2=Resta\n\n');
en la variable “variable”. Esta será de switch var %el valor de “var” solo es 1 o 2
valor 1 para sumar o 2 para restar     case 1
 Declarar el switch con la expresión de         suma=a+b
forma escalar (1 o 2)     case 2

 Se da la opción “otherwise” de         resta=a-b


    otherwise
equivocarse en la selección de la
        error('Opción incorrecta. Ingresa un número válido');
operación.
end
 Se termina el switch-case
PRIMERA CORRIDA SEGUNDA CORRIDA TERCERA CORRIDA

DAME EL PRIMER NÚMERO: 56 DAME EL PRIMER NÚMERO: 100


Primer número: 8
DAME ELSEGUNDO NÚMERO: DAME EL SEGUNDO NÚMERO:
Segundo número: 152
30 200
Operación que desea realizar:
Operación que desea realizar: Operación que desea realizar:
1=Suma
1=Suma 1=Suma
2=Resta
2=Resta 2=Resta
1
2 5
suma =
resta = Opción incorrecta. Ingresa un
160
26 número válido
>>
>> >>

Desarrolle un código Matlab para Desarrolle un código Matlab que


Desarrolle un código Matlab que
que ejecute alguna de las ejecute alguna de las operaciones
resuelva
operaciones suma, resta, trigonométricas seno, coseno, Una ecuación de segundo grado
multiplicación, división, potencia, tangente. pidiendo los valores de a, b y c.
raíz. Proteja el programa contra clear Una ecuación de primer grado
clc
división por 0. pidiendo los valores de A, B y C.
a=input('Dame un numero: ');
clear clear
var=input('Operación que
clc desea realizar: \n\n 1=Seno\n clc
a=input('DAME EL PRIMER
2=Coseno\n 3=Tangente\n\n'); a=input('Dame el valor de a: ');
NÚMERO: '); switch var
b=input('DAME EL SEGUNDO
case 1 b=input('Dame el valor de b: ');
NÚMERO: '); c=input('Dame el valor de c: ');
Seno=sind(a)
var=input('Operación que
case 2 var=input('Que ecuacion quieres
desea realizar: \n\n 1=Suma\n Coseno=cosd(a) realizar: \n\n 1=Ecuacion de primer
2=Resta\n 3=Multiplicacion\n
case 3
4=Division\n 5=Potencia\n grado\n 2=Ecuacion de segundo
Tangente=tand(a)
6=Raiz\n\n'); grado\n\n');
End
switch var %el valor de
“var” solo es 1 o 2 switch var
Dame un numero: 60 case 1
case 1
Operación que desea realizar:
Suma=a+b syms x;
1=Seno
case 2
2=Coseno Y=-(a*x/b)-(c/b)
Resta=a-b
3=Tangente case 2
case 3
1
Multiplicacion=a*b
Seno =
case 4 X1=((-b+(sqrt((b^2-4*a*c))))/2*a)
0.8660
if b==0
fprintf('Error no
se puede dividir entre 0\n') Dame un numero: 60 X2=((-b-(sqrt((b^2-4*a*c))))/2*a)
else Operación que desea realizar:
1=Seno End
Division=a/b
end 2=Coseno
case 5 3=Tangente Dame el valor de a: 4
pota=input('Dame la 2
Dame el valor de b: 8
potencia para a: \n'); Coseno =
0.5000 Dame el valor de c: 3
Potencia_1=a^pota
potb=input('Dame la Que ecuacion quieres realizar:
potencia para b: \n'); 1=Ecuacion de primer grado
Potencia_2=b^potb 2=Ecuacion de segundo grado
case 6
numero=input('Que
1
raiz quieres sacar: \n\n Y=
a=primer numero\n b=segundo - x/2 - 3/8
numero\n\n');
Raiz=sqrt(numero)
Dame el valor de a: 5
otherwise
error('Opción Dame el valor de b: 8
incorrecta. Ingresa un número Dame el valor de c: 7
válido'); Que ecuacion quieres realizar:
end
1=Ecuacion de primer grado
2=Ecuacion de segundo grado
DAME EL PRIMER NÚMERO: 5
2
DAME EL SEGUNDO NÚMERO: 7
X1 =
Operación que desea realizar:
-20.0000 +21.7945i
1=Suma
X2 =
2=Resta
-20.0000 -21.7945i
3=Multiplicacion
4=Division
5=Potencia
6=Raiz
3
Multiplicacion =
35

Dame un numero: 60
Operación que desea realizar:
1=Seno
2=Coseno
3=Tangente
3
Tangente =
1.7321

DAME EL PRIMER NÚMERO: 8


DAME EL SEGUNDO NÚMERO: 4
Operación que desea realizar:
1=Suma
2=Resta
3=Multiplicacion
4=Division
5=Potencia
6=Raiz
5
Dame la potencia para a:
2
Potencia_1 =
64
Dame la potencia para b:
3
Potencia_2 =
64

DAME EL PRIMER NÚMERO: 5


DAME EL SEGUNDO NÚMERO: 8
Operación que desea realizar:
1=Suma
2=Resta
3=Multiplicacion
4=Division
5=Potencia
6=Raiz
6
Que raiz quieres sacar:
a=primer numero
b=segundo numero
a
Raiz =
2.2361
Desarrolle un código Matlab que resuelva una ecuación de segundo grado pidiendo los valores de a, b y c, y
grafique la ecuación

Otro ejemplo

n = input('INTRODUCE UN NÚMERO: ');

Se pide que el usuario introduzca un número switch n


Se dan 4 opciones: case -1
Si el número es -1 muestra en pantalla “NÚMERO disp('NÚMERO NEGATIVO')
NEGATIVO” case 0
Si el número es 0 muestra en pantalla “NÚMERO CERO” disp('NÚMERO CERO')
Si el número es -1 muestra en pantalla “NÚMERO POSITIVO” case 1
Si el número no es ninguno de los casos anteriores muestra disp('NÚMERO POSITIVO')
en pantalla “OTRO VALOR” otherwise
disp('ESCRIBE OTRO VALOR')
end

PRIMERA CORRIDA SEGUNDA CORRIDA TECERA CORRIDA

INTRODUCE UN NÚMERO: 8 INTRODUCE UN NÚMERO: -1 INTRODUCE UN NÚMERO: 1


ESCRIBE OTRO VALOR NÚMERO NEGATIVO NÚMERO POSITIVO
>> >> >>

Otro
x = [12 64 24];
plottype =input('DAME EL TIPO DE GRAFICA ENTRE COMILLAS: \n bar pie3');
Hay graficas de barra y también de switch plottype
tipo “pay” o circulares. case 'bar'
Determine qué tipo de gráfica se
bar(x)
debe crear en función del valor de
la variable “plottype”. title('Bar Graph')
Si plottype es 'pie' o 'pie3', cree case {'pie','pie3'}
una gráfica circular en 3D. pie3(x)
Para hacer la gráfica utilice un title('Pie Chart')
arreglo llamado “x” donde dé los
otherwise
valores a graficar.
cuidado('ESPERANDO EL TIPO DE GRÁFICA. NO SE GRAFICA')
end

PRIMERA CORRIDA SEGUNDA CORRIDA TECERA CORRIDA

Pie Chart Bar Graph


70

9
24% 60
Undefined function 'cuidado' for
input arguments of type 'char'.
50
12%
40

30 Error in switch1 (line 12)


20
cuidado('ESPERANDO EL
TIPO DE GRÁFICA. NO SE
10
GRAFICA')
0
64% 1 2 3

Otro

Ingrese dos números y realice las cuatro operaciones clc


básicas (+,-,*,/) disp('operaciones básicas suma, resta, multiplicacion
y division ')
b=input('ingrese el primer numero: ');
c=input('ingrese el segundo numero: ');
disp(' ')
disp('1. suma ')
disp('2. multiplicación ')
disp('3. resta ')
disp('4. división ')
opcion_deseada=input('ingrese la opción deseada: ')
switch opcion_deseada
case {1}
d=b+c;
disp('el resultado de la suma es: ')
disp(d)
case {2}
d=b.*c;
disp('el resultado de la multiplicación es: ');
disp(d)
case {3}
d=b-c;
disp('el resultado de la resta es: ');
disp(d)
case {4}
d=b/c;
disp('el resultado de la división es: ');
disp(d)
end

Enseguida se muestran algunas corridas para este programa con su resultado:

operaciones básicas suma, resta, multiplicacion y operaciones básicas suma, resta, multiplicacion y
division division
ingrese el primer numero: 5 ingrese el primer numero: 88
ingrese el segundo numero: 55 ingrese el segundo numero: 0

1. suma 1. suma
2. multiplicación 2. multiplicación
3. resta 3. resta
4. división 4. división
ingrese la opción deseada: 1 ingrese la opción deseada: 4

opcion_deseada = opcion_deseada =
1 4
el resultado de la suma es: el resultado de la división es:
60 Inf
>> >>

Modifique este código para que no divida por 0.

Generación de un menú de opciones con la instrucción switch-case

Esta opción presenta las opciones en forma de menú, una ventana con botones para seleccionar la opción
deseada.
menu: LA FUNCIÓN menu se usa frecuentemente junto con el switch-case. Esta función muestra un menú en la
pantalla con una serie de botones definidos por el programados. La sintaxis es esta:

input=menú(‘MENSAJE AL USUARIO’, ‘TEXTO PARA EL BOTON 1’,’TEXTO PARA EL BOTON 2’’, etc.)

Practique los siguientes códigos Matlab y observe sus resultados.

menu1
city =
clc
1
% PROGRAMA CON MENU EN BOTONES 5000
>>
city=menu('SELECCIONA EL NOMBRE DE LA CIUDAD DEL
MENU:', 'MEXICO','COLIMA','LEÓN') city =
switch city 3
2800
case 1 >>
disp('5000')
case 2
disp('3000')
case 3
disp('2800')
end

menu2
% SEGUNDO PROGRAMA CON MENUS COMPRA DE GASOLINA EN GALONES
O LITROS
% LA GASOLINA CUESTA $2.89 POR GALON
clc, clear
costo=2.89;
% PEDIR AL USUARIO INGRESAR EL NUMRO DE GALONES O LITROS DESDE
EL MENU
disp('USE EL MENU PARA HACER SU SELECCION')
choice=menu('¿LA COMPRA ES EN LITROS O EN GALONES?',
'GALONES','LITROS')
% USE switch-case PARA DETERMINAR EL FACTOR DE CONVERSION
switch choice
case 1
factor = 1;
unidad='GALONES'
case 2
factor =0.264;
unidad='LITROS'
end
% PREGUNTAR AL USARIO QUE CANTIDAD DE GASOLINA VA A COMPRAR
volumen=input(['INGRESAR LA CANTIDAD DE GASOLINA A COMPRAR EN ',
unidad,': \n'])
% CALCULAR EL COSTO A PAGAR
pago=costo*volumen*factor;
% MOSTRAR RESULTADOS
fprintf('EL PAGO ES: $%5.2f POR %5.2f %s \n', pago,volumen,unidad

USE EL MENU PARA HACER SU SELECCION


choice =
2
unidad =
LITROS
INGRESAR LA CANTIDAD DE GASOLINA A COMPRAR EN LITROS:
15
volumen =
15
EL PAGO ES: $11.44 POR 15.00 LITROS

Haga un menú para hacer las conversiones solicitadas pulsando el botón correspondiente.

Para convertir de grados centígrados a Grados Farenheit


Para convertir de grados Farenheit a centígrados
Para convertir de kilometros a millas.
Para convertir de millas a kilometros

ING. MANUEL DE LEON GAMEZ

También podría gustarte