You are on page 1of 15

Desarrollar el proceso de

solución de problema

Primera Unidad
RESOLUCION DE UN PROBLEMA
La resolución de un problema mediante un ordenador consiste en el proceso que a
partir de la descripción de un problema, expresado habitualmente en lenguaje natural
y en términos propios del dominio del problema, permite desarrollar un programa que
resuelva dicho problema.
Este proceso exige los siguientes pasos:
Análisis del problema.
Diseño o desarrollo de un algoritmo.
Transformación del algoritmo en un programa (codificación).
Ejecución y validación del programa.
Los dos primeros pasos son los más difíciles del proceso. Una vez analizado el
problema y obtenido un algoritmo que lo resuelva, su transformación a un programa
de ordenador es una tarea de mera traducción al lenguaje de programación deseado.
1.1. Identificar el problema
Identificar el problema es cuando se da cuenta de que algo no funciona
correctamente, es decir que un programa que no realice su funcionamiento que
debe realizar, o en otro caso que no tuviera el programa que necesita uno que
ayude organizar ciertos datos, ahí se da cuenta que hay un problema.

Problema:
Soluble: Se dice si se sabe de antemano que existe una solución para el.
Algoritmo: Si existe un algoritmo que permita darle solución.
No algoritmo: Si no existe un algoritmo que permita encontrar su solución.

