Está en la página 1de 13

Anlisis del problema

Esta fase requiere una clara definicin del problema, donde se contemple 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.
Para poder definir bien un problema es conveniente responder a las
siguientes preguntas:
*

Qu entradas se requieren (tipo y cantidad)?

Cul es la salida deseada (tipo y cantidad)?

Qu mtodo produce la salida deseada?

Anlisis en la resolucin de problemas


El anlisis de un problema es la parte mas importante para la resolucin del mismo,
es donde el programador debe imaginarse como plasmar el problema en la
computadora con las caractersticas mas resaltantes y obviando los detalles
innecesarios. Esto tambin se conoce como abstraccin del problema, la cual es
una caracterstica fundamental a la hora de programar.

Se debe analizar el problema a fin de conseguir el tipo de informacin que


queremos manejar, la cual ser tratada por el programa para luego dar una solucin
o resultado que nos ayudar en la toma de desiciones. El programador debe
identificar los elementos o datos del problema que nos ayudaran en la solucin del
mismo y luego realizar una serie de pasos a seguir ordenados relacionados entre si,
dicho procedimiento es el algoritmo.

Todo problema debe tener datos de entrada, los cuales sern pedidos a los usuarios
que van a usar el programa, luego de esta captura de datos el programa procesara
dicha entrada y debe dar una salida que ser de utilidad para el usuario; esta salida
debe ser veraz, eficiente y confiable, esto se logra con pruebas exhaustivas y con
ayuda de la experiencia.

En este curso vamos a resolver problemas del tipo estructurado que es uno de los
paradigmas de programacin mas usados pero no es el nico, donde usaremos
como herramienta C++( ya sea Borland 3.1 5.1, Visual C++ 6.0), ya que es un
lenguaje que nos permite usar la mayora de herramientas lgicas para resolver los
problemas.

La mayora de los problemas se suelen dividir en sup-problemas, cada uno de ellos


mas simples que el original para lograr una estructuracin del programa y un
desarrollo mejor, esto se logra con el uso de funciones o procedimientos, el cual
hablaremos mas adelante en este curso, esto nos ayuda a dividir el problema y
atacarlos de diferentes ngulos. En programacin no hay un slo camino, ni una
formula para resolver los problemas cada problema es un mundo distinto y depende
del programador encontrar el camino mas eficiente y fcil para llegar a la solucin,
esto se logra con constancia y experiencia en la programacin, desde luego conocer
el lenguaje a mayor profundidad ofrece una ventaja mayor debido a que se pueden
usar las herramientas que ste nos ofrece.
Resolucin de problemas utilizando el computador
Aunque el proceso de disear programas es un proceso creativo, se pueden
considerar una serie de fases o pasos comunes, que deben seguir todas aquellas
personas que pretendan realizar un programa. La resolucin de problemas con
computadoras se puede dividir en tres fases:
1) Anlisis del problema
2) Diseo del Algoritmo
3) Resolucin del Algoritmo en la computadora
El anlisis y el diseo del algoritmo requieren la descripcin del problema en
subproblemas a base de refinamientos sucesivos y una herramienta de
programacin.
La resolucin del algoritmo se debe comenzar por identificar las tareas ms
importantes para resolver el problema y disponerlas en el orden en el que han de
ser ejecutadas. Los pasos en esta primera descripcin pueden requerir una revisin
adicional antes de que podamos obtener un algoritmo claro, preciso y completo.
Metodologa para la solucin de pasos por computadora
La solucin de un problema por computadora, requiere de siete pasos, dispuestos
de tal forma que cada uno es dependiente de los anteriores, lo cual indica que se
trata de un proceso complementario y por lo tanto cada paso exige el mismo
cuidado en su elaboracin. Los siete pasos de la metodologa son los siguientes:

1. Definicin del problema.


2. Anlisis de la solucin.
3. Diseo de la solucin.
4. Codificacin.
5. Prueba y depuracin.

