• Like
Unidad 1
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Unidad 1

  • 135 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
135
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Desarrollar el proceso desolución de problemaPrimera Unidad
  • 2. RESOLUCION DE UN PROBLEMALa resolución de un problema mediante un ordenador consiste en el proceso que apartir de la descripción de un problema, expresado habitualmente en lenguaje naturaly en términos propios del dominio del problema, permite desarrollar un programa queresuelva 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 elproblema y obtenido un algoritmo que lo resuelva, su transformación a un programade ordenador es una tarea de mera traducción al lenguaje de programación deseado.
  • 3. 1.1. Identificar el problemaIdentificar el problema es cuando se da cuenta de que algo no funcionacorrectamente, es decir que un programa que no realice su funcionamiento quedebe realizar, o en otro caso que no tuviera el programa que necesita uno queayude 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 parael.Incididle: Un problema se dice incididle si no se sabe si existe o no solución parael.
  • 4. 1.2 Análisis del problemaCuando un usuario plantea a un programador un problema que resolver mediante su ordenador, por logeneral ese usuario tendrá conocimientos más o menos amplios sobre el dominio del problema, pero noes habitual que tenga conocimientos de informática. Por ejemplo, un contable que necesita un programapara llevar la contabilidad de una empresa será un experto en contabilidad (dominio del problema), perono tiene por qué ser experto en programación.Del mismo modo, el informático que va a resolver un determinado problema puede ser un expertoprogramador, pero en principio no tiene por qué conocer el dominio del problema; siguiendo el ejemploanterior, 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 necesitade la experiencia del experto del dominio para entender el problema. Al final, si se quiere llegar a unasolució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
  • 5. 1.3 Elaborar algoritmos de la solución delproblemaUn algoritmo es un conjunto prescrito de instrucciones o reglasbien definidas, ordenadas y finitas que permite realizar unaactividad mediante pasos sucesivos que no generen dudas a quiendeba realizar dicha actividad. Dados un estado inicial y unaentrada, siguiendo los pasos sucesivos se llega a un estado final y seobtiene una solución. Los algoritmos son el objeto de estudio dela algoritmia.En la vida cotidiana, se emplean algoritmos frecuentemente pararesolver problemas. Algunos ejemplos son los manuales deusuario, que muestran algoritmos para usar un aparato, o lasinstrucciones que recibe un trabajador por parte de su patrón.Algunos ejemplos en matemática son el algoritmo dela división para calcular el cociente de dos números, el algoritmo deEuclides para obtener el máximo común divisor dedos enteros positivos, o el método de Gauss para resolverun sistema lineal de ecuaciones.
  • 6. Elaboración de algoritmosProceso 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 problemaspor mediode un ordenador:1. Definición del problema: clara y precisa. Es casi la mitad deltrabajo…2. Análisis del problema: Colocarse en el lugar del ordenador yanalizar qué requeriríamos para realizar la tarea.„ Datos de entrada.„ Información a producir (salida)„ Métodos y fórmulas para procesar los datos3. Diseño del algoritmo
  • 7. Lenguajes algorítmicos:Un lenguaje algorítmico es un conjunto de símbolos y reglas quepermiten describir de manera explícita un proceso. Es independiente decualquier lenguaje de programación. Debe permitir una traducción claradel algoritmo al programa.Dos tipos de lenguajes algorítmicos:„ Gráficos: Por ejemplo, los diagramas de flujo.„ No gráficos: Por ejemplo, el pseudocódigoCaracterísticas de un buenalgoritmoDebe tener un punto particular de inicio.No debe ser ambiguo.Debe ser general.Debe ser finito en tamaño y en tiempo deejecución.Prueba de escritorio: se toman datosespecíficos como entrada y se sigue elalgoritmo hasta obtener un resultado.
  • 8. Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolosconectados con flechas para indicar la secuencia de instrucciones y estánregidos por ISO.Los diagramas de flujo son usados para representar algoritmos pequeños, yaque abarcan mucho espacio y su construcción es laboriosa. Por su facilidad delectura son usados como introducción a los algoritmos, descripción de unlenguaje y descripción de procesos a personas ajenas a la computación.Los algoritmos pueden ser expresados de muchas maneras, incluyendo allenguaje natural, pseudocódigo, diagramas de flujo y lenguajes deprogramación entre otros. Las descripciones en lenguaje natural tienden a serambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchasambigüedades del lenguaje natural. Dichas expresiones son formas másestructuradas para representar algoritmos; no obstante, se mantienenindependientes de un lenguaje de programación específico.1.4. Elaborar diagramas de flujo de la solución delproblema
  • 9. Diagramas de flujoEs una forma derepresentar gráficamenteun algoritmo.Cada paso se escribedentro de un símbolo.Los pasos se conectanunos con otros mediantelíneas de flujo..Son fáciles de diseñar,pero difíciles deactualizar.Los símbolos que utilizaestán normalizados:
  • 10. 1.5. Crear Pseudocódigo de la solución delproblemaEl pseudocódigo es una descripción de alto nivel de un algoritmo que emplea unamezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajesde programación, como asignaciones, ciclos y condicionales, aunque no está regidopor ningún estándar. Es utilizado para describir algoritmos en libros y publicacionescientíficas, y como producto intermedio durante el desarrollo de un algoritmo, comolos diagramas de flujo, aunque presentan una ventaja importante sobre estos, y esque los algoritmos descritos en pseudocódigo requieren menos espacio pararepresentar instrucciones complejas.El pseudocódigo está pensado para facilitar a las personas el entendimiento de unalgoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios enuna implementación. Programadores diferentes suelen utilizar convencionesdistintas, que pueden estar basadas en la sintaxis de lenguajes de programaciónconcretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidadde conocer o utilizar un entorno de programación específico, y es a la vezsuficientemente estructurado para que su implementación se pueda hacerdirectamente a partir de él.Así el pseudocódigo cumple con las funciones antes mencionadas para representaralgo abstracto los protocolos son los lenguajes para la programación. Busque fuentesmás precisas para tener mayor comprensión del tema.
  • 11. PseudocódigoMezcla de lenguaje de programación y delenguaje natural.Representación narrativa de los pasos que debeseguir 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 deprogramación. „ Quedan claros los niveles que tiene cada operación
  • 12. 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 devariables, 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 INICIOESCRIBE “Dame tres números:” LE eN1, , eN2, , eN3 eSuma = eN1 + eN2 + eN3 ESCRIBE“El resultado de la suma es: “, eSuma FIN
  • 13. 1.6. Prueba de escritorio de la solución delproblemaLa prueba de escritorio es una herramienta útil para entender que hace undeterminado algoritmo, o para verificar que un algoritmo cumple con laespecificación sin necesidad de ejecutarlo. Básicamente, una prueba deescritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se debellevar registro de los valores que va tomando cada una de las variablesinvolucradas en el mismo.
  • 14. • 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%3B900Imagen añadida al fondohttps://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
  • 15. 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%3B480informació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.pdfElvia Guzmán