Вы находитесь на странице: 1из 42

Lgica matemtica y de programacin

LGICA MATEMTICA Y DE PROGRAMACIN

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Libro de contenido No. 5

Lgica matemtica y de programacin

Erika Holgun
Experta en Contenido

Albenis Corts
Asesora Pedaggica

Hector Jair Neira

Juan Carlos Velsquez


Corrector de Estilo

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Diseador Grfico

Lgica matemtica y de programacin

TABLA DE CONTENIDO

5 Esquema temtico: Computadoras y programacin .......................................................... 4


5.1 Historia de la programacin ............................................................................................ 4
5.2 Algoritmos y abstraccin .............................................................................................. 13
5.3 Relacin de algoritmos y abstraccin ........................................................................... 23
5.4. Modularidad, diagramas de flujo y pseudocdigos....................................................... 30
Resumen del Captulo No. 5............................................................................................... 42
Enlaces ............................................................................................................................... 42

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Bibliografa.......................................................................................................................... 42

Lgica matemtica y de programacin

5. Esquema temtico: Computadoras y programacin

Historia de la
Computacin

Mquinas
calculadoras

Computadoras
Electrnicas
Vlvulas de vaco y
computacin

Modelado de la
Realidad
La Mquina de
Turing
Algoritmos

Modularidad
Division de tareas
Diagramas de flujo
Pseudocdigos

5.1 Historia de la programacin

Sistemas Numricos
Las antiguas maquinas calculadoras son las predecesoras de la computadoras modernas,
aunque para el lector las actividades que realiza una computadora no tengan que ver de
forma evidente con el clculo, la realidad es que hablar de computo o de clculo deriva en lo
mismo, siendo entonces una computadora una mquina que hace clculos.

Hablando entonces de las primeras mquinas calculadoras es inevitable remontarnos al

podra realizar multiplicaciones que involucren varios dgitos sin mayor dificultad, y esto es
posible gracias a los conceptos de sistema posicional y a la existencia del cero, que se
aprenden a muy temprana edad y que resultan inherentes en el aprendizaje, a tal magnitud
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

baco, artefacto que si bien durante muchos siglos fue eficaz, en el presente cualquier nio

Lgica matemtica y de programacin

que no es perceptible el hecho de que se dominan estos conceptos, as pues, es pertinente


esclarecer estos conceptos y observar su importancia.

http://www.ningalu.com/encajes_cubos_diversion/abaco

Entonces, qu significa sistema posicional? Suponga que caminamos por un mercado de la


antigedad, estando en este lugar observamos un comerciante de jarrones, llegando a su
encuentro le preguntamos cuntos jarrones tiene, ste tal vez podra indicarnos
mostrndonos cinco rayas en el piso, donde obviamente cada raya corresponde a un jarrn:

http://www.artesanum.com/upload/postal/3/3/3/jarron-79428.jpg

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

IIII

Lgica matemtica y de programacin

Este modo de representar un nmero es prctico para pocas cantidades, de tal forma que es
muy engorroso utilizarlo para un nmero grande, supongamos que se cuentan con un
nmero mayor de jarrones:

IIIIIIIIIIIIIIIIIIIIIIIIIIIIII

http://tscboutique.com/exposicion_jarrones_2.jpg

Cuntos jarrones tiene el vendedor?, ahora no es fcil de contestar, dado que no es sencillo
leer la cantidad, de manera que los romanos plantearon una solucin al problema haciendo
equivalencias, as el V representa IIIII, adjudicndole un smbolo para distintas cantidades y
sumndolas para dar el resultado:

LIII = IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

El mtodo romano fue utilizado por mucho tiempo, sin embargo presentaba un inconveniente
importante cuando se queran realizar operaciones:

Realizar el clculo anterior es evidentemente muy complicado, y no fue sino hasta la


invencin

del

cero

que

la

realizacin

de

operaciones aritmticas

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

se

facilitaron

Libro de Referentes

MCMLCII x MXIC

Lgica matemtica y de programacin

considerablemente. A partir del cero cambi la forma de representar nmeros, por ejemplo el
smbolo C siempre valdr cien unidades no importa dnde est, si se tiene CC se lee como
doscientos, o si encontramos XC se leera como diez restado a cien y entendemos que los
smbolos tienen un valor constante, definido e inalterable.

Entonces, en la representacin numrica que involucra al cero, un 2 puede significar dos


unidades, o veinte en 20, o doscientos en 200, dependiendo de la posicin del cero y el
sistema numrico llamado sistema posicional, en donde un numero como 3692 significa:
Tres veces mil, ms, seis veces cien, ms, nueve veces diez, ms, dos veces uno.

Maquinas Calculadoras

A partir del nacimiento del sistema posicional se aceler el desarrollo de mquinas de


clculo, as naci la conocida Pascalina, siendo una de las primeras calculadoras mecnicas
que funcionaba a base de ruedas y engranajes. Fue inventada en 1645 por el matemtico,
fsico, filsofo y telogo Francs Blaise Pascal, quien comenz a trabajar en su calculadora
en 1642, cuando a los 19 aos de edad quiso ayudar a su padre, un recaudador fiscal,
creando una mquina que pudiera optimizar el tiempo de trabajo. Ya en 1652 Pascal haba
construido aproximadamente cincuenta prototipos, y en contraste haba vendido un poco ms
de una docena de mquinas, terminando con la produccin de la misma, teniendo en cuenta
el costo y complejidad de la Pascalina, adems subrayando el hecho que slo poda sumar y
restar, pero en 1670 el filsofo y matemtico alemn Gottfried Wilhelm Leibniz, perfeccion
esta pascalina aadindole a su versin la capacidad de multiplicar.

Otros hombres intentaron construir diversas maquinas que pudieran realizar operaciones de
forma mecanizada, pero no fue sino hasta la aparicin de Charles Babbage que se puede

fue sino hasta ese momento en que se puede considerar la aplicacin del concepto de
computadora en forma real, y es que la maquina analtica de Babbage no era una simple
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

encontrar la aparicin de una mquina que cumpla con estas caractersticas, y de hecho no

Lgica matemtica y de programacin

calculadora, la primera de las caractersticas destacables es su capacidad de recordar los


valores obtenidos en operaciones previas, esto muestra el gran ingenio de Babbage ya que
nadie hasta l haba pensado en que recordar los resultados previos sera trascendente para
las operaciones ya que siempre haba un humano dispuesto a anotar los resultados
intermedios , pero la cualidad ms importante que Babbage le dio a su mquina fue el poder
de decisin, ya que la maquina analtica poda obtener resultados intermedios y
almacenarlos si se requera, ejecutar instrucciones previamente almacenadas y mostrar
resultados, por ejemplo, como no se puede realizar una divisin entre cero, si el resultado
intermedio es cero y se debe dividir entre l, ah detena el proceso, avisando con algn tipo
de indicacin.

