Sei sulla pagina 1di 9

Conceptos Bsicos Y Metodologa Para La Solucin De Problemas Por Medio De Computadoras 1.1 Definicin De Lenguaje 1.

2 Definicin De Algoritmo 1.3 Algoritmo Cotidiano 1.4 Definicin De Lenguaje Algortmico 1.5 Historia Y Aplicacin De Los Lenguajes Algortmicos 1.6 Definicin De Problemas 1.7 Anlisis De Los Datos 1.8 Diseo De La Solucin 1.9 Codificacin 1.10 Prueba y Depuracin 1.11 Documentacin 1.12 Mantenimiento 1.1 Definicin De Lenguaje Lenguaje Medio de comunicacin entre los seres humanos a travs de signos orales y escritos que poseen un significado. Tambin podra decirse que es cualquier procedimiento que sirve para comunicarse, representado mediante smbolos y caracteres especficos Desde El Punto De Vista Informtico El Lenguaje Es: La representacin por medio de signos, smbolos y caracteres que existe entre la comunicacin de la PC. Lenguajes De Programacin Son los lenguajes utilizados para escribir programas de computadoras que puedan ser entendidos por ellas. Los lenguajes de programacin se clasifican en tres grandes categoras: Mquina Bajo nivel (ensamblador) y Alto nivel

Lenguaje Mquina Es el lenguaje propio de la computadora, basado en la lgica binaria, de ceros y unos (00010111). Este lenguaje resulta difcil de utilizar para las personas; ya que el programador debe introducir todos y cada uno de los comandos y datos en forma binaria, y una operacin sencilla como comparar el contenido de un registro con los datos situados en una ubicacin del chip de memoria puede tener el siguiente formato: 11001010 00010111 11110101 00101011. La programacin en lenguaje mquina es una tarea tan tediosa y consume tanto tiempo que muy raras veces lo que se ahorra en la ejecucin del programa justifica los das o semanas que se han necesitado para escribir el mismo. Lenguaje De Bajo Nivel (Ensamblador) Como vimos anteriormente la programacin en lenguaje mquina es difcil por ello se necesitan lenguajes que faciliten este proceso. Por este motivo han sido diseados los lenguajes de bajo nivel. Estos lenguajes dan a cada instruccin un mnemnico, como por ejemplo STORE, ADD o JUMP. Los lenguajes de bajo nivel permiten crear programas muy rpidos, pero que son a menudo difciles de aprender. Esta abstraccin da como resultado un lenguaje de muy bajo nivel que es especfico de cada microprocesador: El Lenguaje Ensamblador .Al asignar un cdigo mnemotcnico (por lo general de tres letras) a cada comando en lenguaje mquina, es posible escribir y depurar o eliminar los errores lgicos y de datos en los programas escritos en lenguaje ensamblador, empleando para ello slo una fraccin del tiempo necesario para programar en lenguaje mquina. En el lenguaje ensamblador, cada comando mnemotcnico y sus operadores simblicos equivalen a una instruccin de mquina. Un programa ensamblador traduce el cdigo fuente, (una lista de cdigos de operacin mnemotcnicos y de operadores simblicos), a cdigo objeto (es decir, a lenguaje mquina) y, a continuacin ejecuta el programa, todo esto gracias a un intrprete o a un compilador, los cules veremos ms adelante Sin embargo, el lenguaje ensamblador puede utilizarse con un solo tipo de chip de CPU o microprocesador, por lo que los programas escritos en un bajo nivel son prcticamente especficos para cada procesador. Si se quiere ejecutar el programa en otra mquina con otra tecnologa, ser necesario rescribir el programa desde el principio. As que los programadores necesitaban un mtodo abreviado en el que un enunciado simblico pudiera representar una secuencia de numerosas instrucciones en lenguaje mquina, y un mtodo que permitiera que el mismo programa pudiera ejecutarse en varios tipos de mquinas. Estas necesidades llevaron al desarrollo de lenguajes de alto nivel. Lenguaje De Alto Nivel Los llamados lenguajes de alto nivel son los que se emplean con mayor frecuencia como lenguajes de programacin, porque permiten expresar los algoritmos de una manera y con un estilo fcilmente reconocible por parte de diversos programadores y usuarios; debido a que estn formados por elementos de lenguajes 2

