PROGRAMACION

 ¿QUE ES?


Programación es el proceso de tomar un algoritmo y codificarlo en una notación, un lenguaje de programación, de modo que pueda ser ejecutado por una computadora. Aunque existen muchos lenguajes de programación y muchos tipos diferentes de computadoras, el primer paso es la necesidad de tener una solución. Sin un algoritmo no puede haber un programa.

Las ciencias de la programación no son el estudio de la programación. La programación, sin embargo, es una parte importante de lo que hace un científico de la computación. La programación es a menudo la manera en la que creamos una representación para nuestras soluciones. Por tanto, esta representación en un lenguaje y el proceso de crearla se convierte en una parte fundamental de la disciplina.

Los algoritmos describen la solución a un problema en términos de los datos requeridos para representar el caso del problema y el conjunto de pasos necesarios para producir el resultado pretendido. Los lenguajes de programación deben suministrar un modo notacional para representar tanto el proceso como los datos. Para este fin, los lenguajes suministran estructuras de control y tipos de datos.

Las estructuras de control permiten que los pasos algorítmicos sean representados de una manera conveniente pero sin ambigüedades. Como mínimo, los algoritmos requieren estructuras que lleven a cabo procesamiento secuencial, selección para toma de decisiones e iteraciones para control repetitivo. Siempre y cuando el lenguaje proporcione estas instrucciones básicas, éste puede ser usado para la representación del algoritmo.

Todos los ítems de datos en la computadora están representados como cadenas de dígitos binarios. Con el fin de darle significado a estas cadenas, necesitamos tener tipos de datos. Los tipos de datos brindan una interpretación para estos datos binarios de modo que podamos considerarlos en términos que tengan sentido con respecto al problema que está siendo resuelto. Estos tipos de datos incorporados de bajo nivel (a menudo denominados tipos de datos primitivos) proporcionan los bloques constructivos para el desarrollo de algoritmos.


 ¿CUALES SON SUS ELEMENTOS?

  

Sintaxis:
Cada lenguaje de programación tiene unas reglas especiales para la construcción de programación, a esto se le denomina sintaxis


El compilador lee el programa y comprueba que el programa sigue las reglas de sintaxis del lenguaje de programación, el compilador traduce el código fuente de Java a un código máquina (código objeto)

Código Objeto:
Consta de instrucciones máquina e información de cómo cargar el programa en la memoria antes de su ejecución


Si el compilador encuentra errores, los presentará en la pantalla, una vez corregidos los errores se vuelve a compilar sucesivamente hasta que no se produzcan más errores

Depuración:
Los programas rara vez funcionan bien la primera vez que se ejecutan, por lo que los errores que se detectan deben ser corregidos


Al proceso de encontrar errores se denomina depuración del programa, esta tarea es de las más difíciles en el proceso de programación

Errores de sintaxis:
Son aquellos que se producen cuando el programa viola la sintaxis, es decir, las reglas gramaticales del lenguaje

Errores lógicos.
Son errores del programador en el diseño del algoritmo, son difíciles de encontrar y aislar, ya que no suelen ser detectados por el compilador

Errores de regresión:
Son aquellos que son provocados cuando accidentalmente se producen al corregir un error lógico y se produce otro en otra parte del programa

Elementos léxicos de los programas
Identificadores
Palabras reservadas
Literales
Operadores
Separadores
Identificador
Es una secuencia de caracteres, letras dígitos y subrayados(_)

El primer carácter debe de ser una letra, no un subrayado

Las letras mayúsculas y minúsculas son diferentes para cada identificador

Ejemplo:
Nombre

Nombre_clase

Cantidad_Total

Palabras Reservadas
Es aquella que tiene un significado especial para el lenguaje de programación


Una palabra reservada no puede ser utilizada como identificador, objeto o función


 asm      case       const    do         explicit friend
 auto     catch    continue            double extern goto
 bool      char      default                else      float     if
 break   class     delete enum   for          int

Signos de Puntuación y Separadores
Todas las sentencias deben de terminar con un punto y coma


Otros signos de puntuación son:


! % & * ( )-+= { } ~ ^ \ ; ´ : < > ? , . / “





EXPOSITORES








¿QUE SON?


-VARIABLES:

