You are on page 1of 19

Introducci

on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Introduccion a los Computadores (CNM-130)


Estructuras selectivas en Matlab
Alejandro Piedrahita H.
Instituto de Matem
aticas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Copyleft 2013. Reproducci
on permitida bajo los
t
erminos de la licencia de documentaci
on libre GNU.
Documento bajo construcci
on, reportar errores al
correo electr
onico mathtutorinfo@gmail.com

Referencias

Introducci
on

Selectiva simple

Contenido

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Selectiva doble

Selectiva m
ultiple

Referencias

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Estructuras algortmicas selectivas

Una sentencia condicional es una instrucci


on o grupo de
instrucciones que se pueden ejecutar o no en funci
on del valor de una
condici
on.
Se utilizan cuando en el desarrollo de la soluci
on de un problema se
hace necesario tomar una decisi
on para establecer un proceso.

Los sentencias condicionales constituyen, junto con los bucles, los


pilares de la programaci
on estructurada.
Las estructuras selectivas se utilizan para tomar decisiones l
ogicas.
Por medio de las estructuras selectivas se eval
ua una condici
on y
dependiendo del resultado la misma se realiza un proceso.

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Estructuras de control selectivas

Las condiciones evaluadas por medio de las estructuras selectivas se


especifican utilizando expresiones l
ogicas.
Clasificaci
on de las estructuras de control selectivas:
Si entonces (Estructura selectiva simple)
Si entonces / sino (Estructura selectiva doble)
Si m
ultiple (Estructura selectiva m
ultiple)

Referencias

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Estructura selectiva simple


Determina si una instrucci
on particular se ejecuta o no, dependiendo
de que una expresi
on (condicion) es verdadera o falsa.

Sintaxis en Matlab
if (condicion)
instrucciones
.
.
.
end

donde:
condicion: condici
on o conjunto de
condiciones a evaluar.
intrucciones: instrucciones a realizar si
condici
on es verdadera.

Introducci
on

Selectiva simple

Estructura selectiva simple


if (condicion)
instrucciones
end
condicion = true
condicion =
1
>>

if (condicion)
disp(Es verdad)
end
Es verdad
>>

Selectiva doble

Selectiva m
ultiple

Referencias

if c
disp(c)
end
2
>>

if (c>0)
fprintf( %d es positivo \n, c);
c = c-1;
end
2 es positivo
>>

if (c>0)
fprintf( %d es positivo \n, c);
c = c-1;
end
2 es positivo
>>

>> if (condicion)
disp(Es verdad)
end
>

c = 2;

if (c==2)
disp(c)
end
2
>>

if (c>0)
fprintf( %d es positivo \n, c);
c = c-1;
end
>>

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Ejemplos
Ejemplo 2.1
Realice un programa en Matlab que reciba como dato la calificaci
on de un
alumno en un examen e imprima por consola REPROBADO si dicha nota es
menor a 3.
Soluci
on
nota.m

% Descripcion: dada la calificacion de un


% alumno en un examen, se imprime "reprobado"
% si la calificacion menor a 3.
NOTA = input(Ingrese nota: );
if (NOTA<3)
disp(REPROBADO)
end
nota
Ingrese nota: 2
REPROBADO
>> nota
Ingrese nota: 4
>>

>>

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Estructura selectiva doble


Permite que el flujo del diagrama se bifurque por dos ramas diferentes
dependiendo del cumplimiento de una condici
on P.
Sintaxis en Matlab
if (P)
instrucciones 1
else
instrucciones 2
end

donde:
P: condici
on o conjunto de
condiciones a evaluar
intrucciones 1: instrucciones a
realizar si P es verdadera
intrucciones 2: instrucciones a
realizar si P es falsa.

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Ejemplos
Ejemplo 3.1 (Valor absoluto)
Realice una funci
on en Matlab que tenga como argumento a un n
umero
real y devuelva su valor absoluto.
Soluci
on
absoluto.m

function y = absoluto(x)
% Calcula el valor absoluto de un
% numero real
if (x>=0)
y = x
else
y = -x
end
end
absoluto(4)
ans =
4
>> absoluto(-pi)
ans =
3.1416
>>

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Estructura selectiva anidada

Son estructuras selectivas que contienen a otras estructuras selectivas

Sintaxis en Matlab
if (C 1)
if (C 2)
instrucciones 21
else
instrucciones 22
end
end

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Sintaxis en Matlab: forma 1


if (C 1)
instrucciones 1
else
if (C 2)
instrucciones 21
else
instrucciones 22
end
end
Sintaxis en Matlab: forma 2
if (C 1)
instrucciones 1
elseif (C 2)
instrucciones 21
else
instrucciones 22
end

Referencias

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Sintaxis en Matlab: forma 1

