Sei sulla pagina 1di 6

INICIACIN A LA PROGRAMACIN

Para empezar la seccin de iniciacin a la programacin primero tenemos que contestar a una pregunta. Qu es un programador? Un programador es una persona que resuelve problemas a travs de un ordenador o computadora. El mtodo que utiliza para resolver los problemas es el algoritmo. Pero eso nos lleva a otra pregunta: qu es un algoritmo? Responder a eso un poco ms adelante. Como ya expliqu en un artculo anterior, un ordenador era una mquina que coga datos de entrada, los procesaba y los transformaba en datos de salida, pues bien, anlogamente un algoritmo es algo parecido, primero se le dan unos datos de entrada, el algoritmo los procesa y por ltimo muestra unos datos de salida. Con esto quiero decir que un algoritmo es un conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para la resolucin de un problema, es decir, es una frmula para resolver un problema. El sistema de proceso de la informacin simplificado sera as: Datos de entrada Procesador Datos de salida

Para efectuar el proceso, hay que darle al procesador un algoritmo adecuado. Si el procesador fuera por ejemplo violinista, habra que darle una partitura correcta, si fuese un coche habra que darle un combustible adecuado y as con cualquier procesador. Cuando el procesador es un ordenador el algoritmo hay que drselo en un lenguaje que l pueda entender, en este caso se hace un programa. El programa se escribe mediante un lenguaje de programacin adecuado y al hecho de escribir el programa se le denomina programacin. Cada paso del algoritmo se escribe como una instruccin en el programa, por tanto, un programa tiene una serie de instrucciones, cada una de las cuales determina las operaciones que tiene realizar el ordenador. Aqu hay que matizar un par de cosas: dentro de un sistema de procesamiento de la informacin tenemos que tener en cuenta el Hardware y el Software. Hardware es el conjunto de componentes fsicos de un ordenador, es decir el equipo: Teclado, ratn, pantalla (que seran los dispositivos de entrada/salida), La CPU o procesador, que est formada por la unidad aritmtico-lgica (ALU) y la unidad de control; la memoria central y por ltimo los almacenamientos secundarios. La unidad central de proceso (CPU) es un conjunto de circuitos electrnicos capaces de realizar algunos clculos sencillos como sumas, restas o multiplicacin de nmeros. La potencia del ordenador depende completamente de la velocidad y fiabilidad de la CPU. La memoria central es la que almacena la informacin procesada por la CPU hasta que se terminan los clculos. Los programas del ordenador tambin se almacenan aqu. Almacenamiento secundario es la memoria auxiliar y son diferentes dispositivos como discos duros, memorias USB, DVD etc., aqu se almacenan grandes cantidades de informacin que luego se pasan a la memoria central para que la CPU pueda procesarlos.

Perifricos de entrada/salida: Son los dispositivos que permiten al usuario comunicarse con el ordenador, los ms tpicos son el teclado, el ratn, el monitor, la impresora como veis, un ordenador puede tener varios perifricos de E/S conectados. Por otro lado tenemos el Software, que son los programas que controlan el funcionamiento del ordenador, tambin se le llama equipo lgico mientras que al hardware se le dice equipo fsico.

Algoritmos
Un programador tiene que dominar el desarrollo de algoritmos si quiere realizar buenos programas. Es fundamental que se tenga una buena maestra resolviendo problemas mediante los algoritmos para poder desarrollar un buen cdigo y no tengamos luego quebraderos de cabeza porque el programa no funciona. Si dominamos esto, tendremos ms fcil el desarrollar programas, pues "slo" quedara transcribir el algoritmo a un lenguaje de programacin. Para resolver un problema (ya dije en el artculo anterior a este, que un programador es alguien que resuelve problemas) tenemos que seguir cuatro pasos bsicos: 1. Identificar el problema: Tenemos que hacer un anlisis detallado del problema. Esto en principio parece fcil, pero a veces no lo es. Se tiende a pensar que se sabe cual es el problema pero luego a la hora de resolverlo, vemos que no es ese exactamente el problema que queramos resolver. (A mi me ha pasado tirarme varias horas desarrollando un algoritmo para hacer un programa para luego darme cuenta que el algoritmo no resuelve el problema y por tanto el programa no hace lo que se supone debera hacer.) 2. Elaborar el algoritmo correspondiente: Una vez que hemos analizado y sabemos perfectamente que problema tenemos y que tenemos que hacer, se desarrolla un algoritmo capaz de resolver el problema mediante una secuencia de pasos ordenados (nada de ambigedades) que resuelva el problema. 3. Escribir el algoritmo en un lenguaje de programacin: Una vez escrito el algoritmo, se elige un lenguaje de programacin (C,C++, Java etc.) y se escribe en l. 4. Ejecucin y validacin del programa: Una vez escrito el cdigo, hay que ejecutarlo y probarlo para comprobar que est libre de errores. Los algoritmos son muy importantes porque son ajenos tanto al lenguaje de programacin como al ordenador donde se deba ejecutar. Para que exista un programa, debemos tener un algoritmo que funcione. Los programadores normalmente suelen saltarse la fase del desarrollo del algoritmo y lo van implementando sobre la marcha en el lenguaje de programacin.Eso suele funcionar cuando el programa es pequeo, pero cuando es grande suele dar muchos quebraderos de cabeza porque no sale bien a la primera y tienes que ir revisando donde falla el programa y porqu. En cada problema los algoritmos se pueden expresar en distintos lenguajes de programacin y ejecutarse en ordenadores muy distintos, pero an as, el algoritmo siempre ser el mismo. En programacin, es ms importante el desarrollo del algoritmo que el lenguaje de programacin donde se escriba, porque estos son tan solo un medio donde desarrollar el algoritmo para que lo entienda la mquina. Los algoritmos tienen las siguientes caractersticas: 1. Precisin: Un algoritmo tiene que ser muy preciso, indicando los pasos a dar y el orden de su realizacin. 2. Definido:El algoritmo tiene que dar siempre el mismo resultado, si se hace dos veces, las dos veces tiene que salir el mismo resultado.(Ejemplo: Si haces un algoritmo que sume dos nmeros, y lo usas para sumar 2 + 3 siempre tiene que dar 5. Es algo muy bsico el ejemplo pero es para que lo entendis).

