unidad 1

15
Desarrollar el proceso de solución de problema Primera Unidad

Upload: lizz-gaytan

Post on 25-May-2015

155 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Unidad 1

Desarrollar el proceso de solución

de problema

Primera Unidad

Page 2: Unidad 1

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.

Page 3: Unidad 1

1.1. Identificar el problemaIdentificar 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.

Page 4: Unidad 1

1.2 Análisis del problemaCuando 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 detalleLas 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

Page 5: Unidad 1

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.

Page 6: Unidad 1

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

Page 7: Unidad 1

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 algoritmoDebe 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.

Page 8: Unidad 1

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.

1.4. Elaborar diagramas de flujo de la solución del problema 

Page 9: Unidad 1

Diagramas de flujoEs 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:

Page 10: Unidad 1

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.

Page 11: Unidad 1

PseudocódigoMezcla 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�

Page 12: Unidad 1

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ódigoAlgoritmo que lee 3 números, los suma e imprime su resultado.PSEUDOCÓDIGO sumatorioVARIABLESeN1, , 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

Page 13: Unidad 1

1.6. Prueba de escritorio de la solución del problemaLa 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.

Page 14: Unidad 1

• ReferenciasFondo de presentación : 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&q=fondos+creativos+para+fotos&revid=205344150&sa=X&ei=e5qFUbLDN4KA9QT_54Fg&ved=0CHAQgxY&bav=on.2,or.r_cp.r_qf.&bvm=bv.45960087,d.eWU&fp=8457a64867cd270b&biw=1366&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+anime&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.ER3TTiXNon0&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%252Fitem%252F114526%252Fyoutube-eliminando-videos-y-las-medidas-de-japon-contra-los-uploaders%3B450%3B450

Page 15: Unidad 1

Fondo de todas las diapositivas excepto la primerahttps://www.google.com.mx/search?hl=es&site=imghp&tbm=isch&source=hp&biw=1366&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_Z4LY1gnI#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.45960087,d.dmg&fp=8457a64867cd270b&biw=1366&bih=643&imgrc=n_KBU24AUsAjYM%3A%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%252F07%252Ffull-hd.html%3B640%3B480 información de información en generalhttp://es.wikipedia.org/wiki/Resoluci%C3%B3n_de_problemas_de_programaci%C3%B3n#An.C3.A1lisis_del_problemahttp://www.it.uc3m.es/tsps/DisenoDeAlgoritmos.pdf

Elvia Guzmán