Sunteți pe pagina 1din 26

ALGORITMOS

DEFINICION:
 Es un conjunto finito de instrucciones que
especifican una secuencia de operaciones a
realizar en orden para resolver un problema
específico. En otras palabras, un algoritmo es un
método para la solución de problemas.

2
PROPIEDADES DE UN
ALGORITMO
Secuencialidad
Ausencia de Ambigüedades
Generalidad
Limitaciones

3
SECUENCIALIDAD
 Se debe especificar sin lugar a dudas la
secuencia a utilizar.
 Un algoritmo debe tener una instrucción
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
ejecución un programa basado en el
algoritmo. 4
AUSENCIA DE AMBIGÜEDAD
 En algoritmo debe ser defino, claro, preciso y no
ambiguo. La representación de cada paso de un
algoritmo debe dar lugar a una sola
interpretación posible.
 Esta condición significa que cada vez que se
presente para su ejecución u algoritmo con los
mismos datos de entrada, se obtendrán 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 instrucción si tiene información
insuficiente o si el comando no está definido. 5
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 específicos; el rango de las entradas o
dominios se tiene que definir previamente, ya que
está determinado el alcance o la generalidad del
algoritmo.

6
LIMITACIÓN
 Un algoritmo es finito en tamaño y tiempo.
 La ejecución de un algoritmo programado debe
finalizar después de que se haya llevado a cabo
una cantidad finita de operaciones.

7
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 después 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 8
omitir.
ERRORES EN LA CONTRUCCIÓN DEL
DOMINIO.
 Errores del dominio:
se presentan cuando se no han
especificado todas las situaciones que se pueden
presentar en la práctica o se han descuidado la
apreciación de su importancia.
A medida que se presenta el problema, se tiene que
clasificar y hay tres opciones:
1. Ignorarlo porque es improbable y quizás nunca
ocurra.
2. Restringir el dominio del algoritmo para
excluirlo.
3. Corregir el algoritmo. 9
ERRORES DE LÓGICA:

 Son aquellos errores que se detectan, después


que se ha definido en forma adecuada el
dominio de un algoritmo, en la etapa de prueba
o verificación.
 se deben principalmente a las siguientes
causas:
1. Etapas incorrectas.
2. Secuencia incorrecta de etapas
3. El criterio de elección de un algoritmo debe
hacerse en base a criterios tales como:
a) Que el algoritmo sea simple, es decir, fácil de
entender y de escribir. 10
b) Que el algoritmo sea eficiente.
MÉTODO HEURÍSTICO
 La heurística proporciona un esquema o plan
para abordar los problemas poco conocidos,
mejora la capacidad de crear soluciones y asegura
que el método que se va a usar sea eficiente.
 En la etapa de planificación es donde se tiene la
oportunidad de comparar métodos y seleccionar
el más adecuado.

11
SURGE LA PREGUNTA:
 ¿ Cómo se pueden resolver los problemas para los
que no hay un método establecido o para los
cuales conocemos un algoritmo?.

12
DISEÑO DE UN ALGORITMO

 Un método heurística para diseñar


algoritmo es el denominado DIVIDE AND
CONQUER, el cual es una técnica TOP-
DOWN.
 Este método permite implementar la
segmentación, descomposición de un
problema largo y complejo en problemas
independientes más pequeños y fáciles de
resolver que el problema de partida.
 La técnica consiste en varias etapas. 13
DESCOMPOSICIÓN DEL PROBLEMA DE PARTIDA EN
SUBPROBLEMAS INDEPENDIENTES Y DETERMINACIÓN DE
LAS RELACIONES ENTRE ELLOS.

P1 P2 P3

14
RESOLUCIÓN DE CADA
SUBPROBLEMA
 Siun sub-problema
es grande, por P1

descomposición y
continuando hasta
que resulten de la
descomposición sub -
problemas fácilmente
resolubles.
P1.1 P1.2 P1.3

15
COMPOSICIÓN DE LAS SOLUCIONES DE
LOS SUB- PROBLEMAS PARA LOGRAR LA
SOLUCIÓN FINAL
 El diseño del algoritmo que resuelve un
problema, realizado con esta técnica recibe el
nombre de DISEÑO DESCENDENTE y resulta
en algoritmo muy legibles, claros, fáciles de
entender, seguir y corregir.
 El diseño 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 método se
conoce como:
MÉTODO DE LOS REFINAMIENTOS
SUCESIVOS.
16
UN INGENIERO ES CONVOCADO PARA
CONSTRUIR UN EDIFICIO

CONSTRUCCIÓN
DEL
EDIFICIO

CONFECCICÓN CONTRATACIÓN DIRECCIÓN


COMPRA DE
DE LOS DEL DE LA
MATERIALES
PLANOS PERSONAL OBRA

17
UN SUB- PROBLEMA

CONFECCIÓN
DE LOS
PLANOS

APROBACIÓN ELABORACIÓN APROBACIÓN


DISEÑO DEL
DEL DE LOS DE LOS
ANTEPROYECTO
ANTEPROYECTO PLANOS PLANOS

18
OTRO SUB- PROBLEMA

CONTRATACIÓN
DEL
PERSONAL

ANÁLISIS
PEDIDO DE REDACCIÓN
DE LOS ENTREVISTAS
CURRICULUM DE LOS
CURRÍCULUM PERSONALES
VITAE CONTRATOS
VITAE

19
OTRO SUB- PROBLEMA

COMPRA
DE
MATERIALES

CÁLCULO PEDIDO SELECCIÓN


DE DE DE
MATERIALES PRECIOS PROVEEDORES
20
 Al utilizar el refinamiento por pasos el
diseñador de un algoritmo debe saber
donde detenerse, es decir, debe saber
cuando un paso específico del algoritmo es
lo suficientemente claro para no necesitar
más refinamiento.
 Se necesita CONOCER LAS
CAPACIDADES DE UN PROCESADOR
no sólo para terminar los refinamientos,
sino para dirigir la forma en que el 21
refinamiento avanza.
 Una computadora puede interpretar cualquier
cosa expresadas de manera adecuada en un
lenguaje de programación. Así el diseñador de un
algoritmo de computadora puede orientar los
pasos y la terminación del refinamiento hacia el
tipo de lenguaje que se trate.

22
PROGRAMACIÓN ESTRUCTURADA

 Los principios metodológicos básicos de la


programación estructurada son los de subdividir
el problema inicial o de partida en partes
manejables para su análisis y hacer de esta
manera que se agilice el proceso de entender el
problema y la solución.

23
Básicamente, estas subdivisiones deseadas
(llamadas módulos) deben satisfacer los
siguientes requisitos:
1. Los módulos deben estas jerarquizados.
2. Deben ser pequeños y sencillos.
3. Se deberán utilizar tantos módulos de menor
jerarquía como sea necesario para cumplir con
la restricción de ser pequeños y sencillos.
4. Se deberán usar las estructuras de control y
datos adecuadas para cumplir con el requisito
de pequeños y sencillos.
5. Los módulos deben ser legibles para cualquier
persona aunque tenga solamente
conocimientos elementales de progrmación.

24
DIAGRAMA DE FLUJO

 Un diagrama de flujo es otra técnica de


diseño de algoritmos. Consiste en una
serie de símbolos que denotan acciones,
decisiones o procedimientos que se unen
mediante flechas y conectores.
 Esta representación nos ayudará a
conocer la información que tenemos,
donde la tenemos, que debemos hacer con
ella y como presentarla.
 Debe tener las cualidades de sencillez,
claridad y normalización en su diseño. 25
26

S-ar putea să vă placă și