Ingenieria: Algoritmos y Estructuras de Datos
Elementos escenciales para programación: Algoritmos y Estructuras de Datos
La forma de llegar a un algoritmo como solución a un problema
Este libro está principalmente dirigido a estudiantes universitarios que se inician en las carreras de Ingeniería. Son los que deben interiorizarse en el manejo de ciertos recursos propios de la disciplina sin orientarse a ningún lenguaje en particular.
La finalidad de este enfoque es ampliarles la perspectiva para que en su vida profesional no sólo puedan implementar programas en los lenguajes clásicos de programación sino que también sean capaces de manejar las nuevas herramientas de software que, en muchos casos, permiten optimizar su rendimiento mediante el desarrollo de macroinstrucciones especiales.
Es así que en la elaboración del libro hemos decidido tratar los conceptos de manera no muy extensa y, en la forma más sencilla posible. No sólo para que se constituya en un soporte de los contenidos a desarrollar por los docentes sino para que les permita a los estudiantes reflexionar sobre la forma de llegar a un algoritmo como solución a un problema. A los fines didácticos, representamos los algoritmos en algunos casos con pseudocódigo y en otros, con diagrama de flujo o con ambos tipos de representaciones.
Qué es la Informática?
La
Informática nace bajo la idea de ayudar al hombre en aquellos cálculos
rutinarios, donde frecuentemente existe una repetición de tareas.
Ejemplo de ello es la gestión de un censo, tal es el caso del primero
automatizado en 1890 en EEUU utilizando tarjetas perforadas. En esa
época se pensó que una máquina no sufriría cansancio ni cometería
errores. Con el tiempo esta idea se fue afianzando en la sociedad, y es
hoy día que se sigue trabajando para mejorar las prestaciones de los
sistemas de cómputo.
Si repasamos la historia veremos que la
Informática estuvo entre nosotros desde tiempos lejanos. A continuación
transcribimos algunas ideas de importantes pensadores relacionados con
la Informática. Para ubicarse en la historia, debe notarse que los
primeros modelos de computadoras aparecieron alrededor del año 1940.
Gottfried Wilhelm Leibniz (1646-1716) fue uno de los grandes pensadores de los siglos XVII y XVIII, decía que “Es una pérdida de tiempo que personas cualificadas pierdan horas como esclavos en la labor de calcular, lo que podría ser delegado en cualquier otro si se pudieran utilizar máquinas”. Basándose en los trabajos de Pascal construyó una calculadora compuesta por cilindros dentados con longitud incremental que podía sumar, restar, multiplicar y dividir automáticamente, conocida como la rueda de Leibniz. Algunas máquinas basadas en estos mismos principios han jugado un papel preponderante en la Segunda Guerra Mundial, e incluso algunas están todavía en uso. Leibniz fue también el primer pensador occidental en investigar la aritmética binaria y sentó las bases de la lógica simbólica, basada en símbolos y variables abstrayendo la semántica de las proposiciones.
Ada Byron(1815-1852)desarrolló los primeros programas para la Máquina Analítica de Babbage (1833), debido a estos trabajos, se la considera el primer programador de computadoras del mundo.Ella escribió “La Máquina Analítica no tiene la pretensión de crear nada.Puede realizar cualquier cosa siempre que conozcamos cómo llevarla a cabo. Puede seguir análisis; pero es incapaz de descubrir relaciones analíticas o verdades. Su potencialidad es la de ayudarnos a hacer posible aquello sobre lo que tenemos un conocimiento previo. Muchas han sido las mujeres que han realizado grandes aportes a la Informática, aún así Ada Byron es la única mujer que cuenta con un lenguaje de programación que lleva su nombre: en 1979 el Departamento de Defensa de los Estados Unidos creó un lenguaje de programación basado en Pascal que se llamó lenguaje de programación Ada en su honor.
Herman
Hollerith (1860-1929) fue un estadístico estadounidense que inventó la
máquina tabuladora. Es considerado como el primer informático, es decir,
el primero que logra el tratamiento automático de la información
(Informática = Información + automática). En esos tiempos, los censos se
realizaban de forma manual, con el retraso de unos 10 años en su
procesamiento. Ante esta situación, Hollerith comenzó a trabajar en el
diseño de una máquina tabuladora o censadora, basada en tarjetas
perforadas que patentó en el año 1889. Un año después incluyó la
operación de sumar con el fin de utilizarla en procesos de contabilidad.
Alan
Turing (1912-1954) fue un matemático, lógico, científico de la
computación, criptógrafo y filósofo británico. Es considerado uno de los
padres de la ciencia de la computación siendo el precursor de la
informática moderna. Proporcionó una influyente formalización de los
conceptos de algoritmo y computación, la famosa máquina de Turing.
Durante la Segunda Guerra Mundial, trabajó en descifrar los códigos
nazis, particularmente los de la máquina Enigma. Tras la guerra diseñó
una de las primeras computadoras electrónicas programables digitales en
el Laboratorio Nacional de Física del Reino Unido (1945). Entre otras
muchas cosas, también contribuyó de forma particular e incluso
provocativa al enigma de si las máquinas pueden pensar, es decir a la
Inteligencia Artificial. Turing decia: “Las máquinas me sorprenden con
mucha frecuencia.
John Von Neumann (1903-1957) fue un matemático
húngaro que realizó contribuciones fundamentales en física cuántica,
análisis funcional, teoría de conjuntos, ciencias de la computación,
economía, análisis numérico, cibernética, hidrodinámica, estadística y
muchos otros campos. Está considerado como uno de los más importantes
matemáticos de la historia moderna. Diseñó una arquitectura de
computadoras que lleva su nombre, y aún es utilizada en casi todas las
computadoras personales, microcomputadoras, minicomputadoras y
supercomputadoras. Von Neumann decía “Podría parecer que hemos llegado
al límite de lo que es posible lograr con la tecnología informática,
aunque hay que tener cuidado con tales declaraciones, ya que tienden a
sonar bastante tontas en cinco años.”
El término Informática nace
recién en la década de 1960 en Francia bajo la denominación
INFORMATIQUE, debido a la contracción de las palabras INFORmation y
autoMATIQUE, es decir el tratamiento de la información por medios
automáticos. En las múltiples publicaciones, Informática se define de
diversas maneras pero siempre ronda la misma idea: el tratamiento
automáticodelainformación.
A continuación veremos algunas definiciones.
INFORMÁTICA
es
la ciencia que estudia el tratamiento automático y racional de la
información. Se habla de tratamiento automático debido a que son
máquinas las que procesan la información y se dice racional por estar
los procesos definidos a través de programas que siguen el razonamiento
humano.
INFORMÁTICA
es el estudio de los algoritmos y de las
computadoras - de sus teorías, sus modelos abstractos, su realización
mecánica, su fiabilidad y verificación, su medida y eficacia, su
descripción linguística y su contexto social.
Las
Ciencias de la Computación o Informática como se le llama en algunos
países hispanoamericanos, es la disciplina que busca establecer una base
científica para diversos
temas, como el diseño de computadoras, la
programación de computadoras, el proceso de información,la elaboración
de algoritmos para resolver problemas y el proceso algorítmico en sí.
Del mundo real a la solución por computadora
Informatizar la resolución de un problema
El
proceso de informatizar la resolución de problemas del mundo real,
tales como resolver una ecuación matemática o realizar la liquidación de
sueldos de los empleados de una empresa, conlleva una serie de pasos
que debemos seguir para obtener una respuesta encuadrada a los datos
provistos. En la Figura 1 se muestra tal proceso.
Como primer
paso se deberá conocer las especificaciones del problema, es decir,
analizar y determinar en forma clara y concreta el objetivo que se
desea. Analizar los datos que se disponen y cuales son los resultados
que se desean. Una vez que se conoce el problema en detalle, se puede
intentar realizar un modelo del mismo, es decir, abstraer el problema
tratando de encontrar los aspectos principales que se pueden resolver,
los datos que se han de procesar y el contexto del problema,
simplificando su expresión.Disponiendo de un panorama más claro del
problema, sus datos y resultados, se puede escribir una serie de
acciones que seguidas paso a paso resuelvan el problema. Esto es el
algoritmo. Si esta etapa es exitosa, se traduce el algoritmo, mediante
un lenguaje de programación, para convertirlo en un programa que podrá
ser interpretado por la computadora para su ejecución solución en forma
rápida y eficaz.
En una segunda etapa, este algoritmo podrá ser
traducido en un lenguaje reconocible por la computadora, generando así
elprograma.La serie de instrucciones del programa se la conoce como
código fuente,el cual se escribe en un
lenguaje de programación,generalmente un lenguaje de alto nivel
(comprensible por el hombre, como Pascal, Fortran o C, entre otros). El
programa podrá ser probado en la computadora. En este caso, pueden
aparecer errores de sintaxis y/o de semántica Los errores de sintaxis se
refieren a que alguna instrucción está mal escrita y por lo tanto el
procesador no puede reconocerla. Son simples de detectar y de modificar.
Esta operación la resuelve el traductor del entorno de programación, el
Compilador o el Intérprete. Si en el proceso de traducción se detectan
errores de sintaxis, habrá que volver al punto 4) para codificar
correctamente. Los errores de semántica se refieren a cuestiones de la
lógica de la solución, y son los más complicados de hallar. Es en el
proceso de Validación donde se detectan los errores de lógica. Habrá que
volver al punto
1) para interpretar correctamente el enunciado del problema para rever y modificar el algoritmo propuesto o proponer una nueva solución al problema dado. Algo muy importante a tener en cuenta cuando se escriben programas es la Documentación del mismo. Esto se refiere a los comentarios que se añaden al código fuente para hacer más claro el entendimiento del programa: descripción del funcionamiento del programa, descripción del problema, nombre del autor, entre otros. A menudo un programa escrito por una persona, es usado por otra, o por ella misma después de un tiempo. Por ello la documentación sirve para ayudar a comprender la lógica del programa, para reusarlo para facilitar futuras modificaciones (proceso de mantenimiento).
SIGUE APRENDIENDO DESCARGANDO EL ARCHIVO
Aprende Como Descargar Los Archivos Del Blog