Está en la página 1de 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
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
Ejecucin
del
Programa
Prueba del
Programa
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
Salida
ALTURA
Salida
BASE
Salida
AREA
AREA =
BASE x ALTURA
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 (xy+z)
Departamento de Electrnica, Sistemas e Informtica
Ejemplo de pseudocdigo
Programa CalculoAreaRectangulo
Inicio
leer; base, altura
areabase 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
Areabase x altura
Leer:
base, altura
FIN
INICIO
Imprimir:
base, altura,
rea
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
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
Ejecucin
del
Programa
Prueba del
Programa

También podría gustarte