Insoluble: Un problema se dice insoluble si se sabe que no existe una solución para
el.
Incididle: Un problema se dice incididle si no se sabe si existe o no solución para
el.
1.2 Análisis del problema
Cuando un usuario plantea a un programador un problema que resolver mediante su ordenador, por lo
general ese usuario tendrá conocimientos más o menos amplios sobre el dominio del problema, pero no
es habitual que tenga conocimientos de informática. Por ejemplo, un contable que necesita un programa
para llevar la contabilidad de una empresa será un experto en contabilidad (dominio del problema), pero
no tiene por qué ser experto en programación.
Del mismo modo, el informático que va a resolver un determinado problema puede ser un experto
programador, pero en principio no tiene por qué conocer el dominio del problema; siguiendo el ejemplo
anterior, el informático que hace un programa no tiene por qué ser un experto en contabilidad.
Por ello, al abordar un problema que se quiere resolver mediante un ordenador, el programador necesita
de la experiencia del experto del dominio para entender el problema. Al final, si se quiere llegar a una
solución satisfactoria es necesario que:
El problema esté bien definido con el máximo detalle
Las especificaciones de las entradas y salidas del problema, deben ser descritas también en detalle:
¿Qué datos son necesarios para resolver el problema?
¿Qué información debe proporcionar la resolución del problema?
Diseño del algoritmo
1.3 Elaborar algoritmos de la solución del
problema
Un algoritmo es un conjunto prescrito de instrucciones o reglas
bien definidas, ordenadas y finitas que permite realizar una
actividad mediante pasos sucesivos que no generen dudas a quien
deba realizar dicha actividad. Dados un estado inicial y una
entrada, siguiendo los pasos sucesivos se llega a un estado final y se
obtiene una solución. Los algoritmos son el objeto de estudio de
la algoritmia.
En la vida cotidiana, se emplean algoritmos frecuentemente para
resolver problemas. Algunos ejemplos son los manuales de
usuario, que muestran algoritmos para usar un aparato, o las
instrucciones que recibe un trabajador por parte de su patrón.
Algunos ejemplos en matemática son el algoritmo de
la división para calcular el cociente de dos números, el algoritmo de
Euclides para obtener el máximo común divisor de
dos enteros positivos, o el método de Gauss para resolver
un sistema lineal de ecuaciones.
Elaboración de algoritmos
Proceso de programación típico:
„ Dado un determinado problema…
„ …el programador idea una solución…
„ …y la expresa mediante un algoritmo.
„ Codificación del algoritmo.
„ Ejecución del programa.
Metodología para la solución de problemas por medio de problemas
por medio
de un ordenador:
1. Definición del problema: clara y precisa. Es casi la mitad del
trabajo…
2. Análisis del problema: Colocarse en el lugar del ordenador y
analizar qué requeriríamos para realizar la tarea.
„ Datos de entrada.
„ Información a producir (salida)
„ Métodos y fórmulas para procesar los datos
3. Diseño del algoritmo
Lenguajes algorítmicos:
Un lenguaje algorítmico es un conjunto de símbolos y reglas que
permiten describir de manera explícita un proceso. Es independiente de
cualquier lenguaje de programación. Debe permitir una traducción clara
del algoritmo al programa.
Dos tipos de lenguajes algorítmicos:
„ Gráficos: Por ejemplo, los diagramas de flujo.
„ No gráficos: Por ejemplo, el pseudocódigo
Características de un buen
algoritmo
Debe tener un punto particular de inicio.
No debe ser ambiguo.
Debe ser general.
Debe ser finito en tamaño y en tiempo de
ejecución.
Prueba de escritorio: se toman datos
específicos como entrada y se sigue el
algoritmo hasta obtener un resultado.
1.4. Elaborar diagramas de flujo de la solución del
problema
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos
conectados con flechas para indicar la secuencia de instrucciones y están
regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeños, ya
que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de
lectura son usados como introducción a los algoritmos, descripción de un
lenguaje y descripción de procesos a personas ajenas a la computación.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al
lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de
programación entre otros. Las descripciones en lenguaje natural tienden a ser
ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas
ambigüedades del lenguaje natural. Dichas expresiones son formas más
estructuradas para representar algoritmos; no obstante, se mantienen
independientes de un lenguaje de programación específico.
Diagramas de flujo
Es una forma de
representar gráficamente
un algoritmo.
Cada paso se escribe
dentro de un símbolo.
Los pasos se conectan
unos con otros mediante
líneas de flujo..
Son fáciles de diseñar,
pero difíciles de
actualizar.
Los símbolos que utiliza
están normalizados:
1.5. Crear Pseudocódigo de la solución del
problema
El pseudocódigo es una descripción de alto nivel de un algoritmo que emplea una
mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes
de programación, como asignaciones, ciclos y condicionales, aunque no está regido
por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones
científicas, y como producto intermedio durante el desarrollo de un algoritmo, como
los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es
que los algoritmos descritos en pseudocódigo requieren menos espacio para
representar instrucciones complejas.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un
algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en
una implementación. Programadores diferentes suelen utilizar convenciones
distintas, que pueden estar basadas en la sintaxis de lenguajes de programación
concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad
de conocer o utilizar un entorno de programación específico, y es a la vez
suficientemente estructurado para que su implementación se pueda hacer
directamente a partir de él.
Así el pseudocódigo cumple con las funciones antes mencionadas para representar
algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes
más precisas para tener mayor comprensión del tema.
Pseudocódigo
Mezcla de lenguaje de programación y de
lenguaje natural.
Representación narrativa de los pasos que debe
seguir un algoritmo.
Utiliza palabras, no gráficos.
Ventajas:
 „ Ocupa menos espacio.
 „ Permite representar fácilmente operaciones
 repetitivas complejas.
 „ Es muy fácil pasar del pseudocódigo al lenguaje de al lenguaje de
programación.
 „ Quedan claros los niveles que tiene cada operación
Principales características de los pseudocódigos
• Utilizan operadores aritméticos y lógicos.
• Se pueden incluir comentarios.
• Se debe respetar una indotación en los bloques de instrucciones.
• Usan ciertas palabras clave:
PSEUDOCÓDIGO, VARIABLES, INICIO, FIN, LEE, ESCRIBE, IMPRIME.
• Comienzan con el nombre del pseudocódigo, seguido de la declaración de
variables, y luego el cuerpo del pseudocódigo.