6. Documentacin.
7. Mantenimiento.

1.Definicin de problema: Es el enunciado del problema, el cual debe ser claro y


completo. Es fundamental conocer y delimitar por completo el problema, saber que
es lo que se desea que realice la computadora, mientras esto no se conozca del
todo, no tiene caso continuar con el siguiente paso.

2. Anlisis de la solucin: Consiste en establecer una serie de preguntas acerca de


lo que establece el problema, para poder determinar si se cuenta con los elementos
suficientes para llevar a cabo la solucin del mismo.

3. Diseo de la solucin: Una vez definido y analizado el problema, se produce a la


creacin del algoritmo (Diagrama de flujo o pseudocodigo) en el cual se da la serie
de pasos ordenados que nos proporcione un mtodo explicito para la solucin del
problema.

4.Codificacin: Consiste en escribir la solucin del problema (de acuerdo al


pseudocodigo); en una serie de instrucciones detalladas en un cdigo reconocible
por la computadora; es decir un lenguaje de programacin (ya sea de bajo o alto
nivel), a esta serie de instrucciones se le conoce como PROGRAMA.

5.Prueba y depuracin: Prueba es el proceso de identificar los errores que se


presenten durante la ejecucin de programa, es conveniente que cuando se pruebe
un programa se tomen en cuenta los siguientes puntos:

- Trata de iniciar la prueba con una mentalidad saboteadora, casi disfrutando la


tarea de encontrar un error.
- Sospechar de todos los resultados que arroje la solucin, con lo cual se debern
verificar todos.
- Considerar todas las situaciones posibles, normales y aun las anormales.

La depuracin consiste en eliminar los errores que se hayan detectado durante la


prueba, para dar paso a una situacin adecuada y sin errores.

6. Documentacin: Es la gua o comunicacin escrita que sirve como ayuda para


usar el programa, o facilitar futuras modificaciones. A menudo, un programa escrito
por una persona es usado por muchas otras, por ello la documentacin es muy
importante; esta debe presentarse en tres formas: EXTERNA, INTERNA y al USUARIO
FINAL.

-Interna: Consiste en los comentarios o mensajes que se agregan al cdigo de


programa, que aplican las funciones que realizan ciertos procesos, clculos o
formulas, para el entendimiento del mismo.

-Externa: Est integrada por los siguientes elementos: Descripcin del problema,
nombre del autor, diagrama de flujo y/o pseudocodigo, listas de variables y
constantes, y codificacin del programa, esto con la finalidad de permitir su
posterior adecuacin a los cambios.

- Usuario Final: es la documentacin que se le proporciona al usuario final, es una


gua que indica al usuario como navegar en el programa, presentando todas las
pantallas y mens que se va a encontrar y una explicacin de los mismos, no
contiene informacin de tipo tcnico.

7. Mantenimiento: Se lleva a cabo despus de terminado el programa, cuando se


ha estado trabajando un tiempo, y se detecta que es necesario hacer un cambio,
ajuste y/o complementacin al programa para que siga trabajando de manera
correcta. Para realizar esta funcin el programa debe estar debidamente
documentado, lo cual facilitar la tarea.
RESOLUCION DE PROBLEMAS MEDIANTE EL COMPUTADOR

El proceso de solucin de un problema con una computadora conduce a la escritura


de un programa y a su ejecucin en la misma. Aunque el proceso de disear
programas es esencialmente un proceso creativo, se puede considerar una serie de
pasos comunes. Los pasos para la resolucin de un problema son: - Anlisis del
problema. - Diseo del algoritmo. - Codificacin. - Compilacin y ejecucin. Verificacin y depuracin. Los dos primeros pasos conducen a un diseo detallado
escrito en forma de algoritmo. Durante el tercer paso (codificacin) se implementa
el algoritmo en un cdigo escrito en un lenguaje de programacin, en nuestro caso
Qbasic. 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. Antes de conocer las tareas a realizar en cada paso, vamos
a considerar el concepto y significado de algoritmo. Un algoritmo es un mtodo

