introducción selectiva simple selectiva doble selectiva múltiple anidada ejemplos referencias...
TRANSCRIPT
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Introduccion a los Computadores (CNM-130)Estructuras algorıtmicas selectivas
Alejandro Piedrahita H.
Instituto de MatematicasFacultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Copyleft «2012. Reproduccion permitida bajo los
terminos de la licencia de documentacion libre GNU.
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Contenido
1 Introduccion
2 Estructura selectiva simple
3 Estructura selectiva doble
4 Estructura selectiva anidada
5 Ejemplos
6 Referencias
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Estructuras de control selectivas
Una sentencia condicional es una instruccion o grupo deinstrucciones que se pueden ejecutar o no en funcion del valor de unacondicion.
Se utilizan cuando en el desarrollo de la solucion de un problema sehace necesario tomar una decision para establecer un proceso.
Los sentencias condicionales constituyen, junto con los bucles, lospilares de la programacion estructurada.
Las estructuras selectivas se utilizan para tomar decisiones logicas.
Por medio de las estructuras selectivas se evalua una condicion ydependiendo del resultado la misma se realiza un proceso.
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Estructuras de control selectivas
Las condiciones evaluadas por medio de las estructuras selectivas seespecifican utilizando expresiones logicas.
Clasificacion de las estructuras de control selectivas:
Si entonces (Estructura selectiva simple)
Si entonces / sino (Estructura selectiva doble)
Si multiple (Estructura selectiva multiple)
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Estructura selectiva simple
La instruccion selectiva determina si una instruccion particular seejecuta o no, segun el cumplimiento de una condicion P.
La representacion de una estructura selectiva se hace con palabras(pseudocodigo) o por medio de una figura geometrica (diagrama deflujo).
Pseudocodigo
si P entonces
Instrucciones;
fin
donde
P: condicion o conjunto de condiciones aevaluar.
Intrucciones: instrucciones a realizar sila condicion P es verdadera.
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplos
Ejemplo 2.1
Ralice un algoritmo (implementelo en FreeDFD) tal que dado como dato lacalificacion de un alumno en un examen, escriba “reprobado” en caso de quedicha nota sea menor a 3.
Solucion
Pseudocodigo
% Descripcion: Dada la calificacion de un% alumno en un examen, se imprime "reprobado"% si la calificacion es menor a 3.
Leer NOTA;
si NOTA<3.0 entonces
Escribir "Reprobado";
fin
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 2.2
Ejemplo 2.2
A un trabajador se le aplica un aumento del 15 % en su salario si este esmenor a 400 mil pesos. Realice un algoritmo (implementelo en FreeDFD)que imprima el sueldo del trabajador.
Solucion
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.
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 2.2
Pseudocodigo
% 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 empleadoSUE = input(Ingrese el sueldo: ");
si SUE<400000 entonces
Hacer AUM = SUE*0.15;
Hacer NSUE = SUE + AUM;
Escribir "El nuevo sueldo es" NSUE
fin
# SUE AUM NSUE
1 145000 21750 1667502 5173203 284215 42632,25 326847,254 180500 27075 207575
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Estructura selectiva doble
La instruccion selectiva doble si entonces / sino permite que el flujodel diagrama se bifurque por dos ramas diferentes dependiendo delcumplimiento de una condicion P.
Si al evaluar la condicion P el resultado es verdadero, entonces seejecuta un conjunto de instrucciones; si el resultado es falso seejecutan otro conjunto de instrucciones.
Pseudocodigo
si P entonces
Instrucciones1;
sino
Instrucciones2;
fin
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 3.1
Ejemplo 3.1
Realice un algoritmo (implementelo en FreeDFD) tal que dado como dato lacalificacion de un alumno en un examen, escriba “aprobado” si sucalificacion es mayor o igual a 3 y “reprobado” en caso contrario.
Solucion
Pseudocodigo
% Dada la calificacion de un alumno en% un examen, se imprime "aprobado"si la% calificacion mayor o igual a 3 y% "reprobado" en caso contrario
Leer NOTA;
si NOTA>=3.0 entonces
Escribir "aprobado";
sino
Escribir "reprobado";
end
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 3.2
Ejemplo 3.2
A un trabajador se le aplica un aumento del 15 % en su salario si este esmenor a 400 mil pesos y 8 % en caso contrario. Realice un algoritmo(implementelo en FreeDFD) que imprima el sueldo del trabajador.
Solucion
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.
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 3.2
Pseudocodigo
% 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
# SUE NSUE
1 200000 2300002 550000 5940003 140000 1610004 400000 460000
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Estructura selectiva anidada
Son estructuras selectivas que contienen a otras estructuras selectivas
Pseudocodigo
si Condicion1 entonces
si Condicion2 entonces
Operacion21;
sino
Operacion22;
fin
end
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo
Pseudocodigo
si P1 entonces
Operacion11;
sino
si P2 entonces
Operacion21;
sino
Operacion22;
finfin
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo
Pseudocodigo
si Condicion1 entonces
si Condicion2 entonces
Operacion21;sino
Operacion22;
fin
sino
si Condicion3 entonces
Operacion31;
fin
end
Introduccion Selectiva simple Selectiva doble Selectiva multiple 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.
Solucion
Pseudocodigo
% 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 numero es par"
sino
si a MOD 3 = 0 entonces
Escribir "El numero es impar...y es divisible por 3"
sino
Escribir "El numero es impar...y no es divisible por 3"
finfin
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 4.2
Ejemplo 4.2
Realice un algoritmo en FreeDFD que reciba como datos de entrada tresnumeros enteros distintos A, B y C y los escriba de mayor a menor.
Solucion
Datos:
A, B, C: variables de tipo entero.
Variables de salida:
A, B, C: variables de tipo entero; se imprimen en orden descendente.
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Pseudocodigo
%*******************************************
% Descripcion: 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, B, C
sino
Escribir A, C, B
fin
sino
Escribir C, A, B
fin
sino
si B>C entonces
si A>C entonces
Escribir B, A, C
sino
Escribir B, C, A
fin
sino
Escribir C, B, A
fin
end
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 5.1
Ejemplo 5.1
Realice un algoritmo en FreeDFD que determine si un punto concoordenadas (x, y) se encuentra en el segundo o cuarto cuadrante del planocartesiano.
Solucion
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)
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 5.1
Pseudocodigo
% Determina si un punto decoordenadas% (x,y) se encuentra en el segundo o% cuarto cuadrante
% Lee x e yLeer x, y
si x*y<0 entonces
Escribir "Sı esta"
sino
Escribir "No esta"
fin
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 5.2
Ejemplo 5.2
Realice un algoritmo en FreeDFD que determine si un punto concoordenadas (x, y) se encuentra en el interior de la circunferencia concentro en el origen y radio 3.
Solucion
Datos:
x, y: variables de tipo real (coordenadas del punto).
Consideraciones:
La circunferencia con centro en (0, 0) y radio 3 esta dada por el conjunto depuntos (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)
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 5.2
Pseudocodigo
% 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 yLeer x, y
Hacer expr = x∧2+y∧2;
si expr<9 entonces
Escribir "Sı esta"
sino
Escribir "No esta"
fin
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 5.3
Ejemplo 5.3
Realice un algoritmo en FreeDFD que calcule, de ser posible, las raicesreales de la ecuacion
ax2 + bx + c = 0, a 6= 0. (6)
Solucion
Consideraciones:
Las soluciones de la ecuacion cuadratica (6) vienen dadas por
x =−b±
√b2 − 4ac
2a(7)
La formula (7) puede conducir a soluciones complejas si
∆ = b2 − 4ac < 0
Variables:
a, b, c: variables de tipo real (coeficientes de la ecuacion) con a 6= 0.
dis: variable de tipo real; almacena el discriminante de la ecuacion.
x1 y x2: variables de tipo real; almacenan las raices de la ecuacion.
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 5.3
Pseudocodigo
% Determina las soluciones reales de la% ecuacion cuadratica ax∧2+bx+c=0
% Lee los coeficientes de la ecuacionLeer 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
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 5.4
Ejemplo 5.4
Realice un algoritmo en FreeDFD tal que dado como dato un numeroentero, determine e imprima si el mismo es postivo, negativo o nulo.
Solucion
Pseudocodigo
% Dado como dato un entero,% determina si el numero es% postivo, negativo o nulo.
% Lee el numeroLeer NUM
si NUM > 0 entoncesEscribir "Positivo"
sinosi NUM = 0 entonces
Escribir "Nulo"sino
Escribir "Negativo"fin
fin
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Ejemplo 5.5
Ejemplo 5.5
Realice un algoritmo en FreeDFD tal que dado como datos tres numerosenteros, determine si estos estan en orden creciente.
SolucionPseudocodigo
% Descripcion: Dado tres enteros distintos, determina
% si estan ordenados de menor a mayor
% Lee tres enteros distintos
Leer A, B, C
si A < B entonces
si B <= C entonces
Escribir "Los numeros estan en orden creciente"
sino
Escribir "Los numeros no estan en orden
creciente"
fin
sino
Escribir "Los numeros no estan en orden creciente"
fin
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Bibliografıa I
S. AttawayMatlab: A Practical Introduction to Programming and ProblemSolvingButterworth-Heinemann, 2011
J.W. Brown, D.J. MurdochA First Course in Statistical Programming With RCambridge University Press, 1th edition , 2008
D. BurtonElementary Number TheoryMcGraw Hill Higher Education, 5th edition, 2002
O. CairoMetodologıa de la programacionSegunda edicion. Alfaomega Grupo Editor, S.A., 2005
M.A. CriadoProgramacion en lenguajes estructuradosAlfaomega Grupo Editor, S.A. de C.V. Primera Edicion, 2006
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Bibliografıa II
H.P. LangtangenA Primer on Scientific Programming with PythonSpringer, 2011
O. Jones, R. Maillardet, A. RobinsonIntroduction to Scientific Programming and Simulation Using RChapman and Hall/CRC; 1 edition, 2009
J. KiusalaasNumerical Methods in Engineering with MatlabCambridge University Press, 2 edition, 2009
D.E. KnuthThe Art of Computer ProgrammingVolume 1, Fundamental AlgorithmsAddison Wesley Longman, 1997
S. LipschutzSchaum’s Outline of Essential Computer MathematicsMcGraw-Hill, 1th edition, 1982
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Bibliografıa III
Ch.F. Van LoanIntroduction to Scientific ComputingPrentice-Hall, Inc., 1997
C.B. MolerNumerical Computing with MatlabSIAM, 2004
H.M. Mora EscobarIntroduccion a C y a metodos numericosUniversidad Nacional de Colombia (Sede Bogota), 2004
A. Quarteroni, F. SalieriCalculo cientıfico con Matlab y OctaveSpringer-Verlag Italia, 2006
S.M. RossSimulationElsevier Inc., 2006
Introduccion Selectiva simple Selectiva doble Selectiva multiple anidada Ejemplos Referencias
Bibliografıa IV
R. SeroulProgramming for MathematiciansSpringer, 2000
E. ScheinermanC++ for Mathematicians: An Introduction for Students andProfessionalsTaylor & Francis Group, LLC, 2006
A. ShenAlgorithms and ProgrammingSpringer Undergraduate Texts in Mathematics and Technology, 2010
P. TymannSchaum’s Outline of Principles of Computer ScienceMcGraw-Hill, 1th edition, 2008