Vous êtes sur la page 1sur 41

UNIVERSIDAD MICHOACANA DE SAN

NICOLÁS DE HIDALGO

FACULTAD DE INGENIERÍA CIVIL

Profesor: Gonzales Reyes Luis Guillermo

Alumno: Tinajero Contreras Eduardo

Materia: Programación

Aspectos básicos de computación

3/abril/2015
Introduccion:
En este trabajo se recopila informacion de varios libros de programacion, y se trato de dar
un orden en cuanto al formato del documento para que al momento de revisarlo no sea
tedioso leer, es por eso que encontrara muchos esquemas y cuadros para su facil
entendimiento.

Objetivo:
Conocer los aspectos basicos de la computadora y la tecnologia, sus antecedentes
historicos, asi como conocer y al mismo tiempo entender en que consiste un diagrama de
flujo, los aspectos necesarios para empezar a programar. Lo que sera una herramienta
fundamental a la hora de agilizar trabajos de materias de Ingeniería Civil.

Página 1
Indice:
Definicion e importania de la informatica 3

La computadora 8

En que consiste la programacion 11

Que es un programa 15

Historia de la programacion 15

Que tipos de lenuajes existen en programacion 18

Que es un diagrama de flujo 24

Cuales son los lenjuages de alto nivel y de bajo nivel 33

Concluciones 39

Bibliografia 40

Página 2
Definicion e
importancia de la
informatica

Página 3
Definición

L a informática puede definirse como la disciplina que intenta dar un tratamiento


científico a una serie de materias: el diseño de computadores, la programación de los
mismos, el procesamiento automático de la información y el diseño de algoritmos para
la resolución de problemas de diversa índole.

Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento de la


información por medio de ordenadores

El término informática es un neologismo francés que viene de la contracción de información


automática y que se ha tomado como la traducción de la expresión original inglesa
Computer Science.

Importancia
Las computadoras son esenciales para enfrentar el reto de la competencia global, donde los
negocios deben ser eficientes y sensibles a las necesidades y producir bienes y servicios de
alta calidad a un costo siempre más bajo. Sin las computadoras, que proveen información
precisa y actualizada necesaria para tomar decisiones estratégicas y administrar los
procesos de producción, muchas compañías no podrían sobrevivir.

Las computadoras utilizan información almacenada para construir simulaciones que van
desde un simple análisis hasta ilustraciones realistas y animadas de nuevos productos. Esto
permite predecir el efecto de las múltiples decisiones de negocios.

Las computadoras ayudan a la gente a comunicarse, tanto directa como indirectamente.

El mundo industrial no podrá vivir mucho tiempo sin computadores, esta sometido a una
sobrecarga de información y no podrá manejarlos sin ellos. Teniéndose en cuenta que los
avances de la sociedad humana desde la aparición del alfabeto se han debido a su capacidad
de registrar y conservar la información.

Página 4
Actualmente la informática tiene tantas aplicaciones que prácticamente es inconcebible
pensar que exista un campo o área donde la informática no esté presente.

En la toma de decisiones
•Son de gran utilidad los programas que pueden generar gráficos de uso
administrativos como son: barras, torta, línea y área entre muchos
otros. De esta manera un empresario puede tener una idea rápida, por
ejemplo, de los ingresos versus egresos en una misma gráfica y
comprobar si en realidad obtiene buenas ganancias o si sus egresos son
tantos que casi alcanzan a esas ganancias, y en vista de esto elaborar
estudios y tomar medidas al respecto.

En la Navegación:
•En el área marítima los computadores controlan la fijación de posiciones
o situaciones geográficas mediante satélites. En los puertos, una gran
parte de las operaciones de carga y descarga se realizan de acuerdo a un
programa establecido por el computador.

En la Aeronáutica:
•El computador realiza funciones tales como: controlar el tráfico aéreo,
presentar la posición y altura de los aviones a través de las pantallas de
radar, simular operaciones de vuelos especiales.

En la Ciencia:
•El computador es de gran ayuda para analizar los datos, almacenar y
recuperar información, simplificar expresiones, controlar experimentos,
identificar moléculas, medir áreas de figuras específicas, llevar
información estadística de procesos, etc..

Página 5
En el transporte urbano:
• Hay sistemas que permiten controlar el servicio de autobuses,
según la demanda del servicio, determinando nuevas rutas si no
hay pasajero en espera.

En la industria:
• Tareas tales como la soldadura por puntos en la carrocería de
automóviles o la pintura de pistola, son ideales para los robots
industriales.

En la vigilancia:
• Los computadores ofrecen información instantánea acerca de
carros robados, falsificación de documentos, valores y análisis de
pruebas. En algunos piases los carros de la policía están
equipados con terminales y por teclado o micrófono se formulan
las preguntas concernientes a algún hecho sospechoso,
recibiendo la respuesta en segundos

Página 6
Importancia de la Programación (informática)

pero continuo hasta la revolución industrial,


momento en el cual vemos como existe una
rápida sustitución de actividades manuales
por el trabajo llevado a cabo mediante
máquinas. Así, los bienes de capital fueron
aumentando cada vez más la productividad,
circunstancia que todavía está en proceso de
expansión. Con el desarrollo de las primeras
computadoras, ya no solo el trabajo físico
pudo reemplazarse por máquinas, sino
también el trabajo intelectual. En efecto, las
computadoras pueden realizar cada vez con
mayor poder cifras enormes de cálculos
complejos que tienen la posibilidad de
procesar y generar datos para el beneficio
humano. La programación, en particular, es la
El rol de la programación en los últimos adaptación de ese potencial de las
computadoras a las necesidades del hombre,
sesenta años ha sido crucial para comprender generando distintos procesos automáticos que
la evolución que ha tenido la sistematización generan resultados que sirven desde diversos
de tareas y el manejo de la información que aspectos, como por ejemplo el laboral, el
hoy en día damos como un hecho. En efecto, estético, el lúdico, etc.
la misma tiene como principal función el hecho
de conseguir que innumerables trabajos que A pesar de las ventajas antedichas, todavía
antes ejercíamos de forma manual y con un existe un franco escepticismo de ciertos
alto costo sean ejecutados por un ordenador sectores en lo que respecta a este proceso.
con un ahorro significativo de tiempo. Por otro Cualquiera sea la actitud planteada ante el
lado, dada la increíble cantidad de información fenómeno, lo cierto es que es imposible de
que hoy en día se maneja para distintas dejar de lado, continuándose así un reemplazo
tareas, la programación es una herramienta continuo de actividades humanas por la que
de enorme valor porque permite bucear en la llevan adelante máquinas. La programación es
misma con muchísima facilidad. ante todo un emergente más de este proceso.
No obstante, para evitar desconsuelos, cabe
A lo largo de la historia, el hombre se ha visto señalar que el proceso sería improcedente si
en la obligación de realizar un número no sirviera en alguna medida a la sociedad. En
constante de tareas para poder sobrevivir. Con efecto, la baja continua de costos en lo que
el paso del tiempo y el desarrollo de la respecta a la producción de bienes y servicios
tecnología, estas tareas fueron ejerciéndose tiene ineludiblemente su arista positiva de
cada vez con un mayor grado de Importancia:
productividad. El proceso de mejora fue lento