naturales, como el ingls utilizando trminos del tipo LIST, PRINT u OPEN como comandos. En Basic, el lenguaje de alto nivel ms conocido, los comandos se introducen desde el teclado, desde un programa residente en la memoria o desde un dispositivo de almacenamiento, y son interceptados por un programa que los traduce a instrucciones en lenguaje mquina. Asimismo, presentan una ventaja fundamental: la facilidad de poder ser transportados de una mquina a otra sin necesidad de realizar grandes cambios en ellos, por lo que se dice que son independientes de la mquina empleada. A este grupo pertenecen los lenguajes ms conocidos, tales como el APL, FORTRAN, PASCAL, COBOL, LISP, PROLOG, C, ADA, PL/I. Sin embargo, tanto los lenguajes de alto nivel como los de bajo nivel, no son entendibles directamente por la mquina, sino que necesitan ser traducidos a instrucciones en lenguaje mquina que entiendan las computadoras por lo que es necesario disponer de una interfase con el lenguaje mquina para que el programa sea ejecutable. Al respecto existen dos tipos fundamentales de interfase, que son: a) Compiladores b) Intrpretes Un compilador es: Un traductor que facilita la comunicacin entre el programador y la mquina, por medio de un proceso de transformacin llamado compilacin. De esta manera traduce un programa ntegro a lenguaje mquina antes de su ejecucin, por lo cual se ejecutan con tanta rapidez como si hubiesen sido escritos directamente en lenguaje mquina. El compilador es el ms eficaz para la mayor parte de las mquinas, puesto que presenta la ventaja de de que cada una de las sentencias del programa es interpretada y traducida al lenguaje mquina solo una vez. Un compilador crea una lista de instrucciones de cdigo mquina, el cdigo objeto, basndose en un cdigo fuente. El cdigo objeto resultante es un programa rpido y listo para funcionar, pero que puede hacer que falle el ordenador si no est bien diseado. . Un intrprete es: Es un programa que se traduce lnea por lnea bajo la misma plataforma. Es Un traductor pero ms lento que los compiladores ya que no producen un cdigo objeto, sino que recorren el cdigo fuente una lnea cada vez. Cada lnea se traduce a cdigo mquina y se ejecuta. Cuando la lnea se lee por segunda vez, como en el caso de los programas en que se reutilizan partes del cdigo, debe compilarse de nuevo. Aunque este proceso es ms lento, es menos susceptible de provocar fallos en la computadora 1.2 Definicin De Algoritmo

ALGORITMO Un algoritmo es una serie de pasos lgicos para realizar una accin, programa o tarea ya que es el primer paso para realizar un programa. Y tiene ciertas caractersticas que son: Preciso Esto quiere decir que debe indicar el orden en cada paso. Definido Es decir, si se sigue dos veces, obtiene el mismo resultado cada vez. Finito Que tiene fin, o sea un nmero definido de pasos. Ejemplos de algoritmos son: Instrucciones para montar una bicicleta Hacer una receta de cocina Obtener el mximo comn divisor de dos nmeros, etc. Los algoritmos se pueden expresar por frmulas, diagramas de flujo, y pseudocdigos. sta ltima representacin es la ms utilizada en lenguajes estructurados como Turbo Pascal. 1.3 Algoritmo Cotidiano Un algoritmo cotidiano es: La serie de pasos que realizamos en nuestra vida diaria para realizar las diferentes tareas y actividades comunes, desde los pasos al levantarnos, as como ir de compras, etc. 1.4 Definicin De Lenguaje Algortmico Para definir el lenguaje algortmico: Cabe recordar que el conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse, se le denomina algoritmo. As que el lenguaje algortmico es aquel por medio del cual se realiza un anlisis previo del problema a resolver y encontrar un mtodo que permita resolverlo. 1.5 Historia Y Aplicacin De Los Lenguajes Algortmicos Al igual que los idiomas sirven de vehculo de comunicacin entre los seres humanos, existen lenguajes que realizan la comunicacin entre los seres humanos y las computadoras. Estos lenguajes permiten expresar los programas o el conjunto de instrucciones que el operador humano desea que la computadora ejecute. 4