3. Finito:Un algoritmo tiene que ser finito, es decir, tiene que tener un principio y un final. Cuando se sigue un algoritmo no puede ser que en algn momento entremos en un paso que se repita(bucle) y nunca termine. Un algoritmo debe constar de tres partes: Entrada, proceso y salida. Ejemplo: Algoritmo para elaborar una tortilla: Entrada: Aceite, 2 huevos, sal, sarten, tenedor, bol. Proceso: Se rompen los huevos en el bol, se baten con el tenedor, se aade un poco de sal, se echan a la sarten, estando esta previamente caliente, se forma la tortilla. Salida: La tortilla terminada. Esto seran las fases del algoritmo. El algoritmo en s sera este: 1. Inicio 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Ponemos a calentar la sarten en una vitrocermica Aadimos un chorrito de aceite a la sarten Rompemos los dos huevos y los echamos en el bol Batimos los huevos con el tenedor Aadimos una pizca de sal Comprobamos que la sarten est caliente Si est caliente echamos los huevos batidos en la sarten y vamos al paso 10 Si no, volvemos al paso 7 Comprobar que la tortilla cuaje Si cuaja ir al paso 13 Si no ir al paso 10 Sacarla de la sarten y ponerla en un plato Comerla Fin

Esto sera a grandes rasgos un algoritmo para hacer una tortilla francesa. Os pensabais que los algoritmos solo servan para hacer programas? Pues ya veis que no, jeje.

Cuando hemos terminado de crear el algoritmo, hemos de pasrselo al ordenador en un formato que este pueda entender. Ese formato es el programa. Un programa se escribe mediante un lenguaje de programacin. Hasta la fecha podemos dividir los principales tipos de lenguaje en tres categoras:

1. Lenguajes mquina 2. Lenguajes de bajo nivel (ensamblador) 3. Lenguajes de alto nivel (o tercera generacin) Cada paso del algoritmo que deseamos traducir a un lenguaje de programacin se denomina instruccin o sentencia. Por tanto, todo programa es un conjunto de instrucciones que indican las operaciones que el ordenador debe realizar. Cada lenguaje de programacin tiene un su propio repertorio de instrucciones y es tarea del programador el aprenderlas. Como resumen, todo lenguaje suele tener las siguientes grupos de instrucciones:

