SlideShare una empresa de Scribd logo
Algoritmos y solución de problemas


     Fundamentos de Programación
                Otoño 2008
     Mtro. Luis Eduardo Pérez Bernal
Departamento de Electrónica, Sistemas e Informática



                    Introducción

• En las ciencias de la computación se ocupa de los
  problemas computables.
• Se le llama problema computable a aquella
  abstracción de la realidad que tiene representación
  algorítmica.
• Los algoritmos permiten encontrar la solución a
  problemas computables.
• Intuitivamente las personas efectuamos cotidianamente
  una serie de pasos, procedimientos o acciones que nos
  permitan alcanzar algún resultado o resolver un
  problema (al bañarnos, al desayunar, al ir a la
  universidad). En realidad todo el tiempo estamos
  aplicando algoritmos para resolver problemas.
Departamento de Electrónica, Sistemas e Informática



                      Algoritmo



• Es un método para la resolución de problemas.
• Es un conjunto de pasos a seguir para la solución a un
  problema.
• Es una serie finita de instrucciones para realizar una
  tarea.

• Formalmente:
  Es un conjunto de pasos, procedimientos o acciones
  que nos permiten alcanzar un resultado o resolver
  un problema.
Departamento de Electrónica, Sistemas e Informática



        Características de los algoritmos


• Las características que debe cumplir un algoritmo son:
   – Un algoritmo debe ser Preciso e indicar el órden de
     realización de cada paso.
   – Un algoritmo debe ser Definido, es decir, si se sigue un
     algoritmo dos veces, se debe obtener el mismo resultado.
   – Un algoritmo debe ser Finito, es decir, si se sigue el
     algoritmo se debe terminar el algún momento.
Departamento de Electrónica, Sistemas e Informática



     Otras características de los algoritmos


Debe cumplir con:

• Una secuencia de instrucciones claras y finitas
• Debe ser correcto y debe resolver el problema planteado
  en todas sus facetas
• Debe ser legible
Departamento de Electrónica, Sistemas e Informática



                 Resolver problemas


• ¿Qué tipo de problemas se pueden resolver?
   – Computables




• ¿Qué métodos hay para resolver problemas
  computables?
   – Metodología de la programación (centrado en los
     algoritmos)
Departamento de Electrónica, Sistemas e Informática



 Fases para resolver un problema computable

• Diseño de programas
   – Análisis del problema        • Análisis
   – Diseño del algoritmo         • Diseño (descendente,
   – Verificación manual del        refinamiento paso a paso)
     algoritmo
• En la computadora
   – Codificación del algoritmo
   – Ejecución del programa       •   Codificación
   – Verificación del programa    •   Ejecución
   – Mantenimiento                •   Prueba
     (documentación)              •   Mantenimiento
Departamento de Electrónica, Sistemas e Informática



   Fases para la solución de un problema computable



                                                                 Solución de un
                                                                   problema
                                                                  computable




                                                                        Diseño y      Codificación        Ejecución
                 Análisis                                              verificación                                   Prueba del
                                                                                          del                del
                   del                                                      del        Algoritmo                      Programa
                problema                                                algoritmo                         Programa
                                                                                      Lenguaje C




                                                                                        Herramientas de
              Identificar los    Identificar los                                         programación:
  Definir y                     datos de salida                       Refinamiento       -Diagramas de
                datos de                             Diseño
 entender                               =                                  por                flujo
                 Entrada                           Descendente
El problema                        resultado                             Pasos          - Pseudocódigo
Departamento de Electrónica, Sistemas e Informática



               Análisis del problema

• Es el primer paso a seguir para encontrar la solución a
  un problema computable es el análisis del problema.
• En el análisis del problema se requiere del máximo de
  creatividad e imaginación.
• Debido a que se busca una solución se debe examinar
  cuidadosamente el problema a fin de identificar que
  tipo de información es necesaria producir. En seguida se
  deben identificar aquellos elementos de información
  ofrecidos por el problema y que resulten útiles para
  obtener la solución al problema.
• Finalmente, un procedimiento para producir los
  resultados deseados a partir de los datos, es decir, el
  algoritmo.
