Sei sulla pagina 1di 5

TEORIA SOBRE ALGORITMOS (Parte I) Introduccin La computadora no solamente es una mquina que puede realizar procesos para darnos

resultados, sin que tengamos la nocin exacta de las operaciones que realiza para llegar a esos resultados. Con la computadora tambin podemos disear soluciones a la medida, de problemas especficos que se nos presenten. Ms an, si estos involucran operaciones matemticas complejas y/o repetitivas, o requieren del manejo de un volumen muy grande de datos. A las soluciones creadas por computadora se les conoce como programas y no son mas que una serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo de datos especficos. Podramos decir que un programa es el conjunto de instrucciones escritas de algn lenguaje de programacin y que ejecutadas secuencialmente resuelven un problema especifico. Para poder realizar programas, adems de conocer la metodologa para solucionar problemas, tambin debemos conocer, de manera especifica las funciones que puede realizar la computadora y las formas en que se pueden manejar los elementos que hay en la misma. El procesamiento de informacin en la computadora puede representarse as: Datos de entrada Proceso Datos de salida

1. Metodologa para la solucin de problemas por medio de computador: Definicin del Problema: Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras sto no se conozca del todo, no tiene mucho caso continuar con la siguiente etapa. Anlisis del Problema: Una vez que se ha comprendido lo que se desea de la PC, es necesario definir: Los datos de entrada. La informacin que se desea producir (salida) Los mtodos y frmulas que se necesitan para procesar los datos. Una recomendacin muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en qu secuencia, para producir los resultados esperados. Diseo del Algoritmo: Consiste en disear la serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin al problema especifico. Las caractersticas de un buen algoritmo son: Debe tener un punto particular de inicio. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, soportar las variantes que se puedan presentar en la definicin del problema. Debe ser finito en tamao y tiempo de ejecucin. Codificacin: Es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas (cdigo fuente), en un lenguaje reconocible por la computadora (lenguaje de programacin de alto nivel). Prueba y Depuracin: Los errores humanos dentro de la programacin de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solucin sin errores se le llama depuracin. Documentacin: Es la gua o comunicacin escrita en sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). Mantenimiento: Se lleva a cabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizarlo se requiere que el programa este correctamente documentado. 2. Lenguajes de programacin: 2.1. Lenguaje: Es una serie de smbolos que sirven para transmitir uno o ms mensajes (ideas) entre dos entidades diferentes. A la transmisin de mensajes se le conoce comnmente como comunicacin. La
PAG. 5/5 - ARCHIVO: 1. TEORIA 01 Algoritmos (Parte I)

comunicacin es un proceso complejo que requiere una serie de reglas simples, pero indispensables para poderse llevar a cabo. Las dos principales reglas son: Los mensajes deben correr en un sentido a la vez. Deben existir 4 elementos: emisor, receptor, medio de comunicacin y mensaje. 2.2. Lenguaje de Programacin: Es un conjunto de smbolos, caracteres y reglas que le permiten a las personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, clculo, manipulacin de textos, lgica/comparacin y almacenamiento/recuperacin. Los lenguajes de programacin se clasifican en: Lenguaje de Mquina: Sus instrucciones son directamente entendibles por la computadora y no necesitan traduccin para que la CPU pueda comprenderlas y ejecutarlas. Las instrucciones se expresan en trminos de la unidad de memoria ms pequea: el bit (dgito binario 0 o 1). Ventaja: No necesita ser traducido. Inconveniente: La dificultad, la confusin, para corregir errores, es propia de cada mquina. Lenguaje de Bajo Nivel: Ensamblador. Las instrucciones se escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones y direcciones simblicas. Ventaja: No es tan difcil como el lenguaje mquina. Inconvenientes: Cada mquina tiene su propio lenguaje, necesitamos un proceso de traduccin. Lenguaje de Alto Nivel: Visual Basic, C++, Cobol, etc. Las instrucciones son escritas con palabras similares a los lenguajes humanos (en general en ingls), lo que facilita la escritura y comprensin del programa. Ventaja: Son independientes de cada maquina (los compiladores aceptan las instrucciones estndar, pero tambin tienen instrucciones propias). Inconveniente: El proceso de traduccin es muy largo y ocupa ms recursos. Aprovecha menos los recursos internos. 3. Traductores de lenguaje: Los traductores de lenguajes son programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a cdigo mquina. Los traductores se dividen en Compiladores e Intrpretes. 3.1. Intrpretes: Un intrprete es un traductor que toma un programa fuente escrito en un lenguaje de alto nivel, lo traduce y lo ejecuta a medida que lo traduce. Es decir, el interpretador toma cada lnea del programa, la traduce, la ejecuta y contina con la siguiente hasta terminar. Un lenguaje que soporta un traductor de tipo intrprete se denomina lenguaje interpretado. BASIC es el modelo por excelencia interpretado; los programas fuente en BASIC se escriben con ayuda de un programa denominado editor que suele venir incorporado al intrprete. 3.2. Compiladores: Un compilador es un programa que traduce un programa fuente escrito en lenguaje de alto nivel a lenguaje de mquina. El programa escrito en lenguaje de alto nivel se llama programa fuente y el programa traducido se llama programa objeto o cdigo objeto. El compilador traduce todo el programa fuente sin ejecutarlo; luego de la traduccin la ejecucin puede realizarse. Lenguajes compilados tpicos son: PASCAL, COBOL y C.

