Sei sulla pagina 1di 27

ALGORITMOS

ALGORITMOS

Es un conjunto finito de instrucciones que


especifican una secuencia de operaciones a realizar
en orden para resolver un problema especfico. En
otras palabras, un algoritmo es un mtodo para la
solucin de problemas.
PROPIEDADES DE UN ALGORITMO

Secuencialidad
Ausencia de Ambigedades
Generalidad
Limitaciones
SECUENCIALIDAD

Se debe especificar sin lugar a dudas la secuencia a


utilizar.
Un algoritmo debe tener una instruccin inicial
nica y un sucesor nico en cada secuencia.
Las instrucciones son llevadas a cabo de arriba
hacia abajo a menos que las mismas especifiquen
lo contrario.
Las entradas son las partidas de datos presentadas
al algoritmo.
Las salidas son partidas de datos procesados que
son el resultado de la ejecucin un programa
basado en el algoritmo.
AUSENCIA DE AMBIGEDAD

En algoritmo debe ser defino, claro, preciso y no ambiguo.


La representacin de cada paso de un algoritmo debe dar
lugar a una sola interpretacin posible.
Esta condicin significa que cada vez que se presente para
su ejecucin u algoritmo con los mismos datos de entrada,
se obtendrn los mismos resultados.
Las instrucciones de un algoritmo debe ordenar a la
computadora que solo lleve a cabo tareas que sea capaz de
hacer. Una computadora no puede efectuar una instruccin
si tiene informacin insuficiente o si el comando no est
definido.
GENERALIDAD

Un algoritmo se puede realizar para varios


problemas que se relacionan entre s.
Un algoritmo se aplica a un problema o clase de
problemas especficos; el rango de las entradas o
dominios se tiene que definir previamente, ya que
est determinado el alcance o la generalidad del
algoritmo.
LIMITACIN

Un algoritmo es finito en tamao y tiempo.


La ejecucin de un algoritmo programado debe
finalizar despus de que se haya llevado a cabo una
cantidad finita de operaciones.
DOMINIO DE UN ALGORITMO

La clase o el conjunto de datos y condiciones para


las cuales un algoritmo trabaja concretamente se
llama dominio.
Cuando se trata de resolver cualquier problema es
necesario definir el dominio del algoritmo y
despus verificar que trabaja para todos los casos
que se encuentran dentro del dominio.
Es necesario incluir en el dominio todas las
situaciones similares, pero los casos remotos o
poco probables se permiten omitir.
ERRORES EN LA CONTRUCCIN DEL
DOMINIO.

Errores del dominio:


se presentan cuando se no han
especificado todas las situaciones que se pueden
presentar en la prctica o se han descuidado la
apreciacin de su importancia.
A medida que se presenta el problema, se tiene que clasificar
y hay tres opciones:
1. Ignorarlo porque es improbable y quizs nunca ocurra.
2. Restringir el dominio del algoritmo para excluirlo.
3. Corregir el algoritmo.
ERRORES DE LGICA:

Son aquellos errores que se detectan, despus que se ha


definido en forma adecuada el dominio de un algoritmo,
en la etapa de prueba o verificacin.
se deben principalmente a las siguientes causas:
1. Etapas incorrectas.
2. Secuencia incorrecta de etapas
3. El criterio de eleccin de un algoritmo debe hacerse en
base a criterios tales como:
a) Que el algoritmo sea simple, es decir, fcil de entender y
de escribir.
b) Que el algoritmo sea eficiente.
MTODO HEURSTICO

La heurstica proporciona un esquema o plan para


abordar los problemas poco conocidos, mejora la
capacidad de crear soluciones y asegura que el
mtodo que se va a usar sea eficiente.
En la etapa de planificacin es donde se tiene la
oportunidad de comparar mtodos y seleccionar el
ms adecuado.
Surge la pregunta:

Cmo se pueden resolver los problemas para los


que no hay un mtodo establecido o para los cuales
conocemos un algoritmo?.
DISEO DE UN ALGORITMO

Un mtodo heurstica para disear algoritmo es el


denominado DIVIDE AND CONQUER, el cual es
una tcnica TOP-DOWN.
Este mtodo permite implementar la
segmentacin, descomposicin de un problema
largo y complejo en problemas independientes ms
pequeos y fciles de resolver que el problema de
partida.
La tcnica consiste en varias etapas.
DESCOMPOSICIN DEL PROBLEMA DE PARTIDA EN
SUBPROBLEMAS INDEPENDIENTES Y DETERMINACIN DE LAS
RELACIONES ENTRE ELLOS.

P1 P2 P3
RESOLUCIN DE CADA
SUBPROBLEMA
Si un sub-problema es
grande, por P1

descomposicin y
continuando hasta que
resulten de la
descomposicin sub -
problemas fcilmente
resolubles.
P1.1 P1.2 P1.3
Composicin de las soluciones de los sub-
problemas para lograr la solucin final

El diseo del algoritmo que resuelve un problema,


realizado con esta tcnica recibe el nombre de DISEO
DESCENDENTE y resulta en algoritmo muy legibles,
claros, fciles de entender, seguir y corregir.
El diseo de un algoritmo no se hace de una sola vez, sino
que se va resolviendo en una secuencia de pasos ( llamados
PASOS DE REFINAMIENTO).
En cada paso el problema es refinado agregando detalles
significativos, por lo que el mtodo se conoce como:
MTODO DE LOS REFINAMIENTOS SUCESIVOS.
UN INGENIERO ES CONVOCADO PARA
CONSTRUIR UN EDIFICIO

CONSTRUCCIN
DEL
EDIFICIO

CONFECCICN CONTRATACIN DIRECCIN


COMPRA DE
DE LOS DEL DE LA
MATERIALES
PLANOS PERSONAL OBRA
UN SUB- PROBLEMA

CONFECCIN
DE LOS
PLANOS

APROBACIN ELABORACIN APROBACIN


DISEO DEL
DEL DE LOS DE LOS
ANTEPROYECTO
ANTEPROYECTO PLANOS PLANOS
OTRO SUB- PROBLEMA

CONTRATACIN
DEL
PERSONAL

ANLISIS
PEDIDO DE REDACCIN
DE LOS ENTREVISTAS
CURRICULUM DE LOS
CURRCULUM PERSONALES
VITAE CONTRATOS
VITAE
OTRO SUB- PROBLEMA

COMPRA
DE
MATERIALES

CLCULO PEDIDO SELECCIN


DE DE DE
MATERIALES PRECIOS PROVEEDORES
Al utilizar el refinamiento por pasos el diseador
de un algoritmo debe saber donde detenerse, es
decir, debe saber cuando un paso especfico del
algoritmo es lo suficientemente claro para no
necesitar ms refinamiento.
Se necesita CONOCER LAS CAPACIDADES DE
UN PROCESADOR no slo para terminar los
refinamientos, sino para dirigir la forma en que el
refinamiento avanza.
Una computadora puede interpretar cualquier cosa
expresadas de manera adecuada en un lenguaje de
programacin. As el diseador de un algoritmo de
computadora puede orientar los pasos y la
terminacin del refinamiento hacia el tipo de
lenguaje que se trate.
Programacin estructurada

Los principios metodolgicos bsicos de la


programacin estructurada son los de subdividir el
problema inicial o de partida en partes manejables
para su anlisis y hacer de esta manera que se agilice
el proceso de entender el problema y la solucin.
Bsicamente, estas subdivisiones deseadas( llamadas
mdulos) deben satisfacer los siguientes requisitos:
1. Los mdulos deben estas jerarquizados.
2. Deben ser pequeos y sencillos.
3. Se debern utilizar tantos mdulos de menor jerarqua
como sea necesario para cumplir con la restriccin de ser
pequeos y sencillos.
4. Se debern usar las estructuras de control y datos
adecuadas para cumplir con el requisito de pequeos y
sencillos.
5. Los mdulos deben ser legibles para cualquier persona
aunque tenga solamente conocimientos elementales de
progrmacin.
LENGUAJE DE DISEO DE PROGRAMAS

Como la meta es escribir algoritmos que sean


procesados en una computadora, se va a producir un
lenguaje de diseo adecuado.
Se llamar LENGUAJE DE DESCRIPCIN DE
PROGRAMAS a la herramienta que permitir
disear programas de codificacin.
Este pseudo- lenguaje tiene las siguientes caractersticas:
1. Permite expresar de manera informal las estructuras de
2. Permite expresar las ideas en frases del lenguaje propio o natural.
3. Es similar al lenguaje de programacin pero no est ligado a
ninguna regla formal de sintaxis como aquellos.
4. No es un lenguaje compilable
5. Por convencin se hace un sangrado en el texto que ayuda a la
percepcin visual de la lgica del diseo.
6. Permite expresar diseos de fcil comprensin que podr
convertirse sin dificultad a cdigo en el lenguaje de implementacin.
7. El pseudo- cdigo generado es ms fcil de cambiar y corregir que el
cdigo del programa.
DIAGRAMA DE FLUJO

Un diagrama de flujo es otra tcnica de diseo de


algoritmos. Consiste en una serie de smbolos que
denotan acciones, decisiones o procedimientos que
se unen mediante flechas y conectores.
Esta representacin nos ayudar a conocer la
informacin que tenemos, donde la tenemos, que
debemos hacer con ella y como presentarla.
Debe tener las cualidades de sencillez, claridad y
normalizacin en su diseo.

Potrebbero piacerti anche