https://www.importancia.org/programacion-informatica.php

Página 7
LA COMPUTADORA

Iniciamos definiendo a un sistema como el conjunto de elementos interrelacionados entre sí para


alcanzar un mismo fin. Podemos definir a una computadora como un sistema de dispositivos
electrónicos, mecánicos y magnéticos que sirven para procesar y almacenar datos. Las
computadoras reciben nombre comercial dependiendo de su tamaño o su uso, aunque en esencia
Página 8
Una computadora es un sistema, dado que los dispositivos que la componen trabajan de
forma interrelacionada, con el objetivo de apoyar el fin último de la computadora: procesar
y almacenar datos.

Diferentes tipos de computadoras

Un computador es una máquina que procesa información, es decir, recibe información, la


transforma y la presenta de nuevo en forma distinta. Pero, a diferencia de los seres
humanos, no es capaz de suponer nada, ni resolver por sí mismo cualquier dificultad que se
le presente. Es una máquina que puede realizar una gran diversidad de tareas, pero con la
condición de que antes debe ser programada por un ser humano, hasta en las cosas más
elementales.

El computador es capaz de almacenar y procesar con gran rapidez una gran cantidad de
datos. Además, un computador tiene la capacidad de comunicarse con el exterior,
recibiendo datos, órdenes y programas como entrada (por medio del teclado, del ratón, de
un disquete, un disco óptico, etc.) y proporciona resultados de distinto tipo como salida en
el monitor, por la impresora, etc.

Los computadores tienen la característica de ser sistemas digitales. Quiere decir que lo que
hacen básicamente es trabajar a gran velocidad con los datos traducidos a secuencias de
unos y ceros, contando para ello con un elemento básico denominado transistor. Un
transistor es una especie de interruptor que puede estar en posición encendido o apagado

Página 9
y es capaz de cambiar de estado muchos millones de veces por segundo. La tecnología
moderna ha permitido miniaturizarlos hasta niveles microscópicos para mediante su
interconexión, formar complejos circuitos electrónicos llamados circuitos integrados

Internamente todo el trabajo que realiza un computador lo hace basándose en principios


matemáticos y electrónicos, pero se puede programar para que realice cualquier tipo de
tarea, inclusive aquellas que no tienen nada que ver con las matemáticas

Página
10
¿En que consiste la
programación?

Página
11
El software de una computadora es un conjunto de instrucciones de programa detalladas
que controlan y coordinan los componentes hardware de una computadora y controlan las
operaciones de un sistema informático. El auge de las computadoras el siglo pasado y en el
actual siglo xxi, se debe esencialmente al desarrollo de sucesivas generaciones de software
potentes y cada vez más amistosas ("fáciles de utilizar"). Las operaciones que debe realizar
el hardware son especificadas por una lista de instrucciones, llamadas programas, o
software. Un programa de software es un conjunto de sentencias o instrucciones a la
computadora. El pro-ceso de escritura o codificación de un programa se denomina
programación y las personas que se especializan en esta actividad se denominan
programadores. Existen dos tipos importantes de software: software del sistema y software
de aplicaciones. Cada tipo realiza una función diferente. El software del sistema es un
conjunto generalizado de programas que gestiona los recursos de la computadora, tal como
el procesador central, enlaces de comunicaciones y dispositivos periféricos.

Los programadores que escriben software del sistema se llaman programadores de


sistemas. El software de aplicaciones es el conjunto de programas escritos por empresas o
usuarios individuales o en equipo y que instruyen a la computadora para que ejecute una
tarea específica. Los programadores que escriben software de aplicaciones se llaman
programadores de aplicaciones. Los dos tipos de software están relacionados entre sí, de
modo que los usuarios y los programadores pueden hacer así un uso eficiente de la
computadora. se muestra una vista organizacional de una computa-dora donde se ven los
diferentes tipos de software a modo de capas de la computadora desde su interior (el
hardware) hasta su exterior (usuario). Las diferentes capas funcionan gracias a las
instrucciones específicas (instrucciones máquina) que forman parte del software del
sistema y llegan al software de aplicación, programado por los programa-dores de
aplicaciones, que es utilizado por el usuario que no requiere ser un especialista.

Existen propuestas muchas definiciones para Informática, cada una dada desde una
perspectiva diferente. Si tenemos en cuenta únicamente el aspecto computacional
podemos decir que es la disciplina encargada de estudiar los procesos algorítmicos que
describen y transforman información: su teoría, análisis, diseño, eficiencia, implementación
y aplicación. Un proceso algorítmico es la realización de una tarea a través de una serie de
acciones, las cuales se realizan una después de otra, en estricto orden.

Desde esta perspectiva la Informática se encarga de crear métodos para solucionar diversos
problemas con ayuda del computador. Todos alguna vez, nos hemos preguntado, por
ejemplo, ¿cómo es posible que un computador pueda realizar operaciones matemáticas?,
¿cómo se generan imágenes tan realistas que pueden engañar al ojo humano? ¿Cómo
puede una máquina tomar decisiones durante la realización de un proceso? La realización

Página
12
de estas y muchas otras tareas que hoy pueden realizar los computadores son el resultado
de muchos años de investigación en los cuales han intervenido expertos en muchas áreas
del conocimiento humano, quienes se han encargado de analizar y diseñar mecanismos
para lograr que estas máquinas puedan ejecutar ciertas tareas de una forma semejante a
como lo hace un ser humano, e incluso más rápido.

