Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema4cast PDF
Tema4cast PDF
Estructuras selectivas
4.1
4.2
4.3
4.4
4.5
Seleccin simple
Seleccin doble
Seleccin mltiple
Anidacin de selecciones
Aplicaciones
Introduccin
booleana
Condicin
valor
numrico
Seleccin
simple/doble
Seleccin
mltiple
ejecuta una
determinada
accin slo
cuando se cumple
una determinada
condicin.
instruccin1
instruccin2
if condicin
instruccin3
instruccin4
end
instruccin5
instruccin6
Ejemplo
function pts = precio(dist, dias)
%precio
precio de un viaje (ida y vuelta)
%
precio(dist,dias) calcula el precio del billete
%
segn la distancia (2.5 pts/km) y los das
%
de estancia, con reduccin del 30% si
%
la estancia supera los 7 das, y la distancia
%
los 800 km
pts = dist * 2 * 2.5;
if (dias > 7) & (dist > 800)
pts = pts * 0.7;
end
Otro ejemplo
function m = mayor(a, b)
%MAYOR
elige el mayor de dos nmeros
%
MAYOR(a,b) devuelve el mayor de los
%
dos parmetros.
m = a;
if a < b
m = b;
end
Permite elegir
entre dos
alternativas en
funcin del
cumplimiento de
una determinada
condicin.
instruccin1
instruccin2
if condicin
instruccin3
instruccin4
else
instruccin5
instruccin6
end
instruccin7
Ejemplo
function m = mayor(a, b)
%MAYOR
Elige el mayor de dos nmeros
%
MAYOR(a,b) devuelve el mayor de los
%
dos parmetros.
if a > b
m = a;
else
m = b;
end
Otro ejemplo
function ab = absoluto(n)
%ABSOLUTO
Valor absoluto.
%
ABSOLUTO(n) devuelve el valor
%
absoluto de n.
if n >= 0
ab = n;
else
ab = -n;
end
Permite elegir
entre varias
alternativas en
funcin del
cumplimiento de
diferentes
condiciones.
if condicin1
instruccin1
elseif condicin2
instruccin2
elseif condicin3
instruccin3
elseif condicin4
instruccin4
elseif condicin5
instruccin5
end
instruccin6
Ejemplo
function [x1,x2,n] = eq2(a,b,c)
...
d = b^2 - 4*a*c;
if (d > 0)
...
n = 2;
elseif (d == 0)
...
n = 1;
else
n = 0;
end
Permite elegir
entre varias
alternativas en
funcin del
valor de una
determinada
expresin.
instruccin1
switch expresin
case valorA
instruccin2
instruccin3
case valorB
instruccin4
instruccin5
case valorC
instruccin6
instruccin7
case {valorD, valorE}
instruccin8
instruccin9
otherwise
instruccin10
end
instruccin11
Ejemplo
function mes = nombremes(n)
%NOMBREMES
Nombre del mes.
% NOMBREMES(n) devuelve la cadena
% de caracteres correspondiente
% al nombre del mes n (1-12).
switch
case 1
mes
case 2
mes
case 3
mes
case 4
mes
case 5
mes
n
= Enero';
= 'Febrero';
= 'Marzo';
= 'Abril';
= 'Mayo';
case 6
mes = 'Junio';
case 7
mes = 'Julio';
case 8
mes = 'Agosto';
case 9
mes = 'Septiembre';
case 10
mes = 'Octubre';
case 11
mes = 'Noviembre';
case 12
mes = 'Diciembre';
otherwise
mes = Error';
end
instruccin1
if condicin1
instruccin2
instruccin3
if condicin2
instruccin4
instruccin5
else
instruccin6
end
else
instruccin7
instruccin8
end
instruccin9
instruccin10
Ejemplo
function m = mayor3(a, b,c)
%MAYOR3
Elige el mayor de tres nmeros
%
MAYOR3(a,b,c) devuelve el mayor de los
%
tres parmetros.
if a > b
if a >
m =
else
m =
end
else
if b >
m =
else
m =
end
end
c
a;
c
c
b;
c;
Diseos alternativos
function m = mayor3(a, b, c)
%MAYOR3
Elige el mayor de tres nmeros
%
MAYOR3(a,b,c) devuelve el mayor de los
%
tres parmetros.
d = mayor(a,b);
m = mayor(d,c);
function m = mayor3(a, b, c)
%MAYOR3
Elige el mayor de tres nmeros
%
MAYOR3(a,b,c) devuelve el mayor de los
%
tres parmetros.
m = mayor(mayor(a,b),c);
Otro ejemplo ms
function cnt = central(a, b, c)
%CENTRAL
Elige el nmero central.
% CENTRAL(a,b,c) devuelve el valor
% central de los tres parmetros.
if a > b
if b > c
cnt = b;
else
if a > c
cnt = c;
else
cnt = a;
end
end
else
if a > c
cnt = a;
else
if b > c
cnt = c;
else
cnt = b;
end
end
end
function n = NumeroDias(m,a)
%Numerodias
Nmero de das de un mes.
%
n = NumeroDias(m,a) calcula el nmero
%
de das del mes m (1-12) del ao a.
switch m
case {1,3,5,7,8,10,12}
n = 31;
case {4,6,9,11}
n = 30;
case 2
otherwise
n = -1;
end
function b = bisiesto(a)
%BISIESTO
Determina si el ao es bisieto.
% b = bisiesto(a) devuelve verdadero (1) si
% el ao es bisiesto y falso (0) en caso
% contrario.
10
function m = multiplo(a,b)
%MULTIPLO
Determina si un nmero es
%
mltiplo de otro.
% m = multiplo(a,b) devuelve verdadero
% (1) si a es mltiplo de b y falso (0)
% en caso contrario.
11
Bibliografia
12