
Diseño y elaboración
de algoritmos para la
solución de problemas
ProblemaAna Paula ha partido una tabla en cuatro trozos. Cada trozo es el doble de grande que el anterior. El segundo trozo mide 40 cm. ¿Cuántos centímetros media la tabla antes de partirla?

Empezaremos por definir y entender que es un problema.
La palabra como tal se refiere a una determinada cuestión o asunto que requiera de una solución. Se trata de algún asunto en particular, que en el momento en que se solucione aportará beneficios. En matemáticas es muy común este 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 que son un problema en sí, sin embargo existen otros un poco más complejos que, por medio de pasos, nos ayudan a buscar, la solución. Ejemplos:
Actividad individual
1. Analicen cada una de las siguientes definiciones del término problema y elaboren su propia definición.
a) Problema es una situación cuya respuesta es desconocida y se pretende conocer por medio de un procedimiento
denominado resolución o solución del problema.
b) Problema es una situación que se debe resolver.
c) Problema es un conjunto de hechos o circunstancias que dificultan la consecución de un fin.
d) Problema es el planteamiento de una situación cuya respuesta desconocida debe obtenerse mediante
un camino o método.
Problema es: _ _______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
Actividada en equipo
Reúnanse en pareja y analicen los procedimientos que pueden usarse para resolver la problemática del
inciso b.
Ejemplo:
a) Yolanda tiene una compañía de bienes inmuebles que trabaja mediante créditos hipotecarios, quiere
calcular y registrar la cantidad de intereses que le adeuda cada uno de sus clientes. ¿Cómo puede hacer
los cálculos para cada uno de los registros de clientes que tiene en su archivo?
Paso 1. Tomar los registros para obtener nombre, deuda y tasa de interés de cada cliente.
Paso 2. Calcular: interés = deuda × tasa
Paso 3. Escribir en un nuevo registro el nombre del cliente y el interés obtenido para formar un nuevo
archivo.
b) Arturo tiene 102 melones para empacarlos en cajas. Si a cada caja le caben 8 melones, ¿cuántas cajas
necesitará para empacar el total de melones? ¿Cuántos melones quedarán sin empacar? ¿De cuántas
maneras pueden resolver este problema? Determinen los pasos que siguieron para obtener la solución.
Autoevaluación
1. Si tuvieras que evaluar tu participación en el trabajo realizado, dirías que fue:
excelente buena regular suficiente insuficiente
2. ¿Qué debes hacer para mejorar esta situación?
_________________________________________________________________
_________________________________________________________________
¿Consideras que planteaste alternativas de solución al problema planteado Si No
por equipos?
¿Seleccionaste alguna alternativa de solución al problema planteado por
Metodología de solución
La solución de un problema en informática requiere de siete pasos, dispuestos de tal forma que cada uno es dependiente de los anteriores, lo cuál indica que se trata de un proceso complementario y por lo tanto cada paso exige el mismo cuidado en su elaboración.
Los siete pasos de la metodología son los siguientes:
Definición del problema
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 presentarla?
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 tal como:
¿Qué tengo? ¿Qué sé?
¿Es posible dividir el problema en pasos o etapas?
Recuerda siempre el dicho que dice:
Divide y vencerás
Hasta este momento llevamos tres etapas o pasos para diseño y software las cuáles
permitirán que emitas un diseño o propuesta de solución al problema que ha de resolverse.
Ejemplo:
Juan necesita tener una agenda personal de todos sus amigos y familiares,
que le permita visualizar la información de manera rápida
por nombre. Se trata de definir el problema, por lo tanto estaríamos
en la etapa de Definición del problema.
Preguntarnos ¿para qué le serviría a Juan dicha agenda? ¿cuenta con un grupo definido
de amigos y familiares o este puede ir en aumento? ¿necesitaría imprimir la información
que guarde en el sistema o sólo la necesita por pantalla? Estas y otras preguntas nos
servirían para poder analizar de dónde partiríamos y hacia dónde deseamos llegar a la
hora de hacer el algoritmo. Esto sería un ejemplo de la etapa de análisis.
Si se busca escribir los pasos que permitan la solución del problema estamos en la
etapa de Inicio y en la de Diseño de la solución o propuesta de solució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.
Para el ejemplo que venimos siguiendo se pueden escribir los siguientes pasos:
1. Inicio
2. Datos (Nombre , dirección, teléfono, fecha de nacimiento) respuesta
3. Repetir esto mientras la respuesta sea = s
4. (limpiar los datos de captura)
“================================”
5. Agenda personal
6. “================================”
7. Nombre de la persona: Nombre
8. Dirección: Dirección
9. Teléfono: Teléfono
10. Fecha de nacimiento: Fecha de nacimiento
11. Guardar los siguientes datos: nombre, dirección, teléfono, fecha de nacimiento.
12. ¿Deseas seguir capturando s/n?, respuesta
13. Si la respuesta es s pasa al paso 4.
14. Si la respuesta es n pasa al paso 15.
15. Desplegar la lista de nombres de la agenda por nombre, dirección, teléfono, fecha de
nacimiento.
16. Imprimir lista de nombres de la agenda.
17. Fin.
¿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? si 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ónPrueba 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.
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).