Las variables se suelen utilizar en muchos ámbitos diferentes, como por ejemplo, en matemáticas. Pero aquí te encontrarás la definición de variable en programación.
Una variable es donde se guarda (y se recupera) datos que se utilizan en un programa.
Cuando escribimos código, las variables se utilizan para:
Guardar datos y estados.
Asignar valores de una variable a otra.
Representar valores dentro de una expresión matemática.
Mostrar valores por pantalla.
Todas las variables deben ser de un tipo de datos, ya sea un dato de tipo primitivo, como un número o texto, o un dato abstracto, como un objeto que se ha creado.


-OPERADORES:

Como su nombre lo dice su función es asignar un valor especifico a una variable mediante una asignación simple (=) o por dos operadores, llamados operadores compuestos.

Todos son binarios.

Es recomendable no dejar espacios entre los operadores.

Operador            Acción  Ejemplo               Resultado
=              Asignación Básica           X = 6      X vale 6
*=            Asigna Producto              X *= 5   X vale 30
/=             Asigna División                X /= 2    X vale 3
+=            Asigna Suma                   X += 4   X vale 10
-=             Asigna Resta                   X -= 1    X vale 5
%=          Asigna Modulo                 X %= 5  X vale 1
<<=        Asigna Desplazamiento Izquierda X <<= 1 X vale 12
>>=        Asigna Desplazamiento Derecha    X >>= 1 X vale 3
&=          Asigna AND entre Bits      X &= 1   X vale 0
^=          Asigna XOR entre Bits       X ^= 1   X vale 7
|=           Asigna OR entre Bits         X |= 1    X vale 79



-SENTENCIAS:


Llamamos instrucción, orden o sentencia a cualquier expresión que el ordenador reconoce y le induce a realizar un proceso.Ya hemos visto elementos a los que podemos considerar órdenes como:

Inicio ,   equivalente a “Comienza a procesar información”

Fin ,   equivalente a “Termina de procesar información”

Variable1 = número ,   equivalente a “Asigna el número a la variable 1”

Variable1 = texto ,   equivalente a “Asigna el texto a la variable 1”

Variable1 = Variable2 ,   equivalente a “Asigna el contenido de la variable 2 a la variable 1”

Junto a éstas, las órdenes más habituales son las de captura y emisión de datos. Entenderemos por captura la recepción de un dato que proviene de:

· Una entrada de teclado manejada por el usuario.

· Un archivo.

· Una base de datos.

· Un dispositivo periférico.

· Un ordenador.

· Otros dispositivos.



¿QUE SON LOS ALGORITMOS?

En informática, un algoritmo es una secuencia de instrucciones secuenciales, gracias al cual pueden llevarse a cabo ciertos procesos y darse respuesta a determinadas necesidades o decisiones. Se trata de conjuntos ordenados y finitos de pasos, que nos permiten resolver un problema o tomar una decisión.

Los algoritmos no tienen que ver con los lenguajes de programación, dado que un mismo algoritmo o diagrama de flujo puede representarse en diversos lenguajes de programación, es decir, se trata de un ordenamiento previo a la programación.

Visto así, un programa no es otra cosa que una serie compleja de algoritmos ordenados y codificados mediante un lenguaje de programación para su posterior ejecución en un computador.

Los algoritmos también son frecuentes en la matemática y la lógica, y son la base de la fabricación de manuales de usuario, folletos de instrucciones, etc. Su nombre proviene del latín algoritmus y éste apellido del matemático persa Al-Juarismi. Uno de los algoritmos más conocidos de la matemática es el atribuido a Euclides, para obtener el máximo común divisor de dos enteros positivos, o el llamado “método de Gauss” para resolver sistemas de ecuaciones lineales.

Ver además: Diagrama de Flujo.

Partes de un algoritmo
Todo algoritmo debe constar de las siguientes partes:

Input o entrada. El ingreso de los datos que el algoritmo necesita para operar.
Proceso. Se trata de la operación lógica formal que el algoritmo emprenderá con lo recibido del input.
Output o salida. Los resultados obtenidos del proceso sobre el input, una vez terminada la ejecución del algoritmo.
¿Para qué sirve un algoritmo?
Dicho muy llanamente, un algoritmo sirve para resolver paso a paso un problema. Se trata de una serie de instrucciones ordenadas y secuenciadas para guiar un proceso determinado.