Departamento de Electrónica, Sistemas e Informática



                 Análisis del problema



                         Análisis del
                          problema




                                                   Identificar los datos
Definir y entender   Identificar los datos
                                                        de salida
  El problema            de entrada
                                                      = resultados
Departamento de Electrónica, Sistemas e Informática



    Elementos que conforman un algoritmo


• Entrada. Los datos iniciales que posee el algoritmo
  antes de ejecutarse.
• Proceso. Acciones que lleva a cabo el algoritmo.
• Salida. Datos que obtiene finalmente el algoritmo.
Departamento de Electrónica, Sistemas e Informática



   Ejemplo: calcular el área de un rectángulo


• Análisis del problema
   – El cálculo del área del rectángulo se puede dividir en:
      • Entrada de datos (altura, base)
      • Proceso: Cálculo del área (= base x altura)
      • Salida de datos (base, altura, área)
Departamento de Electrónica, Sistemas e Informática



                   Diseño del algoritmo

• La solución de un problema complejo puede requerir muchos
  pasos, es necesario dividir el problema en subproblemas más
  sencillos de resolver.
• Este método se denomina divide y vencerás y es aplicable a la
  resolución y escritura de algoritmos y programas para computadora.
• Este método de división de un problema en otros subproblemas
  más sencillos se puede expresar para conseguir su solución en una
  computadora, mediante el método denominado diseño
  descendente.
• El proceso de la rotura de un problema principal en etapas o
  subproblemas más sencillos se denomina refinamiento paso a
  paso o sucesivos.
Departamento de Electrónica, Sistemas e Informática



Diseño descendente y refinamiento paso a paso


                                    Problema del cálculo
                                        Del área del
                                         rectángulo




          Entrada de               Cálculo del                                 Salida de
            Datos                     área                                     resultados




Entrada                Entrada      AREA =                    Salida             Salida            Salida

ALTURA                 BASE      BASE x ALTURA               ALTURA              BASE              AREA
Departamento de Electrónica, Sistemas e Informática



          Herramientas de programación


• Las herramientas de programación utilizadas como
  lenguajes algorítmicos son:
   – Pseudocódigo: es un lenguaje algorítmico, muy parecido
     al español pero más conciso que permite la redacción
     rápida del algoritmo.
   – Diagramas de flujo: ha sido la herramienta de
     programación por excelencia, y aún hoy sigue siendo muy
     utilizada. Es fácil de diseñar pues el flujo lógico del
     algoritmo se muestra en un diagrama en lugar de
     palabras.
Departamento de Electrónica, Sistemas e Informática



                       Pseudocódigo


• Es un lenguaje de pseudoprogramación, es decir, muy
  parecido a un lenguaje de programación.
• El pseudocódigo es muy fácil de utilizar, ya que es muy
  similar al español.
• Algunas palabras utilizadas en el pseudocódigo:
   –   Inicio
   –   Fin
   –   Leer
   –   Escribir
   –   Asignar (x   y+z)
Departamento de Electrónica, Sistemas e Informática



            Ejemplo de pseudocódigo


Programa CalculoAreaRectangulo
Inicio
   leer; base, altura
   area base x altura
   escribir; base, altura, area
Fin
Departamento de Electrónica, Sistemas e Informática



                 Diagramas de flujo


• Un diagrama de flujo utiliza símbolos estándar en el que
  cada paso del algoritmo se visualiza dentro del símbolo
  y en el orden en que estos pasos se ejecutan, se indica
  conectándolos con flechas llamadas líneas de flujo, ya
  que indican el flujo lógico del algoritmo.
• Los símbolos utilizados en los diagramas de flujo han
  sido estandarizados por la ANSI (American National
  Institute) y por la ISO (International Standard
  Organization)
Departamento de Electrónica, Sistemas e Informática



Símbolos de diagramas de flujo
Departamento de Electrónica, Sistemas e Informática



Ejemplo: Diagrama de flujo


              INICIO




             Leer:
            base, altura




         Area←base x altura




            Imprimir:
            base, altura,
            área



                FIN
