SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
Metodología para la Solución de Problemas Algorítmicos (MAPS) 
Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González 
Metodología para la Solución de Problemas Algorítmicos (MAPS) 
A continuación se describen las etapas de la Metodología para la Resolución de Problemas Algorítmicos propuesta por Tucker et al., denominada por sus siglas en ingles "MAPS". Son siete las etapas, que a continuación se describen: 
Etapa 1: El Dialogo 
Comprender el problema. Leer el enunciado del problema y hacer preguntas sobre las características de las entradas y las salidas. Consiste en la identificación de las entradas, las salidas y sus respectivas limitaciones, para un problema determinado, como fruto de un proceso de análisis, en el cual se le sugiere al estudiante aplicar un enfoque sistémico para realizar una correcta delimitación del problema. 
Etapa 2: Las Especificaciones 
Comprendido el paso anterior se procede a definir las especificaciones a partir de las entradas y salidas identificadas en la etapa anterior. Este proceso tiene como fin predecir las pre y post condiciones expresadas como predicados, que en un futuro permitirán evaluar la consistencia del algoritmo ya sea utilizándolas como estados iniciales, intermedios o finales. 
El estudiante debe tener conocimiento previos de lógica matemática para lograr especificaciones claras de las pre y post condiciones. Escribir pre y postcondiciones que sean completas y consistentes. Es decir, asegurarse de que las precondiciones cubren todas las posibles entradas, que las postcondiciones definen la salida para todas las posibles entradas, y que tanto las precondiciones como las postcondiciones son interna y mutuamente consistente. Etapa 3: La División 
Esta etapa consiste en la elaboración del algoritmo, diseño del mismo, fundamentada en las técnicas y herramientas que se expusieron anteriormente. Realizar subdivisiones del proceso en una colección de pasos diferentes. Repetir este proceso para cada paso hasta que la subdivisión no tenga sentido. 
Identificar las relaciones de control entre los distintos pasos. Es decir ¿Qué paso debe preceder a cuál ?, ¿Qué pasos son parte de otro mas complejo?, ¿Qué pasos deben repetirse dentro de un bucle?, y así sucesivamente. 
Etapa 4: Definición de Abstracciones 
En esta etapa se determinan cuáles de los pasos que se han utilizado, recolectándolos y adaptarlos en una solo rutina para ser utilizada en la situación presente. Se debe identificar rutinas que se puede reutilizar en el programa, ya sea que existan o que necesite desarrollar él
Metodología para la Solución de Problemas Algorítmicos (MAPS) 
Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González 
mismo, esto le permitirá realizar sus programas mas fácilmente y de tal forma que su mantenimiento y comprensión sea mas fácil. 
En muchos casos, esta tarea implica la construcción de nuevas rutinas a partir de otras, o incluso construir una nueva para una utilización mas especializada. 
Etapa 5: Codificación 
Se trata de trasladar el algoritmo a un lenguaje de programación, crear el programa fuente con base en la sintaxis propuesta por el lenguaje de programación escogido, compilarlo y por ultimo depurarlo. Etapa 6: Prueba y Verificación 
Se realizan las pruebas y verificaciones del programa con miras a que este sea: un programa correcto, robusto y amigable. La prueba se realiza para el conjunto de entradas que permita explorar todo el rango de valores permitidos por las precondiciones, para cada ejecución, comprobar que las salidas satisfacen las poscondiciones. 
Etapa 7: Presentación 
Se debe crea la documentación necesaria, esta debe ser tanto interna (expresada en líneas de texto dentro del programa) como externa (creando un documento anexo que exponga los aspectos clave del programa para su mantenimiento posterior), de forma tal, que su mantenimiento sea fácil. 
Se debe identificar el programa, el autor la fecha, una explicación de cada rutina utilizada, no hay límite en cuanto a comentarios, de tal manera que faciliten la modificación programa. Ahora bien, el desarrollo de estas etapas involucra dos conceptos fundamentales como son: Análisis, que consiste en definir las partes en función de un comportamiento, o sea, de algo general y desconocido obtener algo específico y conocido. Es ir del todo a las partes. Es responder a preguntas que involucran ¿Qué?, consiste en indagar. Por ejemplo: ¿Qué debe entrar al problema?, ¿Qué resultados deben salir del problema? y ¿Qué procesos debe ejecutar el problema para convertir las entradas en salidas? 
Síntesis, que consiste en definir un comportamiento a partir de una serie de partes, es ir de las partes al todo, de algo conocido a lo desconocido, consiste en crear. Es responder a preguntas sobre ¿Cómo?. Por ejemplo: ¿Cómo se debe desarrollar este proceso para lograr convertir las entradas en salidas?
Metodología para la Solución de Problemas Algorítmicos (MAPS) 
Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González 
Ejemplo. Metodología para la Solución de Problemas algorítmicos 
Ya estamos en capacidad de dar solución a un problema utilizando una metodología, es este caso aplicaremos la metodología MAPS desde el principio al fin. 
El Dialogo 
Deseamos calcular el promedio de las notas de los estudiantes de un curso de Introducción a la programación. El promedio se va a realizar para cada estudiante individualmente. 
Los datos de entrada serán introducidos por el teclado, hasta que se desee finalizar la introducción de los datos utilizando un valor específico para tal fin. Después de haber introducido los valores por el teclado se procede a calcular el promedio de la nota para el estudiante. Terminado este proceso se presenta el promedio de la nota por la pantalla, permitiendo elegir para ingresar otros datos de entrada para otro estudiante o permitir salir del sistema. 
Las notas de los estudiantes estarán comprendidas entre 1 y 20 puntos, la cantidad de estudiantes no está limitada, se podrán calcular todos los promedios de notas que se deseen realizar o hasta salir del sistema. 
Tenemos como datos de entrada: las calificaciones de los estudiantes. 
Datos de salida: el promedio de las calificaciones. 
Las Especificaciones: 
Si denotamos por Nota1 la primera calificación, Nota2 la segunda y así sucesivamente. A continuación se presenta una descripción precisa del problema, en forma de precondiciones y poscondiciones: 
{pre: entrada = (Nota1, Nota2, ..., Nota n) ^ n>0 ^  i = nai =  {post: entrada = (PM1, PM2, …, PMn) ^ n>0 ^  i = n 
salida = Sum i = ain 
Llamamos a Sum la suma de las calificaciones, n el número de las calificaciones y PM el promedia de las calificaciones. Por lo tanto Sum, n y PM son variable del problema. La forma de presentar la precondición y poscondición es el lenguaje de la lógica de predicados. Cuando se utiliza la lógica de predicados de esta forma, se dice que realizamos aciertos acerca de los estados inicial y final del proceso. 
En el ejemplo no se deja duda sobre la exclusión del caso en que existan cero entradas en el problema. Por lo tanto la solución algorítmica de este problema no tiene que ocuparse de este caso.
Metodología para la Solución de Problemas Algorítmicos (MAPS) 
Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González 
El haber escrito entrada = Vacío en la poscondición significa que, al final del proceso, la entrada estará vacía. Es decir que todas las entradas habrán sido leídas por el proceso, pero no pueden ser leídas de nuevo. Es decir que un valor no puede ser obtenido de nuevo después de haberse obtenido una vez, y los valores individuales de entrada se obtienen exactamente en el orden en que se introducen por el teclado. 
La Partición 
Los pasos de este problema son evidentes, si nos ponemos a pensar en el dialogo y las especificaciones, podemos definir los siguientes pasos : 
paso 1 : Obtener la lista de calificaciones paso 2 : calcular n = número de notas de la lista paso 3 : calcular Sum = la suma de las calificaciones de la lista paso 4 : Calcular prom = Promedio de las notas = Sum / n paso 5 : Presentar el promedio prom La forma de presentar el algoritmo es la siguiente:
Metodología para la Solución de Problemas Algorítmicos (MAPS) 
Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González 
Definición de abstracciones 
En esta parte vamos a definir las rutinas. Una rutina es una parte de un algoritmo que puede reutilizarse en otros contextos de resolución de problemas algorítmicos. Un algoritmo o parte de él, que parcialmente puede ser reutilizado recibe el nombre de rutina. Algunas rutinas son comunes y están incluidas en los lenguajes de programación, para utilizarlas en los programas. 
Consideremos la abstracción: Promediodelistas, una rutina que realiza el cálculo del promedio de los valores de una lista de notas. El procedimiento para definir una rutina es le siguiente. nombrar la abstracción, asignarle un nombre que identifique claramente el algoritmo que representa. 
Redefinir precondiciones y poscondiciones del problema, de tal manera que la solución pueda implementarse como una rutina. 
Implementar la abstracción como un procedimiento o función. Comprobación de la integridad de la abstracción: Antes de utilizar una rutina, debemos asegurarnos de que hemos realizado correctamente el proceso de abstracción. como mínimo, esto requiere reestructurar el programa original del que hemos partido para realizar la abstracción, y comprobar que el programa sigue satisfaciendo las especificaciones originales con la abstracción realizada. 
El algoritmo de nuestro ejemplo quedaría implementado de la siguiente forma:
Metodología para la Solución de Problemas Algorítmicos (MAPS) 
Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González 
Definición de la rutina 
Codificación. 
En pocas palabras la codificación es la traslación de la solución del algoritmo a un programa, junto con su documentación. En la solución de un problema algorítmico parte del código se obtiene durante las etapas de Partición y Abstracción. Prueba y Verificación. El Objetivo es garantizar lo mas posible que la solución diseñada es correcta y completa en todos sus extremos. Es decir comprobar que para todas la precondiciones se producirá un resultado consistente con las poscondiciones. 
Presentación. La presentación de un solución completa de un problema, debe incluir, además del propio texto del programa, los elementos siguientes: Una introducción escrita en castellano, identificando los autores, y que describa el problema, la solución y de un aspecto importante. 
Un ejemplo de entradas y las respectivas salidas obtenidas, en una o varias ejecuciones del programa. Un resumen de los resultados de verificación y/o prueba del programa, en los casos que sea adecuada. En pocas palabras, la presentación de la solución a un problema debe hacerse de forma que un lector interesado sea capaz de comprenderla.

Más contenido relacionado

La actualidad más candente

Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
ParadigmasdeprogramacionVictor Zapata
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacionbrayan_2012
 
3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadoraMIGUEL
 
Solucion de problemas por medio de computadoras
Solucion de problemas por medio de computadorasSolucion de problemas por medio de computadoras
Solucion de problemas por medio de computadorasJorge Ñauñay
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Marquina, Santiago
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computadoreduardzavala93
 
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...Carlos M. Sandoval
 
Metodología para la solución de problemas
Metodología para la solución de problemasMetodología para la solución de problemas
Metodología para la solución de problemasAmilcar Valladares
 
Logica de progrmacionn
Logica de progrmacionnLogica de progrmacionn
Logica de progrmacionnbrayan_2012
 
Pasos Para Resolver Un Problema Utilizando Un Pc
Pasos  Para Resolver Un Problema  Utilizando Un PcPasos  Para Resolver Un Problema  Utilizando Un Pc
Pasos Para Resolver Un Problema Utilizando Un Pcguest965b17
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoJohanCaro5
 
El algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasEl algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasBERNARDAURELIOFELIZM
 
Programacion primero
Programacion primeroProgramacion primero
Programacion primeroVictor Zapata
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorgisseparrav
 
desarrollo lógico de problemas de computadoras
desarrollo lógico de problemas de computadorasdesarrollo lógico de problemas de computadoras
desarrollo lógico de problemas de computadorasyanethcandanedo
 

La actualidad más candente (20)

Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
Paradigmasdeprogramacion
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Solucion de problemas por medio de computadoras
Solucion de problemas por medio de computadorasSolucion de problemas por medio de computadoras
Solucion de problemas por medio de computadoras
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3
 
Fases
FasesFases
Fases
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Semana 1
Semana 1Semana 1
Semana 1
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
 
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
 
Metodología para la solución de problemas
Metodología para la solución de problemasMetodología para la solución de problemas
Metodología para la solución de problemas
 
Logica de progrmacionn
Logica de progrmacionnLogica de progrmacionn
Logica de progrmacionn
 
Pasos Para Resolver Un Problema Utilizando Un Pc
Pasos  Para Resolver Un Problema  Utilizando Un PcPasos  Para Resolver Un Problema  Utilizando Un Pc
Pasos Para Resolver Un Problema Utilizando Un Pc
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y Pseudocódigo
 
El algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasEl algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemas
 
Programacion primero
Programacion primeroProgramacion primero
Programacion primero
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
 
Ppt algoritmo
Ppt algoritmoPpt algoritmo
Ppt algoritmo
 
desarrollo lógico de problemas de computadoras
desarrollo lógico de problemas de computadorasdesarrollo lógico de problemas de computadoras
desarrollo lógico de problemas de computadoras
 

Destacado

Medidas de asociación
Medidas de asociaciónMedidas de asociación
Medidas de asociaciónkamilillo77
 
Presentación1.pptx stephanie
Presentación1.pptx stephaniePresentación1.pptx stephanie
Presentación1.pptx stephanieStfyMrtiinz
 
Evaluación de proyectos
Evaluación de proyectosEvaluación de proyectos
Evaluación de proyectosmono211
 
Csm programa desarrollado
Csm programa desarrolladoCsm programa desarrollado
Csm programa desarrolladoKarina Palmar
 
2. swami ramana maharish (3p) fazer junto com livro ensinamentos espirituais
2. swami ramana maharish (3p) fazer junto com livro ensinamentos espirituais2. swami ramana maharish (3p) fazer junto com livro ensinamentos espirituais
2. swami ramana maharish (3p) fazer junto com livro ensinamentos espirituaisInstituto de Psicobiofísica Rama Schain
 
Finanzas internacionales unipamplona
Finanzas internacionales unipamplonaFinanzas internacionales unipamplona
Finanzas internacionales unipamplonaNancy Lazaro
 
Manifesto reforma universitaria
Manifesto reforma universitariaManifesto reforma universitaria
Manifesto reforma universitariaAndrea Gianre
 
Actividades BE 2008/2009
Actividades BE 2008/2009Actividades BE 2008/2009
Actividades BE 2008/2009CoordTic
 
Estudios epidemiologicos
Estudios epidemiologicosEstudios epidemiologicos
Estudios epidemiologicosChinamary
 
46679 debora bautista arenales
46679  debora bautista arenales46679  debora bautista arenales
46679 debora bautista arenales2015andes
 
Arquitectura y urbanismo participativos, desde las resistencias populares...
Arquitectura y urbanismo participativos, desde las resistencias populares...Arquitectura y urbanismo participativos, desde las resistencias populares...
Arquitectura y urbanismo participativos, desde las resistencias populares...eraser Juan José Calderón
 
Finanzas internacionales unipamplona
Finanzas internacionales unipamplonaFinanzas internacionales unipamplona
Finanzas internacionales unipamplonaNancy Lazaro
 
Inteligencia e identidad colectiva
Inteligencia e identidad colectivaInteligencia e identidad colectiva
Inteligencia e identidad colectivaImma Torres
 
Mintra - RDG N° 027-2015 - Al falta de Sindicato Mayoritario el empleador deb...
Mintra - RDG N° 027-2015 - Al falta de Sindicato Mayoritario el empleador deb...Mintra - RDG N° 027-2015 - Al falta de Sindicato Mayoritario el empleador deb...
Mintra - RDG N° 027-2015 - Al falta de Sindicato Mayoritario el empleador deb...Rooswelth Gerardo Zavaleta Benites
 

Destacado (20)

Medidas de asociación
Medidas de asociaciónMedidas de asociación
Medidas de asociación
 
Presentación1.pptx stephanie
Presentación1.pptx stephaniePresentación1.pptx stephanie
Presentación1.pptx stephanie
 
Evaluación de proyectos
Evaluación de proyectosEvaluación de proyectos
Evaluación de proyectos
 
Csm programa desarrollado
Csm programa desarrolladoCsm programa desarrollado
Csm programa desarrollado
 
2. swami ramana maharish (3p) fazer junto com livro ensinamentos espirituais
2. swami ramana maharish (3p) fazer junto com livro ensinamentos espirituais2. swami ramana maharish (3p) fazer junto com livro ensinamentos espirituais
2. swami ramana maharish (3p) fazer junto com livro ensinamentos espirituais
 
Finanzas internacionales unipamplona
Finanzas internacionales unipamplonaFinanzas internacionales unipamplona
Finanzas internacionales unipamplona
 
Manifesto reforma universitaria
Manifesto reforma universitariaManifesto reforma universitaria
Manifesto reforma universitaria
 
Actividades BE 2008/2009
Actividades BE 2008/2009Actividades BE 2008/2009
Actividades BE 2008/2009
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Caso mexico
Caso mexicoCaso mexico
Caso mexico
 
Tp 2 com iii diapositivas
Tp 2 com iii diapositivasTp 2 com iii diapositivas
Tp 2 com iii diapositivas
 
Planificación estratégica bsc
Planificación estratégica bscPlanificación estratégica bsc
Planificación estratégica bsc
 
Estadistica 120302175514-phpapp01
Estadistica 120302175514-phpapp01Estadistica 120302175514-phpapp01
Estadistica 120302175514-phpapp01
 
Estudios epidemiologicos
Estudios epidemiologicosEstudios epidemiologicos
Estudios epidemiologicos
 
46679 debora bautista arenales
46679  debora bautista arenales46679  debora bautista arenales
46679 debora bautista arenales
 
BCG
BCGBCG
BCG
 
Arquitectura y urbanismo participativos, desde las resistencias populares...
Arquitectura y urbanismo participativos, desde las resistencias populares...Arquitectura y urbanismo participativos, desde las resistencias populares...
Arquitectura y urbanismo participativos, desde las resistencias populares...
 
Finanzas internacionales unipamplona
Finanzas internacionales unipamplonaFinanzas internacionales unipamplona
Finanzas internacionales unipamplona
 
Inteligencia e identidad colectiva
Inteligencia e identidad colectivaInteligencia e identidad colectiva
Inteligencia e identidad colectiva
 
Mintra - RDG N° 027-2015 - Al falta de Sindicato Mayoritario el empleador deb...
Mintra - RDG N° 027-2015 - Al falta de Sindicato Mayoritario el empleador deb...Mintra - RDG N° 027-2015 - Al falta de Sindicato Mayoritario el empleador deb...
Mintra - RDG N° 027-2015 - Al falta de Sindicato Mayoritario el empleador deb...
 

Similar a Metodologia solucion de problemas algoritmos (1)

Investigar y describa la resolución de problemas empleando computadoras
Investigar y describa la resolución de problemas empleando computadorasInvestigar y describa la resolución de problemas empleando computadoras
Investigar y describa la resolución de problemas empleando computadoraschristian arroyo marchan
 
Concentrado del Modulo Soluciones de Problemas - Manuel Gonzalez Sanchez
Concentrado del Modulo  Soluciones de Problemas - Manuel Gonzalez SanchezConcentrado del Modulo  Soluciones de Problemas - Manuel Gonzalez Sanchez
Concentrado del Modulo Soluciones de Problemas - Manuel Gonzalez SanchezManuel Gonzalez
 
Metodología para la resolución de problemas
Metodología para la resolución de problemasMetodología para la resolución de problemas
Metodología para la resolución de problemasLimbeRth Balam Dzib
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujocognos_uie
 
Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)Jeniffer Ponce
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del softwarecoldclean
 
Herramientas de Programación
Herramientas de ProgramaciónHerramientas de Programación
Herramientas de ProgramaciónJose Sanchez
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programazeta2015
 
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Orangel4
 

Similar a Metodologia solucion de problemas algoritmos (1) (20)

Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Investigar y describa la resolución de problemas empleando computadoras
Investigar y describa la resolución de problemas empleando computadorasInvestigar y describa la resolución de problemas empleando computadoras
Investigar y describa la resolución de problemas empleando computadoras
 
Concentrado del Modulo Soluciones de Problemas - Manuel Gonzalez Sanchez
Concentrado del Modulo  Soluciones de Problemas - Manuel Gonzalez SanchezConcentrado del Modulo  Soluciones de Problemas - Manuel Gonzalez Sanchez
Concentrado del Modulo Soluciones de Problemas - Manuel Gonzalez Sanchez
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
1. conceptos básicos sobre algoritmos adsi
1. conceptos básicos sobre algoritmos adsi1. conceptos básicos sobre algoritmos adsi
1. conceptos básicos sobre algoritmos adsi
 
ALGORITMOS
ALGORITMOS ALGORITMOS
ALGORITMOS
 
Video
VideoVideo
Video
 
Metodología para la resolución de problemas
Metodología para la resolución de problemasMetodología para la resolución de problemas
Metodología para la resolución de problemas
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujo
 
algotiritmo:análisis de problemas
algotiritmo:análisis de problemasalgotiritmo:análisis de problemas
algotiritmo:análisis de problemas
 
Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Herramientas de Programación
Herramientas de ProgramaciónHerramientas de Programación
Herramientas de Programación
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Las fases de la programación
Las fases de la programaciónLas fases de la programación
Las fases de la programación
 
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
 

Metodologia solucion de problemas algoritmos (1)

  • 1. Metodología para la Solución de Problemas Algorítmicos (MAPS) Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González Metodología para la Solución de Problemas Algorítmicos (MAPS) A continuación se describen las etapas de la Metodología para la Resolución de Problemas Algorítmicos propuesta por Tucker et al., denominada por sus siglas en ingles "MAPS". Son siete las etapas, que a continuación se describen: Etapa 1: El Dialogo Comprender el problema. Leer el enunciado del problema y hacer preguntas sobre las características de las entradas y las salidas. Consiste en la identificación de las entradas, las salidas y sus respectivas limitaciones, para un problema determinado, como fruto de un proceso de análisis, en el cual se le sugiere al estudiante aplicar un enfoque sistémico para realizar una correcta delimitación del problema. Etapa 2: Las Especificaciones Comprendido el paso anterior se procede a definir las especificaciones a partir de las entradas y salidas identificadas en la etapa anterior. Este proceso tiene como fin predecir las pre y post condiciones expresadas como predicados, que en un futuro permitirán evaluar la consistencia del algoritmo ya sea utilizándolas como estados iniciales, intermedios o finales. El estudiante debe tener conocimiento previos de lógica matemática para lograr especificaciones claras de las pre y post condiciones. Escribir pre y postcondiciones que sean completas y consistentes. Es decir, asegurarse de que las precondiciones cubren todas las posibles entradas, que las postcondiciones definen la salida para todas las posibles entradas, y que tanto las precondiciones como las postcondiciones son interna y mutuamente consistente. Etapa 3: La División Esta etapa consiste en la elaboración del algoritmo, diseño del mismo, fundamentada en las técnicas y herramientas que se expusieron anteriormente. Realizar subdivisiones del proceso en una colección de pasos diferentes. Repetir este proceso para cada paso hasta que la subdivisión no tenga sentido. Identificar las relaciones de control entre los distintos pasos. Es decir ¿Qué paso debe preceder a cuál ?, ¿Qué pasos son parte de otro mas complejo?, ¿Qué pasos deben repetirse dentro de un bucle?, y así sucesivamente. Etapa 4: Definición de Abstracciones En esta etapa se determinan cuáles de los pasos que se han utilizado, recolectándolos y adaptarlos en una solo rutina para ser utilizada en la situación presente. Se debe identificar rutinas que se puede reutilizar en el programa, ya sea que existan o que necesite desarrollar él
  • 2. Metodología para la Solución de Problemas Algorítmicos (MAPS) Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González mismo, esto le permitirá realizar sus programas mas fácilmente y de tal forma que su mantenimiento y comprensión sea mas fácil. En muchos casos, esta tarea implica la construcción de nuevas rutinas a partir de otras, o incluso construir una nueva para una utilización mas especializada. Etapa 5: Codificación Se trata de trasladar el algoritmo a un lenguaje de programación, crear el programa fuente con base en la sintaxis propuesta por el lenguaje de programación escogido, compilarlo y por ultimo depurarlo. Etapa 6: Prueba y Verificación Se realizan las pruebas y verificaciones del programa con miras a que este sea: un programa correcto, robusto y amigable. La prueba se realiza para el conjunto de entradas que permita explorar todo el rango de valores permitidos por las precondiciones, para cada ejecución, comprobar que las salidas satisfacen las poscondiciones. Etapa 7: Presentación Se debe crea la documentación necesaria, esta debe ser tanto interna (expresada en líneas de texto dentro del programa) como externa (creando un documento anexo que exponga los aspectos clave del programa para su mantenimiento posterior), de forma tal, que su mantenimiento sea fácil. Se debe identificar el programa, el autor la fecha, una explicación de cada rutina utilizada, no hay límite en cuanto a comentarios, de tal manera que faciliten la modificación programa. Ahora bien, el desarrollo de estas etapas involucra dos conceptos fundamentales como son: Análisis, que consiste en definir las partes en función de un comportamiento, o sea, de algo general y desconocido obtener algo específico y conocido. Es ir del todo a las partes. Es responder a preguntas que involucran ¿Qué?, consiste en indagar. Por ejemplo: ¿Qué debe entrar al problema?, ¿Qué resultados deben salir del problema? y ¿Qué procesos debe ejecutar el problema para convertir las entradas en salidas? Síntesis, que consiste en definir un comportamiento a partir de una serie de partes, es ir de las partes al todo, de algo conocido a lo desconocido, consiste en crear. Es responder a preguntas sobre ¿Cómo?. Por ejemplo: ¿Cómo se debe desarrollar este proceso para lograr convertir las entradas en salidas?
  • 3. Metodología para la Solución de Problemas Algorítmicos (MAPS) Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González Ejemplo. Metodología para la Solución de Problemas algorítmicos Ya estamos en capacidad de dar solución a un problema utilizando una metodología, es este caso aplicaremos la metodología MAPS desde el principio al fin. El Dialogo Deseamos calcular el promedio de las notas de los estudiantes de un curso de Introducción a la programación. El promedio se va a realizar para cada estudiante individualmente. Los datos de entrada serán introducidos por el teclado, hasta que se desee finalizar la introducción de los datos utilizando un valor específico para tal fin. Después de haber introducido los valores por el teclado se procede a calcular el promedio de la nota para el estudiante. Terminado este proceso se presenta el promedio de la nota por la pantalla, permitiendo elegir para ingresar otros datos de entrada para otro estudiante o permitir salir del sistema. Las notas de los estudiantes estarán comprendidas entre 1 y 20 puntos, la cantidad de estudiantes no está limitada, se podrán calcular todos los promedios de notas que se deseen realizar o hasta salir del sistema. Tenemos como datos de entrada: las calificaciones de los estudiantes. Datos de salida: el promedio de las calificaciones. Las Especificaciones: Si denotamos por Nota1 la primera calificación, Nota2 la segunda y así sucesivamente. A continuación se presenta una descripción precisa del problema, en forma de precondiciones y poscondiciones: {pre: entrada = (Nota1, Nota2, ..., Nota n) ^ n>0 ^  i = nai =  {post: entrada = (PM1, PM2, …, PMn) ^ n>0 ^  i = n salida = Sum i = ain Llamamos a Sum la suma de las calificaciones, n el número de las calificaciones y PM el promedia de las calificaciones. Por lo tanto Sum, n y PM son variable del problema. La forma de presentar la precondición y poscondición es el lenguaje de la lógica de predicados. Cuando se utiliza la lógica de predicados de esta forma, se dice que realizamos aciertos acerca de los estados inicial y final del proceso. En el ejemplo no se deja duda sobre la exclusión del caso en que existan cero entradas en el problema. Por lo tanto la solución algorítmica de este problema no tiene que ocuparse de este caso.
  • 4. Metodología para la Solución de Problemas Algorítmicos (MAPS) Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González El haber escrito entrada = Vacío en la poscondición significa que, al final del proceso, la entrada estará vacía. Es decir que todas las entradas habrán sido leídas por el proceso, pero no pueden ser leídas de nuevo. Es decir que un valor no puede ser obtenido de nuevo después de haberse obtenido una vez, y los valores individuales de entrada se obtienen exactamente en el orden en que se introducen por el teclado. La Partición Los pasos de este problema son evidentes, si nos ponemos a pensar en el dialogo y las especificaciones, podemos definir los siguientes pasos : paso 1 : Obtener la lista de calificaciones paso 2 : calcular n = número de notas de la lista paso 3 : calcular Sum = la suma de las calificaciones de la lista paso 4 : Calcular prom = Promedio de las notas = Sum / n paso 5 : Presentar el promedio prom La forma de presentar el algoritmo es la siguiente:
  • 5. Metodología para la Solución de Problemas Algorítmicos (MAPS) Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González Definición de abstracciones En esta parte vamos a definir las rutinas. Una rutina es una parte de un algoritmo que puede reutilizarse en otros contextos de resolución de problemas algorítmicos. Un algoritmo o parte de él, que parcialmente puede ser reutilizado recibe el nombre de rutina. Algunas rutinas son comunes y están incluidas en los lenguajes de programación, para utilizarlas en los programas. Consideremos la abstracción: Promediodelistas, una rutina que realiza el cálculo del promedio de los valores de una lista de notas. El procedimiento para definir una rutina es le siguiente. nombrar la abstracción, asignarle un nombre que identifique claramente el algoritmo que representa. Redefinir precondiciones y poscondiciones del problema, de tal manera que la solución pueda implementarse como una rutina. Implementar la abstracción como un procedimiento o función. Comprobación de la integridad de la abstracción: Antes de utilizar una rutina, debemos asegurarnos de que hemos realizado correctamente el proceso de abstracción. como mínimo, esto requiere reestructurar el programa original del que hemos partido para realizar la abstracción, y comprobar que el programa sigue satisfaciendo las especificaciones originales con la abstracción realizada. El algoritmo de nuestro ejemplo quedaría implementado de la siguiente forma:
  • 6. Metodología para la Solución de Problemas Algorítmicos (MAPS) Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González Definición de la rutina Codificación. En pocas palabras la codificación es la traslación de la solución del algoritmo a un programa, junto con su documentación. En la solución de un problema algorítmico parte del código se obtiene durante las etapas de Partición y Abstracción. Prueba y Verificación. El Objetivo es garantizar lo mas posible que la solución diseñada es correcta y completa en todos sus extremos. Es decir comprobar que para todas la precondiciones se producirá un resultado consistente con las poscondiciones. Presentación. La presentación de un solución completa de un problema, debe incluir, además del propio texto del programa, los elementos siguientes: Una introducción escrita en castellano, identificando los autores, y que describa el problema, la solución y de un aspecto importante. Un ejemplo de entradas y las respectivas salidas obtenidas, en una o varias ejecuciones del programa. Un resumen de los resultados de verificación y/o prueba del programa, en los casos que sea adecuada. En pocas palabras, la presentación de la solución a un problema debe hacerse de forma que un lector interesado sea capaz de comprenderla.