Unidad 1 Desarrollar el Proceso de Solución de un Problema
1. I. DESARROLLAR EL
PROCESO DE SOLUCIÓN DE
UN PROBLEMA.
EQUIPO: 3
ALAN MISSAEL DE LA CRUZ DE LA CRUZ
JOSE MANUEL ARTEAGA ARTEAGA
CARLOS GABRIEL HERNANDEZ MORALES
JORGE FRANCISCO SALAS CRUZ
BENITO LOZANO SAN MARTIN
MARCO ANTONIO HERNÁNDEZ ZAPATA
2. INTRODUCCION
Comúnmente nos enfrentamos a problemas o situaciones que deben ser resueltos y pueden
ser cosas tan sencillas como decidir la mejor forma de llegar hasta nuestro sitio de trabajo
o realizar las compras para la comida, o quizá algunas más complicadas como desarrollar
un brazo mecánico que soporte cierto peso y se mueva de cierta manera o idear un plan
que nos facilite alguna tarea susceptible de ser sistematizada. Todas estas situaciones
tienen algo en común, necesitan una solución o un conjunto de pasos que permita llegar
hasta la meta propuesta. Comúnmente se llama algoritmo a aquello que nos permite pasar
de un estado inicial "A" a un estado final "B", justo lo que deseamos. Sin embargo, existe
mucho más involucrado en el momento de resolver un problema que tan sólo el conjunto
de instrucciones necesarias para ello.
Al plantear la solución de un problema, existen mucho aspectos que deben tenerse en cuenta:
El problema mismo, las personas involucradas, las herramientas a disposición, la solución, la
presentación de la misma, etc.
El proceso de resolución de un
problema es el siguiente:
3. I. DESARROLLAR EL PROCESO DE
SOLUCIÓN 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.
4. I.I IDENTIFICAR EL PROBLEMA
Se tiene un problema cuando se desea encontrar uno o varios objetos desconocidos (ya sean estos
números, diagramas, figuras, demostraciones, decisiones, posiciones, algoritmos, u otras
cosas), que cumplen condiciones y/o relaciones, previamente definidas, respecto a uno o varios
objetos conocidos. De esta manera, solucionar un problema es encontrar los objetos
desconocidos de dicho problema.
5. I.II ANALISIS 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?
6. I.III ELABORAR ALGORITMOS PARA LA
SOLUCION DEL PROBLEMA
Un algoritmo consiste en una especificación clara y
concisa de los pasos necesarios para resolver un
determinado problema, pero para poder diseñar
algoritmos es necesario disponer de una
notación, que llamaremos ‘notación algorítmica’, que
permita:
Describir las operaciones puestas en juego
(acciones, instrucciones, comandos,...)
Describir los objetos manipulados por el algoritmo
(datos/informaciones)
Controlar la realización de las acciones
descritas, indicando la forma en que estas se
organizan en el tiempo
Para poder describir cualquier tipo de acción de las que
intervienen en un algoritmo, diversos autores
proponen el uso de un conjunto de construcciones
lógicas (secuencia, decisión e iteración) con las que
es posible escribir cualquier programa. Lo que sigue Los diagramas de flujo sirven para
a continuación es la descripción de las diferentes representar algoritmos de manera
construcciones disponibles para el diseño de gráfica.
algoritmos.
7. I.III ELABORAR ALGORITMOS PARA LA
SOLUCION DEL PROBLEMA
Acciones elementales
Se entiende por acciones elementales aquellas que el ordenador es capaz de realizar y que serán de
dos tipos:
Aritmético – lógicas: Operaciones que, a partir de unos determinados datos, realizan un cálculo
aritmético (suma, resta, multiplicación,...) o un cálculo lógico (mayor que, menor que, igual
que,...).Las primeras devuelven un valor numérico (4, -5.67,...) y las segundas un valor lógico
(verdadero o falso).
De entrada – salida: Acciones que permiten capturar datos para su posterior tratamiento (las de
entrada) y guardar los resultados de dicho tratamiento (las de salida).
Secuencia de acciones elementales
Cuando en un algoritmo se deben ejecutar varias acciones sucesivamente, éstas se describen una
detrás de otra según el orden en que deban ejecutarse. Si se desea se puede emplear algún tipo
de símbolo para separar dos acciones consecutivas. En el siguiente ejemplo se nuestra la
descripción de n acciones separadas por punto y coma (símbolo que habitualmente se emplea
como separador).
8. I.III ELABORAR ALGORITMOS PARA LA
SOLUCION DEL PROBLEMA
Composición condicional
Cuando en un algoritmo se quiere indicar que cierta acción sólo se debe ejecutar bajo cierta
condición se indica del siguiente modo:
Sólo si la Condición (operación lógica) es verdadera se ejecutará la Acción. En este
caso, la Acción puede referirse tanto a una acción elemental como a un conjunto de ellas.
Composición condicional múltiple
También es posible que a la hora de especificar la ejecución de una acción haya que escoger ésta
entre varias dependiendo del valor de una determinada variable (o indicador). Este caso se
expresa del siguiente modo:
9. I. IV ELABORAR DIAGRAMAS DE FLUJO
DE LA SOLUCION DEL PROBLEMA
Un Diagrama de Flujo representa la
esquematización gráfica de un
algoritmo , el cual muestra gráficamente
los pasos o procesos a seguir para alcanzar
la solución de un problema. Es importante
resaltar que el Diagrama de Flujo muestra
el sistema como una red de procesos
funcionales conectados entre sí por "
Tuberías " y "Depósitos" de datos que
permite describir el movimiento de los
datos a través del Sistema. Este describirá
: Lugares de Origen y Destino de los datos
, Transformaciones a las que son
sometidos los datos, Lugares en los que se
almacenan los datos dentro del sistema
, Los canales por donde circulan los datos.
10. I. V CREAR UN PSUDOCÓDIGO DE LA
SOLUCION DEL PROBLEMA
Mezcla de lenguaje de programación y español (o
ingles o cualquier otro idioma) que
se emplea, dentro de la programación
estructurada, para realizar el diseño de un
programa. Es la representación narrativa de
los pasos que debe seguir un algoritmo
Pseudocódigo: lenguaje de especificaciones
de algoritmos para dar solución a un
problema determinado. El Pseudocódigo
utiliza palabras que indican el proceso a
realizar.
Ejemplo:
Aplicación de pseudocódigo
Prender una televisión
Inicio
Tomar el cable
Introducirlo a una fuente de luz
Presionar el botón Power
Fin
11. I.VI PRUEBA DE ESCRITORIO DE LA
SOLUCION 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.
A continuación se muestra un ejemplo de prueba de escritorio del siguiente algoritmo: