Algoritmos Computacionales

Slides:



Advertisements
Presentaciones similares
ALGORITMO Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea y resolver un problema. De un modo más formal,
Advertisements

Algoritmos y Programas
Resolución de Problemas Algoritmos y Programación
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
ALGORITMOS.
Razonamiento algorítmico
Resolución de Problemas Algoritmos y Programación
Técnico en programación de Software
SECRETARÍA DE EDUCACIÓN PÚBLICA SUBSECRETARÍA DE EDUCACIÓN MEDIA SUPERIOR DIRECCIÓN GENERAL DEL BACHILLERATO   ESCUELA PREPARATORIA FEDERAL POR COOPERACIÓN.
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
Introducción a la Computación
IINTRODUCCION A LA CIENCIA DE LA COMPUTACION Y A LA PROGRAMACION
Matemáticas Discretas y Algoritmos
INTRODUCCIÓN A LA COMPUTACIÓN 12va Semana – 19va Sesión Miércoles 18 de Mayo del 2005 Juan José Montero Román
Fundamentos de Programación
Programación de Computadores
Proceso de información en la computadora
FORMULACIÓN DE ALGORITMOS
Fundamentos de programación
ALGORITMOS, CONCEPTOS BASICOS.
Introducción al análisis de algoritmos

LENGUAJE DE PROGRAMACIÓN
PROGRAMACIÓN PROCEDIMENTAL
Tema 6. Conceptos básicos de programación (Repaso) Prof. María Alejandra Quintero Informática Año 2013.
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.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
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
PENSAMIENTO ANALÍTICO SISTÉMICO DAISY KATERINE RODRÍGUEZ DURÁN
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
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ó.
COMPUTO III Ing. Jimmy Ojeda Arnica.
Representación de Algoritmos
Algoritmos y pseudocódigos
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
POR: MÓNICA MARÍA RÚA BLANDÓN
Ing. Rodolfo Junior Miranda Saldaña CIP: Chimbote- 2013
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)
ALGORITMO QUE ES ??.
Elaboración de algoritmos usando lógica de programación
Presente un cuestionario con los aspectos mas importantes sobre los
M.S.C. Ivette Hernández Dávila
Metodología de la programación
TEMA: DISEÑO DE LA SOLUCION INTREGRANTES DE EQUIPO: ERIKA CRUZ MARTINEZ RODOLFO LOPEZ ANOTA LUIS ARMANDO LIÑA QUECHA JOSE FRANCISCO MEZO VARELA LUIS ENRIQUE.
Desarrollo de lógica algorítmica.
Bases Metodológicas de la Programación
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
PRINCIPIOS DE PROGRAMACION
FUNDAMENTOS DE PROGRAMACIÓN
ESTE TERMINO SE DEFINE COMO : UN PROCESO EN EL CUAL SE NOS DESCRIBE UN PROBLEMA (EN LENGUAJE NATURAL), LUEGO DE ESTO SE PLANTEAN POSIBLES RESOLUCIONES.
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.
ELEMENTOS BÁSICOS DE PROGRAMACIÓN EN C# Mtro. José David Uc Salas
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
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.
ACTIVIDADES DE APRENDIZAJE. ABCFHOEPRIAUDTCDAFDAHOELBADTAQTU PERYUIAETNEDNECSEDAUFHVCMNXAOSOS RSZXVGSDACAAERYFNIAEFGFGSAROPARA OQANALSISZAPATERASECUENCIATRTAXZ.
Melissa Victoria Mendiola Peralta.  Los algoritmos son las series de pasos por los cuales se resuelven los problemas.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
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 Computacionales

METODOLOGÍA PARA LA SOLUCION DE PROBLEMAS ADAPTAODS A LA COMPUTADORA

ANÁLISIS DEL PROBLEMA El objetivo del análisis del problema, es ayudar al programador a llegar a una cierta compresión de la naturaleza del mismo. Este análisis supone, en particular la superación de una serie de pasos: Definir el problema con total de precisión. Especificar los datos de partida necesarios para la resolución del mismo (Entrada). Especificar la información que debe proporcionarse al resolverse (Salida).

EJEMPLO: Elaborar el análisis para obtener el área y la longitud de una circunferencia. 1.- Utilizar las fórmulas del área y la circunferencia en función del radio. 2.- Las entradas de datos se reducen al dato correspondiente al radio del círculo. Dada la naturaleza del mismo y el procesamiento al cual lo someteremos, su tipo de dato debe ser un número real. 3.- Las salidas serán dos variables también reales: área y circunferencia. La finalización de la fase de análisis del problema nos llevaría al siguiente resultado: Entradas: Radio del círculo (variable RADIO). Salidas: Superficie del círculo (variable AREA). Circunferencia del círculo (variable CIRCUNFERENCIA). Variables: RADIO, AREA, CIRCUNFERENCIA: tipo real.

DISEÑO DEL ALGORITMO Diseñar un algoritmo puede ser una tarea difícil y su aprendizaje no es Inmediato, ya que requiere una buena dosis de experiencia y creatividad. Hace ya 100 años, un matemático de la talla de Henri Poincare, que no sólo trabajó en temas relacionados con la física, el álgebra y el análisis, sino también sobre la filosofía de la ciencia, trató de explicar sus experiencias personales de cómo un problema, a cuya resolución había dedicado mucho tiempo sin éxito, podía aparecer tiempo después resuelto repentinamente en su cabeza, incluso cuando se estaba dedicando a proyectos distintos. Esto ultimo sin mucho éxito. El periodo que existe entre el análisis de un problema y el diseño de su solución recibe el nombre de periodo de incubación y el proceso mental, que se da durante el mismo sigue siendo un tema de investigación para los psicólogos. Estamos por tanto en el terreno de la inspiración y la madurez mental. Seamos optimistas y pensemos que vamos a tener la capacidad de tener ideas, propias o adquiridas, para desarrollar algoritmos que nos permitan actuar ante los problemas que se nos planteen. Para diseñar algoritmos hay que tener presente los requisitos siguientes: • indicar el orden de realización de cada paso, • estar definido sin ambigüedad y • ser finito

EJEMPLO Averiguar si un número es primo o no, suponiendo que razonamos de la siguiente forma: “Del análisis del hecho de que un número N es primo si sólo puede dividirse por sí mismo y por la unidad, un método que nos puede dar la solución sería dividir sucesivamente el número por 2, 3, 4..., etc. y, según el resultado, podríamos resolver el problema”. Un diseño del mismo sería: 1. Inicio 2. Poner X igual a 2 (X = 2, X, variable que representa a los posibles divisores de N) 3. Dividir N por X (N/X) 4. Si el resultado es entero, entonces N no es primo, y saltar al punto 9 (en caso contrario continuar el proceso en el siguiente punto, 5) 5. Incrementar X en una unidad 6. Si X es menor que N saltar al punto 3 (en caso contrario continuar el proceso en el si 7. Declarar N es primo; 8. Saltar al Fin (punto 10) 9. Declarar N no es primo 10. Fin

DISEÑO DEL ALGORITMO Durante el diseño es posible y aconsejable, realizar comparaciones entre algoritmos que resuelven el mismo problema. La bondad de un algoritmo puede medirse por dos factores: El tiempo que se necesita para ejecutarlo. Para tener una idea aproximada de ello, basta con saber el número de instrucciones de cada tipo necesarias para resolver el problema. Los recursos que se necesitan para implantarlo. Optimizar un algoritmo consiste en introducir modificaciones en él, tendentes a disminuir el tiempo que necesita para resolver el problema o a reducir los recursos que utiliza.

DISEÑO DESCENDENTE O MODULAR Los problemas complejos se pueden resolver más eficazmente cuando se descomponen en subproblemas que sean más fáciles resolver el original. Este método se denomina divide y vencerás y consiste en convertir un problema complejo en otros más simples que, una vez resueltos, en su conjunto nos solucionen el original. Al procedimiento de descomposición de un problema en subproblemas más simples, (llamados módulos) para, a continuación, seguir dividiendo estos subproblemas en otros más simples, se le denomina diseño descendente.

VENTAJAS El problema se comprende más fácilmente al dividirse en módulos o partes más simples. Adelantemos que cuando demos el salto a la programación, utilizaremos esta idea constantemente, de forma que hablaremos también de procedimientos, o subprogramas. Las modificaciones en los módulos son más fáciles, pues estamos ante algoritmos más sencillos. La comprobación del problema se puede realizar más fácilmente, al poder localizar los posibles fallos con mayor precisión.

REFINAMIENTO POR PASOS Durante el diseño, entenderemos por refinamiento por pasos, la metodología por la que en un primer esbozo del algoritmo nos limitamos a señalar o describir un reducido numero de pasos, que deberán ser expresados con mayor detalle posteriormente. Tras esta primera descripción, éstos se especifican con mayor minuciosidad, de forma más extensa y con más pasos específicos. En cada nivel de refinamiento hay que considerar dos fases: ¿Qué hace el módulo? para a continuación responder a ¿Cómo lo hace?. Como es natural, dependiendo de la complejidad del problema se necesitarán diferentes y sucesivos niveles de refinamiento antes de que pueda obtenerse un algoritmo con suficiente nivel de detalle. Así en el Ejemplo 1, del cálculo de la longitud y superficie de un círculo, a pesar de presentar un bajo nivel de complejidad, en su diseño, se puede descomponer en subproblemas más simples: 1) leer datos de entrada, 2) calcular superficie y longitud, 3) escribir resultados.

