Sie sind auf Seite 1von 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, u nicamente 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 cu al 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 dise nan 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, Int erpretes y los Programas de utilidad. El software de aplicaci on son los que realizan tareas concretas, n ominas, contabilidad, an alisis estad sticos, etc., es decir todos aquellos programas que pueden ser escritos en un Lenguaje de Programaci on.

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: alisis del problema An Dise no del algoritmo Resoluci on del algoritmo en la computadora Las fases de an alisis y dise no 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 NassiSchneider). En la tercera fase se implementa este algoritmo en un c odigo escrito en un lenguaje de programaci on, reejando las ideas obtenidas en las fases de an alisis y dise no. Antes de conocer las tareas a realizar en cada fase, deniremos el concepto de algoritmo. 1

Denici on 1.1. Algoritmo. Un algoritmo es un m etodo para resolver un problema mediante una serie de pasos precisos, denidos y nitos. Se deriva de la traducci on al lat n de la palabra arabe Alkhowarismi, nombre de un matem atico y astr onomo arabe que escribi o un tratado sobre manipulaci on de n umeros y ecuaciones en el siglo IX. Caracter sticas 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 n umero determinado de pasos y debe producir un resultado en un tiempo nito. Veamos algunos ejemplos. Ejemplo 1.2. Ver una pel cula. 1. Buscar el videocasete de la pel cula. 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 pel cula no adecuado. Ejemplo 1.3. Cocinar arroz. 1. Lavar bien el arroz. 2. Buscar un recipiente (caldero) de tama 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 au ltima representaci on es la m as 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

Fases para la Resoluci on de Problemas


1. An alisis del Problema. En la fase de an alisis en el proceso de programaci on se determina que hace el programa. Esta fase requiere una clara denici on donde se contemple exactamente lo que debe hacer el 2

programa y el resultado o soluci on deseada. Dado que se busca una soluci on se precisan especicaciones de entrada y salida. Para poder denir bien un problema es conveniente responder a las siguientes preguntas: Qu e entradas se requieren? (cantidad y tipo) Cu al es la salida deseada? (cantidad y tipo) Qu e m etodo produce la salida deseada? 2. Dise no del Algoritmo. En la fase de dise no se determina como hace el programa la tarea solicitada. Los m etodos utilizados para el proceso del dise no se basan en el conocido divide y vencer as: 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 m etodo se conoce t ecnicamente 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 programaci on en el que se vaya a codicar posteriormente. on del Algoritmo. Para implementar un algoritmo en la computadora, se debe ejecutar 3. Implementaci los siguientes pasos: Codicaci on y documentaci on, Compilaci on y ejecuci on, Vericaci on y nalmente la Depuraci on. (a) Codicaci on y documentaci on. Es la escritura en un lenguaje de programaci on de la representaci 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 documentaci on interna es la contenida en l neas de comentarios. La documentaci on externa incluye an alisis, 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 c odigo, 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 documentaci on debe ser destacada por su inuencia en la etapa nal, ya que programas pobremente documentados son dif ciles de leer, m as dif ciles de depurar y casi imposibles de mantener y modicar. (b) Compilaci on y ejecuci on. Una vez que el algoritmo se ha convertido en un programa fuente, debe 3

ser traducido a lenguaje m aquina. Este proceso se realiza con el compilador y el sistema operativo que se encarga pr acticamente de la compilaci on. Si al compilar el programa fuente se presentan errores (errores de compilaci on), es necesario volver a editar el programa, corregir los errores y compilar de nuevo. Esto se repite hasta que ya no se presenten m as errores, obteni endose el programa objeto. Cuando no existen errores en el programa fuente se debe instruir al sistema operativo para que efect ue la fase de montaje o enlace, del programa fuente con las librer as del programa del compilador. Este proceso de montaje produce un programa ejecutable. Cuando se ha creado un programa ejecutable este se puede ya ejecutar desde el sistema operativo con solo teclear su nombre. Suponiendo que no existen errores durante la ejecuci on (errores en tiempo de ejecuci on), se obtendr a la salida de resultados correctos del programa. (c) Vericaci on y depuraci on. Es el proceso de ejecuci on del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba como son: valores normales de entrada, valores extremos de entrada que comprueben los l mites del programa y valores de entrada que comprueben aspectos especiales del programa. Estos determinar an si el programa contiene errores o no.

Estructura general de un programa

Un programa puede considerarse como una secuencia de acciones (instrucciones) que manipulan un conjunto de objetos (datos) para que realice una tarea espec ca. Un programa contiene dos bloques: Bloque de declaraciones: en el se especican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.). En el caso particular de Octave/Matlab, este bloque de declaraciones no forma parte del programa, estos lenguajes de programaci on identican autom aticamente la estructura de las variables en juego. Bloque de instrucciones: constituido por el conjunto de operaciones que se han de realizar para la obtenci on de los resultados deseados. Dentro del bloque de instrucciones de un programa podemos diferenciar tres partes fundamentales. En algunos casos, estas tres partes est an perfectamente delimitadas, pero en la mayor a sus instrucciones quedan entremezcladas a lo largo del programa, si bien mantienen una cierta localizaci on geom etrica impuesta por la propia naturaleza de las mismas. Entrada de datos: la constituyen todas aquellas instrucciones que toman datos de un dispositivo externo, almacen andolos en la memoria central para que puedan ser procesados. 4

Proceso o algoritmo: est a 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 env an a los dispositivos externos. Los algoritmos se encuentran compuestos de varios tipos de instrucciones. Una Instrucci on es la parte m as 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 declaraci on expl cita de los objetos. 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 caracter sticas. Octave y Matlab disponen de declaraciones expl citas 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 asignaci on 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. Instrucci on de selecci on o alternativa: controla la ejecuci on de unas u otras instrucciones seg un una condici on. Puede ser simple o doble (SI y SINO). Instrucci on de salto incondicional: altera la secuencia normal de ejecuci on de un programa, continuando la misma en la l nea indicada en la propia instrucci on (IR A). Instrucci on de salto condicional: altera la secuencia normal de ejecuci on de un programa u nicamente en el caso de cumplimiento de una condici on asociada a la propia instrucci on (SI ... IR A). Instrucci on 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 espec cas dentro de un programa, y por su gran utilidad, frecuencia de uso y peculiaridad, conviene hacer una menci on aparte. Las m as importantes son:

Contadores. Un contador incrementa una variable en funci on de un valor constante. En otras palabras, 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 funci on 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.

Das könnte Ihnen auch gefallen