ALGORITMOS.

Slides:



Advertisements
Presentaciones similares
Resolución de Problemas Algoritmos y Programación
Advertisements

ANÁLISIS DE REQUERIMIENTOS
Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
Secuencia finita, ordenada y lógica de instrucciones (ó pasos), los cuales permiten realizar una ó varias tareas.
CARRERA: INGENIERIA CIVIL UNI-RUACS
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Razonamiento algorítmico
¿Cómo hacer para que una máquina comprenda el LN?
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Resolución de Problemas Algoritmos y Programación
Diseño orientado al flujo de datos
FUNDAMENTOS DE PROGRAMACIÓN
INFORMÁTICA II.
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Metodología de la Programación
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
METODOLOGIA DE LA PROGRAMACION
IINTRODUCCION A LA CIENCIA DE LA COMPUTACION Y A LA PROGRAMACION
Matemáticas Discretas y Algoritmos
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Proceso de información en la computadora
FORMULACIÓN DE ALGORITMOS
Diagramas de procesos Unidad V
Fundamentos de programación
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
Algoritmos.
Tema 1 Entorno de la programación. Conceptos elementales Algoritmo  Secuencia ordenada de pasos exentos de ambigüedad que conduce a la resolución de.
LENGUAJE DE PROGRAMACIÓN
PROGRAMACIÓN PROCEDIMENTAL
Tae Programación WEB Ventajas de los ordenadores ( compus pa los cuates ) Que es la Programación? Que es un lenguaje de programación? Algoritmo Que es.
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
Fundamentos de programación Organización de una computadora.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
TEMAS PRINCIPALES. ALGORITMOS. CONCEPTOS El algoritmo es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
CONCEPTOS BÁSICOS FUNDACIÓN UNIVERSITARIA LOS LIBERTADORES Fredys Alberto Simanca Herrera Programación Estructurada Semana Bogotá, D.C
Metodología para solución de problemas
Algoritmo: es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
FUNDAMENTOS DE PROGRAMACION
Metodología para la construcción de programas
ALGORITMOS La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió.
Tema 6. Introducción a la programación
COMPUTO III Ing. Jimmy Ojeda Arnica.
Representación de Algoritmos
Algoritmos y pseudocódigos
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Luis Felipe Hoyos Corradine 1004 Laura Manuela Mancera
Nuestra herramienta mental más importante para competir con la complejidad es la abstracción. Por tanto, un problema no deberá considerarse inmediatamente.
Santiago Pachón Pedroza Jesús Arley Bolaños 1002
DEV- C++ ·include <iostream> Int x x=x+2(x)
ALGORITMOS PRESENTADO POR: FERNANDA LEURO TATIANA CONTRERAS 1004
ALGORITMO QUE ES ??.
Elaboración de algoritmos usando lógica de programación
Diagrama de Flujo Diagrama de flujo sencillo con los pasos a seguir si una lámpara no funciona. El diagrama de flujo o diagrama de actividades es la representación.
Metodología de la programación
Desarrollo de lógica algorítmica.
Algoritmos Programación
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
Ciclo de desarrollo del software
FUNDAMENTOS DE PROGRAMACIÓN
Algorítmica y Programación
Objetivos de la prueba Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga más probabilidad.
Programación I Prof. Carolina Cols. Algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
Algoritmos Computacionales
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Ing. José David Ortiz Salas
ALGORITMOS Y PROGRAMAS. OBJETIVOS  Resolver problemas mediante la especificación algorítmica.  Proporcionar los procedimientos y técnicas para el desarrollo.
Transcripción de la presentación:

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: Ignorarlo porque es improbable y quizás nunca ocurra. Restringir el dominio del algoritmo para excluirlo. 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: Etapas incorrectas. Secuencia incorrecta de etapas El criterio de elección de un algoritmo debe hacerse en base a criterios tales como: Que el algoritmo sea simple, es decir, fácil de entender y de escribir. 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.

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.

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

UN SUB- PROBLEMA

OTRO SUB- PROBLEMA

OTRO SUB- PROBLEMA

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: Los módulos deben estas jerarquizados. Deben ser pequeños y sencillos. 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. Se deberán usar las estructuras de control y datos adecuadas para cumplir con el requisito de pequeños y sencillos. 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: Permite expresar de manera informal las estructuras de Permite expresar las ideas en frases del lenguaje propio o natural. Es similar al lenguaje de programación pero no está ligado a ninguna regla formal de sintaxis como aquellos. No es un lenguaje compilable Por convención se hace un sangrado en el texto que ayuda a la percepción visual de la lógica del diseño. Permite expresar diseños de fácil comprensión que podrá convertirse sin dificultad a código en el lenguaje de implementación. 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.