Charles Babbage nunca termin su invento, en parte porque en su poca no exista an la


tecnologa necesaria para culminar su proyecto, y porque siempre estaba pensando cmo
perfeccionar la maquina analtica, y cada vez que comenzaba a construir una nueva la
anterior no estaba terminada, sin embargo, Babbage es reconocido como el padre de la
computacin, ya que de sus ideas sirvieron de inspiracin a los hombres que luego lograron
retomar su mquina analtica y convertirla en un computador.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

http://www.dma.eui.upm.es/historia_informatica/Doc/Maquinas/MaqAnaliticaBabbage.htm

Lgica matemtica y de programacin

Computadoras electrnicas
La tecnologa fue uno de los aspectos que priv a Charles Babbage de terminar su mquina
analtica, no fue sino hasta a finales del siglo XIX y comienzos de siglo XX cuando la
electrnica surge como una revolucin y los sueos de Babbage se pudieron culminar.

Vlvulas y Cmputo

La vlvula de vaco (tubo de vaco o bulbo) tambin llamada vlvula termoinica, tiene su
nacimiento en la lmpara incandescente de Thomas Alba Edison, quien al ver que con el uso
el cristal de las lmparas incandescentes se iba oscureciendo, busc la forma de aminorar
dicho efecto, realizando para ello diversos experimentos, uno de los cuales lo llevo a
descubrir la existencia del flujo de corriente elctrica en un solo sentido a travs del
filamento; a esto se le llam el efecto Edison, a partir de este punto John Ambrose Fleming
hizo muchos ajustes a la vlvula de vaco y obtuvo la patente de la llamada vlvula de
Fleming en 1908, siendo sta el componente crtico que posibilit el desarrollo de la
electrnica durante la primera mitad del siglo XX; el bulbo le dio a los cientficos un
dispositivo capaz de cambiar de estado en forma muy rpida, encontrando sus primeros usos
en receptores de radio, ya en 1930 comenzaron a utilizar las vlvulas como contadores de
radioactividad, con esta aplicacin las vlvulas de vaco se convirtieron en un instrumento
que poda procesar informacin, entonces al poder realizar clculos con este dispositivo, que
en principio fueron simples, luego se le integraron funciones ms complicadas siendo su
principal misin el cmputo o clculo, de ah proviene la palabra computadora.

La idea principal de una computadora digital consiste en que un nmero puede ser
representado por unos y ceros, tomando un sistema binario. Si cada nmero puede ser

almacena en una vlvula, si circula corriente por la vlvula entonces hay un uno, de lo
contrario habra un cero.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

representado por otro del sistema binario, entonces se puede imaginar que un bit se

Lgica matemtica y de programacin

ENIAC
Las guerras mundiales que azotaron el mundo produjeron todo tipo de avances tecnolgicos,
de los cuales se aprovechara la industria. Las necesidades que la guerra planteaba pasaron
de curiosidades cientficas a necesidades de estado, una de ellas fue el clculo de tablas
balsticas, as como los clculos indispensables para disear nuevo armamento. Durante la
guerra, el gobierno de Estados Unidos contrat a cientos de mujeres que realizaban estos
clculos a mano, razn por la cual se les llamaba calculadoras a estas personas. Sin
embargo, no se daban abasto para realizar todas las operaciones que se requeran en el
frente de batalla.

http://kdm2.files.wordpress.com/2008/10/eniac3.jpg
Bajo estas circunstancias, un proyecto que abordara la computacin de alta velocidad era de
inters; en tiempos de paz, cualquier proyecto de este tipo habra sido desechado
simplemente por el costo.

Cuando Estados Unidos ingres de lleno al combate, John William Mauchly encontr espacio
y tiempo para madurar sus ideas al compartirlas con J. Presper Eckert Jr., un joven de

conocimiento

para

construir

una

calculadora

electrnica.

Durante

tena el

muchos

das

intercambiaron sus opiniones y Eckert termin creyendo que esa calculadora

era

perfectamente realizable y as se lo hizo saber a Mauchly. En 1942 Mauchly escribi un


Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

apenas veinte aos, Eckert era un excelente ingeniero, en tanto Mauchly

10

Lgica matemtica y de programacin

documento de 5 pginas titulado The Use of Vacuum Tube Devices in Calculating el uso de
las vlvulas en clculo. Este documento se convirti en la base del reporte enviado a la
Moore School de los laboratorios de investigacin de balstica de la armada. El 5 de junio de
1942, se firm el acuerdo entre los directivos de la Universidad de Pennsylvania y el
departamento de defensa de Estados Unidos.

La mquina llamada ENIAC Electronic Numerical Integrator And Computer, fue terminada
en 1944, ocupaba unos 50 metros de ancho y tena 20 paneles llenos de focos que indicaban
el estado de la mquina. La ENIAC poda sumar 5000 nmeros en un segundo o multiplicar
14 nmeros de 10 dgitos. El primer trabajo que se le encomend fue realizar millones de
clculos asociados a la construccin de la bomba de hidrogeno.

Nacimiento de la Programacin
Qu tiene la ENIAC de relevante en la historia de la programacin? En primer lugar, se
trata de un dispositivo que no es de propsito especfico. La ENIAC rompi con estas
ataduras del dispositivo a la aplicacin y se volvi ms general, porque ella poda aplicarse a
distintos problemas que involucraban clculos. Sin embargo, el inconveniente ms grande
que tena era que las instrucciones se proporcionaban alambrndolas. Los operadores
colocaban alambres fsicos que indicaban a la mquina que es lo que tena que hacer.

John Von Neumann, un brillante matemtico, pens que esa no era forma prctica de
proporcionar instrucciones a la computadora. l pensaba que las instrucciones no deban ser
proporcionadas por medio de alambres, sino que se poda almacenar en el interior de la
computadora, en su memoria. El modelo propuesto para lograrlo es conocido como
Arquitectura de Von Neumann, y a la fecha sigue siendo el modelo que se utiliza para

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

construir computadoras.

11

Lgica matemtica y de programacin

Unidad de memoria

Unidad de entrada

Unidad de control

Unidad de salida

Unidad Aritmtica
lgica

Unidad de control

La arquitectura de un equipo actual basado en las ideas de Von Neumann implica que la
mquina debe tomar una a una las instrucciones. stas se proporcionan desde un dispositivo
llamado de entrada. Las Instrucciones se transfieren a la memoria de la computadora y de
ah a la unidad de control, la cual interpreta el significado de la instruccin y, auxiliado por la
unidad aritmtico lgica, la ejecuta. Cuando as lo indique el programa, el resultado se enva
a la unidad de salida, en donde el humano recoger el resultado.