Departamento de Electrónica, Sistemas e Informática



   Fases para la solución de un problema computable



                                                                 Solución de un
                                                                   problema
                                                                  computable




                                                                        Diseño y      Codificación        Ejecución
                 Análisis                                              verificación                                   Prueba del
                                                                                          del                del
                   del                                                      del        Algoritmo                      Programa
                problema                                                algoritmo                         Programa
                                                                                      Lenguaje C




                                                                                        Herramientas de
              Identificar los    Identificar los                                         programación:
  Definir y                     datos de salida                       Refinamiento       -Diagramas de
                datos de                             Diseño
 entender                               =                                  por                flujo
                 Entrada                           Descendente
El problema                        resultado                             Pasos          - Pseudocódigo

Más contenido relacionado

PDF
Clase 01
PPTX
Programacion
PPTX
Evaluacion de algoritmo
PPT
Algoritmos
PDF
Clase 2
PPT
Concentrado del Modulo Soluciones de Problemas - Manuel Gonzalez Sanchez
PPTX
Algoritmos
PPSX
Algoritmos
Clase 01
Programacion
Evaluacion de algoritmo
Algoritmos
Clase 2
Concentrado del Modulo Soluciones de Problemas - Manuel Gonzalez Sanchez
Algoritmos
Algoritmos

La actualidad más candente (20)

PPT
Metodologia Heuristica para Algoritmos
PPSX
Algoritmos y Diagramas de flujo
PPT
Presentacion info
PPTX
Programas diseñados para realizar algoritmo
DOCX
Estructura de datos Algorítmica
PPSX
Algoritmos
PPTX
Algoritmos
PPTX
Presentacion de algoritmos
PDF
Presentacion ip algoritmia_2011_p4
PPTX
GENERALIDADES SOBRE LOS ALGORITMOS
PPTX
La Robotica y sus aplicaciones
PPTX
Diapositivas algoritmos Pseudocodigo diagramas de flujo
PPTX
Logica algoritmos
PPTX
Algoritmo
PPTX
PPSX
Fundamentos de Programacion
PPT
Diego ochoaguerrero nelsondavidluna
PPTX
algoritmos y fundamentos de programacion
PPT
Presentación solucion problemas de computador
PDF
Presentacion ip algoritmia_2012_i_v2_parte_i
Metodologia Heuristica para Algoritmos
Algoritmos y Diagramas de flujo
Presentacion info
Programas diseñados para realizar algoritmo
Estructura de datos Algorítmica
Algoritmos
Algoritmos
Presentacion de algoritmos
Presentacion ip algoritmia_2011_p4
GENERALIDADES SOBRE LOS ALGORITMOS
La Robotica y sus aplicaciones
Diapositivas algoritmos Pseudocodigo diagramas de flujo
Logica algoritmos
Algoritmo
Fundamentos de Programacion
Diego ochoaguerrero nelsondavidluna
algoritmos y fundamentos de programacion
Presentación solucion problemas de computador
Presentacion ip algoritmia_2012_i_v2_parte_i
Publicidad

Destacado (12)

PPT
Funcionesenlenguaje c
PPTX
audio conferencia
PDF
Cap%c3%8 dtulo+1+programacion+orientada+a+objetos
DOC
Evaluación de páginas web1
PPTX
19 Luglio 2013 - Il Futuro della Televisione -
PDF
Study: The Future of VR, AR and Self-Driving Cars
PDF
Hype vs. Reality: The AI Explainer
Funcionesenlenguaje c
audio conferencia
Cap%c3%8 dtulo+1+programacion+orientada+a+objetos
Evaluación de páginas web1
19 Luglio 2013 - Il Futuro della Televisione -
Study: The Future of VR, AR and Self-Driving Cars
Hype vs. Reality: The AI Explainer
Publicidad

Similar a Algoritmos2 (20)