Actividad individual
1. Elabora de manera precisa los pasos que sigues en una receta de cocina y anótalos en tu cuaderno.
2. Ejemplo: dar espacio entre lineas
ARROZ CON LECHE
1. Inicio.
2. Ingredientes (Leche, canela, azúcar, arroz, agua.)
3. Hervir el agua con la canela hasta que ésta suelte un poco de su sabor.
4. Agregar el arroz, etcétera.
Actividad en equipo
1. En pareja apliquen la metodología de solución para resolver los siguientes problemas en su
cuaderno.
a) Si el producto de dos números iguales es 100, ¿cuáles son dichos números?
b) Calcular el total a pagar de 3 artículos del mismo precio y mostrar el resultado.
Autoevaluación
1. Si tuvieras que evaluar tu participación en el trabajo realizado, dirías que fue:
excelente buena regular suficiente insuficiente
2. ¿Qué debes hacer para mejorar esta situación?
________________________________________________________________
________________________________________________________________
¿Aplicaste la metodología de solución de problemas en esta sección? Si No
¿Se realizaron los pasos adecuados de la metodología para la resolución de
problemas?
Algoritmo
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.


El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa.
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 especificadasen 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 algorimo.
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 datos
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 descomponié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.

Actividad individual
1. Investiga en Internet tres ejemplos distintos de algoritmos.
2. Analízalos de forma individual y después en parejas.
3. Tomen uno de ellos para observar sus pasos y emitan sus comentarios, respondiendo a las siguientes
preguntas:
4. ¿Qué observaste? ¿Hay similitud entre ellos? ¿Sus algoritmos son similares a los tuyos?
5. ¿Crees que puedes hacer una corrida de escritorio con ese algoritmo?
Características de los algoritmos
El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:1. Carácter finito. Un algoritmo siempre debe terminar después de un número finito de pasos.
2. Precisión. Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso.
3. Entrada. Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos.
4. Salida. Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas.
5. Eficacia. También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser
suficientemente básicas como para que en principio puedan ser hechas
de manera exacta y en un tiempo finito por un hombre usando papel y lápiz.
Knuth admite que, aunque su descripción pueda ser intuitivamente clara,
carece de rigor formal, puesto que no está exactamente claro que significa
“precisamente definido”, “de manera rigurosa y no ambigua”, o “suficientemente
básicas”, y así sucesivamente.
A partir del carácter finito y de la salida se deduce que ante una misma
situación inicial o valores de entrada, (esto es, los datos que inventas cuando haces
una corrida de escritorio) un algoritmo debe proporcionar siempre el mismo
resultado (o salida), con excepción de los algoritmos probabilistas que ya se
mencionaron anteriormente.