Suponga que en vez de instruir a la computadora con la palabra SUMA, la construimos de tal
forma que si encuentra 001, entienda que se trata de una suma, y as para cada instruccin
asociamos un nmero. La mquina encuentra un nmero y sabe qu clase de instruccin
debe ejecutar, ya que est alambrada para ejecutar esa tarea, justo cuando la mquina vea
ese nmero. La unidad de control es capaz de realizar estas tareas. Los nmeros que
significan instrucciones se encuentran almacenados en la memoria, al igual que los datos.
Sin embargo, han sido puestos ah por un ser humano que ha determinado cules son las

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

instrucciones que debe seguir la mquina y en qu orden deben ser ejecutadas.

12

Lgica matemtica y de programacin

La UNIVAC es considerada la primera computadora que emple este modelo de programas


almacenados en memoria, la primera computadora UNIVAC fue entregada al Departamento
de Censos en Junio de 1951, poda realizar la suma de dos nmeros de 10 dgitos a una
velocidad de 100.000 sumas por segundo.

Los equipos que le siguieron fueron adquiriendo mayor podero de procesamiento, ms


almacenaje de memoria y velocidad de transferencia, pero el lenguaje de programacin
estaba atado a la forma como se construa la mquina, muy pronto se vio la necesidad de
crear lenguajes que fueran ms parecidos a un lenguaje humano, y que no variaran de una
maquina a otra, as que ya no fue necesario aprender el lenguaje mquina de la UNIVAC
1007 y luego otro para la UNIVAC 1100, sino que bastaba con aprender FORTRAN.

5.2 Algoritmos y Abstraccin


Los programas son entidades sumamente abstractas, es decir que no tienen caractersticas
fsicas que puedan ser percibidas por nuestros sentidos (peso, olor, color, sabor), es ms, un
programa es una entidad dinmica que slo existe como tal en el momento de ejecutarse.
Antes y despus de su ejecucin, es un conjunto de instrucciones estticas que tan solo
estn ocupando un espacio determinado de memoria. Por este motivo, y teniendo en cuenta
que un programa constituye la mitad de cualquier computadora til, es necesario analizarlo
con detenimiento para poder establecer su correcto funcionamiento.

As pues, es natural que en este instante se est analizando la abstraccin de la que se


habl con anterioridad como una desventaja de los programas, sin embargo, se puede
expresar que la abstraccin es la clave del diseo de software, ya que fue esta la encargada
de sacar al ser humano de su estado cavernario y ha logrado crear la sociedad tecnificada

Si se recuerda, al principio los programadores enviaban todas las instrucciones a las


computadores directamente, mediante conmutadores binarios, colocados en los paneles de
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

que hoy en da poseemos.

13

Lgica matemtica y de programacin

control; con el paso de los aos se lleg al siguiente nivel, donde mediante la creacin de
nemotcnicos se evit que los programadores recordaran las largas cadenas de bits que
introducan constantes errores.

Despus de esto, se crearon instrucciones definidas por el programador, los conjuntos de


instrucciones se agrupaban con nombres, logrando que una sencilla macroinstruccin
ejecutara muchas a la vez.

Finalmente, los lenguajes de alto nivel evitaron a los programadores pensar en la


arquitectura de la mquina en la cual se implantan sus sistemas, para de esta forma
dedicarse a pensar en la solucin del problema. Cualquier lenguaje posee cierto conjunto de
estructuras de control suficientes que le permiten implantar cualquier problema que sea
factible de expresar en forma algortmica.

Esto se puede analizar ms fcilmente mediante el siguiente esquema:

Utilizacin de
conectores
binarios

Creacin de
nemotcnicos

Instrucciones
definidas por el
programador

Lenguajes de
alto nivel

Como conclusin de lo anteriormente expuesto, se puede decir que el hecho de que un


programa sea una entidad abstracta, es una gran ventaja si se enfoca en que de esta
manera nos evita pensar en los detalles ms relevantes y distraernos en aspectos que
carecen de importancia.

Finalmente se debe tener en cuenta que si cualquier lenguaje de programacin posee un

fundamentales, entonces cualquier programador, al conocer ese conjunto finito de


instrucciones, podr implantar cualquier algoritmo con total independencia del lenguaje en
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

conjunto mnimo y finito de instrucciones de control que podemos considerar como

14

Lgica matemtica y de programacin

cuestin; de esta manera se alcanza la abstraccin que permite desentenderse del lenguaje
de implantacin y de las diferencias entre stos, para poder enfocar nuestros pensamientos a
la resolucin de problemas.

Modelado de la Realidad

El objetivo del hombre a lo largo de los aos ha sido encontrar maneras para representar el
mundo que lo rodea; los diversos niveles de abstraccin definen en cierta forma el grado
evolutivo del pensamiento.

En algunas ocasiones el observar un problema y tratar de representarlo se convierte en una


tarea de alto grado de complejidad, por ejemplo, en una fbrica ensambladora se tienen
estipulados ciertos tiempos para cumplir cada una de las tareas que se desarrollan en cada
una de las etapas correspondientes con miras a entregar determinado producto; en general,
un anlisis se plantear en funcin de los parmetros ms comunes dentro de la operacin
cotidiana. Sin embargo, una avera no es parte de la operacin cotidiana pero se puede
llegar a presentar en cualquier momento, y es uno de los casos que se debe contemplar
dentro de la representacin de la operacin de la fbrica.

Un programa es una secuencia de instrucciones que solucionan un problema sencillo y que


la mayora de veces no requieren de mucho anlisis o largos tiempos de desarrollo; sin
embargo, en las grandes empresas un simple programa no es suficiente para cumplir con

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

todas las necesidades de la misma, razn por la cual es necesario migrar al concepto de

15

Lgica matemtica y de programacin

Sistemas de informacin

Programa
caracterizacin
de productos

Programa rea
legal

Programa para tesorera

El sistema de informacin est constituido por un gran nmero de programas, se encargan


de gestionar la informacin importante de la empresa tales como la tesorera, la parte legal,
las ventas, la caracterizacin de los productos, etc. Es posible que cada una de esas partes
requiera a su vez de un sistema de informacin compuesto por miles de lneas de cdigo o
cientos de programas, stos deben poder intercomunicarse efectivamente entre s, incluso si
estn distribuidos en zonas geogrficas diferentes.

La complejidad de estos sistemas radica en que deben reflejar en cualquier instante de


tiempo la realidad de la empresa, es decir, deben actuar como un espejo de lo que sucede
realmente dentro de la misma.

Esta necesidad de poder tener un espejo de la realidad, permite que los expertos en

manejable por las personas que le dan mantenimiento, ya que si no es manejable (tanto en la
etapa de construccin como en la de mantenimiento), no puede ser de ninguna forma
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

construccin de sistemas se enfoquen en asegurar que el sistema que se entrega es

16

Lgica matemtica y de programacin