Ejemplo de pseudocódigo
Algoritmo que lee 3 números, los suma e imprime su resultado.
PSEUDOCÓDIGO sumatorioVARIABLES
eN1, , eN2, 3N3, eSuma: Entero INICIO
ESCRIBE “Dame tres números:” LE eN1, , eN2, , eN3 eSuma = eN1 + eN2 + eN3 ESCRIBE
“El resultado de la suma es: “, eSuma FIN
1.6. Prueba de escritorio de la solución del
problema
La prueba de escritorio es una herramienta útil para entender que hace un
determinado algoritmo, o para verificar que un algoritmo cumple con la
especificación sin necesidad de ejecutarlo. Básicamente, una prueba de
escritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se debe
llevar registro de los valores que va tomando cada una de las variables
involucradas en el mismo.
• Referencias
Fondo de presentación :
https://www.google.com.mx/search?hl=es&site=imghp&tbm=isch&source=hp&biw=1366&bih=643&q=fondos+creativ
os&oq=fondos+creativos&gs_l=img.3..0l10.7439.10137.0.10281.16.14.0.2.2.2.328.2087.5j5j2j2.14.0...0.0...1ac.1.12.im
g.SP3gFzwRxYQ#hl=es&site=imghp&tbm=isch&q=fondos+creativos+para+fotos&revid=205344150&sa=X&ei=e5qFUbL
DN4KA9QT_54Fg&ved=0CHAQgxY&bav=on.2,or.r_cp.r_qf.&bvm=bv.45960087,d.eWU&fp=8457a64867cd270b&biw=1
366&bih=643&imgrc=abQMxV56ghO4GM%3A%3BYCmRvZ6yLwFBJM%3Bhttp%253A%252F%252Fimagenesfotos.com
%252Fwp-content%252F2009%252F08%252Fcristales-
1.jpg%3Bhttp%253A%252F%252Fimagenesfotos.com%252Ftag%252Fcristales%252F%3B1440%3B900

Imagen añadida al fondo


https://www.google.com.mx/search?hl=es&site=imghp&tbm=isch&source=hp&biw=1366&bih=643&q=
fondos+creativos&oq=fondos+creativos&gs_l=img.3..0l10.7439.10137.0.10281.16.14.0.2.2.2.328.2087.
5j5j2j2.14.0...0.0...1ac.1.12.img.SP3gFzwRxYQ#hl=es&site=imghp&tbm=isch&sa=1&q=computadora+ani
me&oq=computadora+anime&gs_l=img.3...3140.3201.7.3383.2.2.0.0.0.0.0.0..0.0...0.0...1c.1.12.img.ER3
TTiXNon0&bav=on.2,or.r_cp.r_qf.&bvm=bv.45960087,d.eWU&fp=8457a64867cd270b&biw=1366&bih=
600&imgrc=opA_8cvbEJ9HJM%3A%3B_9D5r018fB42HM%3Bhttp%253A%252F%252Fblog.pucp.edu.pe
%252Fmedia%252F2957%252F20101024-
anime%252520haruhi%252520computadora.jpg%3Bhttp%253A%252F%252Fblog.pucp.edu.pe%252Fite
m%252F114526%252Fyoutube-eliminando-videos-y-las-medidas-de-japon-contra-los-
uploaders%3B450%3B450
Fondo de todas las diapositivas excepto la primera
https://www.google.com.mx/search?hl=es&site=imghp&tbm=isch&source=hp&biw=136
6&bih=643&q=fondos+chisdos+de+tecnologia&oq=fondos+chisdos+de+tecnologia&gs_l
=img.3...2066.8847.0.9022.31.12.1.18.2.0.117.1199.7j5.12.0...0.0...1ac.1.12.img.Ui_Z4LY
1gnI#hl=es&site=imghp&tbm=isch&q=fondos+chidos+de+tecnologia&spell=1&sa=X&ei=
9KCFUYDJKbPe4APhk4DIDw&ved=0CE0QvwUoAA&bav=on.2,or.r_cp.r_qf.&bvm=bv.4596
0087,d.dmg&fp=8457a64867cd270b&biw=1366&bih=643&imgrc=n_KBU24AUsAjYM%3
A%3BRG33QZ6y7rzCIM%3Bhttp%253A%252F%252F1.bp.blogspot.com%252F-
pqSCd9vH-1s%252FUAOACW2AJ_I%252FAAAAAAAABeY%252FE3yLG-
vc3Wc%252Fs640%252Ffondos-escritorio-
3d.jpg%3Bhttp%253A%252F%252Ffondosypensamientos.blogspot.com%252F2012%252
F07%252Ffull-hd.html%3B640%3B480

información de información en general


http://es.wikipedia.org/wiki/Resoluci%C3%B3n_de_problemas_de_programaci%C3%B3n
#An.C3.A1lisis_del_problema
http://www.it.uc3m.es/tsps/DisenoDeAlgoritmos.pdf

Elvia Guzmán

You might also like