para resolver un problema mediante una serie de pasos precisos, definidos y finitos.
Caractersticas de un algoritmo: - Preciso (indicar el orden de realizacin en cada
paso). - Definido (si se sigue dos veces, se obtiene el mismo resultado cada vez). Finito (tiene fin; un numero determinado de pasos) Anlisis del problema Como
primer paso se debe analizar el problema. Este paso 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. Para poder definir un problema es
conveniente responder a las siguientes preguntas: - Qu entradas se requieren
(tipo y cantidad)? - Cul es la salida deseada (tipo y cantidad)? - Qu mtodo
produce la salida deseada? Diseo del algoritmo En la etapa de anlisis del proceso
de programacin se determina que hace el programa. En la etapa de diseo se
determina cmo hace el programa la tarea solicitada. Para ello vamos a utilizar una
herramienta de programacin llamada Diagrama de Flujo (flowchart). Diagramas de
flujo Un diagrama de flujo es una representacin grafica de un algoritmo. Los
smbolos ms utilizados se detallan a continuacin: Smbolo terminal, con las
palabras INICIO o FIN identifica el comienzo o el final del algoritmo. Tambin se
puede escribir el nombre del algoritmo. Smbolo de procesamiento, indica que la
computadora lleva a cabo algn proceso de la informacin. Smbolo de decisin,
indica una decisin de la computadora que debe elegir entre dos o ms alternativas
del algoritmo. Smbolo de entrada/ salida, sirve para indicar una operacin de
entrada o salida de datos.

El diagrama de flujo

Es la representacin grfica del algoritmo o proceso. Se utiliza en disciplinas como


la programacin, la economa, los procesos industriales y la psicologa cognitiva.
Estos diagramas utilizan smbolos con significados bien definidos que representan
los pasos del algoritmo, y representan el flujo de ejecucin mediante flechas que
conectan los puntos de inicio y de fin de proceso. Un diagrama de flujo siempre
tiene un nico punto de inicio y un nico punto de trmino.
Las siguientes son acciones previas a la realizacin del diagrama de flujo:
Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar
presentes el dueo o responsable del proceso, los dueos o responsables del
proceso anterior y posterior y de otros procesos interrelacionados, otras partes
interesadas.
Definir qu se espera obtener del diagrama de flujo.
Identificar quin lo emplear y cmo.
Establecer el nivel de detalle requerido.

Determinar los lmites del proceso a describir.


Los pasos a seguir para construir el diagrama de flujo son:
Establecer el alcance del proceso a describir. De esta manera quedar fijado el
comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del
proceso previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que estn incluidos en el
proceso a describir y su orden cronolgico.
Si el nivel de detalle definido incluye actividades menores, listarlas tambin.
Identificar y listar los puntos de decisin.
Construir el diagrama respetando la secuencia cronolgica y asignando los
correspondientes smbolos.
Asignar un ttulo al diagrama y verificar que est completo y describa con exactitud
el proceso elegido.

Tablas de decisiones

La tabla de decisin es una matriz de renglones y columnas que indican condiciones


y acciones. Las reglas de decisiones, incluidas en una tabla de decisin establecen
el procedimiento a seguir cuando existen ciertas condiciones. Este mtodo se
emplea desde mediados de la dcada de los 50, cuando fue desarrollado por
General Electric para el anlisis de funciones de la empresa como control de
inventarios, anlisis de ventas, anlisis de crditos y control de transporte y rutas.
Se utiliza la tabla de decisin cuando existen muchas combinaciones.
Caractersticas de las Tablas de Decisin:
La tabla de decisin est integrada por cuatro secciones:
Identificacin de Condiciones
Entradas de Condiciones
Identificacin de Acciones
Entradas de Acciones
La Identificacin de Condiciones seala aquellas que son relevantes.
Las Entradas de Condiciones, indican que valor, si es que los hay, se debe asociar
para una determinada condicin Las entradas de Acciones muestran las acciones
especficas del conjunto que deben emprenderse cuando ciertas condiciones o
combinaciones de stas son verdaderas.

