Professional Documents
Culture Documents
switch
switch ejecuta ciertas sentencias basadas en el valor de una variable o expresin. Su forma bsica es
Cualquier nmero de grupos case. Estos grupos consisten de la palabra case seguida por un valor posible para la
expresin, todo en una sola lnea. Las lneas siguientes contienen las sentencias que se ejecutarn cuando se da
un valor a la expresin. stas solo pueden ser sentencias vlidas en MATLAB, incluyendo otro bloque switch. La
ejecucin de un grupo case termina cuando MATLAB encuentra la siguiente sentencia case o la sentencia
otherwise. Solo se ejecutar el primer case que corresponda.
Un grupo otherwise opcional. ste consiste de la palabra otherwise, seguida por las sentencias que se ejecutan si
el valor de la expresin no es apropiada para ninguno de los grupos case precedentes. La ejecucin del grupo
otherwise termina con la sentencia end.
switch funciona comparando la expresin de entrada con los valores de cada case. En expresiones numricas, una
sentencia case es verdadera si (valor == expresin). En expresiones de cadenas de caracteres, una sentencia case
es verdadera si strcmp(valor,expresin).
El cdigo siguiente muestra un ejemplo simple de la sentencia switch. Chequea si la variable input_num es igual a
ciertos valores. Si input_num es -1, 0, 1, la sentencia case despliega el valor como un texto en la pantalla. Si
input_num no es ninguno de esos valores, se ejecuta la sentencia otherwise y el cdigo despliega el texto 'otro valor.
switch input_num
case -1
disp('es negativo');
case 0
disp('cero');
case 1
disp('es positivo');
otherwise
disp('otro valor');
end
switch-ejercicios
clear
disp('Programa que envia un mensaje de acuerdo al valor de');
disp('una variable entera.');
n =input('Ingrese un valor de 1 a 5:');
if n==1
disp('Usted digit el nmero 1');
elseif n == 2
disp('Usted digit el nmero 2');
elseif n == 3
disp('Usted digit el nmero 3');
elseif n == 4
disp('Usted digit el nmero 4');
elseif n == 5
disp('Usted digit el nmero 5');
else
disp('Usted digit un nmero fuera del rango.');
end
clc
clear
precio = input('Introduzca el precio del tem:');
tipo = input('Ingrese el tipo de tem:', 's');
switch tipo
case {'comida','medicina'}
impuesto = 0;
case 'lujo'
impuesto = .1*precio;
otherwise
impuesto = .06*precio;
end
costo = precio + impuesto;
disp('El costo total es');
disp(costo);
Suponga que queremos escribir un programa de calificaciones que tomar una nota entre 0 y 10 y
entregar la calificacin de acuerdo a la siguiente regla.
Si la nota es 9 o 10 la calificacin es A
Si la nota es 8 la calificacin es B
Si la nota es 5, 6 o 7 la calificacin es C
Si la nota es 4 la calificacin es D
Si la nota es menor de 4 la calificacin es F
Tambin queremos estar seguros de que la nota que se entrega sea un valor entre 0 y 10.
clear
x = input('Ingrese la nota de la prctica:');
switch x
case {9,10}
disp('La calificacin es A')
case 8
disp('La calificacin es B')
case {5,6,7}
disp ('La calificacin es C')
case 4
disp('La calificacin es D')
case {0,1,2,3}
disp('La calificacin es F')
otherwise
disp('Esta no es una calificacin vlida')
end
Agregando un ciclo repetitivo while podemos repetir el ingreso de notas hasta que se digite el indicador 99.
clear
x = 0;
while x ~= 99
x = input('Ingrese la nota de la prctica:');
switch x
case {9,10}
disp('La calificacin es A')
case 8
disp('La calificacin es B')
case {5,6,7}
disp ('La calificacin es C')
case 4
disp('La calificacin es D')
case {0,1,2,3}
disp('La calificacin es F')
case 99
disp('Fin del programa.')
otherwise
disp('Esta no es una calificacin vlida')
end
end
clc
clear
r=0.08206;
disp('Que operacion desea ejecutar?');
disp('1. Calculo de la presin usando la ecuacin de gases ideales');
disp('2. Calculo de la presin usando la ecuacin de van der waals');
disp('3. Terminar');
operacion=input('Digite uno, dos o tres:');
switch operacion
case 1
v=input('ingrese el volumen (litros) : ');
n=input('Ingrese el nmero de moles :');
t=input('ingrese la temperatura(Celsius) : ');
fprintf('la presin es %f atmsferas.\n',n*r*(t+273.2)/v);
case 2
disp('Deber elegir el gas de una lista: ');
disp('1. Argon');
disp('2. Acetileno');
disp('3. Aire');
disp('4. Amoniaco');
disp('5. Dioxido de Carbono');
gas=input('Elija uno de ellos( 1-5) : ');
switch gas
case 1
a=1.35;
b=0.0323;
case 2
a=4.37;
b=0.0512;
case 3
a=1.33;
b=0.0366;
case 4
a=4.19;
b=0.0373;
case 5
a=3.6;
b=0.0428;
otherwise
disp('Digite valores del 1 a 5\n');
end
v=input('ingrese el volumen (litros) : ');
n=input('Ingrese el numero de moles :');
t=input('ingrese la temperatura(Celsius) : ');
fprintf('La presin es %f atmsferas.\n', r*(t+273.2)/(v-b)-a/(v*v));
case 3
disp('Fin del programa\n');
otherwise
disp('Error. Digite 1 , 2 3 ');
end
PROFESOR: HEBER HELFER