Pasos para hacer un algoritmo para diseñar software
Los pasos para hacer un algoritmo son muy similares a los de la metodología de solución
de un problema visto en la sección anterior, esto es porque siempre se trabajan
juntos para cualquier cuestión o labor que ejecutes en tu vida cotidiana.
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).
Actividad individual
1. Uno de los requisito para tramitar la credencial de elector es que las personas tengan 18 años cumplidos.
Plantea la solución para que se pueda autorizar la expedición de una credencial. Valida el proceso con
fecha de nacimiento y edad, de manera que, si todos los datos están completos, se muestre el mensaje
“credencial autorizada” o en ausencia de datos se muestre el mensaje “credencial no autorizada”.
Elabora el algoritmo que resuelve este problema ordenando los siguientes pasos:
• “Credencial no autorizada”
• Inicio
• Edad = Fecha actual – Fecha de nacimiento
• Sí
• Fecha de nacimiento, Fecha actual
• Fin
• Edad => 18
• No
• “Credencial autorizada”
1. _____________________________________________________________________________
2. _____________________________________________________________________________
3. _____________________________________________________________________________
4. _____________________________________________________________________________
5. _____________________________________________________________________________
6. _____________________________________________________________________________
7. _____________________________________________________________________________
8. _____________________________________________________________________________
9. _____________________________________________________________________________
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.
Actividad individual
1. Escribe en tu cuaderno dos algoritmos de situaciones cotidianas.
2. Intercambia tu cuaderno con alguno de tus compañeros y revisen sus algoritmos haciendo las anotaciones
que crean necesarias para que el algoritmo solucione el problema o situación que ahí se plantea.
Autoevaluación
1. Si tuvieras que evaluar tu participación en el trabajo realizado, dirías que fue:
excelente buena regular suficiente insuficiente
2. ¿Qué debes hacer para mejorar esta situación?
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
____________________________________________________________________________________
Diagramas de flujo
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectadoscon 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 humanoreconoce 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.
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.
Actividad individual
Retoma el algoritmo para tramitar la credencial de elector y utilizando la simbología anteriormente
explicada elabora en tu cuaderno el diagrama de flujo correspondiente.
Existen varios programas y lenguajes de programación para resolver algoritmos. Uno de
ellos el es programa DFD con el cual se pueden analizar y desarrollar algoritmos.
Este programa cuenta con diversas herramientas e instrucciones útiles para la elaboración
de algoritmos.
Práctica guiada
Entremos al programa DFD desde el icono correspondiente
Realizaremos el siguiente ejercicio:
Sumar 2 números y mostrar el resultado
Hemos terminado nuestro diagrama ahora necesitamos ejecutarlo para saber si está correcto,
para hacer esto buscamos en la barra de herramientas un botón que se llama ejecutar
Hemos terminado nuestro primer diagrama con éxito, ahora vamos a guardarlo en nuestra
memoria USB .
Actividad individual
Realiza los siguientes diagramas de flujo utilizando el programa DFD
1. Doña Jesusita fue al mercado y compro 4 productos de diferente precio cada uno, ayúdale para saber
cuánto debe pagar.
2. Don Melchor necesita cercar un terreno rectangular, ayúdale para que sepa cuanto material debe comprar.
Retomemos el primer ejemplo de sumar dos números pero ahora agregaremos algo mas
al problema:
Sumar dos números, si el resultado es mayor a 50, entonces mostrar un letrero quediga “Es mayor”, de lo contrario mostrar un letrero que diga “Es menor”,