Utilidad
Permite representar la descripcin de situaciones decisivas, es decir, se representan
las distintas alternativas, estados de la naturaleza y las consecuencias. Nos
proporcionan una descripcin completa, correcta, clara y concisa de una situacin
que se resuelve por una decisin tomada en un momento especfico del tiempo.
Como construir tablas de decisin.
Para desarrollar tablas de decisin, se deben emprender los siguientes pasos:
1. Determinar los factores considerados como ms relevantes en la toma de
decisiones. Esto permite identificar las condiciones en la decisin. Cada condicin
seleccionada de detener la caracterstica de ocurrir quo no ocurrir; en este caso no
es posible la ocurrencia parcial.
2. Determinar los pasos o actividades ms factibles bajo condiciones que cambian
(no slo las condiciones actuales). Esto permite identificar las acciones.
3. Estudiar las diferentes posibilidades de combinaciones de condiciones. Para
cualquier nmero N condiciones, existen 2n combinaciones a considerar, por
ejemplo para tres condiciones es necesario examinar ocho posibles combinaciones
23= 8.
4. Llenar la tabla con reglas de decisiones.
Existen dos formas para hacerlo.
La primera, escenario los renglones de condicin con valores s o no para cada
combinacin posible de condiciones. Esto es llenar la primera mitad del rengln
consigo y la otra mitad con no. El siguiente rengln se llena alternando con S y N,
repitindose este proceso hasta llenar la tabla.
El otro mtodo para llenar la tabla considera una condicin a la vez y, por cada
condicin adicional, la aade a la tabla pero sin considerar las combinaciones de
condiciones y acciones duplicados.
A) Establece la primera condicin y todas las acciones permisibles.
B) Aadir la segunda condicin duplicando la primera mitad de la matriz y llenando
los diferentes valores S y N de las dos mitades de la matriz aumentada con las
nuevas condiciones.
C) Para cada condicin adicional repite el paso b.
5. Marcar las entradas correspondientes a las acciones con una X para indicar que
stas se emprenden; dejar las celdas vacas o marcadas con un guin para sealar
que en ese rengln no emprende ninguna accin.

6. Examinar la tabla para detectar reglas redundantes o contradicciones entre


estas.
Estos sencillos lineamientos no slo ahorran tiempo al construir una tabla de
decisiones a partir de informacin recopilada durante la investigacin sino que
tambin es de ayuda para sealar donde falta informacin, donde no importan las
condiciones en un proceso, o donde existen relaciones o resultados importantes que
otros no detectaron o consideraron. En otras palabras, el empleo de las tablas de
decisin produce un anlisis ms completo y exacto.

Lenguaje de programacin

Es un idioma artificial diseado para expresar procesos que pueden ser llevadas a
cabo por mquinas como las computadoras. Pueden usarse para crear programas
que controlen el comportamiento fsico y lgico de una mquina, para expresar
algoritmos con precisin, o como modo de comunicacin humana. Est formado por
un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura
y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se
prueba, se depura, se compila y se mantiene el cdigo fuente de un programa
informtico se le llama programacin.
Tambin la palabra programacin se define como el proceso de creacin de un
programa de computadora, mediante la aplicacin de procedimientos lgicos, a
travs de los siguientes pasos:
El desarrollo lgico del programa para resolver un problema en particular.
Escritura de la lgica del programa empleando un lenguaje de programacin
especfico (codificacin del programa).
Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina.
Prueba y depuracin del programa.
Desarrollo de la documentacin.
Existe un error comn que trata por sinnimos los trminos 'lenguaje de
programacin' y 'lenguaje informtico'. Los lenguajes informticos engloban a los
lenguajes de programacin y a otros ms, como por ejemplo HTML (lenguaje para el
marcado de pginas web que no es propiamente un lenguaje de programacin, sino
un conjunto de instrucciones que permiten disear el contenido de los documentos).
En la actualidad la mayora de los usuarios de microcomputadoras tienen acceso a
un sistema de informacin o forman parte del mismo. Todas las organizaciones
cuentan con un sistema de informacin de algn tipo, que sus empleados deben
utilizar. Cuando en cualquier organizacin se desea implantar un nuevo sistema, de