PDF
AlgoritmoSoluciondeProblema.pdf
PPT
3 programacion estructurada
PDF
Literal 5 pre logica
PDF
Algoritmos 01
PPT
Tarea 4
PPTX
Tarea 2 - Pre Algoritmos
PPT
Literal 5 pasos
PDF
PDF
PPT
Generalidades Sobre Algoritmos(Ok)
PPTX
Pre algoritmos
PPTX
Tarea 4 segundo parcial v
PPSX
Pasos para la solución de un problema por computador
PDF
Algoritmos y programacion
PDF
Tarea 4 (1)
PDF
Presentacion ip algoritmia_2011
PDF
Proyecto de-programacion
PDF
ResolucióN De Problemas
PDF
ResolucióN De Problemas
PDF
ResolucióN De Problemas
AlgoritmoSoluciondeProblema.pdf
3 programacion estructurada
Literal 5 pre logica
Algoritmos 01
Tarea 4
Tarea 2 - Pre Algoritmos
Literal 5 pasos
Generalidades Sobre Algoritmos(Ok)
Pre algoritmos
Tarea 4 segundo parcial v
Pasos para la solución de un problema por computador
Algoritmos y programacion
Tarea 4 (1)
Presentacion ip algoritmia_2011
Proyecto de-programacion
ResolucióN De Problemas
ResolucióN De Problemas
ResolucióN De Problemas