1. De entrada/salida: Son las instrucciones que permiten transmitir los datos y la informacin usados en el programa a travs de los diferentes perifricos (teclado, ratn, etc.) 2. Aritmtico-lgicas: Son aquellas que operan con la aritmtica (sumas, restas, multiplicaciones o divisiones...) y las operaciones lgicas (And, Or, Not, etc.) 3. De seleccin: Son aquellas que dependiendo de una condicin permiten ejecutar una sentencia u otra, como por ejemplo la sentencia switch, las If etc. (Todo esto lo veremos ms adelante cuando empecemos ya a programar en pseudocdigo) 4. Sentencias repetitivas: Son los denominados bucles, instrucciones que permiten realizar operaciones un nmero determinado de veces, normalmente mientras se cumpla una condicin (es el caso del bucle Do while) o una iteracin de n veces (el bucle For). Los lenguajes mquina o Los pongo en plural porque cada hardware diferente tiene su propio lenguaje mquina, ya que estos son instrucciones directamente inteligibles por el ordenador. Todas sus instrucciones son cadenas binarias (es decir, solo llevan dos dgitos, el 0 y el 1). Con estas cadenas se especifica la operacin a realizar y las posiciones de memoria donde se encuentran los datos, es decir, su direccin en la memoria. Vamos que por si no os habis dado cuenta, el lenguaje mquina no es ms que cdigo binario. Este lenguaje tiene ventajas como por ejemplo que se puede usar directamente sobre el ordenador sin tener que traducirlo a otro lenguaje. (Debis saber que cuando se escribe un programa, por ejemplo en C, el cdigo fuente hay que traducirlo a cdigo mquina con un compilador, linkador, traductor etc. Pero eso ya lo veremos ms adelante). Esto hace del lenguaje mquina el ms rpido de todos los lenguajes de programacin existentes. Pero claro, todos los inconvenientes que tienen estos lenguajes hacen que a la prctica casi nadie (por no decir nadie) los use a la hora de programar: Son poco fiables Solo se pueden ejecutar desde el mismo procesador Es muy difcil verificar y comprobar un programa Son difciles de aprender y lentos de codificar. Lenguajes de bajo nivel o Estos lenguajes son un poco ms fciles de utilizar que los mquina. Tienen el inconveniente de que tambin son exclusivos del procesador, pero a diferencia de los lenguajes mquina, en estos se usan instrucciones nemotcnicas, como por ejemplo para instrucciones matemticas seran Sum, res, div (en espaol) add, sub, div (en ingls). El lenguaje ms conocido de este nivel es el ensamblador. Para que veis un ejemplo de lo que son estos lenguajes, una instruccin en lenguaje mquina que reste dos nmeros podra ser esta: 0010 1111 0001 1100 Esto podra significar que queremos restar al nmero de la posicin de memoria 1111 el que tenemos en la posicin de memoria 0001 y almacenarlo en la posicin 1100. (En este caso la operacin de resta sera 0010) (Ojo, esto no es as porque los nmeros me los he inventado, habra que conocer cuales son las instrucciones del procesador para saber cuales son los cdigos de las operaciones

y ver donde estn las posiciones de memoria de las variables y dems, pero es para que los hagis una idea de como es una instruccin en lenguaje mquina. Esa misma instruccin de arriba en lenguaje de bajo nivel podra ser esta: SUB A,B,C que significara restar a la variable A la variable B y guardarla en C. Como veis es ms fcil de recordar que el mquina, pero an as es todava ms complicado que los de alto nivel. Adems estos lenguajes ya no son inteligibles por el ordenador, hay que usar un traductor que lo transforme en lenguaje mquina. El programa escrito directamente en lenguaje de bajo nivel se denomina programa fuente, una vez traducido al lenguaje mquina se llama programa objeto, y este si es ya inteligible para el ordenador. Estos lenguajes se diferencian de los mquina en que son ms fciles de programar y su velocidad de clculo es mayor. El traductor se llama programa ensamblador, que no es lo mismo que el lenguaje ensamblador. Estos programas suelen estar en casi todos los ordenadores. Los inconvenientes de los lenguajes ensambladores son: Dependen totalmente de la computadora, lo que impide transportar el programa de una arquitectura a otra (por ejemplo, el lenguaje ensamblador de un PC es diferente al de un Macintosh). Como os imaginareis es ms difcil de aprender que los de alto nivel porque no solo exige conocer la sintaxis del lenguaje sino tambin el interior del computador. Lenguajes de alto nivel o Estos son los ms utilizados hoy en da. Son lenguajes cuya sintaxis es parecida al idioma de las personas (casi siempre en ingls, aunque hay algn lenguaje de programacin en espaol). Estos son ya independientes de la plataforma, es decir, las instrucciones no dependen del hardware o de un ordenador determinado. Por tanto, se puede hacer la portabilidad de un sistema a otro con pocos o ningn cambio para ejecutar el programa en otro ordenador de arquitectura distinta. o Las ventajas que estos lenguajes tienen son: Menos tiempo de aprendizaje por parte del programador Las instrucciones se basan en reglas sintcticas parecidas a los idiomas (Read, write, Open, close, while etc) Modificar y poner a punto el programa es ms fcil. Es menos costoso hacer el programa Son portables. o Los inconvenientes son: Requieren ms tiempo al necesitarse ms traducciones del programa para obtener la aplicacin final. Son menos ptimos que los programas hechos en los otros tipos de lenguaje que explotan ms los recursos internos de las mquinas. Ocupan mucho ms en memoria. El tiempo de ejecucin es mucho mayor.

Como pasa con los lenguajes de bajo nivel, el cdigo fuente tambin debe ser traducido a lenguaje mquina a travs de programas llamados compiladores o interpretes. Ejemplos de lenguajes de alto nivel son: 1. 2. 3. 4. 5. Visual Basic C/C++ Java Fortran C#

Y la lista podra seguir creciendo pero no voy a poner ms. Pues aqu acaba el artculo de hoy. En el prximo hablar de los compiladores y las fases de compilacin que sufre el cdigo fuente para poderse ejecutar en el ordenador.

Potrebbero piacerti anche