Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATERIA.
Taller De Investigación 1.
TRABAJO.
Protocolo De Investigación.
INTEGRANTES:
MECATRÓNICA 5°C.
FECHA DE ENTREGA.
1. Titulo. 3
2. Planteamiento del problema. 3
3. Justificación. 3
4. Objetivos. 3
5. Hipótesis. 3
6. Marco Teórico. 3
7. Metodología. 14
8. Esquema De Trabajo. 16
9. Cronograma De Trabajo. 17
10. Conclusión. 17
11. Resultado y discusiones del resultado. 18
12. Bibliografías. 18
1. Titulo.
“Mejores Lenguajes De Programación Actuales”.
3. Justificación.
Se quiso dar respuesta a estas interrogantes ya que hoy en día existen numerosos lenguajes de
programación y en varios casos los usuarios nos saben cuál de ellos pueden utilizar o sea más fácil
de comprender por lo que se buscó agradar la información referente a este problema ya que si no
hacemos nada los usuarios no sabrán cuál de ellos les conviene aprender de igual forma dirigido a
los estudiantes de ingeniería y público en general que requiera de esta información.
4. Objetivos.
Objetivo General.
Propagar información útil, básica, clara, concisa y concreta del problema que se está enfrentando
actualmente con el lenguaje de programación.
Objetivos Específicos.
5. Hipótesis.
El avance tecnológico informático genera una creciente evolución de los lenguajes de Programación
provocado por el alto nivel de necesidades de programadores y usuarios.
6. Marco Teórico.
Antecedentes Históricos.
Pero la tecnología de la época no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge
no llegaron a materializarse de forma definitiva, su contribución es decisiva, ya que los ordenadores
actuales responden a un esquema análogo al de la máquina analítica.
Charles Babbage, conocido como el "padre de la informática" no pudo completar en aquella época
la construcción del computador que había soñado, dado que faltaba algo fundamental: la
electrónica. El camino señalado de Babbage no fue nunca abandonado y siguiéndolo, se
construyeron los primeros computadores.
Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And
Calculator), su programación se basaba en componentes físicos, o sea, que se programaba,
cambiando directamente el Hardware de la máquina, exactamente lo que se hacía era cambiar
cables de sitio para conseguir así la programación de la máquina. La entrada y salida de datos se
realizaba mediante tarjetas perforadas.
Lenguaje Máquina.
El lenguaje máquina es el único que entiende directamente la computadora, ya que está escrito en
lenguajes directamente inteligibles por la máquina (computadora), utiliza el alfabeto binario, que
consta de los dos únicos símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios).
Sus instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0 y 1 que
especifican una operación y, las posiciones (dirección) de memoria implicadas en la operación se
denominan instrucciones de máquina o código máquina. Fue el primer lenguaje utilizado en la
programación de computadoras, pero dejó de utilizarse por su dificultad y complicación, siendo
sustituido por otros lenguajes más fáciles de aprender y utilizar, que además reducen la posibilidad
de cometer errores. El lenguaje máquina es el conocido código binario. Generalmente, en la
codificación de los programas se empleaba el sistema hexadecimal para simplificar el trabajo de
escritura. Todas las instrucciones preparadas en cualquier lenguaje máquina tienen por lo menos
dos partes. La primera es el comando u operación, que dice a las computadoras cuál es la función.
Ventajas del lenguaje máquina.
Dificultad y lentitud en la codificación. Poca fiabilidad. Todas las computadoras tienen un código de
operación para cada una de las funciones. La segunda parte de la instrucción es el operando, que
indica a la computadora donde hallar o almacenar los datos y otras instrucciones que se van a
manipular, el número de operandos de una instrucción varía en distintas computadoras.
Dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el
mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que hace
prácticamente no recomendables a los lenguajes máquina.
Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la
máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje
ensamblador es el primer intento de sustituir el lenguaje máquina por otro más similar a los
utilizados por las personas. Este intenta des flexibilizar la representación de los diferentes campos.
Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al
lenguaje. A principios de la década de los 50 y con el fin de facilitar la labor de los programadores,
se desarrollaron códigos mnemotécnicos para las operaciones y direcciones simbólicas. Los códigos
mnemotécnicos son los símbolos alfabéticos del lenguaje máquina. La computadora sigue utilizando
el lenguaje máquina para procesar los datos, pero los programas ensambladores traducen antes los
símbolos de código de operación especificados a sus equivalentes en el lenguaje máquina. En la
actualidad los programadores no asignan números de dirección reales a los datos simbólicos,
simplemente especifican donde quieren que se coloque la primera localidad del programa y el
programa ensamblador se encarga de lo demás, asigna localidades tanto para las instrucciones
como los datos. Estos programas de ensamble o ensambladores también permiten a la
computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio
código máquina. Un programa de instrucciones escrito en lenguaje ensamblador por un
programador se llama programa fuente. Después de que el ensamblador convierte el programa
fuente en código máquina a este se le denomina programa objeto. Para los programadores es más
fácil escribir instrucciones en un lenguaje ensamblador que en código de lenguaje máquina, pero es
posible que se requieran dos corridas de computadora antes de que se puedan utilizar las
instrucciones del programa fuente para producir las salidas deseadas.
El lenguaje de bajo nivel es el lenguaje de programación que el ordenador puede entender a la hora
de ejecutar programas, lo que aumenta su velocidad de ejecución, pues no necesita un intérprete
que traduzca cada línea de instrucciones. Visto a muy bajo nivel, los microprocesadores procesan
exclusivamente señales electrónicas binarias. Dar una instrucción a un microprocesador supone en
realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta
secuencia de señales se denomina código máquina. El código representa normalmente datos y
números e instrucciones para manipularlos. Un modo más fácil de comprender el código máquina
es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Esta
abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel que es específico de
cada microprocesador.
Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son, a menudo, difíciles
de aprender. Más importante es el hecho de que los programas escritos en un bajo nivel sean
altamente específicos de cada procesador. Si se lleva el programa a otra máquina se debe reescribir
el programa desde el principio.
Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas
escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y
ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las
instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo
que estos programas son portables o transportables. Los programas escritos en lenguaje de alto
nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras.
Son lenguajes de programación en los que las instrucciones enviadas para que el ordenador ejecute
ciertas órdenes son similares al lenguaje humano. Dado que el ordenador no es capaz de reconocer
estas órdenes, es necesario el uso de un intérprete que traduzca el lenguaje de alto nivel a un
lenguaje de bajo nivel que el sistema pueda entender. Por lo general se piensa que los ordenadores
son máquinas que realizan tareas de cálculos o procesamiento de texto. La descripción anterior es
sólo una forma muy esquemática de ver una computadora. Hay un alto nivel de abstracción entre
lo que se pide a la computadora y lo que realmente comprende. Existe también una relación
compleja entre los lenguajes de alto nivel y el código máquina.
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por
elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido,
los comandos como “IF CONTADOR=10 THEN STOP” pueden utilizarse para pedir a la computadora
que pare si CONTADOR es igual a diez. Por desgracia para muchas personas esta forma de trabajar
es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje
natural, lo hacen en realidad de una forma rígida y sistemática.
Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con
posterioridad a los anteriores (lenguaje máquina, lenguajes de bajo nivel o ensamblador) con los
siguientes objetivos, entre otros:
Incluir rutinas de uso frecuente, como las de entrada / salida, funciones matemáticas, manejo de
tablas, etc., que figuran en una especie de librería del lenguaje, de manera que se puedan utilizar
siempre que se quiera sin necesidad de programarlas cada vez.
Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa
fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la máquina
que se explotan mucho mejor en lenguajes máquina y ensambladores. Aumento de la ocupación de
memoria. El tiempo de ejecución de los programas es mucho mayor. Se puede decir que el principal
problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso, además de las diferentes versiones o dialectos que se han desarrollado de
algunos de ellos. Es difícil establecer una clasificación general de los mismos, ya que en cualquiera
que se realice habrá lenguajes que pertenezcan a más de uno de los grupos establecidos. Una
clasificación muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofía con
que fueron concebidos, es la siguiente:
Lenguajes imperativos.
Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada).
Lenguajes declarativos.
El diseño de los programas se basa más en los datos y su estructura. La unidad de proceso es el
objeto y en él se incluyen los datos (variables) y las operaciones que actúan sobre ellos (Smalltalk,
C++).
Lenguajes naturales.
Interpretación y compilación.
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías: lenguajes
interpretados y lenguajes compilados.
Lenguaje interpretado.
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe
traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje
interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los
programas según sea necesario.
Lenguaje compilado.
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente.
En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier
persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código
o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados.
Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las
copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).
Lenguajes intermediarios.
Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa
escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en
un archivo escrito en un lenguaje ininteligible (por lo tanto, diferente al archivo fuente) y no
ejecutable (requeriría un intérprete). Los applets Java, pequeños programas que a menudo se
cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un
navegador web (son archivos con la extensión .class).
Bloques de un programa
Bloque de declaraciones: en él se especifican todos los objetos que utiliza el programa (constantes,
variables, tablas, registros, archivos, etc.).
Bloque de instrucciones: constituido por el conjunto de operaciones que se han de realizar para la
obtención de los resultados deseados.
Entrada de datos: la constituyen todas aquellas instrucciones que toman datos de un dispositivo
externo, almacenándolos en la memoria central para que puedan ser procesados.
Proceso o algoritmo: está formado por las instrucciones que modifican los objetos a partir de su
estado inicial hasta el estado final, dejando éstos disponibles en la memoria central.
Salida de resultados: conjunto de instrucciones que toman los datos finales de la memoria central
y los envían a los dispositivos externos.
Una instrucción se caracteriza por un estado inicial y final del entorno. El estado final de una
instrucción coincide con el inicial de la siguiente. No siempre una instrucción modifica el entorno,
pues su cometido puede limitarse a una mera observación del mismo o a un cambio en el orden de
ejecución de otras. Las instrucciones pueden ser:
Instrucciones de declaración: Se utilizan en aquellos lenguajes de programación que no tienen
declaración explícita de los objetos. Su misión consiste en indicar al procesador que reserve espacio
en la memoria para un objeto del programa, indicando asimismo su nombre, tipo y características.
Instrucciones primitivas: Son aquellas que ejecuta el procesador de modo inmediato. Las principales
son asignación, entrada y salida.
Instrucción de salida: Toma el valor de una expresión u objeto y lo lleva a un dispositivo externo.
Instrucciones compuestas: Son aquellas que el procesador no puede ejecutar directamente, sino
que realiza una llamada a un subprograma, subrutina o párrafo.
Instrucción alternativa: Controla la ejecución de unas u otras instrucciones según una condición.
Puede ser simple o doble (SI y SINO).
Instrucción repetitiva: Hace que se repitan una o varias instrucciones un número determinado o
indeterminado de veces (PARA, MIENTRAS, HASTA e ITERAR).
Son variables que realizan funciones específicas dentro de un programa, y por su gran utilidad,
frecuencia de uso y peculiaridades, conviene hacer un estudio separado de las mismas. Las más
importantes son:
Contadores: Un contador es un campo de memoria cuyo valor se incrementa en una cantidad fija,
positiva o negativa, generalmente asociado a un bucle. Toma un valor inicial antes de comenzar su
función, y cada vez que se realiza el suceso, incrementa su valor. Se utiliza en los siguientes casos:
Para contabilizar el número de veces que es necesario repetir una acción (variable de control de un
bucle).
Para contar un suceso particular solicitado por el enunciado del problema (asociado a un bucle o
independientemente).
Acumuladores: Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas veces
en cantidades variables. Se utiliza en aquellos casos en que se desea obtener el total acumulado de
un conjunto de cantidades, siendo preciso inicializarlo con el valor 0. También en las situaciones en
que hay que obtener un total como producto de distintas cantidades se utiliza un acumulador,
debiéndose inicializar con el valor 1.
Interruptores (switches): Un interruptor es un campo de memoria que puede tomar dos valores
exclusivos (0 y 1, -1 y 1, FALSO y CIERTO, etc.). Se utiliza para:
Para hacer que dos acciones diferentes se ejecuten alternativamente dentro de un bucle.
Tipos de programas
Un programa, por lo general, estará compuesto por una secuencia de acciones, algunas de las cuales
serán alternativas o repetitivas. En determinados programas sencillos, no se da esta mezcla de
acciones, en cuyo caso se pueden clasificar como sigue:
Programas lineales: consisten en una secuencia de acciones primitivas (su ejecución es lineal en el
orden en que han sido escritas).
Programas cíclicos: son aquellos en los que un conjunto de acciones se repiten un número
determinado o indeterminado de veces (un programa de este tipo se denomina bucle).
Programas de gestión: se caracterizan por el manejo de gran cantidad de datos con pocos cálculos
(resuelven problemas de gestión).
Programas técnicos-científicos: al contrario que los anteriores, realizan gran cantidad de cálculos
con pocos datos (revuelven problemas matemáticos, físicos, etc.).
Programas de diseño (CAD): se caracterizan por la utilización de técnicas gráficas para resolver
problemas de diseño.
Programas de simulación: intentan reflejar una situación real, para facilitar su estudio.
Programas educativos (EAO): utilizan las ventajas del ordenador para la docencia.
Lenguajes de programación.
Un lenguaje de programación es una notación para escribir programas, es decir, para describir
algoritmos dirigidos al computador. Un lenguaje viene dado por una gramática o conjunto de reglas
que se aplican a un alfabeto. El primer lenguaje de programación que se utilizó fue el lenguaje
máquina, el único que entiende directamente el computador, cuyo alfabeto es el binario, formado
por los símbolos 0 y 1. El lenguaje ensamblador, resultó de la evolución del lenguaje máquina, al
sustituir las cadenas de símbolos binarios por nemotécnicos. Posteriormente surgieron los lenguajes
de alto nivel, cuya evolución es:
- 1955: FORTRAN.
- 1960: LISP, ALGOL, COBOL.
- 1965: APL, SNOBOL, PL/1, BASIC.
- 1970: PROLOG, ALGOL68, SIMULA67.
- 1975: C, PASCAL.
- 1980: MODULA-2, LIS, EUCLID.
- 1985: ADA.
Imperativos: la mayoría.
Orientados al proceso por lotes (batch): COBOL, FORTRAN, PL/I, etc. factorial.
Algunos ejemplos de lenguajes ampliamente usados.
A continuación, encontrará una breve lista de los mejores lenguajes de programación actuales:
7. Metodología.
Actualmente se están produciendo cambios de gran alcance en la forma en que se desarrolla el
"software" para los equipos informáticos. Entre las causas de estos cambios se incluyen las
siguientes:
Los métodos de trabajo que se han desarrollado para responder a estas necesidades constituyen lo
que se ha dado en llamar "Ingeniería del Software". La Ingeniería del Software es una tarea de
equipo, al comenzar un proyecto de desarrollo, se constituyen una serie de equipos con una
estructura paralela a la del programa en sí. Se establece un calendario para el proyecto y se asignan
costes a cada una de las partes y etapas del proyecto. Cada equipo tiene un responsable, cuya tarea
es la de comprobar que la programación desarrollada por el equipo sea correcta, está estructurado
con propiedad, dispone de las interfaces para conectar con los programas desarrolladas por otros
equipos y se desarrolla de acuerdo con las previsiones de tiempo y coste.
La Ingeniería del Software se ocupa del ciclo de vida completo de un producto software, diseño,
desarrollo, uso y mantenimiento. El trabajo se hace buscando el mayor grado posible de
estandarización y los menores costes durante la totalidad del ciclo de vida de los programas.
La Ingeniería del Software implica que un programa bien estructurado satisfaga las siguientes
condiciones:
- El programa ha de tener una estructura general en forma de módulos, que a su vez estarán
formados por procedimientos o segmentos.
- Debe existir un interfaz claramente definido entre los diversos módulos.
- Cada módulo debe de ser una combinación sencilla de construcciones elementales de un
lenguaje de programación.
- Debe existir una fuerte correspondencia entre la estructura de los módulos y la de los datos
sobre los que operan.
- Cada módulo debe dejar las estructuras de datos sobre las que opera en un estado
consistente con su definición.
- Un módulo no debe tener efectos secundarios.
Por lo que respecta a las técnicas de diseño de programas, el método más simple y uno de los más
populares es el conocido como de "Refinamiento Progresivo". Se fundamenta en el uso de
algoritmos que se escriben en un lenguaje intermedio entre el castellano y un lenguaje de
programación como el Pascal, este lenguaje se denomina seudocódigo. El proceso se puede
describir en términos de un lenguaje de esta naturaleza:
- Establecer todos los pasos del programa en un algoritmo breve de alto nivel
- Repetir:
- Expandir cada sentencia del algoritmo en detalle, especificando los pasos necesarios
- Hasta que las tareas hayan sido especificadas con el detalle suficiente como para que pueda
generarse el código del programa.
Existen otras metodologías más depuradas como por ejemplo la conocida como "Descomposición
Funcional". A diferencia de la anterior en cada etapa se especifican las propiedades esenciales de
las estructuras de datos, y cada algoritmo se expresa como una función matemática que transforma
esta estructura de datos.
Una vez desarrollado un programa como es lógico se ha de comprobar su buen funcionamiento.
Actualmente en la mayoría de los casos se prueban con cualquier tipo de datos que pueden
presentarse en la realidad. Sin embargo, este proceso nunca puede establecer si un programa es o
no correcto, sin importar cuantos conjuntos de datos de usen. Si un programa es de importancia
crítica, como ocurre en el presente con muchas aplicaciones comerciales, industriales o militares, es
necesario tomar todas las precauciones posibles para asegurar que están libres de errores.
Se están empezando a utilizar técnicas para asegurar que los módulos (y los algoritmos) son
correctos, que los consideran como teoremas matemáticos y entonces se emplean los mismos
métodos que se utilizan para demostrar los teoremas. Esta tarea es muy compleja y no siempre
aplicable.
8. Esquema De Trabajo.
I. Que es un lenguaje de programación.
1. Definición.
2. Antecedentes históricos.
3. Tipos de lenguajes.
4. Clasificación.
1. Bloques de un programa.
a) Bloque de declaraciones.
b) Bloque de instrucciones.
2. Partes principales de un programa.
a) Entrada de datos.
b) Proceso o algoritmo.
c) Salida de resultados.
3. Clasificación de las instrucciones.
a) Instrucción de declaración.
b) Instrucción primitiva.
c) Instrucción de asignación.
d) Instrucción de entrada.
e) Instrucción de salida.
f) Instrucciones compuestas.
g) Instrucciones de control.
h) Instrucción alternativa.
i) Instrucción de salto incondicional.
j) Instrucción de salto condicional.
k) Instrucción repetitiva.
1. Contadores.
2. Acumuladores.
3. Interruptores (switches).
IV. Tipos de programas.
1. Programas lineales.
2. Programas alternativos.
3. Programas cíclicos.
4. Programas de gestión.
5. Programas técnicos-científicos.
6. Programas de diseño (CAD).
7. Programas de simulación.
8. Programas educativos (EAO).
9. Programas de inteligencia artificial.
9. Cronograma De Trabajo.
ACTIVIDAD FECHA
10. Conclusión.
La comprensión básica de los conceptos de los lenguajes de programación y los diferentes
paradigmas son necesarios para todos los ingenieros de software, no tanto para los especialistas
en un lenguaje de programación. Esto se debe a que los lenguajes de programación son una
herramienta fundamental.
Los lenguajes de programación influencian notablemente la manera en que pensamos acerca del
diseño y construcción del software y los algoritmos y estructuras de datos que utilicemos para
desarrollar software.
Como puede verse, existen lenguajes específicos para cada tarea diferente.
Muchos de ellos (Lenguajes de Programación) ya no se usan, mientras que las nociones de otros han
sido incorporadas a otros lenguajes.
Los lenguajes y las Técnicas de Programación son importantes para la utilización de la computadora
como una herramienta para resolver problemas.
En computación, un Problema consiste en la necesidad de transformar un grupo de datos iniciales
en un grupo diferente de datos finales (resultados) en cuanto pueda dar solución a un problema
específico o realizar dicha tarea por la cual ha sido programada.
Como vimos a lo largo de este proyecto la programación se compone de muchos factores que tienen
objetivos específicos, de la cual el usuario tiene varias opciones para elegir el lenguaje que necesite
utilizar dependiendo la función que valla a realizar.
De este modo, una computadora podrá resolver un problema si alguien desarrolla un programa que
contenga las instrucciones adecuadas que permitan transformar los datos.
Los lenguajes deben ser confiables, comprensibles, eficientes en términos de tiempo de ejecución y
consumo de espacio, y deben satisfacer las necesidades de una comunidad, ya sean científicos,
hombres de negocios o usuarios no técnicos. Cada uno estos grupos está acostumbrado a un
vocabulario particular y una manera de ver las cosas; de este modo, existe una gran variedad de
lenguajes y muy probablemente esto continuará siendo así.
12. Bibliografías.
• APPLEBY, Doris LENGUAJES DE PROGRAMACIÓN. Paradigma y Practica. Tr. De Efrèn A.
Miguel. México, Ed. INTEREMERICANA - McGRAW-HILL, 1998 (c 1997). 493p.
• AULA Curso de orientación escolar INFORMATICA. España, Madrid, Ed. CULTURAL, 1995.
325p.
• JOYANES, Aguilar. PROGRAMACION EN TURBO PASCAL. Versiones 5.5, 6.0 y 7.0. 2da.
Edición. México, D.F., Ed. INTERAMERICANA - McGRAW-HILL, (c. 1993). 914p.
• Manual de METODOLOGÍA DE LA PROGRAMACIÓN ESTRUCTURADA. Impartido por L.I.A
Ninfa Urania García Ulin. Universidad Juárez Autónoma de Tabasco. 35p.
• https://www.ecured.cu/Estructura_general_de_un_programa
• http://es.ccm.net/contents/304-lenguajes-de-programacion
• http://www.igeograf.unam.mx/sigg/utilidades/docs/pdfs/posgrados/ingreso/guia-
protocolo.pdf
• http://www.scielo.cl/scielo.php?script=sci_arttext&pid=S0717-95532003000200003
• Weiss, Mark Allen: “Estructuras de datos y algoritmos”, Addison-Wesley Iberoamericana,
1995.
• Kruse, Robert Leroy; Tondon, Clovis L.; Leung, Bruce P: “Data structures and program design
in C”, Prentice-Hall, 1997.
• Brassard, Gilles; Bratley, Paul: “Algorithmics: theory and practice”, Prentice-Hall, 1988
• JOYANES, L. (2008). Fundamentos de la programación. Algoritmos y Estructura de Datos, 4ª
Edición. Madrid: McGraw-Hill.
• JOYANES, L.; RODRIGUEZ, L; FERNANDEZ, M. (2003). Fundamentos de programación Libro
de problemas. 2ª Edición. Madrid: McGraw-Hill.
• AHO, Alfred V.; HOPCROFT, John E.; ULLMAN, Jeffrey D. (1998). Estructuras de datos y
algoritmos. México: Addison Wesley.
• BRASSARD, G.; BRATLEY, P. (1997). Fundamentos de Algoritmia. Madrid: Prentice-Hall.
• COLLADO MACHUCA, M.; MORALES FERNÁNDEZ, R.; MORENO NAVARRO, J. J. (1987).
Estructuras de datos. Realización en Pascal. Madrid: Ediciones Díaz de Santos.
• GARCÍA MOLINA, J. J.; MONTOYA DATO, F. J.; FERNÁNDEZ ALEMÁN, J. L.; MAJADO ROSALES,
M. J. (2005). Una introducción a la programación. Un enfoque algorítmico. Madrid:
Thomson-Paraninfo.
• JOYANES, L. (1990). Problemas de Metodología de la Programación. Madrid: McGraw-Hill.
• JOYANES, L.; ZAHOHERO, I. (2005). Programación en C : metodología, algoritmos y
estructura de datos, 2ª Edición. Madrid: McGraw-Hill
• Schildt , Turbo C/C++, manual de referencia. , Osborne/McGraw-Hill.
• Ing. Favio Torres, PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR, Facultad de
Ingeniería, Escuela de Sistemas
• Cherre, Rafael Juan, Lenguaje de Programación en C++, Editorial Macro.
• Francia, Darío Rafael, Programación Orientada a Objetos, Editorial Acisclo.
• Joyanes, Aguilar Luis, Programación Algoritmos, estructuras de datos y objetos, McGrawHill
• Deitel P. J. Deitel H. M.,Cómo programar en C++, Prentice may
• Ralf Brown.
• Michael Tischer. PC Interno. Programación de sistema.Editorial Marcombo - Data Becker,
1993
• Intel. 80386: Guía del programador de sistemas.Anaya Multimedia - Intel.
• L. Joyanes Aguilar e I. Zahonero Martínez, Programación en C: metodología, algoritmos y
estructuras de datos (Segunda edición). Editorial McGraw-Hill, 2005. [Aguilar y Martínez,
2005] 004.43 JOY pro
• Osvaldo Cairó, Fundamentos de Programación: Piensa en C. Editorial Pearson Prentice Hall,
2006. [Cairó, 2006] 004.43 CAI fun
• H. M. Deitel y P. J. Deitel, Cómo Programar en C/C++ y Java. (Cuarta edición). Ed. Pearson
Educación, 2004. [Deitel y Deitel, 2004]
• L. Joyanes Aguilar e I. Zahonero Martínez, Algoritmos y estructuras de datos: una
perspectiva en C (Primera edición). Editorial McGraw-Hill, 2004. [Aguilar y Martínez, 2004]
• Problemas resueltos de Programación en Lenguaje C (paso a paso) (Primera edición). F.
García, A. Calderón, J. Carretero, J. Fernández y J. M. Pérez. Ed. Thomson, 2002. [García y
otros, 2002]
• Introducción a la programación estructurada en C (Primera edición). F. A. Martínez Gil y G.
Martín Quetglás. Servicio de Publicaciones, Universidad de Valencia. Junio, 2003. [Gil y
Quetglás, 2003]
• C: Manual de referencia (Cuarta edición). H. Schildt. Editorial Osborne, McGraw-Hill. 2004.
[Schildt, 2004]
• Programación en C (Segunda edición). B. S. Gottfried. Editorial McGraw-Hill. 2005.
[Gottfried, 2005]
• Peter Norton, Introducción a la Computación, Ed. Mc Graw-Hill.
• Luis Joyanes Aguilar, Fundamentos de programación. algoritmos y estructuras de datos, Ed.
Mc Graw-Hill.
• Mario C. Ginzburg, Introducción General a la Informática, Periféricos y Redes Locales,
Biblioteca Técnica Argentina.
• Armando E. de Giusti, Algoritmos, Datos y Programas, . Ed., Prentice Hall.
• Herbert Schildt, C Manual de Referencia, 4ta. Ed., Mc Graw-Hill, España, 2001.
• H.M. Deitel, J.P. Deitel, Cómo programar en C/C++, 2da. Ed., Prentice Hall, México, 1995
• Kernighan, Brian W. y Ritchie, Dennis M.: The C Programming Language (2nd Edition),
Prentice Hall, 1988.
• ESTRUCTURA DE DATOS Luis Joyanes Aguilar 1998 MCGRAW-HILL.
• ESTRUCTURA DE DATOS Libro de Problemas Luis Joyanes Aguilar, Fernández Matilde,
Rodriguez Luis 1999 MCGRAW-HILL.
• ALGORITMOS DATOS Y PROGRAMAS De Giusti Armando E. 2001 Prentice Hall.
• FUNDAMENTOS DE PROGRAMACIÓN. Algoritmo y Estructura de Datos Luis Joyanes Aguilar
1998 MCGRAW-HILL.
• FUNDAMENTOS DE PROGRAMACIÓN. Libro de Problemas en Pascal y Turbo Pascal Luis
Joyanes Aguilar Luis Rodríguez Baena y Matilde Fernández Azuela 1999 MCGRAW-HILL.
• PROGRAMACIÓN EN TURBO PASCAL Luis Joyanes Aguilar 1993 MCGRAW-HILL.
• PROGRAMACIÓN Castor F. Herrmann, María E. Valesani. 2001 MOGLIA S.R.L.
• ESTRUCTURA DE DATOS Cairó y Guardati 2002 MCGRAW-HILL .
• ALGORITMOS + ESTRUCTURAS DE DATOS = PROGRAMAS Niklaus Wirth 2000.
• METODOLOGÍA DE LA PROGRAMACIÓN: PROGRAMACIÓN ESTRUCTURADA María Dolores
Alonso y Silvia Rumeu 1994 Editorial Paraninfo.
• METODOLOGÍA DE LA PROGRAMACIÓN Luis Joyanes Aguilar 1990 MCGRAW-HILL.
• PRINCIPIO DEL DISEÑO DE PROGRAMAS M.A. Jackson 1990 Pamel SRL.
• INTRODUCCIÓN A LA PROGRAMACIÓN Y A LAS ESTRUCTURAS DE DATOS Braunstein y Gioia
1991 Universitaria de Buenos Aires.
• PROBLEMAS DE METODOLOGÍA DE LA PROGRAMACIÓN Luis Joyanes Aguilar 1990
MCGRAW-H
• TURBO PASCAL FOR PROGRAM DESIGN John Mallozzi 1988 MCGRAW-HILL.
• ADVANCED PROGRAMMING DESIGN AND STRUCTURE.Using Pascal Charles E. Miller,
William G. McArthur, J. Winston Crawley 1989 Prentice Hall.