Los lenguajes de computadoras toman diferentes formas; los de las primeras computadoras, como la ENIAC y la EDSAC, se componan en el lenguaje real de las mquinas mismas. La dificultad de programar las mquinas de esta manera limitaba drsticamente su utilidad y proporcionaba un fuerte incentivo para que se desarrollaran lenguajes de programacin ms orientados hacia la expresin de soluciones con la notacin de los problemas mismos. Los primeros lenguajes de programacin se conocieron como Lenguajes Ensambladores, un ejemplo es: TRANSCODE, desarrollado para la computadora FERUT. En los lenguajes ensambladores como mencionamos anteriormente en el apartado 1.1 se define un cdigo especial llamado mnemotcnico para cada una de las operaciones de la mquina y se introduce una notacin especial para especificar el dato con el cual debe realizarse la operacin. A mediados de los aos 60's aparecieron los primeros lenguajes de propsito general como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA, C, C++, PASCAL, etc. pero el desarrollo de nuevas tecnologas, tanto en arquitectura de computadoras como en lenguajes de programacin, contina a paso acelerado, cada vez con mayor velocidad, el panorama est cambiando de una etapa de sistemas y lenguajes especialmente desarrollados para aplicaciones individuales. Los lenguajes de programacin actuales son los conocidos como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C. 1.6 Definicin De Problemas Con el fin de resolver un problema utilizando un sistema de cmputo, debe seguirse una serie de pasos que permiten avanzar por etapas bien definidas hacia la solucin y ejecucin de la misma Esta serie de fases o pasos deben seguirlas todos los programadores. Estas etapas son las siguientes . Definicin del problema La primera fase en la resolucin de un problema por computadora es la definicin o anlisis del problema. En donde lo ms importante es que conozcamos exactamente lo que debe hacer el programa y "que se desea obtener al final del proceso Para poder definir con precisin el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solucin eficaz; por lo que es conveniente hacerse las siguientes preguntas: 1. Qu entradas se requieren? (Tipo Y Cantidad) 2. Cul es la salida deseada? (Tipo Y Cantidad) 3. Qu mtodo produce la salida deseada?} 1.7 Anlisis De Los Datos Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos: 1. Los resultados esperados. 5

2. Los datos disponibles. 3. Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado. Esta sera un diagrama de la resolucin de un problema en su ms mnima expresin. Y mientras esto no se comprenda no puede pasarse a la siguiente etapa. 1.8 Diseo De La Solucin Para realizar el diseo de la solucin: Como todos sabemos, una computadora no tiene capacidad para solucionar problemas ms que cuando se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtencin de un algoritmo que resuelva adecuadamente el problema. En caso de que obtengamos varios algoritmos, seleccionaremos uno de ellos utilizando criterios ya conocidos. Esta etapa incluye: La descripcin del algoritmo resultante en un lenguaje natural, en un diagrama de flujo o natural de programacin. De esta manera, solo se establece la metodologa para alcanzar la solucin en forma conceptual, es decir; sin alcanzar la implementacin en el sistema de cmputo. As tenemos que la informacin proporcionada constituye su entrada y la informacin producida por el algoritmo constituye su salida. Los problemas complejos se pueden resolver ms eficazmente por la computadora cuando se dividen en subproblemas que sean ms fciles de solucionar. | 1.9 Codificacin Codificacin es la escritura en un lenguaje de programacin de la representacin del algoritmo desarrollada en etapas precedentes. Esto se refiere a la obtencin de un programa definitivo que pueda ser comprensible para la mquina. Cabe destacar que si la codificacin original se realiz en papel, previo a la compilacin deber existir un paso conocido como trascripcin. Y posteriormente, una vez que el algoritmo se ha convertido en un programa fuente. Este programa fuente debe ser traducido a lenguaje mquina, este proceso se realiza con el compilador, y se obtiene el programa objeto, (siempre y cuando el programa fuente sea correcto) que posteriormente se vuelve un programa ejecutable. Estos pasos a continuacin se describen de una forma esquematizada: 1.10 Prueba y Depuracin

