Vous êtes sur la page 1sur 19

2.

1 METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

METODOLOGA PARA LA SOLUCIN


DE PROBLEMAS

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS


El proceso de resolucin de un problema con una computadora conduce
a la escritura de un programa y su ejecucin en la misma. Aunque el
proceso de disear programas es esencialmente un proceso creativo, se
pueden considerar una serie de fases o pasos comunes, que
generalmente deben seguir todos los programadores.

Las fases de resolucin de un problema con computadora son:

Anlisis del problema


Diseo del algoritmo
Codificacin
Compilacin y ejecucin
Verificacin
Depuracin
Mantenimiento
Documentacin

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Las dos primeras fases conducen a un diseo detallado escrito en forma


de algoritmo. Durante la tercera etapa (codificacin) se implementa el
algoritmo en un cdigo escrito en un lenguaje de programacin,
reflejando las ideas desarrolladas en las fases de anlisis y diseo.

La fase de compilacin y ejecucin traduce y ejecuta el programa. En


las fases de verificacin y depuracin el programador busca errores de
las etapas anteriores y los elimina. Comprobar que mientras ms
tiempo se invierta en la fase de anlisis y diseo menos tiempo se
perder en la depuracin del programa. Por ltimo, se debe realizar la
documentacin del programa.

Antes de conocer las tareas a realizar en cada fase, vamos a considerar


el concepto y significado de la palabra algoritmo. La palabra algoritmo
se deriva de la traduccin al latn de la palabra Alkhwarzmi, nombre
de un matemtico y astrnomo rabe que escribi un tratado sobre
manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es
un mtodo para resolver un problema mediante una serie de pasos
precisos, definidos y finitos.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Anlisis del problema


La primera fase de la resolucin de un problema con
computadora es el anlisis del problema. Esta fase requiere
una clara definicin, donde se contemple exactamente lo que
debe hacer el programa y el resultado o solucin deseada.
Dado que se busca una solucin por computadora, se precisan
especificaciones detalladas de entrada y salida. La siguiente
figura muestra los requisitos que se deben definir en el anlisis,

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Para poder definir bien un problema es conveniente responder


a las siguientes preguntas:
Qu entradas e requieren? (tipo y cantidad)
Cul es la salida deseada? (tipo y cantidad)
Qu mtodo produce la salida deseada?

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Ejemplo 1:
Se desea obtener una tabla con las depreciaciones acumuladas y dos valores
reales de cada ao de un automvil comprado en $380,000 en el ao 1996,
durante los seis aos siguientes suponiendo un valor de recuperacin o
rescate de $45,000. Realizar el anlisis del problema, conociendo la frmula
de depreciacin anual constante D para cada ao de vida til.

Entradas:
Costo original
Vida til
Valor de recuperacin

Salida:
Depreciacin anual por
ao
Depreciacin acumulada
en cada ao
Valor del automvil en
cada ao

Proceso:
Depreciacin acumulada
Clculo de la
depreciacin acumulada
cada ao
Clculo del valor del
automvil en cada ao

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

La siguiente tabla muestra la salida solicitada:


Depreciacin

Ao Depreciacin acumulada Valor anual


1
2
3
4
5
6

1996
1997
1998
1999
2000
2001

55,000
55,000
55,000
55,000
55,000
55,000
Fin del ejemplo 1

55,000
110,000
165,000
220,000
275,000
330,000

325,000
270,000
215,000
160,000
105,000
50,000

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Diseo del algoritmo

En la etapa de anlisis del proceso de programacin se determina qu


hace el programa. En la etapa de diseo se determina cmo hace el
programa la tarea solicitada. Los mtodos ms eficaces para el proceso de
diseo en el refrn conocido divide y vencers. Es decir, la resolucin de
un problema complejo se realiza dividiendo el problema en subproblemas
y a continuacin subdividir estos subproblemas en otros de nivel ms
bajo, hasta que pueda ser implementada una solucin en la computadora.
Este mtodo se conoce tcnicamente como diseo descendente (topdown) o modular. El proceso de dividir el problema en cada etapa y
expresar cada paso en forma ms detallada se denomina refinamiento
sucesivo.
Cada subproblema es resuelto mediante un mdulo (subprograma) que
tiene un solo punto de entrada y un solo punto de salida.
Cualquier programa bien diseado consta de un programa principal (el
mdulo de nivel ms alto) que llama a subprogramas (mdulos de nivel
ms bajo) que a su vez pueden llamar a otros subprogramas.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Herramientas de programacin

Las dos herramientas ms utilizadas para disear algoritmos son:


diagramas de flujo y pseudocdigos.
Diagramas de flujo
Un diagrama de flujo (flowchart) es una representacin grfica de un
algoritmo. (los smbolos utilizados han sido normalizados por el Instituto
Norteamericano de Normalizacin (ANSI, por sus siglas en ingls) y los
ms frecuentemente empleados se muestran en la siguiente tabla:

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Herramientas de programacin
Smbolo

Utilizacin

Terminal

Subprograma

Entrada/salida

Decisin

Proceso

Conectores

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Pseudocdigo

El pseudocdigo es una herramienta de programacin en que las


instrucciones se escriben en palabras similares al ingls o espaol, que
facilitan tanto la escritura como la lectura de programas. En esencia, el
pseudocdigo se puede definir como un lenguaje de especificaciones de
algoritmos.

Aunque no existen reglas para escritura del pseudocdigo en espaol, se


ha recogido una notacin estndar que es muy empleada en los libros de
programacin en espaol. Las palabras reservadas bsicas se
representan en letras negritas minsculas. Estas palabras son traduccin
libre de palabras reservadas de lenguajes como C, Pascal, etc.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS


Ejemplo 2
El pseudocdigo que resuelve el ejemplo 1 es el siguiente:
Previsiones de depreciacin

Introducir costo inicial


Vida til
Valor final de rescate (recuperacin)

Imprimir encabezados
Establecer el valor inicial del ao
Calcular depreciacin
mientras valor ao <= vida til hacer
calcular depreciacin acumulada
calcular valor actual
imprimir una lnea en la tabla
incrementar el valor del ao
fin de mientras

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

El diagrama de flujo se muestra en la siguiente figura:

Fin del ejemplo 2

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Codificacin de un programa

Una vez que el algoritmo se ha convertido en un programa fuente, es


preciso introducirlo en memoria mediante el teclado y almacenarlo
posteriormente en un disco. Esta operacin se realiza con un programa
editor, posteriormente el programa fuente se convierte en un archivo
de programa que se guarda (graba) en disco.

El programa fuente debe ser traducido a lenguaje mquina, este


proceso se realiza con el compilador y el sistema operativo que se
encarga particularmente de la compilacin.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Codificacin de un programa

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 nuevamente. Este proceso se repite hasta que no se producen
errores, obtenindose el programa objeto que todava no es ejecutable
directamente. Suponiendo que no existen errores en el programa fuente, se
debe instruir al sistema operativo para que realice la fase de montaje o
enlace (link), es decir, la carga del programa objeto con las libreras del
programa de compilador. El proceso de montaje produce un programa
ejecutable.
Cuando el programa ejecutable se ha creado, se puede ya ejecutar desde el
sistema operativo con solo teclear su nombre, desde sistema operativo
DOS, o bien haciendo doble clic, desde Windows.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Verificacin y depuracin de un programa

La verificacin de un programa es el proceso de ejecucin del programa con


una amplia variedad de datos de entrada, llamados datos de test o prueba,
que determinarn si el programa tiene errores (bugs). Para realizar la
verificacin se debe desarrollar una amplia gama de datos de test: valores
normales de entrada, valores extremos de entrada que comprueben los
lmites del programa y valores de entrada que comprueben aspectos
especiales del programa.

La depuracin es el proceso de encontrar los errores del programa y corregir


o eliminar dichos errores.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Verificacin y depuracin de un programa


Cuando se ejecuta un programa se pueden producir tres tipos de
errores:

Errores de compilacin. Se producen normalmente por un uso


incorrecto de las reglas del lenguaje de programacin y suelen
ser errores de sintaxis. Si existe un error de sintaxis, la
computadora ni puede comprender la instruccin, no se
obtendr el programa objeto y el compilador imprimir una
lista de todos los errores encontrados durante la compilacin.

Errores de ejecucin. Estos errores se producen por


instrucciones que la computadora puede comprender pero no
ejecutar. Ejemplos tpicos son: divisin entre cero y races
cuadradas de nmeros negativos. En estos casos se detiene la
ejecucin del programa y se imprime un mensaje de error.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Verificacin y depuracin de un programa

Errores de lgica. 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 de ejecucin, y
slo puede advertir el error por la obtencin de resultados
incorrectos. En este caso se debe volver a la fase de diseo del
algoritmo, modificar el algoritmo, cambiar el programa fuente y
compilar y ejecutar una vez ms.

METODOLOGA PARA LA SOLUCIN DE PROBLEMAS

Documentacin y mantenimiento

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 debe ser destacada 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.

La documentacin de un programa puede ser interna y externa. La


documentacin interna es la contenida en lneas de comentarios. La
documentacin externa incluye anlisis, diagramas de flujo,
pseudocdigos, manuales de usuario con instrucciones para ejecutar el
programa y para interpretar los resultados.

La documentacin es vital cuando se desea corregir posibles errores


futuros o bien cambiar el programa. Tales cambios se denominan
mantenimiento del programa. Despus de cada cambio la documentacin
debe ser actualizada para facilitar cambios posteriores.

Vous aimerez peut-être aussi