Actividad en equipo
Realiza los siguientes diagramas de flujo utilizando el programa Dfd1. Obtener dos calificaciones, sacar el promedio y mostrar la calificación en caso de ser aprobatoria,
de lo contrario mandar un letrero que diga “Necesitas estudiar”.
2. Obtener el área de un triángulo y si ésta es mayor de 80 m2 entonces
manda un letrero que diga “Es correcto”.
Autoevaluación
1. Si tuvieras que evaluar tu participación en el trabajo realizado, dirías que fue:
excelente buena regular suficiente insuficiente
2. ¿Qué debes hacer para mejorar esta situación?
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
¿Realizaste el planteamiento del problema? Si No
¿Realizaste el diagrama de flujo en la aplicación (programa) adecuado?
¿Manejaste la simbología adecuada?
¿El diagrama de flujo es coherente?
¿El diagrama de flujo da solución al problema planteado?
¿Mostraste responsabilidad en la elaboración de la práctica?
Solución de problemas
Ejemplos de problemas y formas de solución
Simulando la preparación de un payA 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).
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 lopuedan 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
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 totalmentesecuencial.
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 entradaque 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 demanera eficiente y efectiva
.
Prueba de escritorio: Corroboro con datos ficticios si resuelve mi
problema paso por paso ejemplo:
Preparacion 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!
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.
Práctica guiada Basic-256
Nota: Es importante aclarar que los programas de BASIC-256 consisten en una serie deinstrucciones, separadas en líneas distintas, que se ejecutan en el orden en que aparecen
.
Para acceder al programa Basic 256, da doble clic en el icono
A continuación aparecerá la ventana de trabajo en la cual identificamos tres áreas importantes,
que son las siguientes:
En donde:
1. Es la barra de herramientas del programa.
2. Es nuestra área de trabajo (o área de codificación), en la cual tecleamos las instrucciones
(código) que se van a ejecutar.
3. Es el área en donde aparecerán los resultados de la ejecución del programa.
A continuación haremos un ejercicio.
Problema: Obtener el promedio de dos calificaciones y mostrar el resultado.
Como podemos observar, lo que aparece en el área de texto (resultados), es muy ambiguo,
no sabemos a simple vista que está sucediendo, vamos a enriquecer nuestro código
agregando unas cuantas líneas, quedando de la siguiente forma:
Print "Calificación 1:?"
Input cal1
Print "Calificación 2:?"
Input cal2
promedio=(cal1+cal2)/2
Print "Promedio:"
Print promedio
Realiza a tu código las modificaciones indicadas, ejecútalo y compara los resultados.
Cuando hay algún error en el código, el Basic nos manda un mensaje en el área de
resultados, por ejemplo, vamos a modificar la línea 5 eliminando el numero 1, es decir,
quedaría: promedio=(cal+cal2)/2. Efectúa la modificación en la línea mencionada, ejecuta
el programa y observa el resultado.
Vamos a poner más interesante la situación, ahora el ejercicio dice:
Problema: Obtener el promedio de dos calificaciones y mostrar un mensaje que indique
si el alumno esta aprobado o reprobado, tomando como condición que la calificación
mínima aprobatoria es de 6.
Nuestro código quedaría de la siguiente forma:
Print "Calificación 1:?"
Input cal1
Print "Calificación 2:?"
Input cal2
promedio=(cal1+cal2)/2
Print "Promedio:"
Print promedio
if promedio>=6 then
print "El alumno esta aprobado"
else
print "El alumno esta reprobado"
endif
En este caso, promedio>=6, es la condición para evaluar que un alumno esta aprobado,
en caso contrario, estará reprobado.
Realiza las modificaciones indicadas, ejecuta el programa y observa los resultados
(prueba ambos casos, promedio aprobatorio y promedio reprobatorio).
Actividad individual
Realiza los siguientes ejercicios mediante el editor de código Basic-256. Es recomendable que primero realices el algoritmo y posteriormente lo codifiques.
1. Obtener el área de un triangulo.
2. En un local comercial, compras tres productos de diferentes precios, ¿cuánto debes pagar por ellos?
3. En el caso anterior, supongamos que si el importe a pagar es mayor de 1000, obtendrás un descuento de
20% de descuento y sí no, obtendrás un 10% de descuento, ¿cuánto pagarás finalmente?
Actividad individual
I. Cada uno de los siguientes planteamientos tiene tres posibles respuestas, pero sólo una es la correcta,
anota en el paréntesis el inciso correcto.
( ) Conjunto de instrucciones que sirven para ejecutar una tarea
a) Diagrama de flujo
b) Algoritmo
c) Problema
( ) Nos asegura que si seguimos más de una vez la serie de pasos descritos llegaremos al mismo resultado
a) Definido
b) Finito
c) Preciso
( ) Utiliza los símbolos
a) Diagrama de flujo
b) Algoritmo
c) Problema
( ) Significa que cuenta con un determinado número de pasos, indicando un inicio y un fin
a) Definido
b) Finito
c) Preciso
( ) ¿Cuál es el símbolo en el diagrama de flujo, para desplegar un resultado en pantalla?
Actividad integradora
a b c
II. Relaciona correctamente las columnas escribiendo la letra correspondiente para cada uno de los pasos de
la metodología de solución
Problema: Se necesita encontrar el perímetro de un cuadrado
( ) Desarrollo de soluciones A) Lado
( ) Diseño de algoritmos B) Sumar lado 4 veces, Multiplicar lado por 4
( ) Identificación del problema C) 3, 3*4, 12
( ) Planteamiento de alternativas D) 1. Obtener lado, 2. Multiplicar lado por 4, 3. Desplegar resultado
( ) Selección de una alternativa E) Multiplicar lado por 4
III. Escribe en la línea el nombre de cada uno de los siguientes símbolos
IV. Realiza lo que se te pide en cada uno de los siguientes ejercicios.
Elabora el algoritmo y el diagrama de flujo para:
a) Multiplicar un número por 8
b) Sumar 4 números
V. Utilizando el DFD y el Basic-256 resuelve los siguientes planteamientos
a) Despliegue en pantalla el importe de 3 artículos
b) Despliegue en pantalla el promedio de estatura de 4 personas
c) Calcular el importe de un determinado número de artículos. Si el importe es mayor de $100.00, aplicar
un descuento de 5% , mandar el resultado por impresora.
Autoevaluación
1. Si tuvieras que evaluar tu participación en el trabajo realizado, dirías que fue:excelente buena regular suficiente insuficiente
2. ¿Qué debes hacer para mejorar esta situación?
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
¿Aplicaste la metodología de solución? Si No
¿Desarrollaste una alternativa de solución?
¿Utilizaste instrucciones adecuadas?
¿Solucionaste el problema planteado?









































No hay comentarios.:
Publicar un comentario