que es y para que sirve programar y la programación de ordenadores
Diremos por tanto que programar es definir instrucciones para ser ejecutadas por un ordenador. El resultado de esta tarea es un paquete de instrucciones al que llamamos programa. El objetivo de programar suele ser resolver un problema.
Vayamos por partes. Para definir instrucciones a un ordenador hemos de utilizar un lenguaje o código específico, que ha sido prediseñado con el fin de que la interpretación de cada instrucción sea unívoca. No hay libertad de interpretación o subjetivismo. Si el lenguaje que utilicemos acepta la sintaxis: Mostrar 3+3, utilizarMuéstrame 3+3sería una orden nula o carente de significado para el ordenador, por lo que probablemente nos invitará a corregirla o simplemente nos dirá "Error".
Los lenguajes de programación, salvando las distancias, tienen similitudes con las lenguas humanas: evolucionan (p. ej. aumentan o disminuyen el número de vocablos), se expanden internacionalmente y triunfan si gran número de personas se decide a utilizarlos, o caen en desuso y se convierten en lenguas fósiles. Igualmente pueden ser más o menos fáciles de aprender, más o menos ricos en vocablos, y más o menos fuertes para resistir el embate de las necesidades de los programadores. Hablaremos de ello en otros artículos.
¿Con cuántos lenguajes podemos dar instrucciones a un ordenador? Pues con muchos, la única salvedad a tener en cuenta es que no podemos “hablarle” directamente: necesitaremos un intérprete o programa específico para escribir instrucciones. Este intérprete suele recibir el mismo nombre que el lenguaje (p. ej. Turbopascal o Visual Basic) y lo instalamos en nuestro ordenador accediendo a éste desde el sistema operativo. Muchos programadores disponen de varios lenguajes en sus ordenadores y los utilizan en función de sus necesidades. Para empezar diremos que uno es suficiente para una persona que va a iniciarse en programación.
¿Para qué sirve programar? La respuesta es un tanto ambigua, pero es esta: para todo. Atendiendo a que los ordenadores intervienen en la casi totalidad de las actividades que realiza el ser humano, y que la programación es lo que hace funcionar a los ordenadores, he aquí que programar sirve para todo. Quizás aclaremos poco diciendo esto, pero es difícil hacer una lista de cosas para las que sirve programar, porque sería infinita. Efectivamente, los ordenadores intervienen ya en todas las facetas de la vida y actividad humanas, en procesos tan dispares como la producción industrial, la enseñanza o el control de tráfico.
Seamos más específicos: pensemos en nuestra actividad diaria. En una farmacia, por ejemplo, un ordenador controla a través de un programa los flujos que existen: la entrada de medicamentos (recepción de mercancía), salida de medicamentos (venta o envío a otras farmacias), facturación, etc. El software puede estar preparado para lo que queramos, por ejemplo, avisar cuando el stock de cierto medicamento baja de un determinado nivel (supongamos, 10 unidades).
Otro programa puede servir para calcular la nómina de los empleados, en función de los días trabajados y horas extra realizadas. Otro software será útil para escribir cartas estableciendo los tipos de letra, márgenes, tamaño de papel, etc. En una empresa de cualquier tipo nos encontraremos lo mismo: programas y más programas.
Ahora bien, puesto que al farmacéutico los programas comerciales le resuelven casi todo, ¿De qué le serviría saber programar? Pues diremos que para todo lo que él quiera, en base a sus problemas o necesidades particulares. Supongamos que debido a una nueva normativa o por ser un servicio nuevo, en la farmacia se empieza a preparar un reconstituyente para personas con cierto tipo de dolencias, cuya fórmula de preparación depende de los resultados analíticos del paciente. Pensemos en un supuesto:
TIPOS DE SOFTWARE
El término software (partes suaves o blandas en castellano) hace alusión a la sumatoria de aquellas reglas, programas, datos, documentación e instrucciones que permiten la ejecución de múltiples tareas en un ordenador. Es su parte lógica e intangible y actúa como nexo entre el usuario y el hardware (partes duras), es decir, la parte tangible de la computadora.
A grandes rasgos, se puede decir que existen tres tipos de software:
Software de Aplicación: aquí se incluyen todos aquellos programas que permiten al usuario realizar una o varias tareas específicas. Aquí se encuentran aquellos programas que los individuos usan de manera cotidiana como: procesadores de texto, hojas de cálculo, editores, telecomunicaciones, software de cálculo numérico y simbólico, videojuegos, entre otros.
Software de Programación: son aquellas herramientas que un programador utiliza para poder desarrollar programas informáticos. Para esto, el programador se vale de distintos lenguajes de programación. Como ejemplo se pueden tomar compiladores, programas de diseño asistido por computador, paquetes integrados, editores de texto, enlazadores, depuradores, intérpretes, entre otros.
Software de Sistema: es aquel que permite a los usuarios interactuar con el sistema operativo así como también controlarlo. Este sistema está compuesto por una serie de programas que tienen como objetivo administrar los recursos del hardware y, al mismo tiempo, le otorgan al usuario una interfaz. El sistema operativo permite facilitar la utilización del ordenador a sus usuarios ya que es el que le da la posibilidad de asignar y administrar los recursos del sistema, como ejemplo de esta clase de software se puede mencionar a Windows, Linux y Mac OS X, entre otros. Además de los sistemas operativos, dentro del software de sistema se ubican las herramientas de diagnóstico, los servidores, las utilidades, los controladores de dispositivos y las herramientas de corrección y optimización, etcétera.
LA PROGRAMACION DE COMPUTADORAS EN QUE TIPO DE
SOFTWARE ESTA DETERMINADO
La programación informática, acortada como programación, es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Del proceso de programación surge lo que comúnmente se conoce como software (conjunto de programas), aunque estrictamente este último abarca mucho más que sólo la programación.
Historia
Para crear un programa, y que la computadora lo intérprete y ejecute las instrucciones escritas en él, debe usarse un lenguaje de programación. En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (sistema binario). Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; las codificaron y crearon así un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con sólo una. Una vez que se termina de escribir un programa, sea en ensamblador o en algunos lenguajes de alto nivel, es necesario compilarlo, es decir, traducirlo completo a lenguaje máquina.1 Eventualmente será necesaria otra fase denominada comúnmente link edición o enlace, durante la cual se anexan al código, generado durante la compilación, los recursos necesarios de alguna biblioteca. En algunos lenguajes de programación, puede no ser requerido el proceso de compilación y enlace, ya que pueden trabajar en modo intérprete. Esta modalidad de trabajo es equivalente pero se realiza instrucciónpor instrucción, a medida que es ejecutado el programa.
Léxico y programación
La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador).
En los lenguajes de programación de alto nivel se distinguen diversos elementos entre los que se incluyen el léxico propio del lenguaje y las reglas semánticas y sintácticas.
Programas y algoritmos
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un diagrama de flujo, en forma de código como enpseudocódigo o un lenguaje de programación, en forma explicativa, etc.
Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y se conoce como "refino progresivo".
Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:
- programación declarativa
- programación estructurada
- programación modular
- programación orientada a objetos
Compilación
El programa escrito en un lenguaje de programación (fácilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse en forma más directa a través de un intérprete informático.
El código fuente del programa se debe someter a un proceso de traducción para convertirlo a lenguaje máquina o bien a un código intermedio, generando así un módulo denominado "objeto". A este proceso se le llama compilación.
Habitualmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo de texto a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes, por ejemplo, Java, C, C++ y ensamblador, que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.
Programación e Ingenieria de software
Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de grandes proyectos.
El proceso de creación de software, desde el punto de vista de la ingeniería, incluye mínimamente los siguientes pasos:
- Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.
- Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita.
- Realizar el análisis de los requisitos del programa. Debe quedar claro qué tareas debe realizar el programa. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase.
- Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.
- Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación (programación propiamente dicha) debería resultar inmediata.
- Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.).
La ingeniería del software se centra en los pasos de planificación y diseño del programa, mientras que antiguamente (programación artesanal) la realización de un programa consistía casi únicamente en escribir el código, bajo sólo el conocimiento de los requisitos y con una modesta fase de análisis y diseño.
Lenguaje de programación
Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
- El desarrollo lógico del programa para resolver un problema en particular.
- Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
- Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
- Prueba y depuración del programa.
- Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten estructurar el contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamentepróximo al lenguaje humano o natural. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativa.
QUE ES EL ALGORITMO
En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son elalgoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclidespara obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineales
CARACTERISTICAS DE UN ALGORITMO
1.Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
2.Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
3.Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
4.Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
5.Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
2.Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
3.Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
4.Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
5.Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
Qué es un Diagrama de Flujo
n diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso es representado por un símbolo diferente que contiene una breve descripción de la etapa de proceso. Los símbolos gráficos del flujo del proceso están unidos entre sí con flechas que indican la dirección de flujo del proceso.
El diagrama de flujo ofrece una descripción visual de las actividades implicadas en un proceso mostrando la relación secuencial ente ellas, facilitando la rápida comprensión de cada actividad y su relación con las demás, el flujo de la información y los materiales, las ramas en el proceso, la existencia de bucles repetitivos, el número de pasos del proceso, las operaciones de interdepartamentales… Facilita también la selección de indicadores de proceso
Diferencias entre Algoritmo y Diagrama de Flujo.
Por algoritmo se entiende "una lista de instrucciones donde se especifica una sucesión de operaciones necesaria para resolver cualquier problema de un tipo dado".
El algoritmo es de carácter general y puede aplicarse a cualquier operación matemática o a cualquier problema.
Los algoritmos, para llegar a ser tales, deben reunir ciertas características: que el procedimiento (pasos a seguir) debe estar estrictamente descripto, cada acción debe ser precisa y general, es decir, que pueda ser aplicable a todos los elementos de una misma clase.
Los diagramas de flujo, como su nombre lo indica, son gráficas que representan la dirección que sigue la información que contiene un algoritmo. Los datos se encierran en diferentes figuras, llamadas: figuras lógicas.
Existen cinco figuras lógicas únicas utilizadas en el diagrama de flujo: inicio, proceso, ciclo y fin.
El algoritmo es de carácter general y puede aplicarse a cualquier operación matemática o a cualquier problema.
Los algoritmos, para llegar a ser tales, deben reunir ciertas características: que el procedimiento (pasos a seguir) debe estar estrictamente descripto, cada acción debe ser precisa y general, es decir, que pueda ser aplicable a todos los elementos de una misma clase.
Los diagramas de flujo, como su nombre lo indica, son gráficas que representan la dirección que sigue la información que contiene un algoritmo. Los datos se encierran en diferentes figuras, llamadas: figuras lógicas.
Existen cinco figuras lógicas únicas utilizadas en el diagrama de flujo: inicio, proceso, ciclo y fin.
FIGURAS DE UN DIAGRAMA DE FLUJO
EJEMPLO DE UN DIAGRAMA DE FLUJO
ALGORITMO PARA SUMAR 3 NUMEROS CON SU REPRESENTACION EN DIAGRAMA DE FLUJO
algoritmo
ingresar datos) n1,n2,n3-
(hacer operacion [el rectangulo] ) suma = n1 + n2 + n3
(mostrar resultado) suma
fin}
(hacer operacion [el rectangulo] ) suma = n1 + n2 + n3
(mostrar resultado) suma
fin}
diagrama de flujo