La Informática se encarga de estudiar los problemas y analizar las diversas soluciones hasta
encontrar la más óptima, para de esta forma, después de programarla en un computador,
convertirlo en un ayudante eficaz que le permita al ser humano realizar sus tareas con
mayor rapidez y precisión. En este trabajo, de encontrar las soluciones más óptimas, la
Informática ha creado componentes de hardware y software que buscan convertir al
computador en una máquina capaz de solucionar cualquier tipo de problemas a los que se
pueda enfrentar el ser humano en su diario vivir.

Para comprender un poco como hace un computador todas las tareas para las cuales ha
sido diseñado, antes vamos a examinar algunos conceptos que se encuentran íntimamente
relacionados con su funcionamiento. Es importante identificar el significado de algunos
términos técnicos que son muy utilizados en la literatura informática, para de esta manera
tener mayor familiaridad con esta tecnología.

Página
13
¿Qué es un
programa?

Un programa es un conjunto de instrucciones que controla el funcionamiento de un


ordenado para llevar a cabo una tarea específica los programas pueden clasificarse en
programas de sistema operativo y programas de aplicación. En este capítulo se verá más a
detalle lo que es un programa y cuáles son sus características además de su clasificación

Página
14
Definición:
Un programa es un conjunto ordenado de instrucciones
que controlan el funcionamiento de un ordenador para
llevar a cabo una tarea específica. Para Niklaus Wirth:

U n programa es la traducción de un algoritmo a un lenguaje de programación; la


receta (algoritmo) puede traducirse al francés o al español. Un programa puede
estar formado por un conjunto de algoritmos, cada uno de los cuales, lleve a cabo
una tarea específica. Por otro lado, existen diferentes estructuras de datos definidas por las
relaciones o las formas en que pueden agruparse los datos que las constituyen. La
estructura actual de los ordenadores no realiza distinción alguna entre datos y programas
dada la naturaleza de éstos.

Programa = Algoritmos + Estructuras de Datos

En general y atendiendo al formato de codificación de los datos, los dispositivos que


procesan datos pueden clasificarse en analógicos y digitales. Un dispositivo analógico
almacena y procesa datos que están representados en términos de una variable continua,
por ejemplo, en voltaje eléctrico. Son rápidos pero poco precisos y difíciles de programar.
Sólo sirven para tareas sencillas. Un reloj de agujas o un termómetro de mercurio serían
dispositivos analógicos. En un dispositivo digital la variable puede tomar un conjunto
discreto de valores, por ejemplo, datos en formato binario: se emplean órganos o
elementos con dos estados estables. Es mucho más flexible y preciso. La codificación viene
condicionada por los elementos físicos empleados en la construcción del computador: un
interruptor abierto o cerrado, un transistor conduciendo o no, una cinta magnética
magnetizada en un sentido o en otro, una señal eléctrica caracterizada por un pulso o por
su ausencia… Cuando en lo sucesivo se hable de ordenador será a este tipo de dispositivo
al que se haga referencia.
Programa: Transforma entrada en salida

Página
15
entrada programa salida

Un algoritmo es una secuencia de reglas o pasos precisos que permiten obtener unos
resultados a partir de unos datos. Por ejemplo: una receta. El algoritmo debe ser claro (no
ambiguo) y finito en términos de recursos empleados. Asimismo debe ser independiente
del lenguaje que se emplee para implementar cada paso.

Un dato es cualquier información codificada de forma que pueda ser aceptada y


procesada por un computador. Como se verá más adelante, será un valor que toma una
variable para cada uno de los elementos de un conjunto.

Para que pueda ser almacenada, transferida de una parte a otra y procesada por el
ordenador, la codificación de la información se lleva a cabo en formato binario. Un dígito
binario o bit (resultado de la contracción de la expresión binary digit) es la unidad más

Datos 5 pequeña y fundamental de información. Un octeto o byte es un conjunto de ocho


bits y es la unidad práctica de información. Como el byte es una unidad de
representación/almacenamiento de información relativamente pequeña para muchos
usos, se suelen emplear múltiplos:

Clasificación
Como se decía en el principio del capítulo los programas se clasifican en sistema operativo
y programas de aplicación en el siguiente apartado se detallan un poco las dos
clasificaciones

Un sistema operativo está formado por un programa o un conjunto de programas que


gestiona el funcionamiento del hardware, controla la ejecución de los programas y

Página
16
procesa las órdenes del usuario al ordenador. Ejemplos de sistemas operativos son:
Windows XP,

Linux, MS-DOS, UNIX, Windows NT, Mac/OS, VMS, ... Los sistemas operativos emplean un
lenguaje de control específico cuyas instrucciones se denominan comandos. Por otro lado
los sistemas operativos sirven de soporte a los programas de aplicación. El sistema
operativo se carga en la memoria RAM y mas concretamente en las direcciones iniciales
de memoria.

Las principales funciones de un sistema operativo son:

a) Gestión de disposición de E/S ( escritura, lectura, control)

b) Ejecucion de programas ( carga, ejecución, interrupciones)

c) Gestion de archivos (creacion, borrado, lectura)

d) Detección de errores (en memoria, en periféricos)

e) Asignación de recursos ( CPU, memoria)

f) Protección (confidencialidad, no interferencia)

g) Contabilidad (carga de los recursos)

Los programas de aplicación sirven para que el ordenador lleve a cabo una tarea
específica. Pueden clasificarse en: paquetes integrados de software (Office, Works,...),
editores o procesadores de texto (Word, WordPerfect,...), bases de datos (Access,
Oracle,...),

hojas de cálculo (Excel, Lotus 1-2-3,...), aplicaciones de diseño gráfico (AutoCad,


Microstation,...), etc.

Página
17
Historia de la
programación
(Desde sus inicios
hasta el dio de hoy)

Aunque a veces no caigamos en ello, en


nuestra vida diaria estamos rodeados de
software. En nuestro coche, en nuestro
smartphone, en nuestra televisión o,
incluso, en el sistema de control del
ascensor de nuestro edificio
encontramos software que ejecuta un
algoritmo que realiza una tarea
determinada. Si bien el término software
fue acuñado por John W. Tukey en 1957,
el concepto de "lectura de sucesivas
instrucciones" se remonta a la máquina analítica de Charles Babbage en 1822. Babbage no
trabajó solo y los cimientos que construyó para las ciencias de la computación no habrían
sido posibles sin la primera programadora de la historia: Ada Lovelace.

