Documente Academic
Documente Profesional
Documente Cultură
y orientada a objetos
UN ENFOQUE ALGORÍTMICO (3'Edición
LEOBA~DO LÓPEZ ROMÁN
••
.. •
. Web •
~
AAifaomega
o o-s ;' ·:':.,
Lo-?
Programación estructurada
y orientada a objetos
UN ENFOQUE ALGORÍTMICO (3~Edición
BIBI...~IOTECA.
UNIVERSIDAD de PALERMO
A. Alfaomega
Datos cata1ográficos:
UN1VERS10Aó DE PALERMO BIBLIOTECA 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., México
Procedencia: CI:JM~ ~
Fecha de ingreso: ~\ tJ..\'dü~~ ISBN 978-607-707-211-9
Formato: 21 x 24 cm Páginas: 576
Programación estructurada y orientada a objetos. Un enfoque algorítmico / 1:">oií=i"''''··. 0 . ·;;: .. , ¿Ar? T""·;·5 ·r .:;.
,
eo ard o Lopez Roman· ¿_~, JO~'-o"·d·.f'\ .. Lo¡"0;.
,..; - .:. . 'Vt..r·"- c . . _..
Lb ~
L
Derechos reservados © Alfaomega Grupo Editor, S.A. de c. V., México (/Ro30. 0 ~·:~( \ (JN E.S· TltJ c·r ¡J ¡;tAt-t\:;
Tercera Edición: Alfaomega Grupo Editor, México, agosto de 2011 L9P.OC3-ii-f'~·;·{\Q..o1v b't.. Q)M~uTA:boAA-!?)¿i';J(6p_¡}M~~
. oQ..(E/'S\<'9;:\ 0 ca).SISTQ1>/ l::>i SsiJo Or~:srS\f\3;,;) A
© 2011 Alfaomega Grupo Editor, S.A. de C.V. O l.?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. ~AAc"ii ~~-~ \
Miembro de la Cámara Nacional de la Industria Editorial Mexicana ¿ C "\ 'f'') L ~';) ·> L._ 0 1 AS> -
Registro W 2317
Página Web: http://www.alfaomega.com.mx
E-mail: atencionalcliente@alfaomega.com.mx
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 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.
Esta edición puede venderse en todos los países del mundo.
Impreso en México. Printed in Mexico.
Ejemplo:
Calcular el sueldo de un empleado.
Información a producir: Nombre y Sueldo
Datos disponibles: Nombre, número de horas trabajadas y cuota por hora
Proceso: El sueldo se calcula de la forma siguiente:
Si el número de horas trabajadas es mayor que 40, el
excedente de 40 se paga al doble de la cuota por hora.
En caso de no ser mayor que 40, se paga a la cuota por
hora normal.
En donde:
if (Si) Identifica la estructura de selección.
Funcionamiento:
Al llegar al if se evalúa la condición:
if condición then
a) Opción verdadera (then). Acción(es)
Si se cumple, se ejecuta(n) else
la(s) acción(es) del then y
luego salta hasta la siguiente Acción (es)
después del en di f (fin del i f).
endif
Nota: En este caso ejecuta la opción del then e ignora la del else.
if condición then
b) Opción falsa (el se). Acción (es)
De lo contrario, salta hacia
el else, ejecuta la(s) el se
acción(es), y después salta
a la siguiente acción Acción (es)
después del endif (fin del if).
endif
Explicación:
1. Se declaran las variables que ya conocemos
2. Se solicita el Nombre del empleado, número de horas trabajadas y cuota
por hora
-\ il:a,Hm:ga
76 4. La selección
Ejemplo:
Una escuela aplica dos exámenes a sus aspirantes, por lo que cada uno de ellos
obtiene dos calificaciones denotadas como c1 y c2. El aspirante que obtenga ca-
lificaciones de 80 ó mayores en ambos exámenes es aceptado; en caso contrario
es rechazado.
if (el >= 80)AND(c2 >= 80) then
Imprimir "Aceptado"
el se
Imprimir "Rechazado"
endif
OR
Relaciona dos operandos booleanos. Proporciona un valor verdadero M. si uno
de los dos es verdadero M; en caso contrario da un resultado falso (F). En la si-
guiente tabla se presentan las posibles combinaciones:
Ejemplo:
Una escuela aplica dos exámenes a sus aspirantes, por lo que cada uno de ellos
obtiene dos calificaciones denotadas como c1 y c2. El aspirante que obtenga
una calificación mayor que 90 en cualquiera de los exámenes es aceptado;
en caso contrario es rechazado.
if (el > 90)0R(c2 > 90) then
Imprimir "Aceptado"
el se
Imprimir "Rechazado"
endif
XOR
Relaciona dos operandos booleanos. Proporciona un resultado verdadero M si
uno de los dos es verdadero M. pero no ambos; en caso contrario da un valor
falso (F). En la siguiente tabla se presentan las posibles combinaciones.
Ejemplo:
Una empresa aplica dos exámenes a sus aspirantes a ingresar como trabajado-
res, por lo que cada uno de ellos obtiene dos calificaciones denotadas como c1
y c2. El aspirante que obtenga 100 en cualquiera de los exámenes, pero no en
ambos, es aceptado; en caso contrario es rechazado.
if (el== 100)XOR(c2 == 100) then
Imprimir "Aceptado"
el se
Aunque suena ilógico rechazar a quien
Imprimir "Rechazado" haya obtenido 100 en ambos exáme-
endif nes, supongamos que si obtiene 100 en
ambos, el aspirante le queda grande al
puesto; esto provocaría que no desem-
peñe su puesto con entusiasmo.
NOT
Este operador relaciona sólo un operando booleano y da como resultado un valor
opuesto al que tenga el operando. En la siguiente tabla se presentan las posibles
combinaciones.
Ejemplo:
Un alumno tiene una calificación final (calFin) y se desea imprimir el resultado
de aprobado si la calificación es igual o mayor a 70; o bien, reprobado en caso
contrario.
Solución sin usar NOT:
if calFin >= 70 then
Imprimir "Aprobado"
el se
Imprimir "Reprobado"
endif
4.1.31fs anidados
Una estructura de selección (if) puede tener anidada a otra y ésta a otra y así
sucesivamente, ejemplo:
if condición then
if condición then
Acción (es)
el se
Acción (es)
endif
el se
if condición then
Acción (es)
el se
Acción(es)
endif
endif
Vemos que se tiene el then donde no lleva if anidado, mientras que por el
el se se tiene el if anidado.
Otra alternativa de anidación es el caso en que se tenga un if anidado por
el then, mientras que por el else no se tiene if anidado, el esqueleto de la
estructura es:
if condición then
if condición then
Acción (es)
el se
Acción(es)
endif
el se
Acción (es)
endif
Ejercicio:
Elaborar un algoritmo similar al anterior de CÁLCULO SUELDO DOBLE, pero
ahora tomando en cuenta que se tiene otra alternativa: Las horas que exceden de
50 se pagan al triple de la cuota por hora.
Explicación:
1. Se declaran las variables que ya conocemos
2. Se solicita el Nombre del empleado, número de horas trabajadas y cuota
por hora
3. Se leen los datos en nombreEmp, horasTrab y cuotaHora
4. Se compara si horasTrab <= 40, si es así, entonces
a. Se calcula el sueldo de la forma simple
Explicación:
1. Se declaran las variables
2. Se solicitan el nombre y las cuatro calificaciones
3. Se leen los datos en las variables correspondientes
4. Se calcula el promedio
5. Se compara si promedio >= 60, si se cumple, entonces
a. En la variable observacion se coloca el valor "Aprobado"
6. Si no se cumple
a. En la variable observacion se coloca el valor "Reprobado"
7. Fin del if
8. Se imprimen los datos nombreEmp, promedio, observacion
9. Fin del algoritmo
En la zona de descarga del capítulo 4 de la Web del libro, está disponible el ejer-
cicio resuelto.
Ejercicio Descripción
Ejercicio 4.1.4.1 Dos métodos alternativos de solución al problema anterior
Ejercicio 4.1.4.2
Elaborar un algoritmo que lea dos números y que imprima el mayor. Se supone
que son números diferentes, por lo tanto, no se debe averiguar si son iguales o
si son diferentes.
(Primero hágalo usted, después compare la solución.)
Algoritmo MAYOR 2 NÚMEROS
l. Declarar
Variables
a, b: Entero
2. Solicitar número 1, número 2
3. Leer a, b
4. if a> b then
a. Imprimir a
5. else
a. Imprimir b
6. endif
7. Fin
Explicación:
1. Se declaran las variables
2. Solicitar los dos números
3. Se leen en las variables a y b
4. Se compara si a > b, si es así, entonces
a. Se imprime a como el mayor
5. Si no (en caso contrario)
a. Se imprime b como el mayor
6. Fin del if
7. Fin del algoritmo
Ejercicio 4.1.4.3
Elaborar un algoritmo que lea tres números y que imprima el mayor. Se supone
que son números diferentes, por lo tanto, no se debe averiguar si son iguales o
si son diferentes. Este problema lo vamos a solucionar de tres formas distintas.
6. endif
7. Fin
Explicación:
1. Se declaran las variables
2. Se solicitan los tres números
3. Se leen en a, by 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
c. Fin del if
5. 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
c. Fin del if
6. 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
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.
Explícació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) y (a > e), si se cumple, entonces
a. Se imprime a como el mayor
S. Sino
a. Se compara b > e, si se cumple, entonces
1. Se imprime b como el mayor
b. Si no
1 . Se imprime e como el mayor
c. Fin del if
6. Fin del if
7. Fin del algoritmo
La tabla 4.1 muestra los ejercicios resueltos disponibles en la zona de descarga
del capítulo 4 de la Web del libro.
Tabla 4.1
Ejercicio Descripción
Ejercicio 4.1.4.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.8 Realiza cálculos con la ecuación cuadrática
Formato:
if condición then
Acción(es)
endif
En donde:
if (Si) Identifica la estructura de control de selección.
then (Entonces) Indica el curso de acción a seguir si se cumple la condición.
endif Indica el fin de la estructura de selección (del if).
Funcionamiento:
Al llegar al i f se evalúa la condición:
a) Si se cumple, se ejecuta(n) i f condición then
la(s) acción(es) del then y
luego salta hasta la siguiente Acción(es)
después del endif (fin del if).
endif
Ejercicio:
Siguiendo con el mismo problema de cálculo del sueldo, ahora se otorga un in-
centivo 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. Declarar
Variables
nombreEmp: Cadena
horasTrab: Entero
cuotaHora, sueldo: Real
2. Solicitar Nombre del empleado, número de horas
trabajadas y cuota por hora
3. Leer nombreEmp, horasTrab, cuotaHora
4. sueldo~ horasTrab * cuotaHora
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 if-then.
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 que lo solucio-
namos.
Explicación:
1. Se declaran las variables
2. Solicitar los tres números
3. Se leen los datos 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
5. Fin del if
6. Se compara si (b > a) y (b > e), si se cumple, entonces
a. Se imprime b como el mayor
7. Fin del if
8. Se compara si (e > a) y (e > b), si se cumple, entonces
a. Se imprime e como el mayor
9. Fin del if
1O. Fin del algoritmo
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 la solución.)
Algoritmo MAYOR 5 NÚMEROS
l. Declarar
Variables
a, b, e, d, e, mayor: Entero
2. Solicitar número 1, número 2, número 3,
número 4, número 5
~- Leer a, b, e, d, e
4. mayor = a
5. if b >mayor then
a. mayor = b
6. endif
7. if e> mayor then
a. mayor = e
8. endif
9. if d >mayor then
a. mayor = d
10. endif
11. if e >mayor then
a. mayor = e
12. endif
13. Imprimir mayor
14. Fin
Explicación:
1. Se declaran las variables
2. Se solicitan los cinco 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 compara si e> mayor, si se cumple, entonces
a. Se coloca en mayor el valor de e
8. Fin del if
9. Se compara si d > mayor, si se cumple, entonces
a. Se coloca en mayor el valor de d
1O. Fin del if
11. Se compara 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
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