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)




       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

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)



 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?



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)



 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.

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)



 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:




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)



  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:




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)



       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.




Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González

Más contenido relacionado

La actualidad más candente

Fases de programacion
Fases de programacionFases de programacion
Fases de programacionbrayan_2012
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.pptLeydi Hernandez
 
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
 
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
 
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
 
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
 
Algoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasAlgoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasMartin Pacheco
 
Programacion modular
Programacion modularProgramacion modular
Programacion modularCarmen Silva
 
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
 
Algoritmos libro 6
Algoritmos  libro 6Algoritmos  libro 6
Algoritmos libro 6desi2907
 
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 PROBLEMASadark
 
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
 

La actualidad más candente (19)

Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.ppt
 
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
 
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
 
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
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Fases
FasesFases
Fases
 
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...
 
Algoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemasAlgoritmos y metodología para la solución de problemas
Algoritmos y metodología para la solución de problemas
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Paradigmas
ParadigmasParadigmas
Paradigmas
 
Programacion modular
Programacion modularProgramacion modular
Programacion modular
 
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
 
Pseudocdigo
PseudocdigoPseudocdigo
Pseudocdigo
 
Algoritmos libro 6
Algoritmos  libro 6Algoritmos  libro 6
Algoritmos libro 6
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
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
 

Similar a Maps

Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)Levinthon Hernandez Meriño
 
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
 
Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)Jeniffer Ponce
 
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
 
Lectura no. 2 algoritmos.
Lectura no. 2 algoritmos.Lectura no. 2 algoritmos.
Lectura no. 2 algoritmos.PilarVictoria3
 
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
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del softwarecoldclean
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujocognos_uie
 
Herramientas de Programación
Herramientas de ProgramaciónHerramientas de Programación
Herramientas de ProgramaciónJose Sanchez
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosGrisell d?z
 

Similar a Maps (20)

Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)
 
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
 
algotiritmo:análisis de problemas
algotiritmo:análisis de problemasalgotiritmo:análisis de problemas
algotiritmo:análisis de problemas
 
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
 
Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)
 
ALGORITMOS
ALGORITMOS ALGORITMOS
ALGORITMOS
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
Lectura no. 2 algoritmos.
Lectura no. 2 algoritmos.Lectura no. 2 algoritmos.
Lectura no. 2 algoritmos.
 
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
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Herramientas de Programación
Herramientas de ProgramaciónHerramientas de Programación
Herramientas de Programación
 
Video
VideoVideo
Video
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
 
01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 

Maps

  • 1. Metodología para la Solución de Problemas Algorítmicos (MAPS) 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 Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González
  • 2. Metodología para la Solución de Problemas Algorítmicos (MAPS) 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? Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González
  • 3. Metodología para la Solución de Problemas Algorítmicos (MAPS) 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. Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González
  • 4. Metodología para la Solución de Problemas Algorítmicos (MAPS) 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: Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González
  • 5. Metodología para la Solución de Problemas Algorítmicos (MAPS) 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: Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González
  • 6. Metodología para la Solución de Problemas Algorítmicos (MAPS) 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. Fuente: http://czsistemas.net63.net/index.php?page=algoritmo6 Adaptado por: Ing. Zamantha González