Página
18
En 1982, la revista TIME nombró “hombre del año” a la computadora. La noticia supuso un
impacto cultural importante y oficializó el hecho de que esta máquina es un personaje más
de la historia de la humanidad. Aunque considerada como un paradigma de la etapa
moderna y con sólo 30 años de verdadera historia (hasta mediados de los años 60 las
computadoras eran caras y para usos muy específicos que sólo las grandes instituciones y
universidades podían permitirse) su consecución, de una u otra forma, ha ocupado y
preocupado a muchas de las cabezas que jalonan la historia de la ciencia. El hecho de que
nuestro estado actual de avance tecnólogico haya permitido su construcción, no debe
ocultar los esfuerzos hechos desde los inicios del pensamiento científico.

Ábacos La necesidad de contar con un elemento mecánico que ayude a las personas en
sus tareas de manipulación numérica, o lo que es lo mismo una máquina que ejecute
algoritmos de forma más o menos automática es realmente antigua. Todos los historiadores
coinciden en citar como antecedente de lo que hoy llamamos computador al ábaco;
instrumento utilizado para la suma y la resta, desde hace 4000 años. Este consiste en un
conjunto de alambres que llevan ensartados unas cuentas móviles, colocadas en un marco
rectangular cruzado por una barra horizontal que atraviesa los alambres

Cada una de las cuentas situadas por encima de la barra horizontal vale cinco, y cada cuenta
situada bajo la barra vale uno. Si comenzamos por la parte de la derecha y nos vamos
moviendo hacia la izquierda, el primer alambre representa el dígito de las unidades; el
segundo, el de las decenas; y sucesivamente las centenas, los millares, etc. Borramos o
ponemos a cero el ábaco separando todas las cuentas de la barra horizontal. Introducimos
los números moviendo las cuentas correspondientes hacia esa barra, comenzando por el
dígito situado más hacia la derecha, y moviéndonos hacia la izquierda.

Este artilugio resulta de especial interés para ayudar a sumar o restar dos números. La
entrada de datos se hace a través de una persona, que también se encarga de la ejecución
y control del algoritmo de suma o resta correspondiente, la salida de datos es consecuencia
de la observación de las cuentas, por lo que esta máquina seria un sistema de
almacenamiento, que necesita de un experto humano para procesar información (suma y

Página
19
resta).

Calculadoras mecánicas
A medida que las distintas otras ramas científicas se desarrollaron, se puso en evidencia la
necesidad de optimizar la capacidad de cálculo habida cuenta de lo dificultoso de las
operaciones que se tenían que llevar a cabo. Ello hizo que muchos matemáticos se
plantearan el desarrollo de instrumentos que facilitaran al menos teóricamente esta labor.
Así, John Napier, que recordamos por los logaritmos neperianos, publicó un estudio en 1617
que describía la utilización de cuentas con una marca especial, para realizar multiplicaciones
y divisiones (la obra matemática de Napier condujo mucho más adelante al desarrollo de la
regla de cálculo, venerable instrumento que durante muchos años fue para algunos de
nosotros la “máquina” primaria para llevar a cabo cálculos complejos). En 1642, Blaise
Pascal inventó la primera “sumadora” real, parecida a las calculadoras mecánicas que se
popularizarian en nuestros años sesenta. Se trataba de una compleja combinación de
ruedas, engranajes y ventanas a través de las cuales aparecían los números. A finales del
siglo XVII, otro famoso matemático, Gottfried Leibnitz, desarrolló una máquina parecida,
pero más avanzada; podía sumar, restar, multiplicar y dividir mecánicamente, e incluso
sacar raíces cuadradas.

A pesar de la ingeniosidad de estos planteamientos mecánicos, hasta 1820 no se pudo


disponer de la tecnología que permitiera la aparición de las primeras máquinas comerciales
Página
20
capaces de efectuar las cuatro operaciones matemáticas básicas. Esta es una constante en
la historia de las máquinas de calcular, el decalaje existente entre los diseños originales y
las disponibilidades tecnológicas para llevarlos a la práctica. En la máquina de Leibnitz, se
produce un avance respecto al ábaco, puesto que el algoritmo esta ya incorporado en la
propia estructura de la máquina y además respecto a la de Pascal supone un incremento en
flexibilidad, pues el usuario puede seleccionar, la operación que desea llevar a cabo. Sin
embargo, en su tiempo no pasaron de ser meras curiosidades, sin posibilidad de aplicación
práctica.

Las tarjetas perforadas y los computadores mecánicos


A comienzos del siglo XIX se producen aportaciones, curiosamente ligadas a la resolución
de problemas de naturaleza no numérica. En 1801, Joseph Jacquard, inventó un telar
controlado mediante instrucciones almacenadas según un código representado en tarjetas
perforadas; de esta forma, el algoritmo que segue la máquina podrá cambiarse fácilmente
para conseguir un dibujo distinto sobre la tela. La máquina de Jacquard incorporó varios
elementos básicos que constituyen los computadores actuales. La idea de usar en tarjetas
perforadas, para guardar tanto números como instrucciones datos indujo, en 1835, a
Charles Babbage, a inventar un computador digital matemático de tipo mecánico que
recibió el nombre de máquina analítica. Babbage utilizó las tarjetas perforadas para
programar su máquina, que podía utilizar los resultados de un cálculo como entrada del
siguiente y que era capaz de manejar cálculos repetitivos, que más adelante llamaremos
bucles. Un logro, aun más significativo, de la máquina analítica fue que, en vez de seguir las
instrucciones del programa en la secuencia prefijada, podía saltar de una a otra (los
programadores actuales hablamos de bifurcaciones condicionales). Aunque los
computadores actuales están basados en muchos de los principios que Babbage utilizó, en
su tiempo no existía ningún procedimiento que pudiera mover su cada vez más complejo
artilugio mecánico. Una vez más, la tecnología no era la adecuada para el desarrollo teórico
propuesto y el trabajo de Babbage se saldó con un fracaso, sólo mitigado por el apoyo de
Ada Lovelace, hija de Lord Byron, considerada como la primera programadora de la historia
y en cuyo honor el lenguaje de programación ADA lleva su nombre. El concepto de la tarjeta
perforada para almacenar programas y datos llegó a prender, y Herman Hollerith para
procesar el censo de 1890 en EEUU la recuperó con notable éxito (consiguió un ahorro de
tiempo de varios meses) al incorporarla a máquinas alimentadas eléctrica y no
mecánicamente. Hollerith puso las bases de una de las empresas que más adelante se
integraría en la International Business Machines (IBM). En paralelo, George Boole (1815-
1864), el fundador de la teoría de la lógica matemática, nos legó un álgebra para
representar cantidades lógicas e investigó las operaciones que se pueden realizar con estas
variables (álgebra de Boole). La lógica booleana es la base teórica tanto para el diseño de
Página
21
circuitos electrónicos como para muchas técnicas de programación, aunque difícilmente,
pudo ser Boole consciente de la trascendencia práctica de su teoría.