tal forma que sus miembros sean ms productivos, obteniendo un mayor provecho
y apoyo del mismo, se requiere realizar una serie de acciones y previsiones.

La creacin o establecimiento de un nuevo sistema de informacin en la


organizacin, puede ser una tarea compleja. Para encarar este tipo de situaciones
existe un proceso de anlisis y diseo de sistemas que auxilia en la resolucin de
tales problemas. El anlisis y diseo de sistemas proporciona una gua til que
busca disminuir las situaciones de fracaso o errores al acometer estos procesos.

Razones para conocer el anlisis y diseo de sistemas


Aunque pareciese que es tema slo de profesionales, como usuario final, toda
persona que usa una microcomputadora se beneficiar al conocer sobre este
proceso. Puede ocurrir que, una vez contratado como miembro de una organizacin,
se convierta en usuario de su sistema de informacin, entonces el conocimiento del
anlisis y diseo de sistemas, le permitir aumentar su productividad personal,
sirvindole para resolver los problemas que surjan en su rea de trabajo,
determinando nuevos requerimientos de informacin y permitindole colaborar con
los profesionales en informtica en la resolucin de tales situaciones.

Necesidad del anlisis y diseo de sistemas


La instalacin de un sistema sin la adecuada planeacin puede conducir a grandes
frustraciones y causar que el sistema sea subutilizado, o peor an, deje de ser
usado al no cumplir con las expectativas que le dieron origen. El anlisis y diseo de
sistemas es una gua que permite estructurar el proceso de desarrollo de sistemas
de informacin.

Tal proceso siempre representar un esfuerzo, inversin de tiempo y recursos por


parte de la organizacin. Acometer tal esfuerzo de manera casual, presenta un alto
grado de riesgo al no garantizar la culminacin del proyecto con xito. Este
procedimiento permite reducir al mnimo el riesgo de fracaso de nuevos proyectos,
pues es comn que muchos errores surjan al utilizar nuevos sistemas de
informacin, bien por no adaptarse correctamente a las necesidades reales o por
desempearse de forma inadecuada.
Codificacin
Consiste en escribir la solucin del problema (de acuerdo al pseudocdigo o
diagrama de flujo); en una serie de instrucciones detalladas en un cdigo
reconocible por la computadora; es decir en un lenguaje de programacin (ya sea
de bajo o alto nivel), a esta serie de instrucciones se le conoce como PROGRAMA.

Un programa informtico es un conjunto de instrucciones que una vez ejecutadas


realizarn una o varias tareas en una computadora. Sin programas, las
computadoras no pueden funcionar correctamente. Al conjunto general de
programas, se le denomina software y as, se refiere al equipamiento lgico o
soporte lgico de una computadora digital.
Los comandos que se utilizan son generalmente palabras, verbos en ingls
(lenguaje de alto nivel), los cuales tienen una sintaxis que se debe respetar, para
que el compilador o el intrprete entienda la orden que se le esta dando.
Si el comando esta mal expresado, tanto el interprete como el compilador, dar un
aviso al programador, que la instruccin que se le esta dando no la puede
entender. Todos los lenguajes tienen sus respectivas ayudas de como utilizarlo, y
generalmente tienen ejemplos para ponerlos en prctica y poder entender el
funcionamiento de un comando en particular.

4.3.1 Codificacin del Problema

