Está en la página 1de 30

UNIDAD DE APRENDIZAJE 01:

1.1 ALGORITMOS
PROPIEDADES DE UN ALGORITMO

 Secuencialidad
 Ausencia de Ambigüedades
 Generalidad
 Limitaciones
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.
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.
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.
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.
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 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.
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.
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.
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?.
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.
DESCOMPOSICIÓN DEL PROBLEMA DE PARTIDA EN
SUBPROBLEMAS INDEPENDIENTES Y DETERMINACIÓN DE LAS
RELACIONES ENTRE ELLOS.

P1 P2 P3
RESOLUCIÓN DE CADA SUBPROBLEMA

 Si un 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
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.
UN INGENIERO CIVIL 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
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
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
OTRO SUB- PROBLEMA

COMPRA
DE
MATERIALES

CÁLCULO PEDIDO SELECCIÓN


DE DE DE
MATERIALES PRECIOS PROVEEDORES
 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
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.
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.
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
programación.
LENGUAJE DE DISEÑO DE PROGRAMAS

Como la meta es escribir algoritmos que sean


procesados en una computadora, se va a producir un
lenguaje de diseño adecuado.
Se llamará LENGUAJE DE DESCRIPCIÓN DE
PROGRAMAS a la herramienta que permitirá
diseñar programas de codificación.
Este pseudo- lenguaje tiene las siguientes características:
1. Permite expresar de manera informal las estructuras de
control.
2. Permite expresar las ideas en frases del lenguaje propio o
natural.
3. Es similar al lenguaje de programación pero no está ligado a
ninguna regla formal de sintaxis como aquellos.
4. No es un lenguaje compilable
5. Por convención se hace un sangrado en el texto que ayuda a la
percepción visual de la lógica del diseño.
6. Permite expresar diseños de fácil comprensión que podrá
convertirse sin dificultad a código en el lenguaje de
implementación.
7. El pseudo- código generado es más fácil de cambiar y corregir
que el código del programa.
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.

También podría gustarte