Los computadores electromecánicos


Coincidiendo con la aparición de las máquinas eléctricas y bajo le presión del esfuerzo bélico
de la Segunda Guerra Mundial (resolución de claves secretas, etc, ) se desarrollaron
computadores electromecánicos, como elMark I (1944) de la Universidad de Harvard. Se
trataba de una máquina de grandes dimensiones, 15,5 metros de largo por 2,4 metros de
altura, en la que las instrucciones se introducían mediante cinta de papel, y los datos
mediante tarjeta perforada y un teletipo iba escribiendo los resultados. El Mark I podía
multiplicar dos números en unos tres segundos. En 1947, su sucesor el Mark II podía llevar
a cabo la misma multiplicación en un cuarto de segundo aproximadamente. Era doce veces
más rápido y suponía, un gran avance; sin embargo su obsolescencia fue inmediata, como
veremos a continuación, con el advenimiento de la electrónica.

Computadores electrónicos
La electrónica empieza con la válvula o tubo de vacío (un bulbo de vidrio, donde una placa
de metal calentada por un filamento emite electrones que se desplazan en el vacío debido
a una diferencia de potencial entre el cátodo y el ánodo). El primer computador digital
electrónico utilizaba tubos de vacío y podía realizar una multiplicación en unos 2,8
milisegundos. Fue desarrollado en 1946 por un equipo de la Universidad de Pennsylvania.
Esta máquina recibió el nombre de ENIAC, (Electronic Numerical Integrator and Computer)
su primera aplicación, a pesar de la finalización de la guerra, fue el cálculo de las tablas de
tiro de la artillería. El ENIAC se programaba cambiando manualmente los conectores y
manipulando conmutadores, lo que, como podemos imaginar, requería gran cantidad de
tiempo, por lo que su uso casi no traspasó el ámbito académico.De hecho, éstas máquinas
no tuvieron ningún impacto comercial, aunque sentaron claramente las bases del diseño de
los computadores actuales. Cuando en 1947 tiene lugar, en los laboratorios Bell, la
invención del transistor (más pequeño que la válvula, menor consumo y mayor fiabilidad)
se posibilita el paso del computador, de pieza experimental de laboratorio, a dispositivo con
ciertas posibilidades comerciales.

Los circuitos integrados


Página
22
Permitieron integrar en un único sustrato de silicio cientos de transistores (actualmente
esta integración es ya del orden de millones, en los llamados chips2 ), con lo que quedaron
sentadas las bases de los computadores actuales. A pesar de que quedaban muchos
problemas por resolver, a principios de los años sesenta, las ideas y las tecnologías estaban
ya maduras y se trataba de seguir una evolución, cuyos resultados no han dejado de
sorprendernos hasta ahora. El computador es uno de los elementos claves de la actual
revolución científico-industrial y su papel, en la historia de la humanidad, no será menor
que el que jugaron en su día, la rueda, el motor de explosión o la energía nuclear.

Página
23
Que tipos de
lenguajes existen
en programación

Página
24
Los lenguajes de programación pueden clasificarse de
diferentes maneras.
Los lenguajes de programación son estructuras simbólicas que nos permiten disponer de
los dispositivos de una computadora.

El objetivo primordial de un lenguaje de programación es hacernos la vida más sencilla,


proporcionándonos formas humanamente comprensibles de construir secuencias de
números binarios reconocidos por un entorno operativo, a través de símbolos y palabras
equivalentes.

Sin la existencia de lenguajes de programación avanzados, sería imposible la elaboración de


programas tan útiles y complejos como Microsoft ord o Microsoft Excel. Los millones y
millones de secuencias binarias que tendríamos que proporcionar a la computadora para
obtener la funcionalidad que nos dan tales programas excederían nuestro tiempo de vida.

Generación: 1a 2a 3a 4a
Nivel: alto Bajo
Propósito: General especifico
Orientación: procedural eventos objetos

Clasificación de los lenguajes en cuanto a su generación


La generación a la que pertenecen los lenguajes indica la capacidad de representación
que tienen los símbolos que lo componen. Entre más secuencias de números binarios
represente cada símbolo del lenguaje, mayor será su generación.

Lenguajes de primera generación

En los inicios de la computación, las instrucciones se le proporcionaban a la


computadora en lenguaje máquina, en formato de secuencia binaria, en obvia
proporción de 1 a 1 (una secuencia binaria, una instrucción a la computadora).

Para desarrollar en los lenguajes de primera generación era necesario conocer qué
representaba para la computadora cada una de las secuencias binarias que

Página
25
utilizaríamos; prácticamente, sólo el constructor de la computadora podía programarla.
Esto planteaba una enorme limitación, ya que la capacidad humana para estar
preparando las instrucciones, nos llevaba a la elaboración de programas bastante
rudimentarios, por ejemplo una suma o una resta. Elaborar un programa compuesto
por millones de secuencias de números binarios era imposible.

En resumen, en la primera generación se proporcionaban secuencias binarias directas,


que pasaban a ejecución en la computadora sin interpretación o manipulación alguna.

Lenguajes de segunda generación

La mayor limitación de la primera generación era que las secuencias binarias eran
difíciles de entender. En la segunda generación se recurrió al uso de términos
mnemotécnicos (propios de un sistema para mejorar la memoria; del griego mnémo,
memoria); la proporción de instrucciones y símbolos seguía siendo de 1 a 1, pero con
la ventaja de que ya no era necesario aprender secuencias binarias, sino palabras,
generalmente abreviadas.