Para codificar la solucin planteada, se deben reemplazar las figuras de los diagramas de
flujo o las instrucciones del pseudocdigo en un lenguaje de alto o bajo nivel. En este caso se
utilizara un lenguaje muy bsico denominado Quick Basic, no es el nico lenguaje
de programacin, existen decenas y prcticamente se puede adaptar la programacin del
problema en cualquiera de ellos.
Diagrama de Flujo

Codificacin
CLS
FOR cantidad = 1 TO 35
INPUT "Ingrese estatura "; estatura_alumno
total = total + estatura_alumno
NEXT cantidad
promedio = total / 35
PRINT "El promedio de estatura es : ", promedio
END

Las palabras que se encuentran en color rojo y mayscula son palabras reservadas del
lenguaje.
El texto que se encuentra entre comillas y en amarillos es lo que el usuario vera en su
pantalla.
Las operaciones que se encuentran en color naranja, no necesitan de un comando del
lenguaje pero si, interpreta que eso es una operacin aritmtica, donde todo lo que se
encuentra a la izquierda del signo igual, se resuelve, y el resultado se le asigna a la variable
que se encuentra a la derecha del signo igual.
Explicacin de los comandos utilizados.
CLS

FOR cantidad = 1 TO 35
NEXT cantidad

Borra pantalla (Es una abreviacin de CLEAR


SCREEN borrar pantalla)
Comienza ciclo FOR (de), este ciclo tiene un inicio,
en este caso 1, y tiene un final, en este caso 35,
Comienza ciclo FOR, este ciclo tiene un inicio, en
este caso 1, y tiene un final, en este caso 35, y la
variable que ira cambiando de valor
sera cantidad. Este ciclo se ejecutara 35 veces y
todas las instrucciones o comandos que se
encuentren entre el FOR y el NEXT tambin se
ejecutaran 35 veces.
Una vez cumplidos los 35 ciclos, el programa

Ejecucin de un programa.
A un programa en ejecucin se le suele llamar tambin proceso.

El proceso de ejecucin de un programa escrito en un lenguaje de programacin y


mediante un compilador tiene los siguientes pasos:

1. Escritura del programa fuente con un editor (programa que permite a una
computadora actuar de modo similar a una mquina de escribir electrnica) y
guardarlo en un dispositivo de almacenamiento.
2. Introducir el programa fuente en memoria.
3. Compilar el programa con el compilador.
4. Verficar y corregir errores de compilacin.
5. Obtencin del programa objeto
6. El enlazador (linker) obtiene el programa ejecutable.
7. Se ejecuta el programa y, si no existen errores, se tendr la salida del programa.

Se denomina tiempo de ejecucin (runtime en ingls) al intervalo de tiempo en el


que un programa de computadora se ejecuta en un sistema operativo. Este tiempo
se inicia con la puesta en memoria principal del programa, por lo que el sistema
operativo comienza a ejecutar sus instrucciones. El intervalo finaliza en el momento
en que ste enva al sistema operativo la seal de terminacin, sea sta una
terminacin normal, en que el programa tuvo la posibilidad de concluir sus
instrucciones satisfactoriamente, o una terminacin anormal, en el que el programa
produjo algn error y el sistema debi forzar su finalizacin.

Este trmino suele emplearse, en oposicin a tiempo de compilacion, para indicar si


una accin o hecho sucede en uno u otro tiempo.
Ejecucion y validacion de un programa
Esta operacion se realiza con un programa editor, posteriormente el programa
fuente se convierte en un archivo de programa que se guarda en disco.
El programa fuente debe ser traducido al lenguaje maquina, este proceso se realiza
con el copilador y el sistema operativo que se encarga practicamente de la
compilacion. Si tras la compilacion se presenta errores en el programa fuente , es
preciso volver a editar el programa, correjir los errores y copilar de nuevo. Este
preceso se repite hasta que no se produscan errores obteniendoce el programa

objeto que todavia no es ejecutable directamente, el preceso de montaje produce


un programa ejecutable

También podría gustarte