confiable y se vuelve finalmente un programa intil. A la vez, se requiere que muestren los
resultados que otorga, y que efectivamente estn acordes con la realidad o que por lo menos
se acerquen mucho a la misma.

Otra caracterstica que deben presentar los programas es que sean computables, es decir,
representables a travs de proposiciones que los resuelven.

Sin embargo, el grado de exactitud depende de los lmites establecidos por razones
econmicas, de tiempo, recursos tecnolgicos y humanos; igualmente un buen anlisis
nicamente contendr aquellos elementos que son necesarios para la operacin del sistema,
los lmites no slo definen el nivel de automatizacin, sino tambin el costo final del producto.

Hasta este punto, surgen algunos interrogantes relacionados a la manera en que una
computadora puede tomar la complejidad del mundo real de tiempo y espacio y convertirla en
un algoritmo de unos y ceros, y hasta qu punto esta representacin est acorde con la
realidad. Estos interrogantes son en s el reto de las ciencias de la computacin hoy en da, y
la tarea de los especialistas es expresarlos en modelos particulares que sirven como
herramientas y que llevan a visualizar el gran campo de desarrollo que an est por venir. El
modelado de sistemas es un reto que crece cada da, ya que implica mayores interacciones
con el mundo.

A raz de esto, la comunidad acadmica ha trabajado en la investigacin de metodologas


que permitan abordar estos retos con relativo xito, y han dado como resultado un conjunto
de etapas denominadas ciclo de vida.

En general, el ciclo de vida es un conjunto de etapas principales que se describen a

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

continuacin:

17

Lgica matemtica y de programacin

Anlisis

Evolucin

Diseo

Mantenimiento

Programacin

Instrumentacin

Pruebas

Anlisis: Como primera etapa del ciclo de vida, es en donde se detecta un problema y
se trata de establecer cul es el mbito del mismo, caractersticas, limitaciones y
patrones que contiene lo que se quiere llegar a solucionar. El resultado es un
documento llamado Requerimientos del sistema, desarrollado por un analista de
sistemas, en donde se listan las necesidades a resolverse.

Diseo: Luego de la etapa de anlisis, se toman las caractersticas que necesita el


sistema y se organizan en algn modelo que sea fcilmente programable; Igualmente,
se debe elegir entre las diversas herramientas y formas de construir el sistema, dando

algunas consideraciones relacionadas con el tipo de proyecto. El encargado de esta


etapa, conocido como Arquitecto de soluciones, podr entregar diagramas de entidad

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

como resultado diferentes documentos que dependen de la metodologa, el autor, y

18

Lgica matemtica y de programacin

relacin, diagramas de flujo de datos, diagramas de estados, diagramas de capas,


entre otros.

Programacin: El programador se encargar de transformar las especificaciones y los


documentos de diseo en un programa que funcione, debe tener en cuenta la parte de
eliminacin de errores (depuracin) y en caso de que no sea un solo programador
sino varios, se deber tener en cuenta una parte en la que se unan desarrollos
individuales con el fin de conformar un sistema global (integracin).

Pruebas: Es necesario realizar pruebas integrales, que son ensayos que verifiquen
que todos los programas pueden funcionar juntos. Dependiendo de las metodologas
es probable que se realicen otras pruebas a los sistemas.

Instrumentacin: Luego de realizar las pruebas, el sistema se instala en los equipos


donde ser usado. La complejidad de esta labor puede ser simple, como la copia de
un programa ejecutable, o alta como la configuracin de miles de equipos, instalacin
de redes, entre otras.

Mantenimiento: Se debe dejar un tiempo despus de la instrumentacin, de manera


que el sistema empiece a mostrar los errores que no se detectaron en la etapa de
pruebas. Durante este periodo de estabilizacin se realizan labores de afinacin y
pruebas.

Evolucin: Esta parte del ciclo se presenta en todo sistema vivo, ya que despus de
que el programa se encuentra en funcionamiento, se inicia nuevamente el ciclo de
vida, a medida que se detectan nuevas necesidades que nos llevan a la etapa de

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

anlisis.

19

Lgica matemtica y de programacin

Algunos autores mezclan las etapas o las desglosan en muchas fases diferentes, sin
embargo, todas concatenan con las que se nombraron bsicamente con anterioridad.

La mquina de Turing
La conocida mquina de Turing es un modelo matemtico, propuesto por el cientfico ingls
Alan Turing, que es til para resolver un problema dado en forma algortmica.

Se dice que la mquina de Turing es una mquina terica, es decir, es un dispositivo cuyo
funcionamiento se estudia sin necesidad de construirlo realmente; que lee unas instrucciones
en forma de smbolos y cambia de estado gracias a ellos.

Como ejemplo se va a suponer que la mquina terica que se quiere trabajar es un robot que
tiene tres estados, es decir, que sabe hacer tres cosas: caminar, parar y saludar.

Ahora, se supone que el robot tiene una abertura por la que se puede introducir una cinta de
papel perforada, que no es ms que una cinta que tiene uno o ms agujeros en
determinados tramos. El nmero de agujeros en cada tramo le va a decir al robot lo que tiene
que hacer, es decir, mediante estas instrucciones se forma la funcin de estado del
autmata, as:
Estado

Agujeros

Caminar

Ningn agujero

Parar

Un agujero

Saludar

Un agujero ms

se le introduce una cinta que posea dos agujeros y un espacio (00X), el robot leer el primer

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

De esta manera, si el robot se encuentra caminando antes de recibir la primera instruccin y

20

Lgica matemtica y de programacin

agujero y parar , leer el segundo y saludar y al llegar al espacio sin perforar volver a
caminar, as:

Si la cinta que se le introduce ahora es 0X00X, el robot se comportar as:

En general, el autmata del ejemplo lee unas instrucciones (algoritmo) y cambia su estado en
funcin de stos.

Con base en lo anterior se puede expresar que, una mquina de Turing es un autmata que
consta de una cabeza lectora y una cinta en la que se pueden leer smbolos, borrarlos,
escribirlos y da la opcin de moverse a la derecha o a la izquierda. Tambin consta de una
funcin de estado que determinar los cambios que se deben producir en funcin de las

Este aparato es capaz de implementar cualquier problema matemtico que se establezca,


con la nica condicin de que este se pueda expresar mediante un algoritmo, es decir, que
se pueda estructurar la solucin del problema en un nmero de pasos determinados.
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

instrucciones que reciba.

21

Lgica matemtica y de programacin

http://elmaquinadeturing.wordpress.com/2009/12/16/%C2%BFque-es-una-maquina-de-turing-ii/

Se puede escribir una cadena de smbolos que represente el problema, smbolos que sern
ledos, escritos y borrados por la mquina, adems, el autmata debe recordar el paso en el
que se encuentra para poder dar el siguiente en la direccin correcta.