En las Ciencias de la computación, no obstante, los algoritmos constituyen el esqueleto de los procesos que luego se codificarán y programarán para que sean realizados por el computador.

Tipos de algoritmos
Existen cuatro tipos de algoritmos en informática:

Algoritmos computacionales. Un algoritmo cuya resolución depende del cálculo, y que puede ser desarrollado por una calculadora o computadora sin dificultades.
Algoritmos no computacionales. Aquellos que no requieren de los procesos de un computador para resolverse, o cuyos pasos son exclusivos para la resolución por parte de un ser humano.
Algoritmos cualitativos. Se trata de un algoritmo en cuya resolución no intervienen cálculos numéricos, sino secuencias lógicas y/o formales.
Algoritmos cuantitativos. Todo lo contrario, es un algoritmo que depende de cálculos matemáticos para dar con su resolución.




HISTORIADE LA PROGRAMACION

Gottfried Wilheml von Leibniz (1646-1716), quien aprendió matemáticas de forma autodidacta (método no aconsejable en programación) construyó una máquina similar a la de Pascal, aunque algo más compleja, podía dividir, multiplicar y resolver raíces cuadradas.

Pero quien realmente influyó en el diseño de los primeros computadores fue Charles Babbage (1793-1871). Con la colaboración de la hija de Lord Byron, Lady Ada Countess of Lovelace (1815-1852), a la que debe su nombre el lenguaje ADA creado por el DoD (Departamento de defensa de Estados Unidos) en los años 70. Babbage diseñó y construyó la "máquina diferencial" para el cálculo de polinomios. Más tarde diseñó la "máquina analitica" de propósito general, capaz de resolver cualquier operación matemática. Murió sin poder terminarla, debido al escepticismo de sus patrocinadores y a que la tecnología de la época no era lo suficientemente avanzada. Un equipo del Museo de las Ciencias de Londres, en 1991, consiguió construir la máquina analítica de Babbage, totalmente funcional, siguiendo sus dibujos y especificaciones.

Máquina diferencial de Babbage

Un hito importante en la historia de la informática fueron las tarjetas perforadas como medio para "alimentar" los computadores. Lady Ada Lovelace propuso la utilización de las tarjetas perforadas en la máquina de Babbage. Para que se enteren todos esos machistas desaprensivos, el primer programador/a fue una mujer. En 1880 el censo en Estados Unidos tardó más de 7 años en realizarse. Es obvio que los datos no eran muy actualizados. Un asistente de la oficina del censo llamado Herman Hollerit (1860-1929) desarrolló un sistema para automatizar la pesada tarea del censo. Mediante tarjetas perforadas y un sistema de circuitos eléctricos, capaz de leer unas 60 tarjetas por minuto realizó el censo de 1890 en 3 años ahorrando tiempo y dinero. Más tarde fundó la Tabulating Machine Company y en 1924 tras alguna que otra fusión nació la Internacional Bussines Machines, IBM. ¿ Os suena ?

Atanasoff Berry Computer (ABC)

Las computadoras de hoy en día se sustentan en la lógica matemática basada en un sistema binario. Dicho sistema se implementa sobre dispositivos electrónicos que permiten, o no, pasar la corriente, con lo que se consiguen los 2 estados binarios: 0 y 1. A mediados del siglo XX, cuando se empezaron a construir las primeras computadoras digitales, se utilizaban tubos de vacío para implementar los 2 estados binarios, pero ¿ cómo aparecieron estos conceptos ? Alan Mathison Turing (1912-1954) diseñó una calculadora universal para resolver cualquier problema, la "máquina de Turing". Tuvo mucha influencia en el desarrollo de la lógica matemática. En 1937 hizo una de sus primeras contribuciones a la lógica matemática y en 1943 plasmó sus ideas en una computadora que utilizaba tubos de vacío. George Boole (1815-1864) también contribuyó al algebra binaria y a los sistemas de circuitos de computadora, de hecho, en su honor fue bautizada el álgebra booleana.

La primera computadora digital electrónica patentada fue obra de John Vincent Atanasoff (1903-1995). Conocedor de las inventos de Pascal y Babbage, y ayudado por Clifford Berry (1918-1963), construyó el Atanasoff Berry Computer (ABC). El ABC se desarrolló entre 1937 y 1942. Consistía en una calculadora electrónica que utilizaba tubos de vacío y estaba basada en el sistema binario (sistema numérico en el que se combinan los valores verdadero y falso, o 0 y 1).