En resumen, en la segunda generación se proporcionaban mnemotécnicos que la


herramienta de desarrollo traducía a secuencias binarias, que pasaban a ejecución en
la computadora.

Lenguajes de tercera generación

Si en la segunda generación era posible representar una secuencia binaria a través de


una palabra, también debería ser posible representar varias secuencias binarias a
través de una palabra. Bajo esta premisa, nacen los lenguajes de tercera generación,
como BASIC, COBOL, PASCAL,

C, etcétera. Con estos lenguajes, la proporción de instrucciones y símbolos era de


muchas a 1, lo que significó un avance exponencial en el uso de lenguajes. Además de la
proporción instrucción símbolo, otro rasgo característico de esta generación es que la
codificación, aunque más sencilla, seguía siendo realizada por el ser humano, es decir,
por los programadores.

En resumen, en la tercera generación se programan instrucciones que la herramienta


de desarrollo interpreta y traduce en una o más secuencias binarias, que pasan a
ejecución en la computadora.

Lenguajes de cuarta generación

Página
26
Algunos lenguajes y herramientas de desarrollo comenzaron a integrar sistemas de
macroinstrucciones y generadores de código, automatizando el proceso de
proporcionar a la computadora instrucciones de bajo nivel.

Las macroinstrucciones son instrucciones de nivel superior, que al ejecutarse producen


los efectos equivalentes de un conjunto más amplio de instrucciones del mismo
lenguaje, pero de nivel inferior.

Los generadores de código, por otro lado, son herramientas que con poca interacción
del programador generan el código que desarrollaría ciertas tareas rutinarias, dejando
al programador la codificación de aquellas reglas específicas del negocio, que no podían
ser realizadas de manera automática. Las macroinstrucciones y los generadores de
código proporcionan el rasgo característico de los lenguajes de cuarta generación: la
codificación es realizada por el ser humano, pero también por el lenguaje o por la
herramienta misma. La codificación es un proceso asistido.

En resumen, en la cuarta generación se programan macroinstrucciones e instrucciones;


la herramienta de desarrollo interpreta y traduce las macroinstrucciones en
instrucciones de más bajo nivel, las junta con las instrucciones que el programador haya
enviado, las complementa con instrucciones que genera de manera automática, para
después interpretarlas y traducirlas en secuencias binarias, que pasan a ejecución en la
computadora.

Clasificación de los lenguajes en cuanto a su nivel


El nivel de los lenguajes está asociado al número de plataformas en las que pueden ejecutarse los
programas desarrollados en un determinado lenguaje. Como ya vimos, las computadoras sólo
actúan en respuesta a secuencias binarias; cada plataforma de computadoras responde a las
secuencias binarias que reconoce como instrucciones.

Lenguajes de alto nivel

Un lenguaje o herramienta de desarrollo es de alto nivel si existe la posibilidad de generar, a partir


de un mismo código fuente, secuencias binarias que sean reconocidas por varias plataformas de
computadoras.

Lenguajes como C, COBOL, y PASCAL, pueden servir en plataformas distintas, como indo s, UNI y
Linux, con un mayor o menor grado de portabilidad.

La portabilidad es la capacidad de los lenguajes y herramientas de desarrollo para generar productos


que se ejecuten en diferentes plataformas, preferentemente sin cambios en la codificación.

Lenguajes de bajo nivel

Página
27
Un lenguaje o herramienta de desarrollo es de bajo nivel si no existe la posibilidad de generar, a
partir de un mismo código fuente, secuencias binarias que sean reconocidas por varias plataformas
de computadoras.

Clasificación de los lenguajes en cuanto a su propósito


El propósito de los lenguajes está asociado a las ramas del conocimiento humano

que las aplicaciones desarrolladas en dichos lenguajes pueden cubrir.

LENGUAJE DE PROPOSITO ESPECIFICO.

Los lenguajes de propósito específico son aquellos que únicamente permiten


desarrollar aplicaciones que cubren una determinada rama del conocimiento humano.
Un ejemplo de este tipo es el lenguaje COBOL, que fue pensado para aplicaciones de
negocios; desarrollar una compleja aplicación de graficación vectorial en dicho lenguaje
puede resultar, si no es que imposible, sí algo muy inadecuado.

LENGUAJE DE PROPOSITO GENERAL.

Los lenguajes de propósito general, por otra parte, permiten desarrollar aplicaciones
que prácticamente cubren todas las ramas del conocimiento. Un ejemplo de esto es
BASIC, que igual permite desarrollar una aplicación científica, como de negocios o de
bases de datos.

Página
28
Que es un diagrama
de flujo

Página
29
Los diagramas de flujo se utilizan tanto para la representación gráfica de las operaciones
ejecutadas sobre los datos a través de todas las partes de un sistema de procesamiento de
información, diagrama de flujo del sistema, como la representación de la secuencia de
pasos necesarios para describí un procedimiento particular, diagrama de flujo de detalle

En la actualidad se siguen usando los diagramas de flujo del sistema, pero ha decaído el
uso de los diagramas de flujo de detalle al aparecer otros métodos de diseño estructurado
más eficaces para la representación y actualización de los algoritmos.

El diagrama de flujo utiliza unos símbolos normalizados, con los pasos del algoritmo
escritos en el símbolo adecuado y los símbolos unidos por flecas, denominadas líneas de
flujo, que indican el orden en que los pasos deben ser ejecutados. Los símbolos principales
son:

Página
30
Resulta necesario indicar dentro de los símbolos la operación específica concebida por el
programador. Como ejemplo veamos un diagrama de flujo básico, que representa la
secuencia de pasos necesarios para que un programa lea una temperatura en grado
centígrado y calcule y escriba su valor en grados kelvin

Página
31
Ejemplo

1. Realizar un algoritmo que calcule la suma de los enteros entre 1 y 10, es decir
1+2+3+...+10

Análisis del problema

Datos de salida: suma (contiene la suma requerida)


Datos auxiliares: núm. (Será una variable que vaya tomando valores entre 1 y 10 y se
acumulara en suma)

Hay que ejecutar un bucle que se realice 10 veces. En él se irá incrementando en 1 la