PROGRAMACIÓN DEL ALGORITMO Una vez que el algoritmo está diseñado y representado, se debe pasar a la fase de resolución práctica del problema con el ordenador. Esta fase se descompone a su vez en las siguientes subfases:

METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS ADAPTADOS A LA COMPUTADORA La solución de un problema por computadora, requiere de siete pasos, dispuestos de tal forma que cada uno es dependiente de los anteriores, lo cual indica que se trata de un proceso complementario y por lo tanto cada paso exige el mismo cuidado en su elaboración. Los siete pasos de la metodología son los siguientes: 1. Definición del problema. 2. Análisis de la solución. 3. Diseño de la solución. 4. Codificación. 5. Prueba y depuración. 6. Documentación. 7. Mantenimiento.

Introducción a los Algoritmos

Algoritmo La resolución de un problema mediante una computadora consiste en, partiendo de una especificación del problema, construir un programa que lo resuelva. Los procesos necesarios para la creación de un programa son: 1. Especificación y análisis del problema en cuestión. 2. Diseño de un algoritmo que resuelva el problema. 3. Codificación del algoritmo en un lenguaje de programación. 4. Validación del programa.

ALGORITMO Un algoritmo es una secuencia ordenada de operaciones tal que su ejecución resuelve determinado problema. La palabra algoritmo viene de Al-Khwarizmi, sobrenombre del matemático árabe del siglo IX Mohámed ben Musa, que alcanzó gran reputación al enunciar paso a paso las reglas para sumar, restar, multiplicar y dividir números con decimales.

LAS CARACTERÍSTICAS DE UN ALGORITMO Debe ser preciso, es decir, indicar el orden de realización de cada paso. Debe estar definido, esto es, si se ejecuta varias veces partiendo de las mismas condiciones iniciales debe obtenerse siempre el mismo resultado. Debe ser finito (debe tener un número finito de pasos). Debe ser independiente del lenguaje de programación que se emplee para implementarlo.

CÓMO ESCRIBIR UN ALGORITMO Un algoritmo debe escribirse sin ceñirse a las reglas de un lenguaje. Existen varias formas para describir las operaciones de las que consta un algoritmo: Descripción textual: consiste en describir los pasos de forma narrativa. Lista de operaciones: es similar al texto, pero numerando los pasos, utilizando variables, etc. Es la descripción que se ha empleado para el algoritmo de Euclides. Diagramas de Flujo: son una representación gráfica en la que se utilizan cajas, rombos, flechas y otros símbolos para indicar los pasos del algoritmo. Pseudocódigo: se utilizan palabras clave para identificar las estructuras del algoritmo, como alternativas, repeticiones, etc.