Sei sulla pagina 1di 22

FUNDAMENTOS DE PROGRAMACION

INTRODUCCIÓN MATLAB

Universidad de Santander (UDES)


2019
Estructura Switch y Case
 La estructura switch/case se usa con frecuencia cuando existe una serie
de opciones de ruta de programación para una variable dada,
dependiendo de su valor

 Switch/case es similar a if/else/elseif

 Una estructura que le permite elegir entre múltiples salidas, con base en
ciertos criterios

 Los criterios pueden ser un escalar (un número) o una cadena. En la


práctica se usa más con cadenas que con números.
La estructura de switch/case
switch variable
case option1
código a ejecutar si la variable es igual a la opcion1
case option2
código a ejecutar si la variable es igual a la opcion2
case option_n
código a ejecutar si la variable es igual a la option_n
otherwise
código a ejecutar si la variable no es igual a cualquiera
de las variables
end
Ejemplo: suponga que quiere crear una función que diga al usuario cuál es la
tarifa aérea a una de tres diferentes ciudades:

city= input('Ingrese en nombre de una ciudad')


switch city
case 'Boston'
disp('$345')
case 'Denver'
disp('$150')
case 'Honolulu'
disp(‘Quédese en casa y estudie')
otherwise
disp('No en archivo')
end
Puede decir al comando input que espere una cadena al agregar 's' en un segundo
campo. Esto libera al usuario del abrumador requisito de agregar apóstrofes
alrededor de cualquier cadena de entrada. Con la ‘s’ agregada, el código precedente
ahora se lee como sigue:

city= input('Ingrese en nombre de una ciudad ', 's')


switch city
case 'Boston'
disp('$345')
case 'Denver'
disp('$150')
case 'Honolulu'
disp('Quedese en casa y estudie')
otherwise
disp('No en archivo')
end
Las estructuras case/switch tienen diagramas de flujo exactamente iguales a las
estructuras if/else.
Ejemplo.
Existen cuatro países en el mundo que oficialmente no usan el sistema métrico:
Estados Unidos, Reino Unido, Liberia y Myanmar. Incluso, en Estados Unidos la
práctica es que algunas industrias sean casi completamente métricas y otras
todavía usen el sistema inglés de unidades. Por ejemplo, cualquier mecánico le
dirá que, aunque los automóviles antiguos tengan una mezcla de componentes,
algunos métricos y otros ingleses, los automóviles nuevos (cualquier automóvil
construido después de 1989) casi son completamente métricos.
Imagine que usted quiere comprar gasolina. Escriba un programa que le
pregunte al usuario si quiere ordenar la gasolina en litros o en galones, conmine
al usuario a ingresar cuántas unidades quiere comprar y calcule el costo total al
usuario, si supone que la gasolina cuesta $2.89 por galón.
Menu
La función menu se usa con frecuencia en conjunto con una estructura
switch/case. Esta función hace que aparezca un recuadro de menú en la
pantalla, con una serie de botones definidos por el programador

input = menu('mensaje al usuario' ,


'texto para boton 1' , 'texto para boton
2',
etc)
Se puede usar la opción menu en el ejemplo de tarifa aérea anterior para asegurar que
el usuario elija sólo ciudades de las que se tiene información. Esto también significa que
no se necesita la sintaxis otherwise, pues no es posible elegir una ciudad que “no esté
en archivo”.

clear, clc
ciudad= menu('Seleccione el nombre de la ciudad desde el
menu: ', 'Boston', 'Denver', 'Honolulu')
switch ciudad
case 1
disp('$345')
case 2
disp('$150')
case 3
disp(‘Quédese en casa y estudie')
otherwise
disp('No en archivo')
end
Ejercicio de práctica
Use la estructura switch/case para resolver estos problemas:
1. Cree un programa que conmine al usuario a ingresar su año en la escuela:
primero, segundo, tercero o cuarto. La entrada será una cadena. Use la estructura
switch/case para determinar qué día serán los finales para cada grupo: lunes para
primero, martes para segundo, miércoles para tercero y jueves para cuarto.

2. Repita el problema 1 pero esta vez con un menú.

3. Cree un programa que conmine al usuario a ingresar el número de dulces que le


gustaría comprar. La entrada será un número. Use la estructura switch/case para
determinar la cuenta, donde

1 dulce = $0.75, 2 dulces = $1.25, 3 dulces = $1.65, más de 3 dulces = $1.65 + $0.30
ESTRUCTURAS DE REPETICIÓN: BUCLES
 Los bucles se usan cuando necesita repetir un conjunto de instrucciones muchas
veces

 Bucles for

 Bucles while
La estructura del bucle for es simple. La primera línea identifica el bucle y define
un índice, que es un número que cambia en cada paso a través del bucle. Después
de la línea de identificación viene el grupo de comandos que se quiere ejecutar.
Finalmente, la terminación del bucle se identifica mediante el comando end. En
resumen, se tiene

For index = [matriz] for k=[1,3,7]


comandos a ejecutar k
end
end

for k=1:3
a=5^k
end

for k= 1:5
a(k)=k^2
end
Otro uso común para un bucle for es combinarlo con un enunciado if y determinar
cuántas veces algo es verdadero. Por ejemplo, en la lista de puntajes de examen que
se muestra en la primera línea, ¿cuántos están por arriba de 90?

scores= [76, 45, 98, 97]


count=0;
for k=1: length(scores)
if scores(k)>90
count=count + 1;
end
end
disp(count)
Ejemplo.
Creación de una tabla grados a radianes Aunque sería mucho más sencillo usar
la capacidad vectorial de MATLAB para crear una tabla grados a radianes, se
puede demostrar el uso de los bucles for con este ejemplo.
%Crear una tabla de grados a radianes
clear,clc
for k=1:36
degree(k)=k*10;
radians(k)=degree(k)*pi/180;
end
%cree una tabla
table=[degree;radians]
%envíe la tabla a la ventana de comandos
disp('grados a radianes')
disp('grados radianes')
fprintf('%8.0f %8.2f\n', table)
Ejercicio de práctica.
Use un bucle for para resolver los siguientes problemas:

1. Cree una tabla que convierta pulgadas a pies.


2. Considere la siguiente matriz de valores:
x = [45,23,17,34,85,33]
¿Cuántos valores son mayores que 30? (Use un contador.)
3. Repita el problema 3, esta vez con el comando find.
4. Use un bucle for para sumar los elementos de la matriz en el problema 2.
Compruebe sus resultados con la función sum. (Use la característica help si no
sabe o recuerda cómo usar sum.)
Los bucles while son similares a los bucles for. La gran diferencia es la forma en
que MATLAB decide cuántas veces repetir el bucle. Los bucles while continúan
hasta que se satisface algún criterio. El formato para un bucle while es

while criterio
comandos a ejecutar k=0;
end while k<3
k=k+1
end

k=0;
while k<3
k=k+1;
a(k)= 5^k
end

while(a<10)
a=a+3
end
Ejemplo con bucle while.

En la lista de puntajes de examen que se muestra en la primera línea,


¿cuántos están por arriba de 90?

scores= [76, 45, 98, 97];


Count = 0;
k=0;
while k<4
k=k+1
if scores(k)>90
count=count + 1;
end
end
disp(count)
Creación de una tabla grados a radianes Aunque sería mucho más sencillo usar la
capacidad vectorial de MATLAB para crear una tabla grados a radianes, se puede
demostrar el uso de los bucles while con este ejemplo.
%Crear una tabla de grados a radianes
clear,clc
k=1;
while k<=36
degree(k)=k*10;
radians(k)=degree(k)*pi/180;
k=k+1
end
%cree una tabla
table=[degree;radians]
%envíe la tabla a la ventana de comandos
disp('grados a radianes')
disp('grados radianes')
fprintf('%8.0f %8.2f\n', table)
Ejercicio de práctica.

Use un bucle while para resolver los siguientes problemas:


1. Cree una tabla de conversión de pulgadas a pies.
2. Considere la siguiente matriz de valores:
x = [45,23,17,34,85,33] ¿Cuántos valores son mayores que 30? (Use un
contador.)
3. Repita el problema 3, esta vez con el comando find.
4. Use un bucle while para sumar los elementos de la matriz en el problema 2.
Compruebe sus resultados con la función sum. (Use la característica help si no sabe
o recuerda cómo usar sum.)

Potrebbero piacerti anche