PAG. 5/5 - ARCHIVO: 1. TEORIA 01 Algoritmos (Parte I)

Fases de la compilacin: El programa objeto obtenido de la compilacin no ha sido traducido a cdigo mquina sino a ensamblador. Para conseguir el programa de mquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina directamente ejecutable. Por ejemplo, la compilacin y ejecucin de un Programa en C++ tiene los siguientes pasos: 1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar como una mquina de escribir electrnica) y guardarlo en un dispositivo de almacenamiento (un disco). 2. Introducir el programa fuente en memoria. 3. Compilar el programa con el compilador C++. 4. Verificar y corregir errores de compilacin (listado de errores). 5. Obtencin del programa objeto. 6. El montador obtiene el programa ejecutable. 7. Se ejecuta el programa y si no existen errores, se tendrn las salidas.

Proceso de traduccin y ejecucin de un programa escrito en un lenguaje a alto nivel: Usamos un editor y obtenemos el programa fuente, y el compilador es el que traduce el programa al lenguaje mquina. El compilador internamente ha sido diseado para traducir. El compilador obtiene el programa o el archivo objeto. El compilador tiene que buscar los errores. Normalmente no sale un ejecutable, sino que necesita elementos, libreras, ... Mediante un linkador juntamos el programa objeto y las libreras, y se forma un programa ejecutable. Cuando se ejecuta el programa, el cargador lleva al programa a memoria para que ste pueda ser ejecutable. Debbuger: Depura el programa ejecutndolo paso a paso, viendo la memoria paso a paso para encontrar el error.

PAG. 5/5 - ARCHIVO: 1. TEORIA 01 Algoritmos (Parte I)

Programa fuente (Editor)

Compilador

Error

Programa objeto

Librerias

Linkador

Ejecutables Para traducir puedo utilizar el compilador o un intrprete, con el compilador tomo todo el programa al completo y el intrprete lee cada instruccin y lo va ejecutando. El intrprete es ms rpido, pero menos eficiente. Todos los lenguajes tienen compiladores, pero no todos tienen intrpretes. LISP (Lenguaje de inteligencia artificial) : Slo tiene interpretes.

4. Programas y algoritmos:

4.1. Programa: Un programa de computadora es un conjunto de instrucciones (rdenes dadas a la mquina) que producirn la ejecucin de una determinada tarea. En esencia, un programa es un medio para conseguir un fin. El fin ser definido como la informacin necesaria para solucionar un problema. 4.2. Algoritmo: La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a un problema especifico. Los algoritmos pueden ser de dos tipos: Cualitativos: Se describen los pasos utilizando palabras.
PAG. 5/5 - ARCHIVO: 1. TEORIA 01 Algoritmos (Parte I)

Cuantitativos: Se utilizan clculos numricos para definir los pasos del proceso. Caractersticas: - Tiene que ser preciso. - Tiene que estar bien definido. - Tiene que ser finito. La programacin es adaptar el algoritmo alcomputador. El algoritmo es independiente segn donde lo implemente. 4.3. Lenguajes Algortmicos: describir los procesos. Estn conformados por una serie de smbolos y reglas usadas para

Los lenguajes algortmicos pueden ser: No grficos: Pseudocdigo. Representan en forma descriptiva los pasos que debe realizar un algoritmo para solucionar el problema. El pseudocdigo es una mezcla de lenguaje de programacin y espaol (o cualquier otro idioma) que se emplea, en programacin estructurada, para realizar el pre-diseo de un programa. El pseudocdigo usa palabras que indican cada paso del proceso a realizar. Grficos: Diagrama de flujo. Representan grficamente los pasos que debe realizar un algoritmo para solucionar el problema. Esta representacin grfica se d cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre s mediante lneas que indican el rden en que se deben ejecutar los procesos. Los smbolos que se pueden utilizar han sido normalizados por el ANSI - Instituto Norteamericano de Normalizacin. Ventajas de utilizar pseudocdigo en lugar de diagrama de flujo : Ocupa menos espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar pseudocdigo a un programa en algn lenguaje de programacin. Se pueden observar claramente los niveles que tiene cada operacin.

INICIO LEA N SI N>5 ENTONCES ESCRIBA MAYOR FSI FIN

INICIO

LEA N V ESCRIBA MAYOR

N> 5 F FIN

FUENTES DE INFORMACION: 1. CONCEPTOS BASICOS Y EJEMPLOS: Luis Joyanes Aguilar, Problemas de Metodologa de la Programacin

PAG. 5/5 - ARCHIVO: 1. TEORIA 01 Algoritmos (Parte I)

Potrebbero piacerti anche