Algoritmos2

  • 1. Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal
  • 2. Departamento de Electrónica, Sistemas e Informática Introducción • En las ciencias de la computación se ocupa de los problemas computables. • Se le llama problema computable a aquella abstracción de la realidad que tiene representación algorítmica. • Los algoritmos permiten encontrar la solución a problemas computables. • Intuitivamente las personas efectuamos cotidianamente una serie de pasos, procedimientos o acciones que nos permitan alcanzar algún resultado o resolver un problema (al bañarnos, al desayunar, al ir a la universidad). En realidad todo el tiempo estamos aplicando algoritmos para resolver problemas.
  • 3. Departamento de Electrónica, Sistemas e Informática Algoritmo • Es un método para la resolución de problemas. • Es un conjunto de pasos a seguir para la solución a un problema. • Es una serie finita de instrucciones para realizar una tarea. • Formalmente: Es un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.
  • 4. Departamento de Electrónica, Sistemas e Informática Características de los algoritmos • Las características que debe cumplir un algoritmo son: – Un algoritmo debe ser Preciso e indicar el órden de realización de cada paso. – Un algoritmo debe ser Definido, es decir, si se sigue un algoritmo dos veces, se debe obtener el mismo resultado. – Un algoritmo debe ser Finito, es decir, si se sigue el algoritmo se debe terminar el algún momento.
  • 5. Departamento de Electrónica, Sistemas e Informática Otras características de los algoritmos Debe cumplir con: • Una secuencia de instrucciones claras y finitas • Debe ser correcto y debe resolver el problema planteado en todas sus facetas • Debe ser legible
  • 6. Departamento de Electrónica, Sistemas e Informática Resolver problemas • ¿Qué tipo de problemas se pueden resolver? – Computables • ¿Qué métodos hay para resolver problemas computables? – Metodología de la programación (centrado en los algoritmos)
  • 7. Departamento de Electrónica, Sistemas e Informática Fases para resolver un problema computable • Diseño de programas – Análisis del problema • Análisis – Diseño del algoritmo • Diseño (descendente, – Verificación manual del refinamiento paso a paso) algoritmo • En la computadora – Codificación del algoritmo – Ejecución del programa • Codificación – Verificación del programa • Ejecución – Mantenimiento • Prueba (documentación) • Mantenimiento
  • 8. Departamento de Electrónica, Sistemas e Informática Fases para la solución de un problema computable Solución de un problema computable Diseño y Codificación Ejecución Análisis verificación Prueba del del del del del Algoritmo Programa problema algoritmo Programa Lenguaje C Herramientas de Identificar los Identificar los programación: Definir y datos de salida Refinamiento -Diagramas de datos de Diseño entender = por flujo Entrada Descendente El problema resultado Pasos - Pseudocódigo
  • 9. Departamento de Electrónica, Sistemas e Informática Análisis del problema • Es el primer paso a seguir para encontrar la solución a un problema computable es el análisis del problema. • En el análisis del problema se requiere del máximo de creatividad e imaginación. • Debido a que se busca una solución se debe examinar cuidadosamente el problema a fin de identificar que tipo de información es necesaria producir. En seguida se deben identificar aquellos elementos de información ofrecidos por el problema y que resulten útiles para obtener la solución al problema. • Finalmente, un procedimiento para producir los resultados deseados a partir de los datos, es decir, el algoritmo.
  • 10. Departamento de Electrónica, Sistemas e Informática Análisis del problema Análisis del problema Identificar los datos Definir y entender Identificar los datos de salida El problema de entrada = resultados
  • 11. Departamento de Electrónica, Sistemas e Informática Elementos que conforman un algoritmo • Entrada. Los datos iniciales que posee el algoritmo antes de ejecutarse. • Proceso. Acciones que lleva a cabo el algoritmo. • Salida. Datos que obtiene finalmente el algoritmo.
  • 12. Departamento de Electrónica, Sistemas e Informática Ejemplo: calcular el área de un rectángulo • Análisis del problema – El cálculo del área del rectángulo se puede dividir en: • Entrada de datos (altura, base) • Proceso: Cálculo del área (= base x altura) • Salida de datos (base, altura, área)
  • 13. Departamento de Electrónica, Sistemas e Informática Diseño del algoritmo • La solución de un problema complejo puede requerir muchos pasos, es necesario dividir el problema en subproblemas más sencillos de resolver. • Este método se denomina divide y vencerás y es aplicable a la resolución y escritura de algoritmos y programas para computadora. • Este método de división de un problema en otros subproblemas más sencillos se puede expresar para conseguir su solución en una computadora, mediante el método denominado diseño descendente. • El proceso de la rotura de un problema principal en etapas o subproblemas más sencillos se denomina refinamiento paso a paso o sucesivos.
  • 14. Departamento de Electrónica, Sistemas e Informática Diseño descendente y refinamiento paso a paso Problema del cálculo Del área del rectángulo Entrada de Cálculo del Salida de Datos área resultados Entrada Entrada AREA = Salida Salida Salida ALTURA BASE BASE x ALTURA ALTURA BASE AREA
  • 15. Departamento de Electrónica, Sistemas e Informática Herramientas de programación • Las herramientas de programación utilizadas como lenguajes algorítmicos son: – Pseudocódigo: es un lenguaje algorítmico, muy parecido al español pero más conciso que permite la redacción rápida del algoritmo. – Diagramas de flujo: ha sido la herramienta de programación por excelencia, y aún hoy sigue siendo muy utilizada. Es fácil de diseñar pues el flujo lógico del algoritmo se muestra en un diagrama en lugar de palabras.
  • 16. Departamento de Electrónica, Sistemas e Informática Pseudocódigo • Es un lenguaje de pseudoprogramación, es decir, muy parecido a un lenguaje de programación. • El pseudocódigo es muy fácil de utilizar, ya que es muy similar al español. • Algunas palabras utilizadas en el pseudocódigo: – Inicio – Fin – Leer – Escribir – Asignar (x y+z)
  • 17. Departamento de Electrónica, Sistemas e Informática Ejemplo de pseudocódigo Programa CalculoAreaRectangulo Inicio leer; base, altura area base x altura escribir; base, altura, area Fin
  • 18. Departamento de Electrónica, Sistemas e Informática Diagramas de flujo • Un diagrama de flujo utiliza símbolos estándar en el que cada paso del algoritmo se visualiza dentro del símbolo y en el orden en que estos pasos se ejecutan, se indica conectándolos con flechas llamadas líneas de flujo, ya que indican el flujo lógico del algoritmo. • Los símbolos utilizados en los diagramas de flujo han sido estandarizados por la ANSI (American National Institute) y por la ISO (International Standard Organization)
  • 19. Departamento de Electrónica, Sistemas e Informática Símbolos de diagramas de flujo
  • 20. Departamento de Electrónica, Sistemas e Informática Ejemplo: Diagrama de flujo INICIO Leer: base, altura Area←base x altura Imprimir: base, altura, área FIN
  • 21. Departamento de Electrónica, Sistemas e Informática Fases para la solución de un problema computable Solución de un problema computable Diseño y Codificación Ejecución Análisis verificación Prueba del del del del del Algoritmo Programa problema algoritmo Programa Lenguaje C Herramientas de Identificar los Identificar los programación: Definir y datos de salida Refinamiento -Diagramas de datos de Diseño entender = por flujo Entrada Descendente El problema resultado Pasos - Pseudocódigo