variable núm., y se acumulara su valor en la variable suma. Una vez salgamos del bucle se
visualizara el valor de la variable suma

Diseño del algoritmo

Tabla

De variables

entero : suma,num

Página
32
Cuáles son los
lenguajes de alto y
bajo nivel

Página
33
Lenguaje de programación de alto nivel
Como ya anunciamos, ante los serios inconvenientes de los lenguajes máquina y
ensamblador desde los inicios de los computadores actuales, se han desarrollado los
llamados lenguajes de alto nivel, con algunas características muy apreciadas: están más
cercanos a nuestra forma de resolver problemas, son relativamente independientes de la
máquina, (una sola de sus instrucciones equivale a varias instrucciones de lenguaje
máquina), facilitan enormemente el proceso de programación, acercándolo, en la medida
de lo posible, a los lenguajes que los humanos utilizamos habitualmente, etc.

Las sentencias o frases que se pueden construir a partir de la sintaxis de un lenguaje de alto
nivel son de dos tipos: imperativas (o instrucciones) que indican acciones a tomar por el
computador, o declarativas, que proporcionan información sobre determinadas
circunstancias del programa. Así la sentencia:

float Base

es declarativa, ya que no implica una acción visible dentro del contexto del programa, sino
que indica al programa traductor, que la variable Base se va a utilizar como un dato
numérico en coma flotante, de simple precisión para que lo tenga en cuenta, a efectos de
representación interna en la memoria. Sin embargo, la sentencia:

Area = Base * Altura

Es una instrucción pues produce la ejecución de una operación, en este caso, multiplicar el
valor de Base por el de Altura, y el valor del resultado asignárselo a la variable Area.

Notemos que comparados con los lenguajes máquina, los de alto nivel permiten utilizar
variables, símbolos y términos más parecidos a los usados por los humanos, en la resolución
de problemas. Este proceso de abstracción nos permite pensar con independencia de las
particularidades con las que trabaja la máquina, sin ello resultaría casi imposible crear
programas de tamaño no trivial. El programador a la hora de resolver un problema,
establece una jerarquía de abstracciones, hasta que el computador puede encargarse de su
traducción y posterior ejecución. Con ello tenemos una doble ventaja, por un lado que el
programador piense en una determinada estructura de datos sin tener que preocuparse en
cómo se organizan éstos realmente en memoria y por otro, que pueda utilizar operaciones,
habituales para nosotros, que serán finalmente ejecutadas por el procesador. Por tanto los
lenguajes de alto nivel deben permitir especificar en forma abstracta tanto estructuras de
datos complejas como los distintos pasos que constituyen un algoritmo que implementa un

Página
34
programa. Esta idea constituirá el hilo conductor de este libro, obedeciendo a una de las
claves de la Programación.

PROGRAMA = ESTRUCTURA DE DATOS + ALGORITMOS

Esto significa que todo proceso de programación, además de contar con un algoritmo que
resuelva el problema planteado, ha de tener conceptualizada la forma como organizar los
datos antes y después de ser procesados. De hecho, ambas cuestiones están
interrelacionadas: una estructura de datos adecuada puede simplificar el diseño de un
algoritmo, y un algoritmo menos adecuado que otro puede implicar manejar estructuras de
datos más complejas.

La evolución del arte y la tecnología de la programación es muy intensa y sigue en pleno


desarrollo, en la actualidad. Veamos algunos hitos: programación clásica, representada por
las primeras versiones de FORTRAN y BASIC, se caracteriza por el mero uso de una secuencia
de ordenes y bifurcaciones; programación modular, añade un método de diseño que
permite resolver un problema, mediante su descomposición en problemas más simples o
módulos; programación estructurada (representada por PASCAL y C entre otros) supone.
además un conjunto de técnicas que permiten desarrollar programa fáciles de escribir,
verificar, leer y mantener. La naturaleza de todos ellos es procedural, es decir, está basada
en procedimientos que hacen algo concreto, como escribir un mensaje en pantalla, obtener
datos desde el teclado o ejecutar un proceso algorítmico, de forma que un programa puede
incorporar fácilmente cientos de procedimientos individuales. En otros capítulos, nos
extenderemos sobre esta variedad de técnicas de programación, limitémonos ahora, a
añadir la llamada programación orientada a objetos, cuyos programas se construyen
ensamblando partes denominadas objetos, que es un tipo especial de dato, en un intento
de emular el mundo real, que se compone de objetos que interaccionan entre sí. La
programación orientada a objetos presenta ventajas importantes, pero sus conceptos no
son fáciles y en ningún caso accesibles, sin un buen dominio de la programación
estructurada.

Ante la actual babel de lenguajes de programación, el objetivo de este libro es ser


compatible con la mayor parte de los procedurales, sin tomar partido por ninguno en
particular, (es en otros textos y cursos donde se debe aprender a dominar algún lenguaje
de programación específico). No obstante, como ejemplos significativos, (desde la doble
óptica de los años noventa y de unos estudios de ciencias e ingeniería), vamos a tratar de
rastrear, en la medida de lo posible, cuatro de los más populares lenguajes, (alguno de los
cuales debe de ser aprendido en paralelo con este curso), que por orden cronológico son:

Página
35
Tres de los más populares lenguajes
Clasificación por orden cronológico
FORTRAN
•Pasa por ser el primer lenguaje de alto nivel que contó con un compilador eficiente. Su
propio nombre, acronismo de “FORmula TRANslation”, señala que fue diseñado con el
objetivo de ser utilizado para calculo científico.
•Desarrollado en 1957 por un pionero de la informática John Backus y un equipo de
científicos de IBM, su primera estandarización data de 1966 y desde entonces han
aparecido dos mejoras sustantivas en 1977 y 1990.
•Aunque su panorámica se reduce casi exclusivamente al calculo científico y técnico, es tal
la cantidad de software escrito en este veterano lenguaje, que su uso en los ambientes de
calculo intensivo esta muy extendido y es difícil hacer un pronóstico acerca de su
sustitución por otros lenguajes de alto nivel más sofisticados.