Al igual que la mquina de Turing, una computadora es un modelo de modelos, basta con
obtener el modelo de determinada situacin para que la computadora pueda copiarlo y
realizar una simulacin de la realidad que quiere representarse. El modelo slo tendr dos
respuestas posibles: puede desarrollar el problema o no.

Si el problema alcanza un punto de fin o se puede solucionar, se dice que el problema es


computable o de solucin algortmica, si no lo hace, se tendr un problema indecible, es
decir, sin solucin algortmica.

Alan Turing demostr en el ao de 1936 que no hay problemas indecibles, y plante el


siguiente razonamiento y las siguientes hiptesis:

Si existe una Mquina de Turing para representar un problema, entonces este tiene

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

solucin algortmica.

22

Lgica matemtica y de programacin

Si un problema tiene solucin algortmica es porque existe una Mquina de Turing que
lo representa.

Como ejemplo de lo anterior se puede pensar que las ecuaciones de Newton o Einstein son
modelos de la realidad que la representan y la predicen; as pues, cualquiera que se base en
estos modelos podr reproducir el fenmeno representado.

5.3 Relacin de algoritmos y abstraccin


Anteriormente se observ que existe una mquina capaz de modelar cualquier algoritmo que
se plantee correctamente, es decir, bsicamente una computadora es una Mquina de
Turing; cualquier cosa que pueda realizar va a ser conclusin de que se ha establecido un
modelo algortmico para realizar dicho trabajo.

Para establecer un modelo de manera correcta, es necesario recurrir a la abstraccin con el


fin de obtener slo los puntos esenciales que realmente definen al problema sobre el cual se
est trabajando.

As, la abstraccin cuenta con variadas herramientas que ayudan a la manipulacin de los
objetos sobre los que opera, de manera que para trabajar en un sistema de programacin, se
necesita en primer lugar desglosar cuales son los objetos que lo conforman. Un vistazo
rpido mostrar dos posibles vistas bsicas de un programa:

DATOS

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

PROGRAMA

23

Lgica matemtica y de programacin

La gran mayora de los programadores y prcticamente todos los usuarios finales slo
prestan atencin a los resultados del sistema, a los datos que arroja, para establecer un
punto de medicin de la calidad del programa.

Cuando se hace referencia a la calidad de un programa, se analiza que un buen sistema


deber satisfacer las necesidades del usuario, es decir, se relaciona a los datos que el
sistema arroja como resultado.

El segundo objeto de un sistema de cmputo es el programa, que es un conjunto de


estructuras de control que manipulan datos. Por control se enfoca a las instrucciones que le
indican a un determinado programa, cul es la siguiente instruccin a ejecutar. Normalmente,
el flujo es secuencial, sin embargo, en algunas ocasiones, existen instrucciones que le
indican a la mquina regresar o adelantar instrucciones alterando el flujo secuencial.

Cuando un programa posee estructuras de control que son complejas, el desarrollo y su


posterior mantenimiento desembocarn en mayores costos, razn por la cual se busca tener
programas con estructuras sencillas que faciliten la lectura del programa y se ayude a un
mantenimiento posterior.

En el control, la abstraccin es la encargada de la manera como se puede tener y mantener


un control sencillo y eficaz dentro del algoritmo que manipula los datos.

Al tomar un alto nivel de abstraccin, se lleva a la abstraccin funcional, que se muestra a


continuacin:

PROGRAMAS

PROGRAMAS

DATOS

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

DATOS

Libro de Referentes

DATOS

24

Lgica matemtica y de programacin

Cada una de estas formas de abstraccin compone en s toda una filosofa de pensamiento.
Y cada enfoque representa una manera distinta de visualizar un sistema, lo que permite
abordar el problema. Todas estas formas de abstraccin son analizadas con profundidad en
una rama de la Ingeniera que se define como Ingeniera de software.

Tipos y lenguajes de programacin


Al momento de empezar a disear un programa, se recomienda adoptar una determinada
metodologa, lo cual garantizar que despus no se cometan errores que incluso
imposibiliten el funcionamiento del mismo. As pues, se deben asumir normas que
estandaricen la programacin, disminuyendo costos y permitiendo la independencia del
programador y la seguridad.

Existen variados tipos de programacin que tambin se conocen como Tcnicas de


programacin. A continuacin se describen brevemente cada una de las mismas.

Programacin estructurada

Este tipo de programacin se compone por un conjunto de tcnicas que han evolucionado,
permitiendo un aumento considerable de la productividad del programa mientras se reduce el
tiempo de depuracin y mantenimiento del mismo. En este tipo de programacin se reducen
considerablemente los errores mediante la utilizacin de un nmero limitado de estructuras
de control.

Las caractersticas que presenta este tipo de programacin son:

El programa se descompone en etapas o estructuras jerrquicas de refinamiento, lo


que se conoce como top-down.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

25

Lgica matemtica y de programacin

Se usan los recursos abstractos que conllevan a la simplicidad, esto es, las acciones
complejas se descomponen en otras mucho ms simples que son ms fciles de
resolver.

Se usan bsicamente tres tipos de estructuras: secuenciales (la salida de una accin
es la entrada de la otra), selectivas (evalan condiciones y en funcin de su resultado
se realizan determinadas acciones) y repetitivas (las secuencias de instrucciones se
realizan un determinado nmero de veces).

De esta manera, la programacin estructurada da como resultados programas ms fciles de


entender mediante la reduccin de la complejidad de las pruebas; al mismo tiempo, se
aumenta la productividad del programador y se permite que los programas queden mejor
documentados internamente.

Un punto clave para determinar si un programa est estructurado o no, es analizar si posee
un nico punto de entrada y uno solo de salida, adems, nunca aparecen bucles infinitos.

Programacin modular

Consta de varias secciones que se encuentran divididas, interactuando a travs de llamadas


de procedimientos que integran el programa en su totalidad. Existe un programa principal
que coordina las llamadas a mdulos secundarios y pasa los datos en forma de parmetros;
ste es el encargado de realizar una supervisin de cada uno de los mdulos y de delegarles
el control necesario para que puedan realizar sus correspondientes tareas.

Cada uno de los mdulos que conforman al programa, pueden contener sus propios datos y

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

pueden llamar a otros mdulos o funciones.

26

Lgica matemtica y de programacin

La gran ventaja que presenta este tipo de programacin radica en que un mismo programa
puede desarrollarse por diferentes programadores a la vez, ahorrando un tiempo importante
en el diseo del algoritmo y en su posterior codificacin. Un mdulo puede ser codificado sin
afectar a los dems, incluso, sin alterar su funcin principal.

Programacin orientada a objetos

Aumenta notablemente la velocidad de desarrollo de los programas, gracias a una tcnica


denominada reutilizacin de objetos, que finalmente es el elemento principal de este tipo de
programacin.

