SlideShare uma empresa Scribd logo
1 de 27
ALGORITMOS
ALGORITMOS 
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.
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. 
P 
P1 P2 P3
RESOLUCIÓN DE CADA 
SUBPROBLEMA 
Si un sub-problema es 
grande, por 
descomposición y 
continuando hasta que 
resulten de la 
descomposición sub 
-problemas fácilmente 
resolubles. 
P1 
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 ES CONVOCADO PARA 
CONSTRUIR UN EDIFICIO 
CONSTRUCCIÓN 
DEL 
EDIFICIO 
CONFECCICÓN 
DE LOS 
PLANOS 
CONTRATACIÓN 
DEL 
PERSONAL 
COMPRA DE 
MATERIALES 
DIRECCIÓN 
DE LA 
OBRA
UN SUB- PROBLEMA 
CONFECCIÓN 
DE LOS 
PLANOS 
DISEÑO DEL 
ANTEPROYECTO 
APROBACIÓN 
DEL 
ANTEPROYECTO 
ELABORACIÓN 
DE LOS 
PLANOS 
APROBACIÓN 
DE LOS 
PLANOS
OTRO SUB- PROBLEMA 
CONTRATACIÓN 
DEL 
PERSONAL 
PEDIDO DE 
CURRICULUM 
VITAE 
ANÁLISIS 
DE LOS 
CURRÍCULUM 
VITAE 
ENTREVISTAS 
PERSONALES 
REDACCIÓN 
DE LOS 
CONTRATOS
OTRO SUB- PROBLEMA 
COMPRA 
DE 
MATERIALES 
CÁLCULO 
DE 
MATERIALES 
PEDIDO 
DE 
PRECIOS 
SELECCIÓN 
DE 
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 
progrmació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 
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.

Mais conteúdo relacionado

Mais procurados

Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
eduardzavala93
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
Lesly Gonzalez
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
Lesly Gonzalez
 

Mais procurados (19)

ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
 
Presentación de computación
Presentación de computaciónPresentación de computación
Presentación de computación
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmo
 
Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1Clase2 algoritmos formas-representacionalgoritmicas1
Clase2 algoritmos formas-representacionalgoritmicas1
 
Pseudocodigos, algoritmos y diagramas de flujo
Pseudocodigos, algoritmos y diagramas de flujoPseudocodigos, algoritmos y diagramas de flujo
Pseudocodigos, algoritmos y diagramas de flujo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Pseudocodigo - Algoritmos - Diagramas de flujo
Pseudocodigo - Algoritmos - Diagramas de flujoPseudocodigo - Algoritmos - Diagramas de flujo
Pseudocodigo - Algoritmos - Diagramas de flujo
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Resolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraResolucion De Problemas Con Computadora
Resolucion De Problemas Con Computadora
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Los algoritmos
Los    algoritmosLos    algoritmos
Los algoritmos
 
Pasos Para Resolver Un Problema Utilizando Un Pc
Pasos  Para Resolver Un Problema  Utilizando Un PcPasos  Para Resolver Un Problema  Utilizando Un Pc
Pasos Para Resolver Un Problema Utilizando Un Pc
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
 
Unidad 1 margie
Unidad 1 margieUnidad 1 margie
Unidad 1 margie
 

Semelhante a Algoritmos

PRINCIPIOS_ALGORITMOS_Lectura_2.pdf
PRINCIPIOS_ALGORITMOS_Lectura_2.pdfPRINCIPIOS_ALGORITMOS_Lectura_2.pdf
PRINCIPIOS_ALGORITMOS_Lectura_2.pdf
pitechu
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
brayan_2012
 
Principios de programacion
Principios de programacionPrincipios de programacion
Principios de programacion
rulo182
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
12mary
 

Semelhante a Algoritmos (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
PRINCIPIOS_ALGORITMOS_Lectura_2.pdf
PRINCIPIOS_ALGORITMOS_Lectura_2.pdfPRINCIPIOS_ALGORITMOS_Lectura_2.pdf
PRINCIPIOS_ALGORITMOS_Lectura_2.pdf
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
ALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWAREALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWARE
 
01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos
 
Algoritmica terminado
Algoritmica terminadoAlgoritmica terminado
Algoritmica terminado
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Introduccion a-la-programacion-1234039307400760-3
Introduccion a-la-programacion-1234039307400760-3Introduccion a-la-programacion-1234039307400760-3
Introduccion a-la-programacion-1234039307400760-3
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptx
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
ALGORITMOS
ALGORITMOS ALGORITMOS
ALGORITMOS
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Principios de programacion
Principios de programacionPrincipios de programacion
Principios de programacion
 
ALGORITMOS
ALGORITMOSALGORITMOS
ALGORITMOS
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3
 
U1
U1U1
U1
 

Último

RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 

Algoritmos

  • 2. ALGORITMOS 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.
  • 3. PROPIEDADES DE UN ALGORITMO Secuencialidad Ausencia de Ambigüedades Generalidad Limitaciones
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. 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.
  • 12. 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?.
  • 13. 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.
  • 14. DESCOMPOSICIÓN DEL PROBLEMA DE PARTIDA EN SUBPROBLEMAS INDEPENDIENTES Y DETERMINACIÓN DE LAS RELACIONES ENTRE ELLOS. P P1 P2 P3
  • 15. RESOLUCIÓN DE CADA SUBPROBLEMA Si un sub-problema es grande, por descomposición y continuando hasta que resulten de la descomposición sub -problemas fácilmente resolubles. P1 P1.1 P1.2 P1.3
  • 16. 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.
  • 17. UN INGENIERO ES CONVOCADO PARA CONSTRUIR UN EDIFICIO CONSTRUCCIÓN DEL EDIFICIO CONFECCICÓN DE LOS PLANOS CONTRATACIÓN DEL PERSONAL COMPRA DE MATERIALES DIRECCIÓN DE LA OBRA
  • 18. UN SUB- PROBLEMA CONFECCIÓN DE LOS PLANOS DISEÑO DEL ANTEPROYECTO APROBACIÓN DEL ANTEPROYECTO ELABORACIÓN DE LOS PLANOS APROBACIÓN DE LOS PLANOS
  • 19. OTRO SUB- PROBLEMA CONTRATACIÓN DEL PERSONAL PEDIDO DE CURRICULUM VITAE ANÁLISIS DE LOS CURRÍCULUM VITAE ENTREVISTAS PERSONALES REDACCIÓN DE LOS CONTRATOS
  • 20. OTRO SUB- PROBLEMA COMPRA DE MATERIALES CÁLCULO DE MATERIALES PEDIDO DE PRECIOS SELECCIÓN DE PROVEEDORES
  • 21. 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.
  • 22. 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.
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 26. Este pseudo- lenguaje tiene las siguientes características: 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 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.
  • 27. 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.