Introducción a los Computadores (CNM

Anuncio
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple
Introducción a los Computadores (CNM-130)
Estructuras selectivas en Matlab®
Alejandro Piedrahita H.
Instituto de Matemáticas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Copyleft «2013. Reproducción permitida bajo los
términos de la licencia de documentación libre GNU.
Documento bajo construcción, reportar errores al
correo electrónico [email protected]
Referencias
Introducción
Selectiva simple
Contenido
1
Introducción
2
Selectiva simple
3
Selectiva doble
4
Selectiva múltiple
5
Referencias
Selectiva doble
Selectiva múltiple
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple
Referencias
Estructuras algorı́tmicas selectivas
Una sentencia condicional es una instrucción o grupo de
instrucciones que se pueden ejecutar o no en función del valor de una
condición.
Se utilizan cuando en el desarrollo de la solución de un problema se
hace necesario tomar una decisión para establecer un proceso.
Los sentencias condicionales constituyen, junto con los bucles, los
pilares de la programación estructurada.
Las estructuras selectivas se utilizan para tomar decisiones lógicas.
Por medio de las estructuras selectivas se evalúa una condición y
dependiendo del resultado la misma se realiza un proceso.
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple
Estructuras de control selectivas
Las condiciones evaluadas por medio de las estructuras selectivas se
especifican utilizando expresiones lógicas.
Clasificación de las estructuras de control selectivas:
Si entonces (Estructura selectiva simple)
Si entonces / sino (Estructura selectiva doble)
Si múltiple (Estructura selectiva múltiple)
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple
Referencias
Estructura selectiva simple
Determina si una instrucción particular se ejecuta o no, dependiendo
de que una expresión (condicion) es verdadera o falsa.
Sintaxis en Matlab
if (condicion)
instrucciones
.
.
.
end
donde:
condicion: condición o conjunto de
condiciones a evaluar.
intrucciones: instrucciones a realizar si
condición es verdadera.
Introducción
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últiple
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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
Referencias
Ejemplos
Ejemplo 2.1
Realice un programa en Matlab que reciba como dato la calificación de un
alumno en un examen e imprima por consola “ REPROBADO” si dicha nota es
menor a 3.
Solución
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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
Referencias
Estructura selectiva doble
Permite que el flujo del diagrama se bifurque por dos ramas diferentes
dependiendo del cumplimiento de una condición P.
Sintaxis en Matlab
if (P)
instrucciones 1
else
instrucciones 2
end
donde:
P: condición 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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
Referencias
Ejemplos
Ejemplo 3.1 (Valor absoluto)
Realice una función en Matlab que tenga como argumento a un número
real y devuelva su valor absoluto.
Solución
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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
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ón
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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
Ejemplo 4.2
Ejemplo 4.2
Realice un algoritmo (diagrama de flujo, pseudocódigo) que reciba como
datos de entrada tres números enteros distintos A, B y C y los escriba de
mayor a menor. Impleméntelo en Matlab.
Solución
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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
Referencias
comparar.m
%*******************************************
% Descripción: 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ón
Selectiva simple
Selectiva doble
Selectiva múltiple
Bibliografı́a 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ó
Metodologı́a de la programación
Segunda edición. Alfaomega Grupo Editor, S.A., 2005
M.A. Criado
Programación en lenguajes estructurados
Alfaomega Grupo Editor, S.A. de C.V. Primera Edición, 2006
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple
Bibliografı́a 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
Schaum’s Outline of Essential Computer Mathematics
McGraw-Hill, 1th edition, 1982
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple
Bibliografı́a 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ón a C y a métodos numéricos
Universidad Nacional de Colombia (Sede Bogotá), 2004
A. Quarteroni, F. Salieri
Cálculo cientı́fico con Matlab y Octave
Springer-Verlag Italia, 2006
S.M. Ross
Simulation
Elsevier Inc., 2006
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple
Referencias
Bibliografı́a IV
R. Séroul
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
Schaum’s Outline of Principles of Computer Science
McGraw-Hill, 1th edition, 2008
Descargar