La Prueba se realiza tras la compilacin. Si tras la compilacin se presentan errores (errores de compilacin) en el programa fuente, es preciso volver a editar el programa, corregir los errores y compilar de nuevo, este proceso se repite hasta que no se producen errores. De esta manera se obtiene el programa objeto, que todava no es ejecutable directamente, pero si no contiene errores se debe instruir al sistema para que realice la fase de montaje o enlace del programa objeto con las libreras del programa del compilador; este proceso de montaje produce un programa ejecutable. La Depuracin es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores. Cuando se ejecuta un programa, se pueden producir tres tipos de errores: 1. Errores de compilacin. Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programacin y suelen ser errores de sintaxis, por lo tanto la computadora no puede comprender la instruccin, y obviamente no se obtendr el programa objeto, y el compilador imprimir una lista de todos los errores encontrados durante la compilacin. 2. Errores de ejecucin. Estos errores se producen por instrucciones que las computadoras pueden comprender, pero no ejecutar. Ejemplos de stos son: una divisin por cero, y races cuadradas de nmeros negativos; por lo que en este caso se detiene la ejecucin del programa y se imprime un mensaje de error. 3. Errores lgicos. Se producen en la lgica del programa y la fuente del error suele ser el diseo del algoritmo. Estos errores son los ms difciles de detectar, ya que el programa puede funcionar y no producir errores de compilacin ni ejecucin, y solo puede detectarse cuando se advierte un error por la obtencin de resultados incorrectos. En este caso se debe volver a la fase del diseo del algoritmo, modificarlo, cambiar el programa fuente, compilar y ejecutar una vez ms. 1.11 Documentacin La documentacin de un problema consta de las descripciones de los pasos a dar en el proceso de resolucin de un problema. La importancia de la documentacin es por su decisiva influencia en el producto final. Programas pobremente documentados son difciles de leer, ms difciles de depurar y casi imposibles de mantener y modificar. Por ello la importancia de la documentacin, sin la documentacin es imposible corregir errores futuros o bien cambiar el programa 1.12 Mantenimiento El mantenimiento se define como la modificacin del programa por medio de actualizaciones, que mejoran al programa, corrigiendo errores o bien actualizndolos para un mejor funcionamiento. Por ello la documentacin es sin duda muy importante para poder llevar a cabo el mantenimiento. Instituto Tecnolgico Superior De Coatzacoalcos Diseo Estructural de algoritmos I Unidad I COMPILACIN 7

Cdigo Fuente Programa Ejecutable Cdigo objeto Codificacin Diseo de la solucin Anlisis de los datos Definicin del problema Prueba y depuracin Mantenimiento Definicin de un problema Diseo Del Algoritmo Resolucin del problema con la computadora Resolucin de un problema ALGORITMO RESULTANTE EN LENGUAJE NATURAL ALGORITMO QUE RESUELVA EL PROBLEMA TRANSCRIPCION Si la codificacin se escribi en papel Se realiza la: Algoritmo realizado en etapas anteriores Para realizar la conversin del algoritmo en programa, se deben sustituir las palabras reservadas en espaol por sus homnimos en ingls, (hablando de un lenguaje de alto nivel) y las operaciones, instrucciones indicadas en lenguaje natural. CODIFICACIN

COMPILACIN PROGRAMA FUENTE PROGRAMA OBJETO PROGRAMA EJECUTABLE INTERNA Esta documentacin son los comentarios o mensajes que facilitan el entendimiento del proceso. EXTERNA Incluye anlisis, diagramas de flujo, y/o pseudocdigos, manuales de usuario, con instrucciones para ejecutar el programa y para interpretar los resultados. La documentacin de un programa puede ser de dos tipos: