You are on page 1of 21

Algoritmos y solucin de problemas

Fundamentos de Programacin Otoo 2008 Mtro. Luis Eduardo Prez Bernal

Departamento de Electrnica, Sistemas e Informtica

Introduccin
En las ciencias de la computacin se ocupa de los problemas computables. Se le llama problema computable a aquella abstraccin de la realidad que tiene representacin algortmica. Los algoritmos permiten encontrar la solucin a problemas computables. Intuitivamente las personas efectuamos cotidianamente una serie de pasos, procedimientos o acciones que nos permitan alcanzar algn resultado o resolver un problema (al baarnos, al desayunar, al ir a la universidad). En realidad todo el tiempo estamos aplicando algoritmos para resolver problemas.

Departamento de Electrnica, Sistemas e Informtica

Algoritmo

Es un mtodo para la resolucin de problemas. Es un conjunto de pasos a seguir para la solucin 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 Electrnica, Sistemas e Informtica

Caractersticas de los algoritmos


Las caractersticas que debe cumplir un algoritmo son:
Un algoritmo debe ser Preciso e indicar el rden de realizacin 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 algn momento.

Departamento de Electrnica, Sistemas e Informtica

Otras caractersticas 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 Electrnica, Sistemas e Informtica

Resolver problemas
Qu tipo de problemas se pueden resolver?
Computables

Qu mtodos hay para resolver problemas computables?


Metodologa de la programacin (centrado en los algoritmos)

Departamento de Electrnica, Sistemas e Informtica

Fases para resolver un problema computable


Diseo de programas Anlisis del problema Diseo del algoritmo Verificacin manual del algoritmo En la computadora Codificacin del algoritmo Ejecucin del programa Verificacin del programa Mantenimiento (documentacin)

Anlisis Diseo (descendente, refinamiento paso a paso)

Codificacin Ejecucin Prueba Mantenimiento

Departamento de Electrnica, Sistemas e Informtica

Fases para la solucin de un problema computable

Solucin de un problema computable

Anlisis del problema

Diseo y verificacin del algoritmo

Codificacin del Algoritmo Lenguaje C

Ejecucin del Programa

Prueba del Programa

Definir y entender El problema

Identificar los datos de Entrada

Identificar los datos de salida = resultado

Diseo Descendente

Refinamiento por Pasos

Herramientas de programacin: -Diagramas de flujo - Pseudocdigo

Departamento de Electrnica, Sistemas e Informtica

Anlisis del problema


Es el primer paso a seguir para encontrar la solucin a un problema computable es el anlisis del problema. En el anlisis del problema se requiere del mximo de creatividad e imaginacin. Debido a que se busca una solucin se debe examinar cuidadosamente el problema a fin de identificar que tipo de informacin es necesaria producir. En seguida se deben identificar aquellos elementos de informacin ofrecidos por el problema y que resulten tiles para obtener la solucin al problema. Finalmente, un procedimiento para producir los resultados deseados a partir de los datos, es decir, el algoritmo.

Departamento de Electrnica, Sistemas e Informtica

Anlisis del problema

Anlisis del problema

Definir y entender El problema

Identificar los datos de entrada

Identificar los datos de salida = resultados

Departamento de Electrnica, Sistemas e Informtica

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 Electrnica, Sistemas e Informtica

Ejemplo: calcular el rea de un rectngulo


Anlisis del problema
El clculo del rea del rectngulo se puede dividir en:
Entrada de datos (altura, base) Proceso: Clculo del rea (= base x altura) Salida de datos (base, altura, rea)

Departamento de Electrnica, Sistemas e Informtica

Diseo del algoritmo


La solucin de un problema complejo puede requerir muchos pasos, es necesario dividir el problema en subproblemas ms sencillos de resolver. Este mtodo se denomina divide y vencers y es aplicable a la resolucin y escritura de algoritmos y programas para computadora. Este mtodo de divisin de un problema en otros subproblemas ms sencillos se puede expresar para conseguir su solucin en una computadora, mediante el mtodo denominado diseo descendente. El proceso de la rotura de un problema principal en etapas o subproblemas ms sencillos se denomina refinamiento paso a paso o sucesivos.

Departamento de Electrnica, Sistemas e Informtica

Diseo descendente y refinamiento paso a paso

Problema del clculo Del rea del rectngulo

Entrada de Datos

Clculo del rea

Salida de resultados

Entrada ALTURA

Entrada BASE

AREA = BASE x ALTURA

Salida ALTURA

Salida BASE

Salida AREA

Departamento de Electrnica, Sistemas e Informtica

Herramientas de programacin
Las herramientas de programacin utilizadas como lenguajes algortmicos son:
Pseudocdigo: es un lenguaje algortmico, muy parecido al espaol pero ms conciso que permite la redaccin rpida del algoritmo. Diagramas de flujo: ha sido la herramienta de programacin por excelencia, y an hoy sigue siendo muy utilizada. Es fcil de disear pues el flujo lgico del algoritmo se muestra en un diagrama en lugar de palabras.

Departamento de Electrnica, Sistemas e Informtica

Pseudocdigo
Es un lenguaje de pseudoprogramacin, es decir, muy parecido a un lenguaje de programacin. El pseudocdigo es muy fcil de utilizar, ya que es muy similar al espaol. Algunas palabras utilizadas en el pseudocdigo:
Inicio Fin Leer Escribir Asignar (x

y+z)

Departamento de Electrnica, Sistemas e Informtica

Ejemplo de pseudocdigo
Programa CalculoAreaRectangulo Inicio leer; base, altura area base x altura escribir; base, altura, area Fin

Departamento de Electrnica, Sistemas e Informtica

Diagramas de flujo
Un diagrama de flujo utiliza smbolos estndar en el que cada paso del algoritmo se visualiza dentro del smbolo y en el orden en que estos pasos se ejecutan, se indica conectndolos con flechas llamadas lneas de flujo, ya que indican el flujo lgico del algoritmo. Los smbolos utilizados en los diagramas de flujo han sido estandarizados por la ANSI (American National Institute) y por la ISO (International Standard Organization)

Departamento de Electrnica, Sistemas e Informtica

Smbolos de diagramas de flujo

Departamento de Electrnica, Sistemas e Informtica

Ejemplo: Diagrama de flujo

INICIO

Leer: base, altura

Areabase x altura

Imprimir: base, altura, rea

FIN

Departamento de Electrnica, Sistemas e Informtica

Fases para la solucin de un problema computable

Solucin de un problema computable

Anlisis del problema

Diseo y verificacin del algoritmo

Codificacin del Algoritmo Lenguaje C

Ejecucin del Programa

Prueba del Programa

Definir y entender El problema

Identificar los datos de Entrada

Identificar los datos de salida = resultado

Diseo Descendente

Refinamiento por Pasos

Herramientas de programacin: -Diagramas de flujo - Pseudocdigo

You might also like