2.-Planteamiento de alternativas
3.-Elección de una alternativa
4.-Desarrollo de la solución
5.-Evaluacion de la solución
El siguiente
diagrama explica la metodología de solución de manera más detallada.
En esta sección se debe redactar en forma clara y
precisa el problema.
Análisis
del problema
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 solución del mismo, algunas
preguntas son:
¿Con qué
cuento?
¿Cuáles son los datos con los que se va a iniciar el
proceso, qué tenemos que proporcionarle a la computadora y si los datos con los
que cuento son suficientes para dar solución al problema?
¿Qué hago
con esos datos?
Una vez que tenemos todos los datos que necesitamos,
debemos determinar qué hacer con ellos, es decir qué fórmula, cálculos, qué
proceso o transformación deben seguir los datos para convertirse en
resultados.
¿Qué se
espera obtener?
¿Qué información deseamos obtener con el proceso de
datos y de qué forma presentar- la? En caso de que la información obtenida no
sea la deseada replantear nuevamente un análisis en los puntos anteriores.
Es recomendable que nos pongamos en el lugar del
usuario quien necesita solucionar el problema y así también pensar que es lo
que puede hacer la computadora; analicemos qué es lo que necesitamos que nos
ordenen y en qué secuencia, para producir los resultados esperados.
En el análisis debemos encontrar relaciones entre
los datos, obtener y/o determinar fórmulas, obtener lista de posibles variables
calculadas ya sean éstas proporcionadas por el usuario, verificar si hace falta
más información.
Diseño de
la solución o propuesta de solución
Una vez definido y analizado el problema se procede
a la creación del método el cuál consiste en una serie de pasos ordenados que
nos proporcione un algoritmo explícito para su solución.
Es recomendable la realización de pruebas de
escritorio al algoritmo diseñado, para determinar su confiabilidad y detectar
los errores que se pueden presentar en ciertas situaciones. Estas pruebas
consisten en dar valores a la variable e ir probando el algoritmo paso a paso
para obtener una solución y si ésta es satisfactoria continuar con el siguiente
paso de la metodología; de no ser así y de existir errores deben corregirse y
volver a hacer las pruebas.
¿Qué es la
prueba de escritorio?
Es seguir uno a uno los pasos, verificando que se
llegue siempre a resultados válidos, si nos encontrarnos con ambigüedades es
necesario revisar nuestra Propuesta de solución. Esto quiere decir que algo
hicimos mal. Y en caso de encontrar error es necesario revisar el proceso
desde su Definición.
Podemos preguntarnos ¿funciona? sí o no, aquí no
puede haber supuestos.
Codificación
Consiste en escribir la solución del problema en una
serie de instrucciones detalladas en un código reconocible por la computadora;
es decir, en un lenguaje de programación. A esta serie de instrucciones se le
conoce como PROGRAMA.
La codificación va de acuerdo al lenguaje
seleccionado y se pueden definir los tipos de datos a usar y declarar las
variables necesarias, así como también definir la interface del usuario,
establecer el modo de operar el programa siguiendo los pasos definidos,
traducir el algoritmo o diagrama al lenguaje de programación elegido.
Prueba y
Depuración
Prueba es el proceso de identificar los errores que
se presenten durante la ejecución del programa; es conveniente que cuando se
pruebe un programa se tomen en cuenta los siguientes puntos:
1. Tratar
de iniciar la prueba con una mentalidad saboteadora, casi disfrutando la tarea
de encontrar un error.
2. Sospechar de todos los resultados que arroje la solución, por lo tanto, se deberán verificar cada uno de ellos.
3. Considerar todas las situaciones posibles, normales y anormales.
La Depuración consiste en eliminar los errores que se hayan detectado durante la prueba para dar paso a una solución adecuada y sin errores.
2. Sospechar de todos los resultados que arroje la solución, por lo tanto, se deberán verificar cada uno de ellos.
3. Considerar todas las situaciones posibles, normales y anormales.
La Depuración consiste en eliminar los errores que se hayan detectado durante la prueba para dar paso a una solución adecuada y sin errores.
Puntos
importantes a considerar
1.
Para los errores de sintaxis:
• Leer todos los mensajes de “error” y actuar en consecuencia.
• Usar las estructuras definidas en el lenguaje.
• Repetir el proceso hasta que no haya más mensajes.
• En caso de error lógico, es necesario revisar nuestra Propuesta de Solución.
• Si es necesario usar visores temporales. (Los visores temporales son pantallas de prueba que nos permiten ver si está bien la forma en la que se presenta el programa para resolver el problema, también se toman en cuenta los colores, el tipo de letra, tamaño, etcétera).
• Usar las herramientas de depuración. Se refiere a eliminar los errores que se hayan detectado durante la revisión que se hizo.
• Comparar con los datos de la Prueba de Escritorio. (Ver si lo que escribí es la solución deseada al problema y si es lo que se requería).
• Leer todos los mensajes de “error” y actuar en consecuencia.
• Usar las estructuras definidas en el lenguaje.
• Repetir el proceso hasta que no haya más mensajes.
• En caso de error lógico, es necesario revisar nuestra Propuesta de Solución.
• Si es necesario usar visores temporales. (Los visores temporales son pantallas de prueba que nos permiten ver si está bien la forma en la que se presenta el programa para resolver el problema, también se toman en cuenta los colores, el tipo de letra, tamaño, etcétera).
• Usar las herramientas de depuración. Se refiere a eliminar los errores que se hayan detectado durante la revisión que se hizo.
• Comparar con los datos de la Prueba de Escritorio. (Ver si lo que escribí es la solución deseada al problema y si es lo que se requería).
Algoritmo
Un algoritmo es un conjunto de pasos, instrucciones,
acciones u ordenes orientados a la resolución de un problema.
La importancia de un algoritmo radica en mostrar la
manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos
o de otro tipo. Al igual que las funciones matemáticas, los algoritmos en la
informática reciben una entrada, se le llama entrada porque permite alimentar
de datos al programa o al sistema y la transforman en una salida, salida porque
los datos se convierten en información y pueden visualizarse o imprimirse
comportándose como una caja negra. Sin embargo, no toda caja negra que
convierta una entrada en una salida se puede considerar un algoritmo. Para que
un algoritmo pueda ser considerado como tal, debe ser una secuencia ordenada,
definida y finita de instrucciones. De este modo se puede seguir y predecir el
comportamiento del algoritmo para cualquier entrada posible. A partir del
seguimiento de esa secuencia de instrucciones o comportamiento del algoritmo, y
ambigüedades puede seguirse su traza en el resto del mismo.
Mientras el primero es la especificación de un
conjunto de pasos (operaciones, instrucciones, órdenes, etcétera), orientados a
la resolución de un problema (método), el segundo es ese conjunto de
instrucciones especificadas en un determinado lenguaje de programación y para
un computador concreto.
El algoritmo permite partir de un estado inicial y
tras seguir los pasos propuestos obtener una solución. Suelen estar asociados a
las matemáticas pero no siempre implican la presencia de números. El manual de
un electrodoméstico o una serie de órdenes del jefe a un empleado para
desarrollar una cierta tarea también puede ser un algoritmo.
Un algoritmo es un conjunto ordenado y finito de
operaciones que se utilizan para la solución de un problema. Se trata de
instrucciones o reglas definidas a través de pasos sucesivos que permiten
realizar una actividad. Es una serie de actividades encaminadas todas a
resolver el problema en cuestión.
La mayoría de los algoritmos involucran métodos para
organizar los da- tos que intervienen en el cómputo.
Cuando un programa de computadora es grande o
complejo, éste será desarrollado con mucho esfuerzo, ya que se debe comprender
y definir el problema a solucionar, manejando su complejidad, y des
componiéndolo en partes pequeñas que puedan resolverse más fácilmente. A
menudo, muchos algoritmos, después de la descomposición son triviales al
instrumento. En la mayoría de los casos, sin embargo, existen algunos cuyo
funcionamiento es crítico porque alguno o varios de los recursos del sistema
(memoria, tiempos de uso de procesador, etcétera) pueden agotarse durante su
funcionamiento.
Preciso: Debe
tener instrucciones claras para que sea preciso.
Definido:
Si se sigue más de una vez, siempre nos conduce al
mismo resultado
Finito: Cuenta
con un determinado número de pasos con un inicio y un fin.
El término algoritmo suele ser señalado como el
número finito de pasos para convertir datos de entrada (problema) en una salida
(solución).
Pasos para
hacer un algoritmo para diseñar software
El término suele ser señalado como el número finito
de pasos para convertir datos en entrada (problema) en una salida (solución).
Los algoritmos funcionan paso a paso. Cabe destacar
que los algoritmos son importantes en la informática ya que permiten representar
datos como secuencias de bit.
Un programa es un algoritmo que indica a la
computadora los pasos específicos que debe seguir para desarrollar una tarea.
Los diagramas de flujo son descripciones gráficas de
algoritmos; usan símbolos conectados con flechas para indicar la secuencia de
instrucciones. Los diagramas de flujo son usados para representar algoritmos.
Por su facilidad de lectura son usados como introducción a los algoritmos,
descripción de un lenguaje y de procesos a personas ajenas a la
computación.
Un diagrama de flujo es una forma más tradicional de
especificar los detalles algorítmicos de un proceso y constituye su
representación. Se utiliza principalmente en programación, economía y procesos
industriales, estos diagramas utilizan una serie de símbolos con significados
especiales. Son la representación gráfica de los pasos de un proceso que se
realiza para entenderlo mejor.
Ventajas de
los diagramas de flujo
Favorecen la comprensión del proceso al mostrarlo
como un dibujo. El cerebro humano reconoce fácilmente los dibujos. Un buen
diagrama de flujo reemplaza varias páginas de texto.
• Permiten identificar los problemas y las oportunidades de mejora del proceso.
• Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.
• También puede ser utilizados para clases de talleres o de acciones sobre bachilleratos técnicos.
• Permiten identificar los problemas y las oportunidades de mejora del proceso.
• Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.
• También puede ser utilizados para clases de talleres o de acciones sobre bachilleratos técnicos.
Reglas para
la construcción de diagramas de flujo
• Cualquier diagrama de flujo debe tener un inicio y
un fin.
• Las líneas utilizadas para indicar la dirección del flujo deben ser rectas, verticales y horizontales.
• Todas las líneas utilizadas para indicar la dirección del flujo deben estar conectadas.
• El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha.
• No pueden llegar más de una línea a un símbolo.
• Las líneas utilizadas para indicar la dirección del flujo deben ser rectas, verticales y horizontales.
• Todas las líneas utilizadas para indicar la dirección del flujo deben estar conectadas.
• El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha.
• No pueden llegar más de una línea a un símbolo.
Este programa cuenta con diversas herramientas e
instrucciones útiles para la elaboración de algoritmos.
Entremos al programa DFD desde el icono
correspondiente
Realizaremos
el siguiente ejercicio:
Sumar 2 números y mostrar el resultado
Empezaremos por
definir y entender que es un problema. La palabra problema como tal se refiere
a una determinada cuestión o asunto que requiere de una solución. Se trata de algún asunto en particular, que
en el momento en que se solucione aportará beneficios. Es una situación que nos
impide lograr un objetivo, una condición mental que impide llegar al
satisfactor. En matemáticas es muy común este tipo de planteamientos los cuáles
permiten orientar y formar una serie de pasos para llevar a la solución de un
objetivo, ya que está muy relacionado también con la informática, pues aquí se
manejan algoritmos.
Existen problemas
tan sencillos que no nos damos cuenta de que son problemas en sí; sin embargo,
existen otros un poco más complejos que, por medio de pasos, nos ayudan a
encontrar la solución.
Metodología de solución
La solución de un
problema en informática requiere de cinco 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
elaboración.
La metodología de
solución la podemos definir de la siguiente manera: “conjunto de métodos que
siguen en una investigación”, y consta de cinco pasos.
Fases de la metodología
1.- Identificación del problema:

Hemos
terminado nuestro primer diagrama con éxito, ahora vamos a guardarlo en nuestra
memoria USB.
Solución de
problemas
La finalidad de la solución de problemas es poder
codificar en un lenguaje de programación los algoritmos que previamente se
desarrollaron y se esquematizaron en un diagrama de flujo. Como anteriormente
se menciono, existen varios lenguajes de programación que son útiles para esta
codificación, uno de ellos es el Basic-256, que es un editor de código sencillo
y amigable por lo básico de sus herramientas. Por lo que utilizaremos este
programa para la solución de problemas.
Ejemplos de
problemas y formas de solución
Simulando
la preparación de un pay
A continuación se emplea la metodología de solución
de problemas para definir e implementar los pasos necesarios para simular la
solución a un problema simple.
Hornear y
servir un pay de fruta
Se puede ofrecer la implementación en el lenguaje de
programación llamado C de la solución encontrada, aunque de manera simulada.
Esto quiere decir que algunas operaciones no hacen nada en realidad, sino que
simulan la ocurrencia de acciones que deben llevarse a cabo.
1. Definición
del problema.
Conceptualización: El problema consiste en preparar
un pay de alguna fruta específica, de acuerdo con cierta receta proporcionada,
y servirlo a cierta cantidad de comensales.
Se recibirá como entrada la receta para hornear, es decir, la cantidad de huevos, harina y mantequilla que se empleará, la fruta con que se cubrirá la base y la cantidad correspondiente, así como el tiempo que debe permanecer en el horno. Adicionalmente, se recibe el número de comensales que disfrutarán del producto final, para poder cortarlo y servirlo.
Objetivo: el objetivo es poder seguir la receta proporcionada de modo que podamos obtener como resultado un pay de fruta que podamos repartir a los comensales. Elementos involucrados: el único elemento activo será la persona que llevará a cabo el proceso (el cocinero). Los elementos pasivos involucrados son la receta, sus ingredientes y cantidades (huevos, harina, mantequilla, fruta). En éste caso los comensales podrían considerarse como elementos pasivos, pues no participan de la solución (simplemente esperan, pero existen).
Se recibirá como entrada la receta para hornear, es decir, la cantidad de huevos, harina y mantequilla que se empleará, la fruta con que se cubrirá la base y la cantidad correspondiente, así como el tiempo que debe permanecer en el horno. Adicionalmente, se recibe el número de comensales que disfrutarán del producto final, para poder cortarlo y servirlo.
Objetivo: el objetivo es poder seguir la receta proporcionada de modo que podamos obtener como resultado un pay de fruta que podamos repartir a los comensales. Elementos involucrados: el único elemento activo será la persona que llevará a cabo el proceso (el cocinero). Los elementos pasivos involucrados son la receta, sus ingredientes y cantidades (huevos, harina, mantequilla, fruta). En éste caso los comensales podrían considerarse como elementos pasivos, pues no participan de la solución (simplemente esperan, pero existen).
Conceptualización
de la solución
Descomposición: El proceso de hornear y servir el
pay abarca varias etapas. En primera instancia se debe obtener la receta a
emplear. Esto consiste en especificar la cantidad de huevos, mantequilla y
harina, así como el tipo y la cantidad de fruta que se utilizarán. El segundo
paso consiste en preparar la base del pay, mezclando la cantidad especificada
de huevos, harina y mantequilla. Luego, la base es horneada durante cierto
tiempo (lo cuál también es parte de la receta). El siguiente paso es preparar
la fruta con la que se cubrirá la base. Finalmente, una vez determinado el
número de comensales, se procede a cortarlo y servirlo. Tareas: A continuación
se presentan las tareas involucradas en la solución. Los parámetros de cada
tarea se colocan entre paréntesis.
• mezclar_base (huevos, harina,
mantequilla)
• huevos, harina y mantequilla
representan las cantidades apropiadas (en gramos) de cada ingrediente. Este
proceso se encarga de mezclar los componentes para lograr la base del pay.
• hornear_base (tiempo_horno)
• tiempo_horno representa la cantidad de
minutos que deberá permanecer la base en el horno. Este proceso se encarga de
hornear la base del pay durante el tiempo especificado en la receta.
• preparar_fruta (tipo_fruta, fruta)
• tipo_fruta es el nombre de la fruta
que se empleará para cubrir la base del pay, y fruta corresponde a la cantidad
(en gramos) de dicha fruta que debe emplearse (según la receta). Este proceso
prepara la cubierta del pay, a partir de la fruta elegida.
• cortar_servir (comensales, tipo_fruta)
• tipo_fruta es la fruta con que se cubrió
el pay y comensales corresponde con el número de invitados a disfrutarlo. Este
proceso se encarga de cortarlo en tantos pedazos como comensales haya y lo
sirve para que los invitados lo puedan comer. El tipo de fruta es necesario
para que al servirlo se les pueda indicar qué tipo de pay van a comer
Variables: En el contexto de nuestro problema, será
necesario representar como datos de entrada el tipo de fruta que se empleará,
las cantidades de cada ingrediente de la receta (huevos, harina, mantequilla,
fruta), el tiempo que debe permanecer el pay en el horno, y la cantidad de
comensales que lo disfrutarán. Se emplearán nombres para las variables que
ayuden a comprender su significado:
• tipo_fruta
• huevos, harina, mantequilla, fruta (cantidades en gramos)
• tiempo_horno
• comensales
• huevos, harina, mantequilla, fruta (cantidades en gramos)
• tiempo_horno
• comensales
Existen problemas
tan sencillos que no nos damos cuenta de que son problemas en sí; sin embargo,
existen otros un poco más complejos que, por medio de pasos, nos ayudan a
encontrar la solución.
Metodología de solución
La solución de un
problema en informática requiere de cinco 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
elaboración.
La metodología de
solución la podemos definir de la siguiente manera: “conjunto de métodos que
siguen en una investigación”, y consta de cinco pasos.
Fases de la metodología
1.- Identificación del problema:


Especificación
del algoritmo
El algoritmo presentado a continuación emplea las
operaciones (tareas) definidas anteriormente para resolver nuestro problema. En
éste caso no fue necesario emplear operaciones de control de flujo, pues el
algoritmo se puede especificar en forma totalmente secuencial.
Algoritmo:
1. Obtener la receta (huevos, harina, mantequilla, tipo_fruta, fruta y tiempo_horno).
2. Obtener la cantidad de comensales (comensales).
3. mezclar_base (huevos, harina, mantequilla).
4. hornear_base (tiempo_horno).
5. preparar_fruta (tipo_fruta, fruta).
6. cortar_servir (comensales, tipo_fruta).
Validación
del algoritmo
Dominios: Los posibles dominios que existen en el contexto de éste problema se constituyen a partir de los distintos valores de entrada que pueden recibirse del usuario. Es decir, distintos tipos de fruta, distintas cantidades para cada ingrediente, distintos tiempos en el horno y distintas cantidades de comensales.
Validación: Debe
ejecutarse el algoritmo para los dominios definidos, es decir, cambiando
valores para cada dato de entrada, y verificando que se puede alcanzar el
objetivo buscado.
Prueba de
escritorio
Sirve para revisar que el algoritmo soluciona tu problema
y lo hace de manera eficiente y efectiva.
Prueba de escritorio: Corroboro con datos ficticios
si resuelve mi problema paso por paso ejemplo:
Preparación
de un pay
• Cantidad de huevos (unidades): 3.
• Cantidad de harina (gramos): 250.
• Cantidad de mantequilla (gramos): 150.
• Fruta que se desea en la cubierta: frutilla.
• Cantidad de frutilla (gramos): 300.
• Tiempo en el horno (minutos): 10.
• Comensales: 5.
• Mezclando 3 huevos, 250 gramos de harina y 150 gramos de mantequilla...
• Horneando la base por 10 minutos...
• Preparando 300 gramos de frutilla...
• Cortando el pay de frutilla en 5 pedazos...
• ¡Listo!
• Cantidad de huevos (unidades): 3.
• Cantidad de harina (gramos): 250.
• Cantidad de mantequilla (gramos): 150.
• Fruta que se desea en la cubierta: frutilla.
• Cantidad de frutilla (gramos): 300.
• Tiempo en el horno (minutos): 10.
• Comensales: 5.
• Mezclando 3 huevos, 250 gramos de harina y 150 gramos de mantequilla...
• Horneando la base por 10 minutos...
• Preparando 300 gramos de frutilla...
• Cortando el pay de frutilla en 5 pedazos...
• ¡Listo!
La
finalidad de la solución de problemas es poder codificar en un lenguaje de
programación los algoritmos, que previamente se desarrollaron y se
esquematizaron en un diagrama de flujo. Como anteriormente se mencionó,
existen varios lenguajes de programación que son útiles para esta codificación.
Uno de ellos es el Basic-256, el cual es un editor de código sencillo y amigable
por lo básico de sus herramientas. Por lo que utilizaremos este programa
para la solución de problemas.





