BASIC
•Fue desarrollado en 1964 por John Kemeny y Thomas Kurtz en el Darmouth College,
comenzó siendo una herramienta para enseñar programación como indica su acronismo
(Beginners All-purpose Symbolic Instruction Code). Su simplicidad le hizo especialmente
popular, siendo el primer lenguaje de alto nivel que se utilizó con la aparición de los
primeros ordenadores personales, incluso anteriores al primer PC de IBM. Existen
versiones del Basic especialmente potentes y accesibles como Turbo-Basic, Quick-Basic,
GW-Basic y Visual-Basic (que ya incorpora alguna de las características y métodos
orientados a objetos).
•A pesar de su popularidad, el BASIC no ha cuajado completamente a nivel científico y
profesional, ya que no tiene un gran repertorio de herramientas y sus compiladores no
producen archivos ejecutables que sean tan compactos, veloces y eficientes como los
producidos por otros lenguajes. Sin embargo, su simplicidad, puede llegar a satisfacer las
necesidades de muchos usuarios.

PASCAL
•Desarrollado por el suizo Niklaus Wirth en 1971, en honor del sabio francés del siglo XVII
del mismo nombre, es el primer lenguaje específicamente pensado para la programación
estructurada. Sus puntos más interesantes son sus impecables medios para revisar el tipo
de datos y para controlar el flujo de ejecución del programa. Son muchos los libros y
cursos que lo utilizan como lenguaje de primera elección para aprender programación
estructurada. Como no podía ser menos, existen muchas extensiones de PASCAL y en
particular las últimas, orientadas a objetos. Los puntos negativos para los profesionales de
la programación hay que buscarlos en su filosofía excesivamente académica, lo que
conduce a hacerlo un poco tedioso.
•C y C++. El lenguaje C está considerado una especie de pura sangre por muchos
programadores, ya que los programas escritos en C producen un código ejecutable
especialmente veloz y eficiente, pues con él la máquina puede hacer casi todo lo que su
hardware le permite realizar. Fue desarrollado por Brian Kernighan y
•Dennis Ritchie a principios de la década de los 70 en los Laboratorios Bell; el segundo de
sus autores tiene también la importante paternidad del sistema operativo UNIX. De hecho
C y UNIX están íntimamente ligados ya que el código fuente C se puede trasladar de una
máquina UNIX a otra. El costo de un lenguaje tan útil reside en que no es de los de más
fácil aprendizaje, lo que puede llevar a cierto grado de desmoralización a los principiantes,
Página este estado de ánimo.
que deben superar rápidamente
36
Elementos básicos de un lenguaje de alto nivel
Un programa consta de una sucesión de sentencias, escritas en lineas sucesivas.Veámos cuales son
los elementos que están presentes en cualquier programa escrito en un lenguaje de programación
de alto nivel. Palabras reservadas: Conjunto de colecciones de caracteres con significado especial,
que el traductor del lenguaje interpreta según su significado. Estas palabras, permitirán formar
sentencias, tanto declarativas como imperativas. Cada lenguaje tiene un conjunto de palabras
reservadas. Veamos algunos ejemplos de palabras reservadas tomadas de cada lenguaje:

Constantes y Variables: Un programa contiene ciertos objetos o conjuntos de datos que no deben
cambiar durante su ejecución, estos valores se llaman constantes, por contra una variable es un
objeto o conjunto de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o la
ejecución del programa. Las variables tienen un nombre, conocido como identificador, que suele
constar de varios caracteres alfanuméricos de los cuales el primero normalmente es una letra. Una
variable por tanto se identifica por dos atributos: nombre y tipo Este último define el conjunto de
posibles valores que puede tomar la variable,a la vez que determina el tipo de dato que soporta su
correspondiente representación interna.

Expresiones: Combinaciones de constantes, variables, símbolos de operación, caracteres


especiales, etc., análogas a las utilizadas en notación matemática. Cada expresión toma un valor
que se determina tomando los valores de las variables y constantes implicadas y la ejecución de
las operaciones indicadas. Una expresión consta de operandos y operadores. Según sea el tipo de
objetos que manipulan, pueden ser: - Aritméticas. Donde las variables y constantes son numéricas
y las operaciones son aritméticas, una vez ejecutadas, su valor numérico es: Ej.: x + (b+5) + z * z -
Relacionales: Utiliza signos de comparación (, =, etc.) con valores de tipo numérico o carácter para
producir un valor lógico (verdadero o falso), Ej.: (A-2) < (B-4) - Lógicas: Combina operadores lógicos
(AND, OR, NOT) que operarán sobre valores lógicos, de acuerdo con sus tablas de verdad. Ej.: (AB)
- De Carácteres: Que involucra cadenas de caracteres alfanuméricos. Ej.: Unión de dos cadenas.

Etiquetas: Ciertas instrucciones de un programa utilizan etiquetas para referirse a una línea
determinada de un programa, bien para realizar un salto a dicha línea, bien porque dicha línea
contiene información adicional para una instrucción. La etiqueta puede tener un nombre (situado
al principio de la línea que está etiquetando) o ser simplemente el número de la línea en cuestión.
Página
37
Comentarios: Con el único objetivo, de hacer más comprensible la lectura del programa por parte
de un humano, esta prevista la inclusión de comentarios a la largo de su desarrollo, que hay que
marcar debidamente, para que el ordenador las ignore.

Página
38
Conclusiones
Con este trabajo se obtuvieron conocimientos básicos de lo que es la programación, que
nos servirán para avanzar en el plan de estudios proporcionado por la facultad de
ingeniería civil, y así cumplir con el objetivo del mismo que es “Elaborar programas de
computadora en un lenguaje orientado a las ciencias e ingeniería, teniendo en cuenta, tanto el
estado actual del software de desarrollo como el software de aplicación. “

Página
39
Bibliografía
 Introducción a la programación de computadores Pedro Vicente Rosero

Montañoso Ed Tangua (2006)

 Introducción a la programación, 2da edición, Felipe Ramírez Ed Afaomega

(2007)

 Fundamentos de informática y programación Gregorio Martin Quetglas,

Francisco Toledo Lobo y Vicente Cerveron Lleo (1995)

 Problemas de metodología de la programación L. Joyanes McGraw (1990)

 Fundamentos de programación, 4ta Edición - Luis Joyanes Aguilar

 Soluciones de problemas de ingeniería Delores M. Etter

 Fundamentos de programación, Luis H. Yañez

Páginas web

 https://www.importancia.org/programacion-informatica.php

Página
40

Vous aimerez peut-être aussi