Download Lopez Roman La Seleccion p70-89...
rogramaciónestructurada orientada objetos UN ENFOQUE LGORÍT LGORÍTMICO MICO L E O B
3 Edición
~ D O
LÓP Z ROMÁN
•
Web
~ ifaomega
•
o o-s ; Lo ?
·: :.,
rogramación estructurada objetos U orientada ENFOQUE LGORÍTMICO 3 ~ E d i c i ó n
LEOB RDO LÓ LÓPE PEZ Z ROMÁN ROM ÁN
B I B I
~ I O T E C A
UNIVERSIDAD de PALERMO
A
Alfaomega
N1VERS1 Aó DE PALERMO BIBLIOTECA
Procedencia: CI:JM Fecha de ingreso: ~ \
t J . . \ d ü ~ ~
Datos cata1ográficos: cata1ográficos: López Román, Leobardo Programación estructurada y orientada a objetos. Un enfoque algorítmico Tercera edición Alfaomega Grupo Editor S.A. de C.V., C.V., México Formato:
21
ISBN 978-607-707-211-9 Páginas: 576 x 24 cm
a objetos. Un enfoq enfoque ue algorí algorítmico tmico / 1: >oií=i ''''··. 0 ·;;: .. , ¿Ar? T ·;·5 ·r :; , R · ¿ _ ~ Lo¡ 0;. .:. . 'Vt..r· - c J O ~ ' - o " · d · . f ' \ eob ard o Lopez oman ..; Derechos reservados © Alfaomega Grupo Editor, S.A. de c. V., México L /Ro30. 0 ~ · : ~ ( \ JN E.S· TltJ c·r ¡;tAt-t\:; Tercera Edición: Alfaomega Grupo Editor, México, agosto de 2011 L 9 P . O C 3 - i i - f ~ · ; · { \ Q . . o b t.. Q ) M ~ u T A : b o A A - ? ) ¿ i ' ; J ( 6 p _ ¡ } M ~ ~ . oQ..(E/ S\< 9;:\ 0 ca).SISTQ1>/ l::>i SsiJo O r ~ : s r S \ f \ 3 ; , ; ) A © 2011 Alfaomega Grupo Editor, S.A. de C.V. O .?j'íPiOS.)L'L- EI\.JGúl\lE RR.o-:::,Q-ef ,, i IIO(ÓN : - ~ Pitágoras 1139, Col. Del Valle, 03100, México D.F. ( A LtS oi1Í'íMos.';,.Le-J€6l.ciCt-os. ~ A A c i i ~ ~ - ~ \ Miembro de la Cámara Nacional de la Industria Editorial Mexicana ¿ C \ f '') L ~ ' ; ) ·> L _ 0 1 AS> Registro W 2317 Página Web: Web: http://www.alfaomega.com.mx E-mail:
[email protected] Programación estructurada y orientada
_
ISBN: 978-607-707-211-9 Derechos reservados: Esta obra es propiedad intelectual de su autor y los derechos de publicación en lengua española han sido legalmente trans feridos al editor. Prohibida su reproducción parcial o total por cualquier medio sin permiso por escrito del propietario de los derechos del copyright. Nota importante: La información contenida en esta obra o bra tiene un fin exclusivamente didáctico y, por lo tanto, no está previsto su aprovechamiento a ni vel profesional o industrial. Las indicaciones técnicas y programas incluidos, han sido elaborados con gran cuidado por el autor y repro ducidos bajo estrictas normas de control. ALFAOMEGA GRUPO EDITOR, S A . de C.V., no será jurídicamente responsable por: errores u omisiones; daños y perjuicios que se pudieran atribuir al uso de la información comprendida en este libro, ni por la utilización indebida que pudiera dársele. dársele. Esta edición puede venderse en todos los países del mundo. Impreso en México. Printed in Mexico. del grupo: Argent Arg ent ina: ina : Alfaomega Grupo Grupo Editor Argentino, Argentino, S.A. S.A. Paraguay 1307 P.B. 11 ,Buenos Aires, Argentina, C.P. 1057 Tel.: ( 54-11) 4811-7183 1 0887 - E-mail: E-mail:
[email protected] [email protected] México: Alfaomega Grupo Editor, S.A. de C.V. Pitágoras 1139, Col. Del Valle, México, D.F., México, C.P. 03100 Tel Tel.:.: (52-55) 5575-50225575-50 22- Fax: (52-55) (52-55) 5575-242012490. Sin co costo: sto: 01-800 01-800-020-439 -020-43966 E-mail: atenciona1c1iente@alfaomega
[email protected] .com.mx Colombia: Alfaomega Colombiana S.A. Carrera 15 No. 64A29, Bog Bogotá, otá, Colombia- PBX (5 (57-1 7-1)) 2100122- Fa Fax: x: (57-1) (57-1) 6068 6068648 648 Empresas
E-mail:
[email protected] Chile: Alfaomega Grupo Editor, S.A. Dr. La Sierra 1437, Providencia, Santiago, Chile Tel Tel.:.: (56-2) (56-2) 235-4 248- Fax: Fax: (56-2) (56-2) 235-5786 - E-mail E-mail:: agechile@alfaom
[email protected] ega.cl
70
4
ntroducción
La selección
Con el estudio del capítulo anterior, usted ya domina la secuenciación y cómo diseñar algoritmos usando esa estructura de control. El objetivo de este capítulo es que usted sea capaz de elaborar algorit
mos utilizando laestructura de control la selección. Se explica que la selección es una estructura que permite tomar deci
siones y que tiene tres formas: la selección doble (if-then-else),la selección simple (if-then) y la selección múltiple(switch). Se enseña que la selección doble (if-then-else) sirve para plantear si tuaciones en las que se tienen dos alternativas de acción, de las cuales se debe escoger una. Se describe cómo plantearexpresiones lógicas simples usando los operadores relacionales(>,=, b the n a . i f a > e then Imprimir a l · b. else
número 3
Imprimir e c . e n d if l
5. e l s e
a.
> e the n
if
b
l
Imprimir b
b. else l Imprimir e c. endif
Alfaomega
84 ·
· ·····
4. La selección
· · · ·
· ·
· · · · · · · · ·
····· ···· ··
6.
en
7.
Fin
··········· ····
·· ··· · ············
···· ·· ···
··
·
·
· ·
· ·
·
if
En la zona de descarga de la Web del libro, están disponibles:
Programa en C: C407.C y Programa en Java: Mayor3Numeros1.java Explicación: 1.
Se declaran las variables
2.
Se solicitan los tres números
3.
Se leen en a, b y e
4.
Se compara si a > b, si es así, entonces a. Se compara si a > e si es así, entonces
1. Se imprime a como el mayor b. Si no
1 Se imprime e como el mayor 5.
c. Fin del if Si no a. Se compara si b > e entonces 1. Se imprime b como el mayor b.Sino
1 Se imprime e como el mayor 6.
c. Fin del if Fin del if
7.
Fin del algoritmo
En la zona de descarga del capítulo 4 de la Web del libro, está disponible el ejer cicio 4.1.4.4. Lee cuatro números e imprime el mayor
Sugerencia: En este momento se sugiere ir al punto 4.1.2 y estudiar la parte correspondiente a Expresiones lógicas complejas si no lo ha hecho y regre sar a este punto. Ejercicio 4.1.4.5 Elaborar un algoritmo que lea tres números y que imprima el mayor. Se supone que son números diferentes. Este problema es la segunda vez que lo vamos a solucionar. Segundo método
e
solución Utilizando if-then-else y AND.
Primero hágalo usted, después compare
l
solución.)
Programación Progra mación estructurada y orien orientada tada a objetos obje tos-- Leobardo Leobardo L Lópe ópez z Rornán
Alfaomcga
if-then-else) e) .1 La selección doble if-then-els
Algoritmo MAYOR 3 NÚMEROS
Declarar V a r ia ble s a b e : En t e r o 2 . S o l i c i t a r número 1 número 2 l.
e a > b)AND a > e ) a . Imprimir a
3. Leer a 4. i f
número 3
b
then
5. else
a. i f b > e then l Imprimir b b. else l
Imprimir e
c. endif 6. endi f
7 . F in
En la zona de descarga de la Web del libro, están disponibles: Programa en C: C: C409.C y Programa en Java: Mayor3Numeros2.java
Explícación 1. 2.
Se declaran las variables Se solicitan los tres números
3.
Se leen en a, b y e
4.
Se compara si a > b) y a > e), si se cumple, entonces a. Se imprime a como el mayor
S
ino
a.
Se compara b > e, si se cumple, entonces
1. Se imprime b como el mayor b. Si no
1 Se imprim e e como el mayor c.
Fin del if
6. Fin del if 7. Fin Fin del algorit mo La tabla 4.1 muestra los ejercicios resueltos disponibles en la zona de descarga del capítulo 4 de la Web del libro. abla 4 1
Ejercicio
Descripción
Ejercicio Ejerc icio 4.1.4. 4.1.4.6 6
Lee cuatro números e imprime el mayor
Ejercicio 4.1.4.7
Lee tres lados y dice el tipo de triángulo que es
Ejercicio 4.1. 4.1.4.8 4.8
Real Realiza iza cálculos con la ecuación cuadrática
85
Alfaomega
Programación Programac ión estructurada y orientada a objetos - Leobardo López Román
8
4. La selección
~ . ?
~ ~ - ~ - ~ ~ ~ - ¡ - ~ ~ - - ~ ~ ~ . ? ~ . _ i.~:-.~~-~~)
..................................................... .
Esta estructura de selección permite controlar la ejecución de acciones cuando existe una sola alternativa de acción. Se utiliza cuando alguna alguna acción o conj unto de acciones está condicionada condic ionada para que se lleve a cabo su ejecución, pero no se tiene una opción alterna. Formato
condición then Acción es) endif if
n donde
Identifica la estructura de control de selección. selección.
Si)
if
then
Entonces)
endif
Indica el curso de acción a seguir si se cumple la condición. Indica el fin de la estructura de selección del if).
Funcionamiento
Al llegar al i f se evalúa la condi condición: ción: a)
Si se cumple, se ejecuta n)
i f
condi ci ón t h e n
la s) acción es) del then y Acción es)
luego salta hasta la siguiente después del e n d i f fin del if).
endif b)
Si no se cumple, salta hasta después del endif, es decir, no hace nada.
Ejercicio: Siguiendo con el mismo problema de cálculo del sueldo, ahora se otorga un incentivo del 5 del sueldo, si el empleado trabajó más de 40 horas, es decir, al sueldo se le agrega el S del mismo sueldo. A continuación se tiene el algoritmo: Algoritmo CÁLCULO SUELDO CON INCENTIVO l
De c la ra r Variables
nombreEmp: Cadena horasTrab: Entero cuotaHora, sueldo: Real 2 . S o l i c i t a r Nombre del empleado, número de horas t r a b a j a d a s y cuota p o r hora 3 . Leer nombreEmp, horasTrab, cuotaHora 4. s u e l o ~ horasTrab * cuotaHora
Alfaomega
Prograrnacion
estructurada
y orientada a objetos • Leobardo López Román
······ ··
· · ...
4.2 La selección simple (if-then) .
5 . i f h o r as T r ab > 40 t h e n
s u e l d o = s u e l d o + s u eld o * 0.05) 6. e ndi f 7 . Imprimir nombreEmp, su e l d o l.
8.
Fin
En la zona de descarga de la Web del libro, están disponibles: Programa en C: C413.C y Programa en Java: Empleado4.java
Como se puede ver una vez calculado el sueldo se verifica si trabajó más de 40 horas, si es así se le adiciona el 5 del mismo sueldo. (Nótese que aquí no aparece otra alternativa.) Práctica: En este momento se recomienda ir al siguiente punto de ejercicios re sueltos para la selección simple (if-then) y estudiar algunos ejemplos. Además, si quiere más práctica, puede resolver algunos de los ejercicios propuestos al final del capítulo para aplicar el i f - t h e n .
4.2.1 4.2. 1 Ejercicios resueltos para par a la selección simple if-then) if-then) A continuación se presentan ejercicios resueltos; se le recomienda que primero haga Usted el algoritmo, y después compare su solución con la del libro. Ejercicio 4.2.1.1 Elaborar un algoritmo que lea tres números y que imprima el mayor. Se supone que son números diferentes. Este problema es la tercera ocasión ocasión que lo soluci solucio o namos. Tercer método
e
solución: Utilizando if-then y AND.
Primero hágalo usted, después compare
l
solución.)
Algoritmo MAYOR 3 NÚMEROS
Declarar V a r ia ble s a , b , e : En t e r o 2 . S o l i c i t a r número 1 , número 2, número 3 3 . Leer a , b, e a > b)AND a > e ) t h e n 4. i f a . Imprimir a 5. endif 6. i f b > a)AND b > e) t h e n a . Imprimir b 7. endif 8. i f e > a)AND c > b) t h e n a . Imprimir e 9. e n d i f 10. F in l.
·
·
·
·
·
·
·
·
·
87
Programación
estructurada
y orientada a ob¡etos -
eobardo Lopez F ~ o : n é
Aifaomcga
m
88
4. La selección
-----·--------------··-----··--·-------------------------------------------------·---··-------
En la zona de descarga de la Web Web del libro están disponibles:
Programa en C: C414.C y Programa en Java: Mayor3Numeros3.java Explicación: 1.
2. 3. 4. 5. 6. 7.
Se declaran las variables Solicitar los tres números Se leen los datos en a, b y e Se compara si a > b) y a > e), si se cumple entonces a. Se imprime a como el mayor Fin del if Se compara si b > a) y b > e), si se cumple entonces a. Se imprime b como el mayor Fin del if
9.
Se compara si e > a) y e > b), si se cumple entonce entonces s a. Se imprime e como el mayor Fin del if
1O
Fin del algoritmo
8.
Ejercicio 4.2.1.2
Elaborar un algoritmo que lea cinco números y que imprima el mayor. Se supone que son números diferentes. Restricciones: Usar if-then no usar else ni AND. Primero hágalo usted, después compare Algoritmo l
M YOR
D e c la r a r
Solicitar
e mayor: Entero número 1 número 2 número 3
Leer a
número 4 e d e
b
d
4 . mayor = a
5 . i f b >mayor the n
a . mayor
=
b
6 . e n d if
7. i f
e>
mayor then a . mayor = e
8. endif
d >mayor the n a . mayor = d 10. e n d i f 9.
solución.)
5 NÚM ROS
V ari abl es a b e 2.
l
if
11. i f e >m a y o r then
a . mayor
=
e
número 5
All aomega
Programación estructurada y
orientada
a obietos -
eobardo López
Román
····· · ··
·
·
·· · ·· ·
··
·
·
·
4.2 La selecci selección ón simple if-then) · · ·
12. e n d i f 13. Imprimir mayor 14. Fin
En la zona de descarg a de la We Web b del libro, están disponibles:
Programa en C: C415.C y Programa en Java: Mayor5Numeros1.java Explicación 1.
Se declaran las variables
2.
Se solicitan los cinc o números
3.
Se leen en a b, e d y e
4.
Se coloca en mayor el valor de a
5.
Se compara si b > mayor si se cumple, entonces a.
Se coloca en mayor el valor de b
6.
Fin del if
7.
Se compar a si a.
mayor, si se cumple, entonces
e
Se coloca en mayor el valor de e
8.
Fin del if
9.
Se compara si d > mayor, si se cumple, entonces a.
1O
Se coloca en mayor el valor de d
Fin del if
11. 11. Se compar a si e > mayor, si se cumple, entonces a.
Se coloca en mayor el valor de e
12. Fin del if 13. Se imprime mayor que contiene el número mayor 14. Fin del algoritmo La tabla 4.2 muestra los ejercicios resueltos disponibles en la zona de descarga del capítulo 4 de la Web del libro. Tabla
4.2
Ejercicio
Descripción
Ejercicio 4.2.1.3
Lee el tamaño de un ángulo e imprime el tipo que es
Ejercicio 4.2.1.4
Lee el tamaño de dos ángulos e imprime si son iguales o diferentes
Ejercicio 4.2.1.5
Realiza cálculos logarítmicos de un ángulo
Ejercicio 4.2.1.6
Calcula equivalencias de pies a yardas y otras
Ejercicio 4.2.1.7
Realiza cálculos con la segunda ley de Newton
·
·
9