Entre 1939 y 1944, Howard Aiken (1900-1973) de la universidad de Harvard en colaboración con IBM desarrolló el Mark 1. Era una computadora electromecánica de 16 metros de largo y más de dos de alto. Tenía 700.000 elementos móviles y varios centenares de kilómetros de cables. Podía realizar las cuatro operaciones básicas y trabajar con información almacenada en forma de tablas.

Por desgracia, los avances tecnológicos suelen producirse gracias a los militares que se aprovechan de la ciencia para perfeccionar sus armas. En la Moore School de la Universidad de Pensilvania se estaba trabajando en un proyecto militar para realizar unas tablas de tiro para armas balísticas. Los cálculos eran enormes y se tardaban semanas en realizarlos. Parece ser que John W. Mauchly (1907-1980), quien dirigía el departamento de física del Ursine College de Filadelfia vivió en casa de Atanasoff durante cuatro días a partir del 13 de Junio de 1941, lo que seguramente aprovechó para conocer las ideas de Atanasoff.

Junto a John Presper Eckert (1919-1995), Mauchly desarrolló una computadora electrónica completamente operacional a gran escala, para acelerar los complicados cálculos del proyecto militar de la universidad Moore. Se terminó en 1946 y se llamó Electronic Numerical Integrator And Computer (ENIAC). El ENIAC tenía 18.000 tubos electrónicos integrados en un volumen de 84 metros cúbicos. Pesaba unas 30 toneladas y consumía alrededor de 100.000 vatios. Su capacidad de cálculo era de 5.000 operaciones por segundo, aunque tenía que programarse manualmente conectándola a 3 tableros que contenían más de 6000 interruptores. Cargar un programa podía ser una tarea de varios días. El calor dispado por semejante monstruo debía ser importante, y se necesitaba una instalación de aire acondicionado. En definitiva, un ordenador portátil... más o menos.

Puede que no os suene, pero quien conozca de "los entresijos de la informática" seguro que considera importante nombrar a Johann Ludwig Von Neumann (1903-1957), genio de las matemáticas, quien tuvo el honor de asistir a las clases de Albert Einstein en la universidad de Berlín. Autor de trabajos de lógica simbólica, matemática pura y aplicada, física y tecnología, publicó un artículo acerca del almacenamiento de los programas, en 1945. Proponía que los programas se guardaran en memoria al igual que los datos, en forma binaria. Esto tuvo como consecuencia el aumento de velocidad de los cálculos y la ausencia de errores producidos por fallos mecánicos al programar la máquina mediante cables.

En cuanto a la aparición de los lenguajes de programación, el archiconocido COBOL, que tantos problemas causó con el "efecto 2000", fue el primer lenguaje en el que no había que programar directamente en código binario, y fue Grace Murray Hoper en 1952, una oficial de la Marina de Estados Unidos desarrolló el primer compilador, un programa que puede traducir enunciados parecidos al inglés en un código binario comprensible para la maquina llamado COBOL (COmmon Business-Oriented Languaje).

A partir de ahí, los avances han sido vertiginosos.

La utilización del transistor en las computadoras en 1958, sustituyendo los tubos de vacío
La aparición del circuito integrado de mano de Jack Kilby, también en 1958
La miniaturización de un circuito electrónico en un chip de silicio en 1961
El primer microprocesador, el 4004 de Intel, en 1971
Gary Kildall crea el sistema operativo CP/M en 1973
IBM comercializa el primer PC en 1980
Recordando a los primeros tiempos del ENIAC, con enormes computadores, en 1998 se terminó el proyecto Blue Pacific. La "maquinita" tiene la nada despreciable cantidad de 5856 procesadores que en conjunto tienen una velocidad de 3'9 teraflops, 2'6 Terabytes de memoria, ocupa 2400 metros cuadrados y tiene un peso de 47 toneladas. Se utiliza para la simulación de explosiones nucleares, y "ha salido" por unos 13000 millones de pesetas... baratito.

Hay muchos más personajes que intervienen en la historia y que han realizado grandes aportaciones, pero no es cuestión de extenderse.


No hay comentarios:

Publicar un comentario