Un objeto es un conjunto complejo de datos y programas que poseen estructura y forman


parte de una organizacin; cada objeto contiene varios datos que se encuentran bien
estructurados y que pueden ser visibles o no, dependiendo tanto del programador como de
las acciones del programa en un momento dado.

Una de las principales caractersticas de este tipo de programacin es el polimorfismo y la


herencia, las cuales se describirn a fondo en el ltimo captulo de este curso.

Otros tipos de programacin


Programacin concurrente

Esta tcnica de programacin se utiliza con el fin de realizar varias acciones a la vez;
comnmente se utiliza con miras a controlar los accesos de usuarios y programas a un
recurso de forma simultnea. Es una programacin ms lenta y laboriosa y sus resultados

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

son lentos en las acciones.

27

Lgica matemtica y de programacin

Programacin funcional
Su principal caracterstica es el hecho de permitir declarar y llamar funciones dentro de otras
funciones.

Programacin lgica

Se trata de un tipo de programacin basada en el clculo de predicados, la cual se utiliza en


inteligencia artificial y en pequeos programas infantiles.

Por otro lado, los lenguajes de programacin son herramientas que permiten crear
programas y software. Estos permiten facilitar la tarea de programacin, ya que disponen de
formas adecuadas que son ledas y escritas por personas de manera independiente.

En general, estos representan en forma simblica y en forma de textos, los cdigos que
finalmente podrn ser ledos por otra persona.

Entre los lenguajes de programacin ms conocidos se encuentran:

Delphi

Visual Basic

Pascal

Java

Definicin y clasificacin de lenguajes de programacin

humanos, ya que aunque las primeras slo trabajan con nmeros binarios, estos nos
permiten, como humanos, utilizar palabras y otros sistemas de numeracin.
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Los lenguajes de programacin permiten cerrar el abismo entre las computadoras y los

28

Lgica matemtica y de programacin

El ordenador slo entiende las instrucciones en cdigo mquina, un cdigo que es especfico
de la computadora, a partir del cual se elaboran lenguajes de bajo y alto nivel.

Lenguaje de bajo nivel

Es aquel en el que se usan cdigos muy cercanos a los de la mquina, lo que permite la
elaboracin de programas muy potentes y sobre todo rpidos; sin embargo, son de difcil
aprendizaje.

Lenguajes de alto nivel

Son lenguajes con un uso muchsimo ms fcil, debido a que en ellos un solo comando o
una sola instruccin puede equivaler a muchos cdigos mquina. En este tipo de lenguaje el
programador escribe su programa mediante una lista de secuencias de instruccin, y antes
de ejecutarlo se traduce a cdigo mquina de una sola vez (lenguajes compiladores) o
interpretndolo instruccin por instruccin (lenguajes intrpretes). Entre los lenguajes de alto

Pascal

Cobol

Basic

Fortran

C++

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

nivel ms famosos se encuentran:

29

Lgica matemtica y de programacin

5.4 Modularidad, diagramas de flujo y pseudocdigos


Mdulos
A lo largo del anlisis del captulo se han establecido, entre otras, dos premisas de gran
importancia para el programador:

1. La resolucin de un programa debe hacer uso de algn mtodo de abstraccin.


2. La particin del sistema en mdulos redundar en un menor esfuerzo y en un menor
costo final del producto.

El proceso de elaboracin de un sistema de informacin puede llegar a ser una actividad tan
compleja, que el cerebro no puede retener toda la informacin necesaria. Con el fin de
ayudar al cerebro a plasmar las ideas, existen una serie de herramientas que muestran los
cambios que una idea (algoritmo) va experimentando en el transcurso del desarrollo del
programa.

Una de estas herramientas es el diagrama de flujo, que en general es la ms utilizada para la


enseanza de los lenguajes de programacin desde los inicios de la computacin. Es una
representacin grfica de cada una de las acciones que la mquina realiza paso a paso,
ofreciendo una panormica completa del flujo de instrucciones que se desarrolla.

En general, un diagrama de flujo muestra de forma grfica lo que de otra forma slo es una
abstraccin difcil de visualizar. No existe un estndar globalmente aceptado sobre los
smbolos que se utilizan para los diagramas de flujo, los ms utilizados se listan en la

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

siguiente tabla:

30

Lgica matemtica y de programacin

SMBOLO

SIGNIFICADO
Se utiliza para representar el inicio o el fin de
un diagrama de flujo.
Representa la lectura de datos desde un
dispositivo de entrada.
Se conoce con el nombre de smbolo de
proceso y se usa para representar un bloque de
instrucciones.
Se conoce con el nombre de diamante de
decisin, su fin es representar una pregunta.
Representa salida de informacin, hacia el
dispositivo de presentacin de datos.
Se usa para representar ciclos de repeticin por
medio de sentencias FOR.

En casos en que los sistemas de programacin sean demasiado grandes esta herramienta
no es muy prctica, debido a que, por ejemplo, sera un problema representar el diagrama de
Word 1.0 que sali al pblico en el ao 1990 y que contena 256000 lneas de cdigo. Sin
embargo, para los programas cortos es una representacin didctica de gran utilidad.

Los diagramas de flujo son una herramienta para mostrar los principios de funcionamiento de
las estructuras de control, y ayudar a visualizar la forma como un programa es controlado por
las instrucciones, es decir, es una herramienta que permite visualizar construcciones
abstractas sin paralelo en el mundo fsico.

Ejemplo:

Se realizar un programa que calcule el salario de un trabajador a partir del nombre, horas

salario.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

trabajadas, y precio de la hora, sabiendo que los impuestos aplicados son del 10% sobre el

31

Lgica matemtica y de programacin

En trminos generales, el diagrama nos muestra que primero se debe leer el nombre del
trabajador, las horas trabajadas y el precio por hora, estos datos pueden ser estipulados con
anticipacin o pueden preguntarse al usuario del programa final.

Luego, se hace la operacin para calcular el salario que ganara el trabajador segn las
horas que trabaj y el costo de cada hora, datos que ya se leyeron con anterioridad, luego, el
siguiente paso es calcular con el descuento respectivo que se especific, es decir del 10%.

Finalmente se muestran los resultados de los clculos realizados.


Diseo preliminar

Uno de los enfoques ms populares ha sido el diseo arriba-abajo ms conocido como TopDown.

Para iniciar un diseo modular de este tipo, es necesario partir de las funciones mayores

de abstraccin (nivel 1), de manera tal que cada una de estas se descomponga en partes
constitutivas ms elementales (nivel dos), y estas, a su vez, en otras muchas ms bsicas

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

hacia las menores. El diseo de las funciones mayores se debe realizar en el nivel ms alto

32

Lgica matemtica y de programacin

(nivel 4). De esta manera el proceso se repite hasta que se obtengan funciones fcilmente
codificables.