Sintaxis en Matlab: forma 2

if (C 1)
if (C 2)
instrucciones 21
else
instrucciones 22
end
else
if (C 3)
instrucciones 3
end
end

if (C 1)
if (C 2)
instrucciones 21
else
instrucciones 22
end
elseif (C 3)
instrucciones 3
end

Referencias

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Ejemplo 4.1
Realice un programa en Matlab que determine si un entero dado es par y
en caso de no serlo, el programa debe determinar si es divisble por 3.
Soluci
on
par3.m

% Determina si un numero es par y si no lo


% es, determina si es divisble por 3.
n = input(Ingrese un numero entero: );
if (rem(n,2) == 0)
fprintf( %d es par \n)
elseif (rem(n,3) == 0)
fprintf( %d es impar y es divisble por 3 \n, n);
else
fprintf( %d es impar y NO es divisble por 3 \n, n);
end
>> par3

Ingrese un numero entero: 24


24 es par
>> par3
Ingrese un numero entero: 17
17 es impar y NO es divisble por 3

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Ejemplo 4.2

Ejemplo 4.2
Realice un algoritmo (diagrama de flujo, pseudoc
odigo) que reciba como
datos de entrada tres n
umeros enteros distintos A, B y C y los escriba de
mayor a menor. Implementelo en Matlab.
Soluci
on
Datos:
A, B, C: variables de tipo entero.
Variables de salida:
A, B, C: variables de tipo entero; se imprimen en orden descendente.

Referencias

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

comparar.m
%*******************************************
% Descripci
on: Dado tres enteros distintos,
% el programa los ordena de mayor a menor.
%*******************************************
%
A
B
C

Lee tres enteros


= input("Ingrese
= input("Ingrese
= input("Ingrese

distintos
un entero: ");
un entero: ");
un entero: ");

if A>B
if A>C
if B>C
fprintf( %d, %d, %d \n, A, B,
else
fprintf( %d, %d, %d \n, A, C,
end
else
fprintf( %d, %d, %d \n, C, A, B);
end
else
if B>C
if A>C
fprintf( %d, %d, %d \n, B, A,
else
fprintf( %d, %d, %d \n, B, C,
end
else
fprintf( %d, %d, %d \n, C, B, A);
end
end

C);
B);

C);
A);

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Bibliografa I

S. Attaway
Matlab: A Practical Introduction to Programming and Problem
Solving
Butterworth-Heinemann, 2011
J.W. Brown, D.J. Murdoch
A First Course in Statistical Programming With R
Cambridge University Press, 1th edition , 2008
D. Burton
Elementary Number Theory
McGraw Hill Higher Education, 5th edition, 2002
O. Cair
o
Metodologa de la programaci
on
Segunda edici
on. Alfaomega Grupo Editor, S.A., 2005
M.A. Criado
Programaci
on en lenguajes estructurados
Alfaomega Grupo Editor, S.A. de C.V. Primera Edici
on, 2006

Referencias

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Bibliografa II
H.P. Langtangen
A Primer on Scientific Programming with Python
Springer, 2011
O. Jones, R. Maillardet, A. Robinson
Introduction to Scientific Programming and Simulation Using R
Chapman and Hall/CRC; 1 edition, 2009
J. Kiusalaas
Numerical Methods in Engineering with Matlab
Cambridge University Press, 2 edition, 2009
D.E. Knuth
The Art of Computer Programming
Volume 1, Fundamental Algorithms
Addison Wesley Longman, 1997
S. Lipschutz
Schaums Outline of Essential Computer Mathematics
McGraw-Hill, 1th edition, 1982

Referencias

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Bibliografa III

Ch.F. Van Loan


Introduction to Scientific Computing
Prentice-Hall, Inc., 1997
C.B. Moler
Numerical Computing with Matlab
SIAM, 2004
H.M. Mora Escobar
Introducci
on a C y a metodos numericos
Universidad Nacional de Colombia (Sede Bogot
a), 2004
A. Quarteroni, F. Salieri
C
alculo cientfico con Matlab y Octave
Springer-Verlag Italia, 2006
S.M. Ross
Simulation
Elsevier Inc., 2006

Referencias

Introducci
on

Selectiva simple

Selectiva doble

Selectiva m
ultiple

Referencias

Bibliografa IV

R. Seroul
Programming for Mathematicians
Springer, 2000
E. Scheinerman
C ++ for Mathematicians: An Introduction for Students and
Professionals
Taylor & Francis Group, LLC, 2006
A. Shen
Algorithms and Programming
Springer Undergraduate Texts in Mathematics and Technology, 2010
P. Tymann
Schaums Outline of Principles of Computer Science
McGraw-Hill, 1th edition, 2008

You might also like