La Resolucion de Problemas Utilizando La a

Embed Size (px)

Citation preview

  • 8/6/2019 La Resolucion de Problemas Utilizando La a

    1/6

    La Resoluci on de Problemas utilizando la Computadora

    Lissette Alvarez

    Abril-Julio, 2004

    El Computador es una m aquina que no puede trabajar por si sola, unicamente realiza aquellas ordenes

    que el hombre le indique. Esas ordenes tienen que ser realizadas de tal forma que el computador las entienda,siendo esta la causa por la cual se hace necesario darle instrucciones agrupadas. Esto constituye el software,

    el cual es pensado y realizado por el hombre. El software esta conformado por el conjunto de programas que

    se disenan para el funcionamiento del computador. Deben estar escritos en un lenguaje de programaci on. El

    Software se divide en dos grandes tipos: software del sistema y software de aplicaci on El software del Sistema

    es el conjunto de programas necesarios para que la m aquina funcione, estos programas son b asicamente, el

    Sistema Operativo, los Editores de texto, los Compiladores, Interpretes y los Programas de utilidad. El

    software de aplicacion son los que realizan tareas concretas, n ominas, contabilidad, an alisis estadsticos, etc.,

    es decir todos aquellos programas que pueden ser escritos en un Lenguaje de Programacion.

    1 La Resoluci on de Problemas utilizando la Computadora

    Aunque el proceso de dise nar programas es un proceso creativo, se pueden considerar tres pasos que ayudan

    al programador en este proceso:

    Analisis del problema

    Diseno del algoritmo

    Resoluci on del algoritmo en la computadora

    Las fases de an alisis y diseno del algoritmo requieren la descripci on del problema en subproblemas y una

    herramienta de programaci on: Diagrama de ujo, Pseudoc odigo o Diagrama N-S (diagramas de Nassi-

    Schneider). En la tercera fase se implementa este algoritmo en un c odigo escrito en un lenguaje de progra-

    maci on, reejando las ideas obtenidas en las fases de an alisis y diseno.

    Antes de conocer las tareas a realizar en cada fase, deniremos el concepto de algoritmo.

    1

  • 8/6/2019 La Resolucion de Problemas Utilizando La a

    2/6

    Denici on 1.1. Algoritmo. Un algoritmo es un metodo para resolver un problema mediante una serie de

    pasos precisos, denidos y nitos.

    Se deriva de la traduccion al latn de la palabra arabe Alkhowarismi, nombre de un matem atico y astronomo

    arabe que escribio un tratado sobre manipulaci on de numeros y ecuaciones en el siglo IX.

    Caractersticas del Algoritmo

    Preciso: tiene que indicar el orden de realizaci on en cada paso.

    Denido: si el algoritmo se prueba dos veces, en estas dos pruebas, se debe obtener el mismo resultado

    (con excepci on de los programas que contienen comandos de generaci on de datos aleatorios).

    Finito: tiene un numero determinado de pasos y debe producir un resultado en un tiempo nito.

    Veamos algunos ejemplos.

    Ejemplo 1.2. Ver una pelcula. 1. Buscar el videocasete de la pelcula. 2. Si el televisor y la video-casetera

    se encuentran apagados, encenderlos. 3. Sacar el video del estuche. 4. Introducirlo en la video-casetera. 5.

    Tomar el control del televisor y la video. 6. Dirigirme a el sof a. 7. Ponerme c omodo 8. Ajustar el volumen.

    9. Disfrutar la pelcula

    Ejemplo 1.3. Cocinar arroz. 1. Lavar bien el arroz. 2. Buscar un recipiente (caldero) de tama no adecuado.

    3. Agregar el agua necesaria de acuerdo a la cantidad de arroz. 4. Agregar aceite, sal, cebolla, ajoporro. 5.

    Colocar el recipiente en la cocina. 6. Encender la hornilla. 7. Esperar a que hierva el agua. 8. Agregar

    el arroz al agua hirviendo. 9. Dejar el recipiente en el fuego hasta que el arroz este blando. 10. Apagar la

    hornilla. 11. Servir. 12. Comer. Buen provecho!!

    Estos peque nos algoritmos cumplen con los requisitos descritos arriba, ya que cada paso precisa un orden

    y tiene un orden de pasos nitos.

    Los algoritmos se pueden expresar por f ormulas, diagramas de ujo, y pseudo c odigos conocidos como

    herramientas de programaci on. Est a ultima representaci on es la mas utilizada por su sencillez y parecido

    a el lenguaje humano. El hecho de que un algoritmo sea una representaci on paso a paso, implica que

    est a compuesto por instrucciones elementales que no involucran ambig uedades, es decir que no pueden

    interpretarse de diferentes maneras

    2 Fases para la Resoluci on de Problemas

    1. Analisis del Problema. En la fase de an alisis en el proceso de programacion se determina que hace el

    programa. Esta fase requiere una clara denici on donde se contemple exactamente lo que debe hacer el

    2

  • 8/6/2019 La Resolucion de Problemas Utilizando La a

    3/6

    programa y el resultado o soluci on deseada. Dado que se busca una solucion se precisan especicaciones

    de entrada y salida. Para poder denir bien un problema es conveniente responder a las siguientes

    preguntas: Que entradas se requieren? (cantidad y tipo) Cu al es la salida deseada? (cantidad y

    tipo) Que metodo produce la salida deseada?

    2. Diseno del Algoritmo. En la fase de diseno se determina como hace el programa la tarea solicitada. Los

    metodos utilizados para el proceso del dise no se basan en el conocido divide y venceras: la resoluci on de

    un problema complejo se realiza dividiendo el problema en subproblemas y a continuaci on dividir estos

    en otros de nivel m as bajo, hasta que sea implementada una soluci on en la computadora. Este metodo se

    conoce tecnicamente como dise no descendente (top-down) o modular. El programa principal (el m odulo

    de nivel m as alto) llama a subprogramas (m odulos) de nivel m as bajo, que a su vez pueden llamar

    a otros subprogramas. Estos m odulos pueden ser planeados, codicados, comprobados y depurados

    independientemente y luego combinarlos entre s. Este proceso implica la ejecuci on de estos pasos

    hasta que el programa se ha terminado. El dise no del algoritmo es independiente del lenguaje de

    programacion en el que se vaya a codicar posteriormente.

    3. Implementacion del Algoritmo. Para implementar un algoritmo en la computadora, se debe ejecutar

    los siguientes pasos: Codicacion y documentacion, Compilaci on y ejecucion, Vericaci on y nalmente

    la Depuraci on.

    (a) Codicaci on y documentacion. Es la escritura en un lenguaje de programaci on de la repre-sentaci on de un algoritmo, en el caso de este curso se utilizan como lenguajes Octave o Matlab.

    La codicaci on se conoce como programa fuente. La documentaci on puede ser interna y externa.

    La documentacion interna es la contenida en lneas de comentarios. La documentaci on externa

    incluye analisis, diagramas de ujo y/o pseudo c odigos, manuales de usuarios con instrucciones

    para ejecutar el programa y para interpretar los resultados. La documentaci on es vital cuando se

    desea corregir posibles errores futuros o bien cambiar el programa. Estos cambios se denominan

    mantenimiento del programa. Adem as es de buena costumbre para todo buen programador, dejar

    comentado su codigo, para que el futuro programador pueda darle mantenimiento f acilmente a el

    programa, o incluso, si es el mismo creador quien debe darle mantenimiento. La importancia de

    la documentacion debe ser destacada por su inuencia en la etapa nal, ya que programas pobre-

    mente documentados son difciles de leer, m as difciles de depurar y casi imposibles de mantener

    y modicar.

    (b) Compilacion y ejecucion. Una vez que el algoritmo se ha convertido en un programa fuente, debe

    3

  • 8/6/2019 La Resolucion de Problemas Utilizando La a

    4/6

  • 8/6/2019 La Resolucion de Problemas Utilizando La a

    5/6

    Proceso o algoritmo: esta formado por las instrucciones que modican los objetos a partir de su estado

    inicial hasta el estado nal, dejando estos disponibles en la memoria central.

    Salida de resultados: conjunto de instrucciones que toman los datos nales de la memoria central y los

    envan a los dispositivos externos.

    Los algoritmos se encuentran compuestos de varios tipos de instrucciones. Una Instrucci on es la parte

    mas peque na de un programa que un computador puede ejecutar. Las instrucciones pueden ser:

    1. Instrucciones de declaraci on: se utilizan en aquellos lenguajes de programaci on que no tienen declaracion

    explcita de los ob jetos. Su misi on consiste en indicar al procesador que reserve espacio en la memoria

    para un objeto del programa, indicando asimismo su nombre, tipo y caractersticas. Octave y Mat-

    lab disponen de declaraciones explcitas de los objetos y por ello los programas codicados en estos

    lenguajes no requieren de instrucciones de declaraci on.

    2. Instrucciones primitivas: son aquellas que ejecuta el procesador de modo inmediato. Las principales

    son asignaci on, entrada y salida. Una instrucci on de asignacion calcula el valor de una expresi on y lo

    almacena en una variable. Una instrucci on de entrada toma un dato de un dispositivo de entrada y lo

    almacena en un objeto o variable. Eventualmente, los datos de entrada no provienen de un dispositivo

    externo, sino que han sido colocados previamente en el mismo programa. Una instrucci on de salida

    toma el valor de una expresi on u objeto y lo lleva a un dispositivo externo (pantalla, por lo general).

    3. Instrucciones compuestas: son aquellas que el procesador no puede ejecutar directamente, sino que

    realiza una llamada a un subprograma, subrutina o p arrafo.

    4. Instrucciones de control: son aquellas que controlan la ejecuci on de otras instrucciones. Instruccion

    de seleccion o alternativa: controla la ejecuci on de unas u otras instrucciones seg un una condicion.

    Puede ser simple o doble (SI y SINO). Instrucci on de salto incondicional: altera la secuencia normal de

    ejecucion de un programa, continuando la misma en la lnea indicada en la propia instrucci on (IR A).

    Instruccion de salto condicional: altera la secuencia normal de ejecuci on de un programa unicamente

    en el caso de cumplimiento de una condici on asociada a la propia instrucci on (SI ... IR A). Instruccion

    repetitiva: hace que se repitan una o varias instrucciones un n umero determinado o indeterminado de

    veces (PARA, MIENTRAS, HASTA e ITERAR).

    Algunas variables realizan funciones especcas dentro de un programa, y por su gran utilidad, frecuencia

    de uso y peculiaridad, conviene hacer una menci on aparte. Las mas importantes son:

    5

  • 8/6/2019 La Resolucion de Problemas Utilizando La a

    6/6

    Contadores. Un contador incrementa una variable en funci on de un valor constante. En otras pal-

    abras, es un campo de memoria cuyo valor se incrementa en una cantidad ja, positiva o negativa,

    generalmente asociado a un bucle. Toma un valor inicial antes de comenzar su funci on, y cada vez que

    se realiza el suceso, incrementa su valor. Ejemplo:

    Contador = Contador + constante

    Contador = Contador + 1

    Acumuladores. Un acumulador incrementa una variable en funcion de otra variable, es decir, es un

    campo de memoria cuyo valor se incrementa sucesivas veces en cantidades variables. Se utiliza en

    aquellos casos en que se desea obtener el total acumulado de un conjunto de cantidades, siendo preciso

    inicializarlo con el valor 0. Se utiliza con mayor frecuencia para obtener sumas sucesivas. Por ejemplo:

    Acumulador = Acumulador + valor variable.

    6