Sin lugar a dudas con esta divisin se facilita notablemente el trabajo del programador, el
nmero de subdivisiones va a estar relacionado con la experiencia del mismo y de sus
conocimientos en el lenguaje en el cual va a ser implementado.

Ejemplo:
Se supone que se quiere implementar una funcin que se denominar prueba.

El primer paso para desarrollar el diseo modular arriba-abajo ser definir las entradas, el
proceso y la salida deseada, as:

Prueba
ACEPTA datos
EDITA datos
EFECTUA OPERACIN
IMPRIME RESULTADOS

A partir de estas funciones generales es posible tomar cada una y dividirlas hasta encontrar
sus componentes esenciales:

ACEPTA datos
INICIA variables

GUARDA informacin
RETORNA
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Muestra por pantalla informacin importante

33

Lgica matemtica y de programacin

Se puede observar que an no se ha aplicado ningn lenguaje de programacin, por lo que


se tienen sentencias generales que la gran mayora de veces ni siquiera son ejecutables, lo
importante es que se tiene un grado de abstraccin tan alto, que no es necesario centrarse
en detalles.

Lo anterior es de gran importancia ya que si se analiza, muchos programadores se enfrascan


en los detalles y convierten algo trivial en un problema sin solucin.

El diseo de programas mediante el modelo arriba-abajo permite dar soluciones generales


que den una primera aproximacin a la solucin general del problema, y es til cuando se
comienza en el mundo de la programacin.

Pseudocdigo

Es una herramienta para el desarrollo y mantenimiento de programas, consiste en un


conjunto de rdenes expresadas en frases cortas dichas en espaol, en las cuales existe un
solo verbo. La caracterstica de ser en espaol le da independencia para su implementacin,
lo cual le evita al programador pensar en los detalles hasta el momento que sea necesario.

Las principales caractersticas de los pseudocdigos se resumen en la facilidad de utilizar y


manipular su forma de representacin, adems de la manera como facilita el hecho de utilizar
posteriormente cualquier lenguaje de programacin.

Instrucciones primitivas.

Instrucciones de proceso

Instrucciones de control

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

De manera general, un pseudocdigo debe permitir la descripcin de:

34

Lgica matemtica y de programacin

Instrucciones compuestas

Instrucciones de descripcin

Si se quiere comentar un pseudocdigo se le antepone al comentario dos asteriscos (**).

As mismo, la estructura general para su realizacin contiene dos partes que se desglosan,
as:

Programa

Mdulo
Cabecera
Tipos de datos
Constantes
Estructura de
un
pseudocdigo

Variables
Inicio

Cuerpo

Instrucciones

Fin

Ejemplo:

resta, multiplicacin y divisin de los mismos, el resultado es el siguiente:

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Se plantea un pseudocdigo que permita ingresar datos y conocer el resultado de la suma,

35

Lgica matemtica y de programacin

ALGORITMO: Operaciones

** Nombre del pseudocdigo

ENTRADAS:
i, j: REAL;

** Establecimiento de variables de entrada y su tipo

suma: REAL;

** Establecimiento de la variable SUMA de salida y su tipo

resta: REAL;

** Establecimiento de la variable RESTA de salida y su tipo

divisin: REAL;

** Establecimiento de la variable DIVISIN de salida y su tipo

multiplicacin: REAL;

** Establecimiento de la variable MULTIPLICACIN de salida y su tipo

INICIO

** Inicio del programa

ESCRIBIR Introduzca el primer valor:

** Salida por pantalla

LEER i

** Leer los datos y guardarlos en i.

ESCRIBIR Introduzca el segundo valor:

** Salida por pantalla

LEER j

** Leer los datos y guardarlos en j.

suma =i + j

** Suma de los valores

resta = i j

** Resta de los valores

divisin = i / j

** Divisin de los valores

multiplicacin =i * j

** Multiplicacin de los valores

ESCRIBIR i, + , j, = , suma

** Salida por pantalla

ESCRIBIR i, - , j, = , resta

** Salida por pantalla

ESCRIBIR i, / , j, = , divisin

** Salida por pantalla

ESCRIBIR i, * , j, = , multiplicacin

** Salida por pantalla

FIN

** Fin del programa

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

SALIDAS:

36

Lgica matemtica y de programacin

Refinamiento de los mdulos

Consiste en que una o varias instrucciones de un programa dado se dividan en una o ms


instrucciones detalladas. Esta descomposicin sucesiva termina cuando todas las
instrucciones estn expresadas en trminos de computador, usando un lenguaje de
programacin.

Es importante notar que a medida que se refinan las tareas, tambin los datos son refinados
o descompuestos, razn por la cul es natural refinar el programa y las especificaciones de
los datos en paralelo.

Se debe tener claro que cada paso de refinamiento necesita algunas decisiones de diseo.
Es importante que el programador sea consciente de ello y de la existencia de soluciones
alternativas.

En un sistema de programacin, un programa puede mandar llamar a funciones que realicen


ciertas tareas especficas. Cada funcin tiene un conjunto de datos que se denominan
parmetros de entrada; stas pueden llamar a otra funcin que le permita cumplir su fin, de
manera que se crean relaciones de jerarqua en donde la funcin que realiza la llamada se
conoce como funcin padre o mdulo padre de la funcin que ha mandado a llamar.

El programa que realiza la llamada enva los datos con los que debe trabajar la funcin a la
que llama por medio de una lista de parmetros, que a la final ser una lista de variables
independientes de una funcin. En el lenguaje de programacin es importante definir
cuntos, en qu orden y de qu tipo son los datos que viajan de una funcin a otra, o de un
mdulo a otro. Esta especificacin de nmero, tipo y orden recibe el nombre de interfaz del

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

mdulo.

37

Lgica matemtica y de programacin

Acoplamiento

Una de las metas fundamentales en el diseo modular es la flexibilidad que adquiere cada
uno de los mdulos que componen el programa. Esta caracterstica normalmente se expresa
en funcin de la facilidad que presenta el programa al cambio, y qu tanto afectan dichos
cambios al sistema en general.

Ejemplo:

Se tiene un subsistema de actualizacin de archivo maestro de la informacin primaria. Aqu


se encuentra la apertura, mezclas, borrados necesarios y un mdulo de reordenamiento de
datos.

Es as como el mdulo encargado de reordenar los datos pide como entrada un archivo
maestro, un archivo auxiliar de caractersticas predefinidas y da como salida un
archivo_maestro_actualizado.

El archivo auxiliar es creado por el mdulo padre de la computadora y debe encontrarse


vaco.

El diagrama que ilustra mejor esta explicacin es el siguiente:

Archivo_maestro_actualizado

Archivo maestro
Ordenar (Archivo_maestro)
Archivo auxiliar

