Los fundamentos de la computación científica
Enviado por jhoselyn645 • 3 de Julio de 2014 • Trabajo • 1.241 Palabras (5 Páginas) • 250 Visitas
Fonaments d’Informàtica
1r curs d’Enginyeria Industrial
Práctica 4: Estructuras
selectivas
Objetivos de la práctica
Estudiar la implementación de las diferentes estructuras selectivas en
MATLAB. Implementar funciones que utilicen dichas estructuras.
Estructuras selectivas
Las estructuras selectivas nos permiten realizar bifurcaciones. Esto es,
escoger las instrucciones que se ejecutarán según se cumpla o no una
determinada condición.
Selección simple
La sintaxis para la selección simple es:
instrA
if condicion
instrucciones
end
instrB
Al llegar a la palabra reservada if, se evalúa la condición. Si ésta es cierta,
se ejecutan las instrucciones que hay dentro de ese if y si fuera falsa, se
saltan estas instrucciones pasando directamente al end. En ambos casos,
continuará con instrB. Por tanto, la diferencia está en realizar las
instrucciones dentro del if.
Una condición es una expresión que se evalúa a cierto o falso. La condición
puede estar formada por una única expresión lógica, utilizando operadores
relacionales, por ejemplo: a > b. O bien, puede ser la combinación de
varias expresiones lógicas, por ejemplo: (a>b & b>c) | (c>a). Las
distintas expresiones se combinan utilizando los operadores lógicos.
Operadores relacionales
Se utilizan para comparar los valores de dos variables o los valores de una
variable y una constante. El resultado de la operación siempre es un valor
lógico: verdadero o falso, que en MATLAB se representan respectivamente
como 1 ó 0.
Los operadores relacionales en MATLAB son los siguientes:
== igual
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
~= distinto
Operadores lógicos
El resultado de una operación lógica es siempre verdadero o falso. Los
operadores lógicos actúan sobre expresiones lógicas o variables con valores
lógicos.
Los operadores lógicos se representan en MATLAB como:
& AND (Y lógico)
| OR (O lógico)
~ NOT (negación)
Dadas dos expresiones A y B que se evalúan a verdadero (1) o falso (0), en
la siguiente tabla se muestra el resultado de evaluar las expresiones lógicas:
A & B, A | B y ~A.
A B A & B A | B ~A
1 1 1 1 0
1 0 0 1 0
0 1 0 1 1
0 0 0 0 1
Selección doble
La siguiente sentencia nos permite escoger entre dos alternativas según el
resultado de evaluar la condición.
instrA
if condicion
instrucciones1
else
instrucciones2
end
instrB
Tras realizar la instrucción instrA, se evalúa la condición. Si esta fuera
cierta, se ejecutarían las instrucciones indicadas con instrucciones1,
por el contrario si fuera falsa, se ejecutarían las instrucciones
instrucciones2. Tras elegir unas u otras, continuará con instrB.
Encadenamiento de selecciones dobles
Permite escoger entre diferentes alternativas evaluando diferentes
condiciones. Se encadenan varios if-else. Sintaxis:
if condicion1
instrucciones1
elseif condicion2
instrucciones2
elseif condicion3
instrucciones3
elseif condición4
instrucciones4
…
else % opción por defecto cuando no se cumple
% ninguna de las anteriores
instrucciones n
end
instrB
MATLAB evalúa la condición1 y de ser cierta, ejecutará
instrucciones1. A continuación, pasaría a realizar la instrB. Si
condicion1 fuera falsa, entonces pasa a evaluar condicion2 y
actuará del mismo modo: si es cierta, ejecuta instrucciones2 y luego
salta a instrB y si es falsa continua con la siguiente condición. El último
else corresponde a la opción por defecto si ninguna de las condiciones
anteriores se ha cumplido. Este else es opcional.
Recordar que cuando una condición se evalúa a cierta, el programa no
continua evaluando las demás.
Selección múltiple
La sentencia switch realiza una función análoga a un conjunto de if-elseif
encadenados. Su sintaxis es la siguiente:
switch expresion
case valor1
instrucciones1
case valor2
instrucciones2
case {valor3, valor4, valor5}
instrucciones3
case …
…
otherwise % opción por defecto
instrucciones4
end
En primer lugar, se evalúa la expresión del switch, cuyo resultado debe
ser un número escalar o una cadena de caracteres. Este resultado se
compara con los valores de cada uno de los case y se ejecutan las
instrucciones del case cuyo valor coincida. Sólo se ejecutará
...