Introducción a los Computadores (CNM

Anuncio
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Introducción a los Computadores (CNM-130)
Estructuras algorı́tmicas selectivas
Alejandro Piedrahita H.
Instituto de Matemáticas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Copyleft «2012. Reproducción permitida bajo los
términos de la licencia de documentación libre GNU.
Referencias
Introducción
Selectiva simple
Selectiva doble
Contenido
1
Introducción
2
Estructura selectiva simple
3
Estructura selectiva doble
4
Estructura selectiva anidada
5
Ejemplos
6
Referencias
Selectiva múltiple anidada
Ejemplos
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Estructuras de control 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 anidada
Ejemplos
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 anidada
Ejemplos
Referencias
Estructura selectiva simple
La instrucción selectiva determina si una instrucción particular se
ejecuta o no, según el cumplimiento de una condición P.
La representación de una estructura selectiva se hace con palabras
(pseudocódigo) o por medio de una figura geométrica (diagrama de
flujo).
Pseudocódigo
si P entonces
Instrucciones;
fin
donde
P: condición o conjunto de condiciones a
evaluar.
Intrucciones: instrucciones a realizar si
la condición P es verdadera.
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplos
Ejemplo 2.1
Ralice un algoritmo (impleméntelo en FreeDFD) tal que dado como dato la
calificación de un alumno en un examen, escriba “reprobado” en caso de que
dicha nota sea menor a 3.
Solución
Pseudocódigo
% Descripcion: Dada la calificación de un
% alumno en un examen, se imprime "reprobado"
% si la calificación es menor a 3.
Leer NOTA;
si NOTA<3.0 entonces
Escribir "Reprobado";
fin
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 2.2
Ejemplo 2.2
A un trabajador se le aplica un aumento del 15 % en su salario si éste es
menor a 400 mil pesos. Realice un algoritmo (impleméntelo en FreeDFD)
que imprima el sueldo del trabajador.
Solución
Datos:
SUE: variable de tipo real que representa el salario del trabajador.
Variables de salida:
AUM: variable de tipo real; almacena el aumento del trabajador.
NSUE: variable de tipo real; almacena el nuevo sueldo del trabajador.
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 2.2
Pseudocódigo
% Dado como dato el sueldo de un trabajador,
% el programa aplica un aumento del 15 % si
% el sueldo es inferior a 400 mil pesos.
% Lee el sueldo del empleado
SUE = input(Ïngrese el sueldo: ");
si SUE<400000 entonces
Hacer AUM = SUE*0.15;
Hacer NSUE = SUE + AUM;
Escribir "El nuevo sueldo es" NSUE
fin
#
1
2
3
4
SUE
145000
517320
284215
180500
AUM
21750
NSUE
166750
42632,25
27075
326847,25
207575
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Estructura selectiva doble
La instrucción selectiva doble si entonces / sino permite que el flujo
del diagrama se bifurque por dos ramas diferentes dependiendo del
cumplimiento de una condición P.
Si al evaluar la condición P el resultado es verdadero, entonces se
ejecuta un conjunto de instrucciones; si el resultado es falso se
ejecutan otro conjunto de instrucciones.
Pseudocódigo
si P entonces
Instrucciones1;
sino
Instrucciones2;
fin
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 3.1
Ejemplo 3.1
Realice un algoritmo (impleméntelo en FreeDFD) tal que dado como dato la
calificación de un alumno en un examen, escriba “aprobado” si su
calificación es mayor o igual a 3 y “reprobado” en caso contrario.
Solución
Pseudocódigo
%
%
%
%
Dada la calificación de un alumno en
un examen, se imprime "aprobado"si la
calificación mayor o igual a 3 y
"reprobado" en caso contrario
Leer NOTA;
si NOTA>=3.0 entonces
Escribir "aprobado";
sino
Escribir "reprobado";
end
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 3.2
Ejemplo 3.2
A un trabajador se le aplica un aumento del 15 % en su salario si éste es
menor a 400 mil pesos y 8 % en caso contrario. Realice un algoritmo
(impleméntelo en FreeDFD) que imprima el sueldo del trabajador.
Solución
Datos:
SUE: variable de tipo real que representa el salario del trabajador.
Variables de salida:
NSUE: variable de tipo real; almacena el nuevo sueldo del trabajador.
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 3.2
Pseudocódigo
%
%
%
%
Dado como dato el sueldo de un trabajador,
el programa aplica un aumento del 15 % si
el sueldo es inferior a 400 mil pesos y en
caso contrario el aumento es del 8 %.
Leer SUE;
si SUE<=400000 entonces
NSUE = SUE*1.15;
sino
NSUE = SUE*1.08;
fin
Escribir "El nuevo sueldo es" NSUE
#
1
2
3
4
SUE
200000
550000
140000
400000
NSUE
230000
594000
161000
460000
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Estructura selectiva anidada
Son estructuras selectivas que contienen a otras estructuras selectivas
Pseudocódigo
si Condicion1 entonces
si Condicion2 entonces
Operacion21;
sino
Operacion22;
fin
end
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Ejemplo
Pseudocódigo
si P1 entonces
Operacion11;
sino
si P2 entonces
Operacion21;
sino
Operacion22;
fin
fin
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo
Pseudocódigo
si Condicion1 entonces
si Condicion2 entonces
Operacion21;
sino
Operacion22;
fin
sino
si Condicion3 entonces
Operacion31;
fin
end
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 4.1
Realice un algoritmo en FreeDFD tal que dado como dato un entero,
determine si es par y en caso de no serlo, determine si es divisble por 3.
Solución
Pseudocódigo
% Determina si un entero es par y en tal
% caso determina si es divisible por 3
Leer a;
si a MOD 2 = 0 entonces
Escribir "El número es par"
sino
si a MOD 3 = 0 entonces
Escribir "El número es impar...
y es divisible por 3"
sino
Escribir "El número es impar...
y no es divisible por 3"
fin
fin
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Ejemplo 4.2
Ejemplo 4.2
Realice un algoritmo en FreeDFD que reciba como datos de entrada tres
números enteros distintos A, B y C y los escriba de mayor a menor.
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 anidada
Ejemplos
Referencias
Pseudocódigo
%*******************************************
% Descripción: dado tres enteros distintos,
% el algoritmo los ordena de mayor a menor.
%*******************************************
% Lee tres enteros distintos
Leer A, B, C
si A>B entonces
si A>C entonces
si B>C entonces
Escribir A,
sino
Escribir A,
fin
sino
Escribir C,
fin
sino
si B>C entonces
si A>C entonces
Escribir B,
sino
Escribir B,
fin
sino
Escribir C,
fin
end
B, C
C, B
A, B
A, C
C, A
B, A
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 5.1
Ejemplo 5.1
Realice un algoritmo en FreeDFD que determine si un punto con
coordenadas (x, y) se encuentra en el segundo o cuarto cuadrante del plano
cartesiano.
Solución
Datos:
x, y: variables de tipo real (coordenadas del punto).
Consideraciones:
Un punto (x, y) se encuentra en el segundo cuadrante si
x<0
y
y>0
(1)
Un punto (x, y) se encuentra en el cuarto cuadrante si
x>0
y
y<0
(2)
De (1) y (2), un punto (x, y) se encuentra en el segundo o cuarto cuadrante si
x·y<0
(3)
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 5.1
Pseudocódigo
% Determina si un punto de
coordenadas
% (x,y) se encuentra en el segundo o
% cuarto cuadrante
% Lee x e y
Leer x, y
si x*y<0 entonces
Escribir "Sı́ está"
sino
Escribir "No está"
fin
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 5.2
Ejemplo 5.2
Realice un algoritmo en FreeDFD que determine si un punto con
coordenadas (x, y) se encuentra en el interior de la circunferencia con
centro en el origen y radio 3.
Solución
Datos:
x, y: variables de tipo real (coordenadas del punto).
Consideraciones:
La circunferencia con centro en (0, 0) y radio 3 está dada por el conjunto de
puntos (x, y) que satisfacen
x2 + y2 = 9
(4)
Un punto (x, y) se encuentra en el interior de dicha circunferencia si
x2 + y2 < 9
(5)
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 5.2
Pseudocódigo
%
%
%
%
Determina si un punto de coordenadas
(x,y) se encuentra en el interior de
una circunferencia con centro en el
origen y radio 3
% Lee x e y
Leer x, y
Hacer expr = x∧2+y∧2;
si expr<9 entonces
Escribir "Sı́ está"
sino
Escribir "No está"
fin
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 5.3
Ejemplo 5.3
Realice un algoritmo en FreeDFD que calcule, de ser posible, las raices
reales de la ecuación
ax2 + bx + c = 0,
a 6= 0.
(6)
Solución
Consideraciones:
Las soluciones de la ecuación cuadrática (6) vienen dadas por
√
−b ± b2 − 4ac
x=
2a
La fórmula (7) puede conducir a soluciones complejas si
∆ = b2 − 4ac < 0
Variables:
a, b, c: variables de tipo real (coeficientes de la ecuación) con a 6= 0.
dis: variable de tipo real; almacena el discriminante de la ecuación.
x1 y x2: variables de tipo real; almacenan las raices de la ecuación.
(7)
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Ejemplo 5.3
Pseudocódigo
% Determina las soluciones reales de la
% ecuación cuadrática ax∧2+bx+c=0
% Lee los coeficientes de la ecuación
Leer a, b, c
Hacer dis = b∧2-4*a*c
si dis>=0 entonces
Hacer x1 = (-b+sqrt(dis))/(2*a)
Hacer x2 = (-b-sqrt(dis))/(2*a)
Escribir "Raı́ces reales: " x1, x2
fin
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Ejemplo 5.4
Ejemplo 5.4
Realice un algoritmo en FreeDFD tal que dado como dato un número
entero, determine e imprima si el mismo es postivo, negativo o nulo.
Solución
Pseudocódigo
% Dado como dato un entero,
% determina si el número es
% postivo, negativo o nulo.
% Lee el número
Leer NUM
si NUM > 0 entonces
Escribir "Positivo"
sino
si NUM = 0 entonces
Escribir "Nulo"
sino
Escribir "Negativo"
fin
fin
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
Referencias
Ejemplo 5.5
Ejemplo 5.5
Realice un algoritmo en FreeDFD tal que dado como datos tres números
enteros, determine si éstos están en orden creciente.
Solución
Pseudocódigo
% Descripción: Dado tres enteros distintos, determina
% si están ordenados de menor a mayor
% Lee tres enteros distintos
Leer A, B, C
si A < B entonces
si B <= C entonces
Escribir "Los números están en orden creciente"
sino
Escribir "Los números no están en orden
creciente"
fin
sino
Escribir "Los números no están en orden creciente"
fin
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
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 anidada
Ejemplos
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 anidada
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
Ejemplos
Referencias
Introducción
Selectiva simple
Selectiva doble
Selectiva múltiple anidada
Ejemplos
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