Blogia

LA PROGRAMACIÓN

LA PROGRAMACIÓN


Es el proceso de diseñar, escribir, probar, depurar y mantener el código fuente de programas computacionales. El propósito de la programación es crear programas que exhiban un comportamiento deseado.

 


LENGUAJE DE PROGRAMACIÓN


Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.

 


Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto.



Por lo tanto, un lenguaje de programación tiene varias ventajas:


  •   Es mucho más fácil de comprender que un lenguaje máquina.

 

  •   Permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos.

 

 

IMPERATIVO Y FUNCIONAL


Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:

 

  •  Lenguajes imperativos.

 

  •  Lenguajes funcionales.

 

IMPERATIVO


Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.


FUNCIONAL


Un lenguaje de programación funcional (a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.

 

INTERPRETACIÓN Y COMPILADOS


Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:

 

  •  Lenguajes interpretados.

 

  • 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


Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamadocompilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.


Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida. 



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 interprete). 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).

TIPOS DE LENGUAJE DE PROGRAMACIÓN

TIPOS DE LENGUAJE DE PROGRAMACIÓN

 

LENGUAJES DE MÁQUINA


En informática, cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un ordenador o computadora. Es complicado definir qué es y qué no es un lenguaje de programación. Se asume generalmente que la traducción de las instrucciones a un código que comprende la computadora debe ser completamente sistemática. Normalmente es la computadora la que realiza la traducción.


 

LENGUAJE DE BAJO NIVEL


Se llaman de bajo nivel porque están muy cercanos al hardware del ordenador. Es necesario conocer a fondo la arquitectura de la maquina para la que se va a programar. El primer lenguaje de este tipo que se utilizó fue el lenguaje máquina, que consiste en un conjunto de instrucciones en binario, es decir, con ceros y unos, con los cuales se indica al ordenador qué hacer. 


 

LENGUAJES DE ALTO NIVEL


Los primeros programas ensambladores producían sólo una instrucción en lenguaje de máquina por cada instrucción del programa fuente. Para agilizar la codificación, se desarrollaron programas ensambladores que podían producir una cantidad variable de instrucciones en lenguaje de máquina por cada instrucción del programa fuente.


 

 

LENGUAJES COMPILADOS


En informática, un lenguaje cuyos programas se traducen a código máquina antes de ejecutarse, a diferencia de un lenguaje interpretado, cuyos programas se traducen y ejecutan instrucción por instrucción.


 

LENGUAJES INTERPRETADOS


Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar.


 

LENGUAJES DE PROGRAMACIÓN DECLARATIVOS


Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programación en los cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se esta buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con un lenguaje declarativo como SQL.


 

LENGUAJE DE DESCRIPCIÓN DE MAQUINA


Lenguaje de programación, como el PostScript, que se utiliza para describir la salida a una impresora o a una pantalla, que a su vez usan las instrucciones del lenguaje de descripción de página para construir el texto y los gráficos para crear la imagen de la página. El lenguaje de descripción de página es como otros lenguajes de ordenador o computadora, con un flujo lógico de programa que permite una manipulación sofisticada de la salida.


 

Visual C


Lenguaje de programación desarrollado en 1972 por el estadounidense Dennis Ritchie en los Laboratorios Bell. Debe su nombre a que su predecesor inmediato había sido llamado lenguaje de programación B. Aunque muchos consideran que C es un lenguaje ensamblador más independiente de la máquina que un lenguaje de alto nivel, su estrecha asociación con el sistema operativo UNIX, su enorme popularidad y su homologación por el American National Standards Institute (ANSI) lo han convertido quizá en lo más cercano a un lenguaje de programación estandarizado en el sector de microordenadores o microcomputadoras y estaciones de trabajo. 


 

LENGUAJE EXPERTO

 

PHP


Es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.



Visual Basic


En informática, acrónimo de Beginners All-purpose Symbolic Instruction Code (Código de Instrucciones Simbólicas de Uso General para Principiantes). Se trata de un lenguaje de programación de alto nivel desarrollado por los estadounidenses John Kemeny y Thomas Kurtz en el Dartmouth College a mediados de la década de 1960. BASIC se ganó su enorme popularidad gracias sobre todo a dos implementaciones, Tiny BASIC y Microsoft BASIC, que convirtieron a este lenguaje en la primera lengua franca de los microordenadores o micro computadoras.


 

C ++


Es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. http://es.wikipedia.org/wiki/C%2B%2B



Java 


Este lenguaje define una máquina virtual independiente de la plataforma donde se ejecuta, que procesa programas, llamados Applets, descargados desde el servidor Web. Además, debido al modo de ejecución de los Applets, este lenguaje es muy seguro frente a la presencia y ataque de virus informáticos. http://es.wikipedia.org/wiki/C%2B%2B


 

Python


Es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible. http://es.wikipedia.org/wiki/Python



Ruby


Es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre. http://es.wikipedia.org/wiki/Ruby


 

Javascript


Es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos2, basado en prototipos, imperativo, débilmente tipado y dinámico. http://es.wikipedia.org/wiki/JavaScript

 

 

El Fortran