Impresin
(Archivo_maestro)

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Clculo de totales

38

Lgica matemtica y de programacin

Suponer que se requiere de un archivo auxiliar con las caractersticas mencionadas, es


restringir el mtodo de ordenamiento del archivo, y lo que es peor, significa exponer al
mdulo a que cualquier mdulo padre haga uso del archivo auxiliar y lo deje en un estado no
recomendable para su uso por la computadora.

Lo anterior muestra que dentro del diseo modular se debe cuidar que cada mdulo sea una
pieza intercambiable de forma anloga, lo que sucede con el hardware de una computadora,
en donde basta cambiar un mdulo o una tarjeta para convertir la mquina en otra, dotando
los recursos existentes con mejores caractersticas.

Dependiendo de que tal ligado est un mdulo con el resto del sistema, es posible lograr un
cambio en mayor o menor medida; si es menor el nmero de parmetros que componen un
mdulo entonces ser ms sencillo modificarlo o incluso remplazarlo.

Ejemplo:

En la empresa ABC se quiere que un programador se encargue de modificar el mdulo X; a


medida que avanza en el trabajo, el programador deduce que para entender el mdulo X es
necesario comprender cmo se procesa un determinado caso en el mdulo Y que a su vez
requiere comprender el mdulo Z. Esto da lugar a una larga y frustrante cadena que en lo
que desemboca es en el retraso de la entrega del trabajo.

De esta manera, segn la forma en que se comuniquen los datos, se podr determinar la
flexibilidad de un sistema. La claridad con que se definan, tanto los parmetros como la
funcin, determinar la reutilizacin del cdigo para aplicaciones futuras.

y como se vio en el ejemplo, el acoplamiento entre estos puede ser considerado como
indeseable.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

Con el trmino acoplamiento se hace referencia al grado de interdependencia entre mdulos,

39

Lgica matemtica y de programacin

A raz de lo anterior, se tiene una clasificacin segn Yourdon, que se explica a continuacin:

Acoplamiento
por contenido

Acoplamiento

Un mdulo modifica valores locales o las


instrucciones de algn otro.

Acoplamiento por
zonas compartidas

Los mdulos estn atados, en forma


conjunta, por medio de sus zonas globales
para las estructuras de datos.

Acoplamiento de
control

Un mdulo controla la secuencia de


otro a travs de banderas de control.

Acoplamiento
por zonas de
datos
Acoplamiento
de datos

Es similar al de zonas compartidas, pero los


datos son compartidos en forma selectiva por
las rutinas.
Incluye el uso de listas de parmetros
para pasar los elementos entre rutinas.

Cohesin
Mientras el acoplamiento hace referencia a la fuerza de relacin entre mdulos de un
sistema, la cohesin interna de un mdulo se mide en trminos de la fuerza de unin de los
elementos internos del mismo.

Los conceptos de acoplamiento y cohesin estn ntimamente ligados, debido a que a mayor
cohesin de cada mdulo en el sistema, menor ser el acoplamiento que existir entre ellos.
Durante el desarrollo de un mdulo es necesario pensar siempre en el Principio del diseo

menor relacin tendrn con otros mdulos.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

modular, que establece que entre ms relacionados estn los componentes del sistema,

40

Lgica matemtica y de programacin

La cohesin es tomada por muchos diseadores como una forma demasiado asociativa que
puede hacer perder de vista el principio de diseo modular.

Ejemplo:

Si se piensa en una fbrica de electrodomsticos, sera viable fabricar un aparato que fuese
batidora y plancha a la vez?, sera inteligente crear un reproductor de DVD que fuera a su
vez horno microondas y aspiradora?

Obviamente no es una buena decisin, las cosas que tienen relacin lgica se pueden unir
porque cumplen con un propsito afn, y en el caso de los electrodomsticos funcionarn de
manera ms ptima si desarrollan tareas similares.

As pues, se pueden listar varios niveles de cohesin as:

Cohesin
coincidencial

Cohesin
lgica

Los
elementos
que forman el
mdulo
no
tienen
relacin
aparente
entre
cada
uno de ellos.

Implica
algunas
relaciones
entre
los
elementos de
un mdulo,
stos,
lgicamente
unidos,
normalmente
requieren una
descomposici
n mayor.

Cohesin
temporal

Cohesin de
comunicacin

Cohesin
secuencial

Cohesin
funcional

Todos
los
elementos son
ejecutados en
un momento
dado,
sin
requerir
de
ningn
parmetro
o
lgica
para
determinar qu
elemento debe
ejecutarse.

Los elementos
se refieren al
mismo
conjunto de
datos
de
entrada
o
salida.

Ocurre
cuando
la
salida de un
elemento es
la
entrada
para
el
siguiente.

Todos
los
elementos se
encuentran
relacionados
para
el
desempeo
de
una
funcin.

Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

COHESIN

41

Lgica matemtica y de programacin

Resumen del Captulo No. 5


En este captulo se abord primero con una breve historia de la computacin y la
programacin, haciendo nfasis en la naturaleza e importancia que tuvieron las vlvulas de
vaco en el desarrollo de las telecomunicaciones, las computadoras ENIAC y UNIVAC, y el
nacimiento de los lenguajes de programacin, as como el desarrollo de la tecnologa a partir
de las necesidades de la guerra y las distintas eras de la computacin. Se continu
estudiando el concepto de abstraccin y modelado de la realidad.

Enlaces
http://www.articulosinformativos.com.mx/Tipos_De_Programacion-a1073100.html
http://autorneto.com/tecnologia/software/tecnicas-de-programacion/
http://www.lenguajes-de-programacion.com/lenguajes-de-programacion.shtml
http://www.utchvirtual.net/recursos_didacticos/documentos/sistemas/lenguajes.pdf
http://elmaquinadeturing.wordpress.com/2009/12/16/que-es-una-maquina-de-turing-ii/
http://www.desarrolloweb.com/articulos/pseudocodigo.html
http://www.desarrolloweb.com/articulos/2198.php

Bibliografa
JOYANES AGUILAR, Luis. Fundamentos de programacin: algoritmos, estructura de datos y
objetos. Madrid: McGraw-Hill, 2008. 766p.
SANTOS GONZALEZ, Manuel. Fundamentos de programacin. Bogot: alfaomega, 2007.
317p.
1992. 548p.

RAMIREZ, Felipe. Introduccin a la programacin: Algoritmos y su implementacin en


VB.NET, C#, Java y C++. Mxico: Alfaomega, 2007. 488p.
Todos los Derechos Reservados 2010. Propiedad de Compensar Unipanamericana institucin universitaria
con apoyo Acadmico de Mondragon Unibertsitatea (MU).

Libro de Referentes

MARTIN, James. Anlisis y diseo orientado a objetos. Mxico: Prentice Hall,

42

Вам также может понравиться