introducción selectiva simple selectiva doble selectiva múltiple anidada ejemplos referencias...

30
Introducci´ on Selectiva simple Selectiva doble Selectiva m´ ultiple anidada Ejemplos Referencias Introducci´ on a los Computadores (CNM-130) Estructuras algor´ ıtmicas selectivas Alejandro Piedrahita H. Instituto de Matem´ aticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft 2012. Reproducci´on permitida bajo los erminos de la licencia de documentaci´on libre GNU.

Upload: independent

Post on 22-Feb-2023

0 views

Category:

Documents


0 download

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