Documentos de Académico
Documentos de Profesional
Documentos de Cultura
y orientada a objetos
UN ENFOQUE ALGORITMICO (3lEdicion
. Web .
A Alfaomega •
00 )\
La.?
ProgramacifJn estructurada
y orientada a objetos
UN ENFOQUE ALGORfTMICO
A Alfaomega
Datos catalognificos:
L6pez Roman, Leobardo
Programaci6n estructurada y orientada a objetos. Un
enfoque algoritmico
Tercera edici6n
Alfaomega Grupo Editor S.A. de C.Y., Mexico
pmce~~~~~~
Derechos reservados:
Esta obra es propiedad intelectual de su autor y los derechos de publicaci6n en lengua espanola han sido legal mente trans-
feridos al editor. Prohibida su reproducci6n parcial 0 total por cualquier medio sin permiso por escrito del propietario de los
derechos del copyright.
Nota importante:
La informaci6n contenida en esta obra tiene un fin exclusivamente didactico y, por 10 tanto, no esm previsto su aprovechamiento a ni-
vel profesional 0 industrial. Las indicaciones tecnicas y programas inc1uidos, han sido elaborados con gran cuidado par el autor y repro-
ducidos bajo estrictas normas de contro!. ALFAOMEGA GRUPO EDITOR, SA. de C.v., no sera juridicamente respansable por:
errores u omisiones; danos y perjuicios que se pudieran atribuir al uso de la informaci6n comprendida en este libro, ni por
la utilizaci6n indebida que pudiera darsele.
Situaci6n real:
• Control de inventarios
• Control de producci6n
• Control de compras
DATOS •• I PROCESO I .• INFORMACION
• Control de ventas
• Pago de sueldos (n6mina)
Esto quiere decir que toda situaci6n que pueda ser abstrafda y representada
en forma de datos, puede manejarse mediante la computadora, porque el esque-
ma del proceso de datos es E-P-S (Entrada-Proceso-Salida), es decir, datos en-
tran como materia prima, se procesan para transformarlos en la informaci6n que
se da como salida. Por ejemplo, en una situaci6n de pago de sueldos (n6mina),
un trabajador puede representarse mediante los datos: Nombre del empleado,
numero de horas trabajadas y cuota por hora. EI sueldo se obtiene multiplicando
numero de horas trabajadas por la cuota por hora. Y se da como salida el nom-
bre y el sueldo. Tanto los datos como el procedimiento necesario para generar la
informaci6n, se suministran a la computadora en forma de un programa consti-
tuido por instrucciones. La computadora interpreta y ejecuta las instrucciones del
programa de acuerdo con ciertas reglas de sintaxis que conforman ellenguaje de
programaci6n, mediante el cual podemos comunicarle 10que debe hacer.
Los elementos basicos que componen una computadora son la unidad cen-
tral de proceso, la unidad de memoria, la unidad de entrada y la unidad de salida.
La unidad central de proceso es el "cerebro" que controla el funcionamiento
de los componentes y ejecuta las operaciones aritmeticas y 16gicas. Las opera-
ciones del procesador central son muy simples, pero ejecutadas a una velocidad
muy alta -del orden de millones por segundo- permiten la ejecuci6n de tareas
simples 0 complejas.
___ II__ ~
Unidad Central
de Proceso
La memoria se utiliza para almacenar los datos, ya estos se les aplican las
operaciones del procesador. Existen dos tipos de memoria: la principal y la auxi-
liar. La memoria principal permite al procesador extraer y almacenar datos a una
velocidad comparable con la propia. Cada operaci6n propicia por 10 menos un
acceso a la memoria. Para que el procesador pueda avanzar de una operaci6n a
la siguiente sin retraso, el programa de instrucciones se almacena en est a memo-
ria; en otraspalabras, la memoria principal guarda tanto las instrucciones como
los datos sobre los que actiJa el procesador central. La memoria principal esta
limitada por su alto costa; debido a esto no es posible conservar en ella gran-
des cantidades de datos e instrucciones y, en consecuencia, s610 se usa para
guardar 10 que el procesador este utilizando por el momento. Ademas, tiene la
caracterfstica de que no permite almacenar datos permanentemente, pues si se
apaga la computadora se pierde 10que haya en memoria. Por tales razones, las
computadoras estan equipadas con memorias auxiliares para almacenamiento
masivo y permanente de datos, tales como discos magneticos fijos, disquetes
(discos flexibles) magneticos removibles, discos compactos, cintas magneticas,
entre otros. Estos dispositivos tienen mas capacidad que la memoria principal,
pero son mas lentos. Los datos pueden almacenarse en ellos de manera perm a-
nente, es decir, pueden guardarse para usos posteriores.
La unidad de entrada se utiliza para introducir datos del exterior en la memo-
ria de la computadora a traves de dispositivos perifericos de entrada como tecla-
dos de terminales, raton (mouse), discos, modem, lector de codigo de barras, etc.
Esta unidad realiza automaticamente la traduccion de simbolos inteligibles para
la gente, en sfmbolos que la maquina pueda manejar.
La unidad de salida permite transferir datos de la memoria al exterior, a tra-
ves de dispositivos perifericos de salida como impresoras, pantallas de video,
m6dem, etc. Esta unidad realiza automaticamente la traducci6n de simbolos que
puede manejar la maquina, en sfmbolos inteligibles para la gente.
EI programa
Un programa es un conjunto de instrucciones que gufan a la computadora para
realizar alguna actividad 0 resolver algun problema; en el programa se ejecutan
diferentes acciones de acuerdo con los datos que se esten procesando. EI pro-
grama debe incluir instrucciones para las acciones que deban ejecutarse sobre
cada uno de los tipos de datos admitidos, ademas instrucciones que identifiquen
los datos erroneos y recuperarse ante la aparicion de estos.
Cuando se ejecuta un programa con un tipo -de datos especffico, es proba-
ble que no se ejecuten todas las instrucciones, sino solo las que sean pertinen-
tes a los datos en cuestion. Un programa se compone de estructuras de datos,
operaciones primitivas elementales y estructuras de control, como se muestra a
continuacion:
Programa = Estructuras de datos
+ Operaciones primitivas elementales
+ Estructuras de control
EI lenguaje de programaci6n
Un lenguaje de programaci6n es el medio a traves del cual Ie comunicamos a la
computadora la secuencia de instrucciones que debe ejecutar para lIevar a cabo
actividades, tareas 0 soluci6n de problemas. Todo lenguaje permite el manejo de
los tres elementos que componen un programa, a saber: estructuras de datos,
operaciones primitivas elementales y estructuras de control.
Recordemos que mediante un programa podemos representar en forma de
datos cualquier situaci6n de nuestra realidad, a los datos se les da entrada a la
computadora mediante dispositivos de entrada como teclado, lector 6ptico de ca-
racteres, rat6n, etc.; una vez que los datos estan en la computadora, se procesan
para convertirlos en informaci6n, la cual sera emitida hacia el exterior de la compu-
tadora mediante dispositivos de salida como son la pantalla, impresora, etcetera.
La programaci6n
Generalmente se consideran sin6nimos los conceptos programaci6n y codifica-
ci6n, 10 cual constituye un error. Debemos tener presente que la finalidad de un
programa es realizar algun proceso sobre ciertos datos para obtener ciertos re-
sultados. La preparaci6n de un programa implica aspectos tales como: (,para que
sirve el proceso que se desea representar?, (,que datos usara, que resultados
producira y c6mo se realizara el proceso sobre los datos para obtener los resul-
tados esperados? Una vez identificado 10anterior se procede a disenar la manera
de c6mo la computadora debera hacerlo, tomando en cuenta su estructura inter-
na y su funcionamiento. Hasta ese momenta se tiene representada la soluci6n de
una manera convencional (algoritmo), pero enseguida se procede a codificar el
programa que solucionara el problema, utilizando un lenguaje de programaci6n.
PROGRAMACION MODULAR
PROGRAMACION ESTRUCTURAOA
I PROGRAMACION TRAOICIONAL
I
Caracterlsticas de 105 paradigmas de programaci6n
La evoluci6n de los paradigmas de programaci6n ha tenido tres grandes pasos,
el primer gran paso es cuando la programaci6n aparece como tal, es 10 que se
esta esquematizando como la programaci6n tradicional. Luego se dio un segun-
do gran paso y surge la programaci6n estructurada. Oespues se experiment6
un pequeno paso que dio lugar a la programaci6n modular. Enseguida vino otro
pequeno paso que permiti6 el surgimiento de la programaci6n con abstracci6n
de datos. Luego vino el tercer gran paso que es la aparici6n de la programaci6n
orientada a objetos.
Tradicional
La programaci6n tradicional tuvo sus inicios a principios de la decada de 1950.
Los lenguajes de programaci6n que se utilizaban eran los predecesores de FOR-
TRAN, COBOL Y BASIC. Las estructuras 16gicas de control que se utilizaban eran:
la secuenciaci6n, IF-THEN, IF-THEN-ELSE Y DO (en la actualidad conocido como
FOR). La tecnica de diseno de programas utilizada eran los diagramas de flujo.
La arquitectura de un programa consistfa de un solo m6dulo, como se mues-
tra a continuaci6n:
Estructurada
La programacion estructurada tuvo sus inicios a mediados de la decada de 1960.
Los lenguajes de programacion que se utilizaban eran PASCAL, COBOL estruc-
turado, BASIC estructurado, FORTRAN con estilo estructurado, FORTRAN 90 Y
Lenguaje C. Las estructuras de control utilizadas eran la secuenciacion, IF-THEN,
IF-THEN-ELSE, CASE, FOR, DO-UNTIL Y DOWHILE. Otras caracterfsticas son:
Dividir un programa en modulos y funciones y estilo de programacion. Las tecni-
cas de diseiio de programas que se utilizaban eran diagramas Warnier, diagramas
estructurados, diagramas Chapin, seudocodigo y Top Down Design, entre otras.
La arquitectura de un programa consistfa en datos y en un conjunto de mo-
dulos jerarquizados, como se muestra a continuacion:
Orientada a objetos
La programaci6n orientada a objetos, aunque el concepto se gener6 muchos
arios antes, es a finales de la decada de 1980 y principios de la de 1990 que
se pone en boga, la caracterizan los conceptos objetos, clases, encapsulaci6n,
herencia y polimorfismo. Los principales lenguajes de programaci6n que se uti-
lizan son C++, Java y C#. Las tecnicas de diserio que se utilizan son Booch,
Rumbaugh, Jacobson, Yourdon y UML (Unified Modeling Language), entre otras.
La arquitectura de un programa consiste en un conjunto de objetos, y cada
objeto se compone por datos y un conjunto de metodos, donde cada metoda
esta formado por un conjunto de instrucciones, como se muestra a continuaci6n:
Objeto1 Objeto2
Datos Datos
I I
Metod01 Metod02 Metod01 Metod02
II I I II
Metod03 MetodoN Metod03 MetodoN
II I I II
__ M_e_'t_od_0_1
__ II__ M_e_to_d_0_2
__ II__ M_e_to_d_0_3
__ II,-__ M_e_to_d_0_N_~
La programaci6n orientada a objetos permite manejar mejor la complejidad
de los programas, porque permite una mayor pulverizaci6n 0 segmentaci6n de
los programas a traves de los objetos, esto, de una forma mas eficiente que como
se hacfa anteriormente con la programaci6n estructurada.
Resumiendo
Sobre las estructuras basicas que se crearon con la programaci6n tradicional, se
gest6 una revoluci6n de nuevas estructuras que se anadieron a la programaci6n,
a 10que se Ie lIam6 programaci6n estructurada; est a aport6 las bases 16gicas so-
bre la que se sustent6 la programaci6n modular; esta anadi6 otro concepto mas
para dar lugar a la programaci6n con abstracci6n de datos, y sobre todas esas
bases, se sustenta la programaci6n orientada a objetos.
Ejercicios
A) Elaborar un algoritmo para que guie a una persona normal -como usted lector-
a cambiar un foco fundido, considerando que algun foco de nuestra casa (sala,
comedor, bano, recamara, etc.) esta fundido, piense en los pasos que debera
seguir.
Algoritmo Cambiar faco fundido
1. Quitar el foco fundido
2. Colocar el foco nuevo
3. Fin