FORTRAN (del inglés Formula Translating System) Es un lenguaje de programación alto nivel de propósito general, procedimental e imperativo, que está especialmente adaptado al cálculo numérico y a la computación científica. Desarrollado originalmente por IBM en 1957 para el equipo IBM 704, y usado para aplicaciones científicas y de ingeniería, el FORTRAN vino a dominar esta área de la programación desde el principio y ha estado en uso continuo por más de medio siglo en áreas de cómputo intensivo tales como la predicción numérica del tiempo, análisis de elementos finitos, dinámica de fluidos computacional (CFD), física computacional, y química computacional. Es una de los lenguajes más populares en el área de la computación de alto rendimiento y es el lenguaje usado para programas que evalúan el desempeño (benchmark) y el ranking de los supercomputadores más rápidos del mundo.

ALGORITMO

 

 

ALGORITMO

 


Un algoritmo es un conjunto ordenado y finito de instrucciones que conducen a la solución de un problema. Debe presentarse como una secuencia ordenada de instrucciones que siempre se ejecutan en un tiempo finito y con una cantidad de esfuerzo también finito. En un algoritmo siempre debe haber un punto de inicio y un punto de terminación, estos deben ser únicos y deben ser fácilmente identificables.

 


CARACTERÍSTICAS DE UN ALGORITMO



Debe ser preciso: Es decir, cada instrucción debe indicar de forma inequívoca que se tiene que hacer.


Debe ser finito: Es decir, debe tener un número limitado de pasos.


Debe ser definido: Es decir, debe producir los mismos resultados para las mismas condiciones de entrada.


Partes típicas de un algoritmo: Entrada de datos, Proceso y Salida de resultados.


 

 

REPRESENTACIÓN DE LOS ALGORITMOS

 

 


Los algoritmos se pueden representar mediante diagramas o texto. 


Diagramas: Son esquemas Que permiten representar los Procesos y su organización Con los cuales se llega a la Solución de un problema.

 


Texto: Los algoritmos se pueden representar mediante frases que representen los procedimientos que den solución al problema.

 


Algorítmico: Utiliza un algoritmo y puede ser implementado en una computadora.

 


Ejemplos

 

  • Instrucciones para manejar un vehículo.
  • Instrucciones para secar grano a granel.
  • Instrucciones para resolver ecuación de segundo grado.

 

 

 

Heurística: Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares. De las mismas, a se deducen una serie de reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de la mejor alternativa en todas o la mayoría de las veces.

 

 

 

DISEÑO DE ALGORITMO

 

 


En ocasiones se llegan a presentar problemas de índole muy difícil, provocando que un programa se complique en su elaboración. Y aun más en el propio proceso de cálculo. Por esta razón, para desarrollar un problema complejo se puede descomponer en varios “subprogramas”, elaborados de la misma manera que el principal, desarrollando éstos unas tareas más sencillas y fáciles de comprender y programar. A ésta técnica de elaboración y programación se le conoce como Diseño Descendente.

DIAGRAMA DE FLUJO

DIAGRAMA DE FLUJO

 

 

 

DIAGRAMA DE FLUJO

 


Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo, el cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún Lenguaje de Programación. Si el Diagrama de Flujo está completo y correcto, el paso del mismo a un Lenguaje de Programación es relativamente simple y directo.



Ventajas de los Diagramas de Flujo

  • Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.

 

  •  Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los re procesos , los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.

 

  •  Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.

 

  •  Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.

 

 

 

DESARROLLO DEL DIAGRAMA DE FLUJO

 


Las siguientes son acciones previas a la realización del diagrama de flujo:

 


  • Identificar a los participantes de la reunión donde se desarrollará el diagrama de flujo. Deben estar presentes el dueño o responsable del proceso, los dueños o responsables del proceso anterior y posterior y de otros procesos interrelación, otras partes interesadas.

 

  •   Definir que se espera obtener del diagrama de flujo.

 

  •   Identificar quién lo empleará y cómo.

 

  •   Establecer el nivel de detalle requerido.

 

  •  Determinar los límites del proceso a describir.

 

 

Los pasos a seguir para construir el diagrama de flujo son :

 


  • Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.

  • Identificar y listar las principales actividades / subprocesos que están incluidos en el proceso a describir y su orden cronológico.


  • Si el nivel de destalle definido incluye actividades menores, alistarlas también.

  • Identificar y listar los puntos de decisión.

  • Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.

  • Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.

ELEMENTOS PRINCIPALES DE UN DIAGRAMA DE FLUJO

 

 

 

ELEMENTOS PRINCIPALES DE UN DIAGRAMA DE FLUJO

 

 

 

  • Terminal: Representa el inicio o el fin de un algoritmo.

 

  • Entrada Manual: Representa el almacenamiento de valores en variables mediante entradas por teclado.

 

  • Proceso: Representa procesos Impresión.

 

  • Documento: Representa la impresión de datos (Normalmente de respuesta).

 

  • Preparación: Representa las condiciones de un grupo de procesos que se repiten.

 

  • Decisión: Una pregunta con la posibilidad de respuesta de dos o más opciones.

 

  • Pantalla: Presentación de datos en pantalla.

 

  • Conector: Es el que une dos partes de diagrama en una misma página.

SIMBOLOGÍA DE DIAGRAMA DE FLUJO

SIMBOLOGÍA DE DIAGRAMA DE FLUJO


 

 

 

 

 

  • Óvalo: Inicio y término (Abre y/o cierra el diagrama).

 

  • Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).

 

  • Rombo: Decisión (Formula una pregunta o cuestión).

 

  • Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).

 

  • Triangulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).

 

  • Triangulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).