miércoles, 26 de noviembre de 2008

ING IVAN MARTIN--ALGORITMOS--

buenas jovenes...necesito que buscan y se estudien la informacion que encuentren sobre algoritmos...para que se usan, cual es la finalidad de los algoritmos, que tipos de algoritmos hay...cualquiera que sea el medio...libros u otros favor coloquen la fuente de la informacion para corroborarla es decir si es informacion de internet me dan la pagina y si es informacion de un libro favor la bibliografia...
en esta misma semana les colocare informacion adicional y observaciones de las asignaciones, les puedo adelantar que estan muy escuetas y con informacion muy dispersa deben centrarse en lo que se les esta preguntando, recuerden que este tipo de asignaturas E-learnig o aprendizaje por internet sugiere mayor exigencia por parte de los estudiantes en el uso de las herramientas de internet cuando no se tienen estas herramientas deben buscarla y apoyarse sus compañeros.

61 comentarios:

  1. Una pregunta Profesor. que dias esta usted en la universidad?, o de que forma podemos saber como vamos con las evalueciones, ya tiene usted esas notas?.

    el correo de la seccion 09 es: unefabins10@gmail.com

    -----------------------------------
    Pedro Perez
    Seccion 09
    basico ingenieria nocturno

    ResponderEliminar
  2. BUENAS NOCHES ING.MARTIN

    Aquí un buen material que obtuve en Monografía.com. Lo obtendrá en el presente link:

    http://rapidshare.de/files/41034104/Programacion_I.doc.html


    ALUMNO:



    JOEL MIJARES
    CI 11.639.315
    Ing. Sec9. Noct.

    ResponderEliminar
  3. Buenas Tardes Profesor,
    Alumna: Ladiz E. Perez Felibertt
    C.I:11.057.538
    4to Semestre de Ing. Seccion 10

    Mi investigacion

    ¿Que es un algoritmo?
    Un Algoritmo es un sistema o conjunto de instrucciones por el cual se llega a una solución, teniendo en cuenta que debe de ser definido, finito y preciso. Es decir, es un proceso de pasos que describen de manera exacta y secuencial como se realiza un conjunto de actividades para así resolver un determinado tipo de problema o procedimiento.
    Un algoritmo cuenta con las siguientes características:
    • Ser definido: Donde cada paso debe indicar la acción a realizar.
    • Ser finito: Todo algoritmo tiene un fin.
    • Tener una o más entradas: Todo algoritmo requiere de datos a ingresar para realizar la actividad.
    • Tener una o más salidas: Debe siempre devolver uno ó más resultado, ya que de nada sirve un algoritmo que hace algo y nunca sabemos que fue.
    • Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso.
    Normalmente los algoritmos son utilizados en todo momento de la vida cotidiana, la persona sin darse cuenta muchas veces emplea pasos de manera secuencia para realizar una actividad, es decir que al emplear este tipo de método están utilizando un algoritmo.
    El algoritmo se utiliza en la matemática, computación, ingeniería, hasta en un simple proceso de elaboración de un manual se utiliza un algoritmo.
    Este se utiliza con la finalidad de resolver de una manera organizada y eficaz una tarea. Es decir, ellos algoritmos se encargan de transformar procesos complejos en una secuencia de instrucciones sencillas para que puedan ser comprendidas por los equipos informáticos.
    Existen diversos tipos de algoritmos, en función de la técnica de diseño utilizada:
    - Divide y Vencerás: la clave de este tipo de algoritmo es dividir el problema en pequeños problemas independientes. Entonces, encuentra una solución para cada problema de manera aislada, para, después unir todas las soluciones, logrando así¬ la solución al problema completo.
    - Algoritmos Avariciosos: este tipo de algoritmo trata de encontrar, no sólo una solución para cada problema, sino la mejor solución, la solución ideal.
    - Ramificación y Poda: se construye un árbol de sub-problemas al problema principal, y se sigue cada rama hasta que el problema de esa rama es resuelto.
    - Vuelta Atrás: similar al algoritmo de ramificación y poda.
    - Algoritmos Probabilí¬sticas
    - Programación Dinámica: este tipo de algoritmo recuerda resultados anteriores, y los utiliza para acelerar el proceso de resolución del problema actual.
    Por otro lado, y de manera general, los algoritmos pueden ser divididos en dos tipos principales. En primer lugar, estarí¬an los algoritmos en serie, en los que los procesos se van ejecutando un después de otro, como formando una larga serie. Y, en segundo lugar, estarí-an los algoritmos paralelos, en los que dos o más procesos se ejecutan al mismo tiempo.
    Para poder valorar si un algoritmo es bueno o no, se suelen estudiar la memoria y el tiempo que consume, por ello el análisis de algoritmos se ha desarrollado hasta lograr valores que especifiquen el gasto de tiempo y memoria, en función del tamaño de los valores de entrada del algoritmo.

    Bibliografía
    http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml
    http://tipolisto.com/Informatica/Algoritmo.html

    ResponderEliminar
  4. buenas tardes profesor aqui le envio la tarea
    Angelica Mata Ovalles
    c.i.15.834.915
    seccion 10
    algoritmo

    ResponderEliminar
  5. buenas tardes profesor es luz marina adames
    C.i. 18.219.477
    seccion 10
    algoritmo y tipos

    ResponderEliminar
  6. Luis Arturo Fernández. C.I.: 8.830.380. 4to Semestre de Ing. Sección 10

    Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado.
    Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema.
    En la actualidad, los algoritmos están de plena actualidad por su utilización en las ciencias informáticas a la hora de la programación de ordenadores
    Tipos de algoritmos según su función:
     Algoritmo de ordenamiento (Algoritmos de ordenamiento interno, Algoritmos de ordenamiento externo, Algoritmos de ordenación natural, Algoritmos de ordenación no natural, etc.)
     Algoritmo de búsqueda

    Algoritmo de ordenamiento: es un algoritmo que pone elementos de una lista en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación de la entrada que satisfaga la relación de orden dada.

    Algoritmo de búsqueda: es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Es decir, consiste en solucionar un problema de existencia o no de un elemento determinado en un conjunto finito de elementos y al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no.
    En el caso de existir el algoritmo podría proporcionar la localización del elemento dentro del conjunto.

    El algoritmo se emplea en la vida cotidiana en multitud de ocasiones para resolver diversos problemas.

    Bibliografía
    http://es.wikipedia.org/wiki/Algoritmos
    http://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento
    http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda

    ResponderEliminar
  7. Edward Yeguez
    C.I. 18.137.733
    Buenas tardes profesor
    aqui le estoy enviando la informacion.
    Algoritmo

    ResponderEliminar
  8. buenas tardes profesor es luz marina adames
    C.i. 18.219.477
    seccion 10
    algoritmo y tipos
    http://rapidshare.com/files/169589159/Algoritmo_luz_marina.doc
    algoritmo y tipos

    ResponderEliminar
  9. Edward Yeguez
    C.I. 18.137.733
    Buenas tardes profesor
    aqui le estoy enviando la informacion.de nuevo por problema en el primero.
    Algoritmo_edward

    ResponderEliminar
  10. Disculpe profesor aqui le envio de nuevo mi trabajo.
    disculpe la molestia
    Buenas tardes profesor aqui le envio la tarea
    Angelica Mata Ovalles
    c.i.15.834.915
    seccion 10

    http://rapidshare.com/files/169570840/Algoritmo_Angelica.doc

    Algoritmo

    ResponderEliminar
  11. Buenas tardes profesor,

    Alumna Magaly Romero CI 7.994.019
    4to semestre Ing. Seccion 10

    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ó un tratado sobre manipulación de números y ecuaciones en el siglo IX.

    Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.

    Existen dos tipos y son llamados así por su naturaleza:
     Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
     Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.

    El computador es una máquina que por sí sola no puede hacer nada, necesita ser programada, es decir, introducirle instrucciones u ordenes que le digan lo que tiene que hacer. Un programa es la solución a un problema inicial, así que todo comienza allí: en el Problema. El proceso de programación es el siguiente: Dado un determinado problema el programador debe idear una solución y expresarla usando un algoritmo (aquí es donde entra a jugar); luego de esto, debe codificarlo en un determinado lenguaje de programación y por último ejecutar el programa en el computador, el cual refleja una solución al problema inicial. Esto es a grandes rasgos lo que hace el programador de computadores.

    Características de un buen algoritmo son:
     Debe tener un punto particular de inicio.
     Debe ser definido, no debe permitir dobles interpretaciones.
     Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.
     Debe ser finito en tamaño y tiempo de ejecución.

    Técnicas de diseño.

    Top Down: conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al problema.
     Consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información.

     Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa.

    Diagrama de Flujo: Un diagrama de flujo es la representación gráfica de un algoritmo.
    También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.

    Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos.


    Seudo código, diagramas estructurados y estructuras algorítmicas:
    o Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa.
    o En esencia, el Seudo código se puede definir como un lenguaje de
    o Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado.
    o El Seudo código utiliza palabras que indican el proceso a realizar.



    Dicha informacion la extraje de Unefa Chuao

    ResponderEliminar
  12. Buenas Tardes profesor,

    Alumno Julio Cesar Martinez CI11.641.219 4to semestre de Ing. Seccion 10


    Algoritmo: Es un conjunto de símbolos junto a un conjunto de reglas para combinar dichos símbolos que se usan para expresar programas. Constan de un léxico, una sintaxis y una semántica.

    Donde dicho algoritmo se puede decir, que consta de los siguientes elementos:
     Léxico: Conjunto de símbolos permitidos o vocabulario.
     Sintaxis: Reglas que indican cómo realizar las construcciones del lenguaje.
     Semántica: Reglas que permiten determinar el significado de cualquier construcción del lenguaje.

    Es un conjunto de reglas para resolver determinado problema describiendo de forma lógica su solución.

    Tipos de algoritmo:

    Narrado: Este algoritmo es caracterizado porque sigue un proceso de ejecución común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada.

    Pseudocódigo: Es una técnica para diseño de programas que permite definir las estructuras de datos, las operaciones que se aplicarán a los datos y la lógica que tendrá el programa de computadora para solucionar un determinado problema. Utiliza un pseudo-lenguaje muy parecido a nuestro idioma, pero que respeta las directrices y los elementos de los lenguajes de programación. Se concibió para superar las dos principales desventajas de los flujogramas: lento de crear y difícil de modificar sin un nuevo redibujo.

    Diagrama de Flujo: Son la representación gráfica de la solución algorítmica de un problema. Para diseñarlos se utilizan determinados símbolos o figuras que representan una acción dentro del procedimiento. Utilizan unos símbolos normalizados, con los pasos del algoritmo escritos en el símbolo adecuado y los símbolos unidos con flechas, denominadas líneas de flujo, que indican el orden en que los pasos deben ser ejecutados.

    Estructura de un algoritmo:
    1. Tiene un inicio.
    2. Una lectura o entrada de datos.
    3. El proceso de datos.
    4. Una salida de información.
    5. Un final.

    Un algoritmo se usa en todo momento de la vida, hasta el más mínimo proceso que un ser humano haga nada mas que con realizar una secuencia de paso esta realizo un algoritmo. El algoritmo se puede utilizar desde la informática, matemática, hasta un simple proceso domestico como el cocinar.

    ResponderEliminar
  13. Buenas Noches Profesor
    Nahir Ramos C.I:V-7993322
    sección 10 Ing. nocturno
    envío respuesta a su asignación:

    Algoritmo: Conjunto de operaciones que se utilizan para resolver un problema específico. En este conjunto de instrucciones se indica la secuencia de operaciones que se deben realizar para, a partir de los datos de entrada, obtener el resultado buscado. El concepto de algoritmo es anterior a los ordenadores, y ampliamente utilizado en el mundo de la ciencia para la resolución metódica de problemas. Sin embargo, con la aparición de los ordenadores se comprobó que era una herramienta ideal, ya que cualquier algoritmo puede transformarse en un programa informático.

    Características del algoritmo: Tiene que ser finito (con un final), preciso (detallar el orden de las operaciones a realizar) y unívoco (al aplicar el algoritmo a los mismos datos de entrada, siempre se obtendrá el mismo resultado a la salida).

    Clasificación de los Algoritmos:

    Aleatorios:
    Estos algoritmos pretenden llevar a cabo la exploración de manera aleatoria, . Estos algoritmos son muy fáciles de implementar, pero tienen muy poca efectividad ya que el procesamiento de la información obtenida es muy poca o nula.

    Ruta predeterminada:
    Aquí se pretende presentar una ruta inicial a seguir. Esto se hace sucesivamente hasta lograr terminar con la exploración o la búsqueda. Este tipo de algoritmos suele tener mayor efectividad ya que la ruta predeterminada se puede orientar hacia el punto que se tenga como objetivo de tal forma que siempre se trate de ir en línea recta hacia el objetivo.

    Procesamiento de información:
    Este tipo de algoritmos es el más efectivo. Desde un principio se trata de alcanzar el objetivo directamente como en el caso de una ruta predeterminada.
    TIPOS DE ALGORITMOS
    Existen dos tipos y son llamados así por su naturaleza:
    1. Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
    2. Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.

    Lenguajes Algorítmicos
    Un Lenguaje algorítmico es una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso.



    Tipos de Lenguajes Algorítmicos
    Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo).


    No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).
    INICIO
    Edad: Entero
    ESCRIBA “cual es tu edad?”
    Lea Edad
    SI Edad >=18 entonces
    ESCRIBA “Eres mayor de Edad”
    FINSI
    ESCRIBA “fin del algoritmo”
    FIN
    Metodología para la solución de problemas por medio de computadora
    Definición del Problema
    Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.


    Análisis del Problema
    Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
    Los datos de entrada.
    Cual es la información que se desea producir (salida)
    Los métodos y fórmulas que se necesitan para procesar los datos.
    Una recomendación muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

    BIBLIOGRAFIA

    http://boards4.melodysoft.com/app?ID=01EDII06&msg=13&DOC=21

    http://boards4.melodysoft.com/app?ID=01EDII06&msg=14&DOC=21

    http://www.desarrolloweb.com/articulos/2143.php

    http://html.rincondelvago.com/diseno-estructurado-de-algoritmos.html

    ResponderEliminar
  14. Algoritmo: es un conjunto de pasos precisos, definidos y finitos que conducen a la solución de un problema.

    El término algoritmo se usa en la informática para describir un método problema-solución conveniente para la aplicación en un programa de computadora. Los algoritmos son los materiales de informática, son los objetos centrales de estudio para muchos, si no la mayoría, de las áreas de campo.

    Características de los algoritmos:
    El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:

    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".

    Técnicas para la formulación de algoritmos
    Las dos herramientas utilizadas comúnmente para diseñar algoritmos son:
     Diagrama de Flujo
     Pseuducodigo
    Diagrama de Flujo.
    Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados. Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos.

    Recomendaciones para el diseño de Diagramas de Flujo
     Se deben se usar solamente líneas de flujo horizontal y/o vertical.
     Se debe evitar el cruce de líneas utilizando los conectores.
     Se deben usar conectores solo cuando sea necesario.
     No deben quedar líneas de flujo son conectar.
     Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.
     Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.

    Pseudocodigo.

    Lenguaje de especificación, mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.

    Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
    Tipos de algoritmos:

    Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.

    Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.

    Bibliografía

    http://www.monografias.com/trabajos59/concepto-algoritmos/concepto-algoritmos.shtml
    http://es.wikipedia.org/wiki/Algoritmo
    http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml
    http://boards4.melodysoft.com/app?ID=2004BFDP0405&msg=22&DOC=101



    Alumno: Pablo León Salazar
    C.I:11.061.546
    4to Semestre de Ing. Sección 10

    ResponderEliminar
  15. Eduardo Rivero
    CI: 8.528.094
    Sección 10

    ALGORITMO

    Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra "algoritmo" deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las palabras: Algoritmi dicit.
    un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia..
    El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema (método), el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.
    Un algoritmo es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
    1. Preciso: implica el orden de realización de cada uno de los pasos
    2. Definido: si se sigue dos veces, se obtiene el mismo resultado
    3. Finito: Tiene un numero determinado de pasos, implica que tiene un fin,

    Importancia
    La importancia de un algoritmo radica en mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos o de otro tipo. Al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida, comportándose como una caja negra. Sin embargo, no toda caja negra que convierta una entrada en una salida se puede considerar un algoritmo: para que un algoritmo pueda ser considerado como tal, debe ser una secuencia ordenada, finita y definida (formalización de su comportamiento) de instrucciones. De este modo se puede seguir y predecir el comportamiento del algoritmo para cualquier entrada posible (salvo algoritmos probabilistas, que tiene usualmente una salida distinta), a partir del seguimiento de esa secuencia de instrucciones, que como es ordenada y definida, no da lugar a ambigüedades y puede seguirse su traza.

    Pasos para Realizar un Algoritmo
    - Análisis previo del problema.
    - Primera visión del método de resolución.
    - Descomposición en módulos.
    - (Programación estructurada).
    - Búsqueda de soluciones parciales.
    - Ensamblaje de soluciones finales.
    Un organigrama o diagrama de flujos es una representación semigráfica del algoritmo en cuestión. Esto nos facilita la visión descriptiva de la ejecución del programa, así como la generación de la traza del algoritmo.
    Características de los algoritmos [editar]
    El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:
    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".

    Tipos de algoritmos según su función [editar]
    • Algoritmo de ordenamiento
    • Algoritmo de búsqueda
    En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.
    Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.

    Formas de Expresar un Algoritmo
    1. Formulas
    2. Lenguaje natural
    3. Pseudo código
    4. Diagramas de flujo,Norte-Sur,Top-Down
    5. Lenguajes de Programación

    Fórmulas


    Lenguaje Natural
    Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural..


    Pseudocódigo [editar]
    Artículo principal: Pseudocódigo
    Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un codigo al que aunque es entendible no se aplica al proceso que debe realizar la maquina.
    Un pseudocódigo (falso lenguaje), es una serie de normas léxicas y gramaticales parecidas a la mayoría de los lenguajes de programación, pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniería de software.
    Ventajas de Pseudocódigo
    1. Permite representar de forma fácil operaciones repetitivas complejas.
    2. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal.
    3. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del programa.
    4. En los procesos de aprendizaje de los alumnos de programación, estos están más cerca del paso siguiente (codificación en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo).
    5. Mejora la claridad de la solución de un problema.

    Ejemplo de un programa en pseudocódgo
    inicio
    leer a,b,c
    calcular
    escribir perímetro
    fin

    Diagrama de Flujo
    Un diagrama de flujo es una forma más tradicional de especificar los detalles algorítmicos de un proceso y constituye la representación gráfica de un proceso multifactorial. Se utiliza principalmente en programación, economía y procesos industriales, pasando también a partir de estas disciplinas a formar parte fundamental de otras, como la psicología cognitiva; estos diagramas utilizan una serie de símbolos con significados especiales. Son la representación gráfica de los pasos de un proceso, que se realiza para entenderlo mejor. Son modelos tecnológicos utilizados para comprender los rudimentos de la programación lineal.
    Un diagrama de flujo es la representación gráfica del flujo o secuencia de rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las unidades involucradas y los responsables de su ejecución; en pocas palabras es la representación simbólica o pictórica de un procedimiento administrativo.


    Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
    Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.
    Ventajas de los diagramas de flujo
    • Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.
    • Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los re-procesos , los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.
    • Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.
    • Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.

    Máquina de Turing [editar]
    Artículo principal: Máquina de Turing
    La máquina de Turing es un modelo matemático, diseñado por Alan Turing, que formaliza el concepto de algoritmo. A este modelo se le refiere comúnmente como la "descripción de más bajo nivel" por el hecho de que no utiliza ninguna expresión coloquial.
    La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a:
    • avanzar el cabezal lector/escritor hacia la derecha.
    • avanzar el cabezal lector/escritor hacia la izquierda.
    El cómputo es determinado a partir de una tabla de estados de la forma:
    (estado, valor) (nuevo estado, nuevo valor, dirección)
    Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina y el valor a ser escrito en la cinta.
    Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz de realizar.

    Estructuras de control en un algoritmo [editar]
    Como se había mencionado antes, cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por ejemplo, considere la instrucción "Reemplace el valor de la variable x por el valor de la variable y"; algunas de las posibles sintaxis para indicar lo anterior podrían ser:
    • asigne a el valor de



    Sin embargo, independientemente de estas diferencias, muchos autores consideran tres estructuras de control para desarrollar los procedimientos:
    Secuencial [editar]
    Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo.
    Instrucción1
    Instrucción2
    Instrucción3

    Instrucciónn
    Selectiva [editar]
    La instrucción selectiva determina si una determinada instrucción se ejecuta o no, según el cumplimiento de una condición P.


    Diagrama de flujo que muestra el funcionamiento de la instrucción condicional
    si P entonces
    Instrucciones1
    fin si
    La condición P es una variable booleana o una función reducible a booleana (lógica, Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es así, ésta no se ejecuta.
    Selectiva doble (alternativa) [editar]
    La instrucción selectiva realiza una instrucción de dos posibles, según el cumplimiento de una condición P.


    Diagrama de flujo que muestra el funcionamiento de la instrucción condicional
    si P entonces
    Instrucciones1
    si no
    Instrucciones2
    fin si
    La condición P es una variable booleana o una función reducible a booleana (lógica, Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es así, entonces se ejecuta Instrucciones2.
    Selectiva múltiple [editar]
    También es común el uso de una selección múltiple que equivaldría a anidar varias funciones de selección.
    si Condición1 entonces
    Instrucciones1
    si no si Condición2 entonces
    Instrucciones2

    si no si Condiciónn entonces
    Instruccionesn - 1
    si no
    Instruccionesn
    fin si
    En este caso hay una serie de condiciones que tienen que ser mutuamente excluyentes, si una de ellas se cumple las demás tienen que ser falsas necesariamente, hay un caso si no que será cierto cuando las demás condiciones sean falsas.
    En esta estructura si Condición1 es cierta, entonces se ejecuta sólo Instrucciones1. En general, si Condicióni es verdadera, entonces sólo se ejecuta Instruccionesi
    Selectiva múltiple-Casos [editar]
    Una construcción similar a la anterior (equivalente en algunos casos) es la que se muestra a continuación.
    seleccionar Indicador
    caso Valor1:
    Instrucciones1
    caso Valor2:
    Instrucciones2

    caso Valorn-1:
    Instruccionesn-1
    [en otro caso:
    Instruccionesn]
    Fin seleccionar Indicador
    En este caso hay un Indicador es una variable o una función cuyo valor es comparado en cada caso con los valores "Valori", si en algún caso coinciden ambos valores, entonces se ejecutarán las Instruccionesi correspondientes. La sección en otro caso es análoga a la sección si no del ejemplo anterior.
    Iterativa [editar]
    Las instrucciones iterativas abren la posibilidad de realizar una secuencia de instrucciones más de una vez.


    Diagrama de flujo que muestra el funcionamiento de la instrucción mientras
    mientras P hacer
    Instrucciones
    fin mientras
    El bucle se repite mientras la condición P sea cierta, si al llegar por primera vez al bucle mientras la condición es falsa, el cuerpo del bucle no se ejecuta ninguna vez.
    Existen otras variantes que se derivan a partir de la anterior. La estructura de control hacer se utiliza cuando es necesario que las instrucciones de una estructura mientras se ejecuten al menos una vez:
    hacer
    Instrucciones
    mientras P
    La estructura anterior equivaldría a escribir
    Instrucciones
    mientras P hacer
    Instrucciones
    fin mientras
    Una estructura de control muy común es el ciclo para, la cual se usa cuando se desea iterar sobre sobre un índice i (por convención se usa i, sin embargo se puede usar cualquier identificador):
    para hasta n hacer
    Instrucciones
    fin para
    la cual se define como

    mientras hacer
    Instrucciones

    fin mientras
    Por último, también es común usar la estructura de control para cada. Esta sentencia se usa cuando se tiene una lista o un conjunto L y se quiere iterar por cada uno de sus elementos:
    para cada hacer
    Instrucciones
    fin para
    Si asumimos que los elementos de L son , entonces esta sentencia equivaldría a
    para hasta n hacer

    Instrucciones
    fin para
    Sin embargo, en la práctica existen mejores formas de implementar esta instrucción dependiendo del problema.
    Es importante recalcar que el pseudocódigo no es un lenguaje estandarizado. Eso significa que diferentes autores podrían dar otras estructuras de control o bien usar estas mismas estructuras, pero con una notación diferente. Sin embargo, las funciones matemáticas y lógicas toman el significado usual que tienen en matemática y lógica, con las mismas expresiones.

    Programación Estructurada
    La programación estructurada es una forma de escribir programación de computadora de forma clara, para ello utiliza únicamente tres estructuras: secuencial, selectiva e iterativa; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional ( GOTO ).
    El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
    • Secuencia
    • Instrucción condicional.
    • Iteración (bucle de instrucciones) con condición al principio.
    Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas.
    Ventajas de la programación estructurada [editar]
    Con la programación estructurada, elaborar programas de computador sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este estilo podemos obtener las siguientes ventajas:
    1. Los programas son más fáciles de entender, ya que pueden ser leído de forma secuencial, sin necesidad de hacer seguimiento a saltos de línea (GOTO) dentro de los bloques de código para entender la lógica.
    2. La estructura del programa es clara puesto que las instrucciones están más ligadas o relacionadas entre sí.
    3. Reducción del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a la estructura más visible, por lo que los errores se pueden detectar y corregir más fácilmente.
    4. Reducción de los costos de mantenimiento de los programas.
    5. Programas más sencillos y más rápidos (ya que es más fácil su optimización).
    6. Los bloques de código son auto explicativos, lo que facilita a la documentación.
    7. Los GOTO se reservan para construir las instrucciones básicas. Aunque no se usan de forma directa, por estar prohibida su utilización, están incluidas implícitamente en las instrucciones de selección e iteración.
    8. Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura sino también una excelente presentación.
    9. La programación estructurada ofrece estos beneficios,pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad.
    Inconvenientes de la programación estructurada [editar]
    El principal inconveniente de este método de programación, es que se obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar problemático su manejo, esto se resuelve empleando la programación modular, definiendo módulos interdependientes programados y compilados por separado. Un método un poco más sofisticado es la programación por capas, en la que los módulos tienen una estructura jerárquica muy definida y se denominan capas.
    Programación Modular
    Esta característica define lo que se entiende como diseño descendente( Top-Down / Norte-Sur ) o diseño modular.
    El proceso de ruptura del problema en cada etapa se llama refinamiento sucesivo.
    • Cada problema se resuelve mediante un modulo (subprograma) y tiene un solo punto de entrada y un solo punto de salida.
    Un programa bien diseñado consta de un programa principal (modulo de nivel mas alto) que llama a subprogramas (módulos de nivel mas bajo), que a su vez pueden llamar otros sub programas

    LINKS

    http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada

    http://es.wikipedia.org/wiki/Diagrama_de_flujo

    http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo

    http://es.wikipedia.org/wiki/M%C3%A1quina_de_Turing

    http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda

    http://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento

    http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml

    http://es.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico

    http://www.monografias.com/trabajos/algoritmo/algoritmo.shtml

    ResponderEliminar
  16. MUY BUEN DIA PROFESOR MIS SALUDOS Y RESPETO, ES JULIMAR ALFARO C.I.Nº 10.583.812 SECC 10.
    A CONTINUACIÓN MI INVESTIGACIÓN
    ALGORITMOS:
    Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra "algoritmo" deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las palabras: Algoritmi dicit.
    El lenguaje algorítmico es aquel por medio del cual se realiza un análisisprevio del problema a resolver y encontrar un método que permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse, se le denomina algoritmo.
    El lenguaje informático es aquel por medio del cual dicho algoritmo se codifica a un sistema comprensible por el ordenador o computadora. Este tipo de lenguajees más cercano a la máquina que al ser humano y podemos distinguir distintos tipos dependiendo de la proximidad a la maquina. Se denomina lenguaje de alto nivel aquel que es más cercano a la comprensión humana y lenguaje de bajo nivel a aquellos que son más comprensibles por la máquina. En concreto, nosotros vamos a estudiar un lenguaje en la frontera de uno de bajo nivel. Es por ello que el 'C' es tan potente y rápido, pues las funciones principales representan las funciones más básicas del ordenador.
    Lo que pretende un algoritmo es sintetizar de alguna forma una tarea, cálculo o mecanismo antes de ser transcrito al ordenador. Los pasos que hay que seguir son los siguientes:
    - Análisis previo del problema.
    - Primera visión del método de resolución.
    - Descomposición en módulos.
    - (Programación estructurada).
    - Búsqueda de soluciones parciales.
    - Ensamblaje de soluciones finales.
    Un algoritmo es eficiente cuando logra llegar a sus objetivos planteados utilizando la menor cantidad de recursos posibles, es decir, minimizando el uso memoria, de pasos y de esfuerzo humano.
    Un algoritmo es eficaz cuando alcanza el objetivo primordial, el análisis de resolución del problema se lo realiza prioritariamente.
    Puede darse el caso de que exista un algoritmo eficaz pero no eficiente, en lo posible debemos de manejar estos dos conceptos conjuntamente.
    El algoritmo trata de resolver problemas mediante programas.
    Fases:
     Análisis preliminar o evaluación del problema: Estudiar el problema en general y ver que parte nos interesa.
     Definición o análisis del problema: Ver que es lo que entra y que es lo que sale, las posibles condiciones o restricciones, ...
     Diseño del algoritmo: Diseñar la solución.
     El programa: Codificación del algoritmo en un lenguaje de programación.
     Ejecución del programa y las pruebas: Ver si el programa hace lo que queríamos.

    Características:
     Tiene que ser preciso.
     Tiene que estar bien definido.
     Tiene que ser finito.
     La programación es adaptar el algoritmo al ordenador.
     El algoritmo es independiente según donde lo implemente.

    La descripción de un algoritmo usualmente se hace en tres niveles:
    Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el idioma del programador.
    Tipos de algoritmos:
    Algoritmo de ordenamiento: En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación o reordenamiento de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.

    Algoritmo de búsqueda: es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto. Este problema puede reducirse a devolver la existencia de un número en un vector.

    LINKS VISITADOS:
    http://es.wikipedia.orgwww.monogrfias.com
    http://wikipedia.org
    http://apuntes.rincondelvago.com
    http://www.claudiogutierrez.com

    ResponderEliminar
  17. ALGORITMOS
    El algoritmo es un procedimiento seguro y mecánico que logra un cierto resultado, especialmente en matemáticas y en informática; el concepto es también aplicable en otros campos, como la economía, la ingeniería y, según veremos, incluso la biología.
    El término 'algoritmo' viene, a través de varias traducciones y corrupciones, del nombre del matemático persa Mûusâ al-Khowârizm, cuyo libro sobre procedimientos aritméticos, escrito por allá del año 835, fue traducido al latín en el siglo XII.
    El uso de la palabra en el sentido explicado ha tenido vigencia por varios siglos; asciende a mayor notoriedad, sin embargo, en nuestro tiempo, gracias a la obra metamatemática de pensadores como Hilbert, Gödel, Church y Turing, que revolucionaron las ciencias matemáticas durante el primer tercio del siglo XX.
    La transferencia del concepto de la matemática a la informática ocurrió gracias a la obra del último de estos distinguidos matemáticos, quien propuso a sus colegas definir 'algoritmo' como lo que puede hacer una máquina descrita por él en términos muy abstractos que por ello mismo puede representar muy distintas configuraciones y que ahora lleva su nombre: máquina Turing(a). De acuerdo con esta propuesta suya, inmediatamente aceptada por los demás matemáticos, quedó establecido que algo es un algoritmo si, y solo si, se trata de un proceso con las siguientes características:
    Sus pasos constituyen una secuencia finita, están claramente especificados y son independientes unos de los otros (digitalidad).
    Un mismo agente (no necesariamente humano) determina qué es lo que corresponde hacer en cada momento (secuencialidad y control).
    El agente es capaz de recabar la descripción operacional de la secuencia así como de almacenar resultados en el camino (interpretación y memoria).
    La ejecución de una secuencia específica produce siempre los mismos resultados en cada paso para cada conjunto de datos iniciales (determinismo).
    La secuencia concluye con un resultado final (terminación).
    La descripción de un algoritmo usualmente se hace en tres niveles:
    Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    Tipos de algoritmos
    Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.
    Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.
    Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios
    Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro ancesor.
    Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
    Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la solución al problema completo.
    Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
    Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
    Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.
    Vuelta Atrás (Backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas.

    Links visitados:
    http://es.wikipedia.org
    http://www.monografias.com
    http://html.rincondelvago.com

    ResponderEliminar
  18. BUENAS TARDES PROFESOR AQUI LE ENVIO MI TRABAJO
    ALEXEY MARIN C.I. 12.716.197
    SECCION 10.
    Algoritmo
    Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra "algoritmo" deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las palabras: Algoritmi dicit.
    Diferencia entre el lenguaje algorítmico y el informático.
    El lenguaje algorítmico es aquel por medio del cual se realiza un análisis previo del problema a resolver y encontrar un método que permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse, se le denomina algoritmo.
    El lenguaje informático es aquel por medio del cual dicho algoritmo se codifica a un sistema comprensible por el ordenador o computadora. Este tipo de lenguaje es más cercano a la máquina que al ser humano y podemos distinguir distintos tipos dependiendo de la proximidad a la maquina. Se denomina lenguaje de alto nivel aquel que es más cercano a la comprensión humana y lenguaje de bajo nivel a aquellos que son más comprensibles por la máquina. En concreto, nosotros vamos a estudiar un lenguaje en la frontera de uno de bajo nivel. Es por ello que el 'C' es tan potente y rápido, pues las funciones principales representan las funciones más básicas del ordenador.
    Qué es ordenamiento?
    Es la operación de arreglar los registros de una tabla en algún orden secuencial de acuerdo a un criterio de ordenamiento.
    El ordenamiento se efectúa con base en el valor de algún campo en un registro.
    El propósito principal de un ordenamiento es el de facilitar las búsquedas de los miembros del conjunto ordenado.
    Ej. de ordenamientos:
    Dir. telefónico, tablas de contenido, bibliotecas y diccionarios, etc.
    El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una secuencia tal que represente un orden, el cual puede ser numérico, alfabético o incluso alfanumérico, ascendente o descendente.
    ¿Cuándo conviene usar un método de ordenamiento?
    Cuando se requiere hacer una cantidad considerable de búsquedas y es importante el factor tiempo.
    Tipos de ordenamientos:
    Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.
    Los internos:
    Son aquellos en los que los valores a ordenar están en memoria principal, por lo que se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1], a[500], etc).
    Los externos:
    Son aquellos en los que los valores a ordenar están en memoria secundaria (disco, cinta, cilindro magnético, etc), por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la última posición accesada (posición 1, posición 500, etc).
    Algoritmo de búsqueda
    Es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.
    Características de los algoritmos
    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".

    La fuente:
    • http://www.alegsa.com.ar/Dic/algoritmo.php
    • http://es.wikipedia.org/wiki/Algoritmo

    ResponderEliminar
  19.  ALGORITMO
    Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. También se puede definir como un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado, La palabra "algoritmo" deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las palabras: Algoritmi dicit.

     IMPLEMENTACIÓN DE ALGORITMOS

    En programación, los algoritmos se implementan en forma de sentencias en algún lenguaje de programación. De esta manera, la forma de escribir los algoritmos depende del lenguaje de programación, y del paradigma usado. Estos son los algoritmos que pueden ser interpretados por una computadora y así ser ejecutados.

    Los algoritmos también pueden representarse gráficamente empleando diagramas de flujo o formas similares. De esta manera, son fácilmente comprensibles, especialmente para personas que no son programadores. También, de esta manera, los algoritmos son más "universales", pues no dependen de un lenguaje de programación específico.

    Los algoritmos también pueden escribirse en pseudocódigo, lo que también los hace fáciles de entender.

    Se hacen intentos para que las computadoras interpreten y ejecuten los diagramas de flujo y los pseudocódigos, pero no logran la flexibilidad, potencia y velocidad de los algoritmos puramente escritos en un lenguaje de programación específico.

    Un algoritmo también puede expresarse en lenguaje natural, aunque esto puede traer ambigüedades e interpretaciones erróneas (la ambigüedad es propia del lenguaje humano).

     CARACTERÍSTICAS:
    Las características fundamentales que debe cumplir todo algoritmo son:
     Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.
     Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.
     Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.
     Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.
     Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.
     MEDIOS DE EXPRESIÓN DE UN ALGORITMO
    Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
    La descripción de un algoritmo usualmente se hace en tres niveles:
    1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones

     DIAGRAMA DE FLUJO:
    Son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
    Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.

     PSEUDOCÓDIGO
    Es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un código al que aunque es entendible no se aplica al proceso que debe realizar la maquina.


    Bibliografia.

    http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php
    http://www.alegsa.com.ar/Dic/algoritmo.php
    http://es.wikipedia.org/wiki/Algoritmo

    ResponderEliminar
  20. MERLYS TORREALBA
    C.I: 15.393.357
    SECCION 10 ING. NOC

    ResponderEliminar
  21. ALGORITMO:
    Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los números naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.
    Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo (secuencia de pasos finita, ordenada y definida) calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.
    Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann; a este último tipo de funciones se las denomina funciones no computables.

    Características de los algoritmos:
    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".

    Diferencia entre el lenguaje algorítmico y el informático.
    El lenguaje algorítmico es aquel por medio del cual se realiza un análisis previo del problema a resolver y encontrar un método que permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse, se le denomina algoritmo.
    El lenguaje informático es aquel por medio del cual dicho algoritmo se codifica a un sistema comprensible por el ordenador o computadora. Este tipo de lenguaje es más cercano a la máquina que al ser humano y podemos distinguir distintos tipos dependiendo de la proximidad a la maquina. Se denomina lenguaje de alto nivel aquel que es más cercano a la comprensión humana y lenguaje de bajo nivel a aquellos que son más comprensibles por la máquina. En concreto, nosotros vamos a estudiar un lenguaje en la frontera de uno de bajo nivel. Es por ello que el 'C' es tan potente y rápido, pues las funciones principales representan las funciones más básicas del ordenador.
    Técnicas de diseño de algoritmos
    • Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.
    • Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.
    • Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios
    • Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro ancesor.
    • Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
    • Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la solución al problema completo.
    • Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
    • Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
    • Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.
    • Vuelta Atrás (Backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas.

    http://es.wikipedia.org/wiki/Algoritmo
    http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php
    http://www.alegsa.com.ar/Dic/algoritmo.php



    Alumno: YELSON ROJAS C.I 16.509.745 Seccion 10 Ingenieria.

    ResponderEliminar
  22. Celina rojas
    C.I 11637968
    Seccion 10

    ¿Que es Algoritmo?

    Conjunto finito de instrucciones para llevar a cabo una tarea. Constan de pasos finitos, no ambiguos y, de ser posible, eficientes.

    Implementación De Algoritmos.

    En programación, los algoritmos se implementan en forma de sentencias en algún lenguaje de programación. De esta manera, la forma de escribir los algoritmos depende del lenguaje de programación, y del paradigma usado. Estos son los algoritmos que pueden ser interpretados por una computadora y así ser ejecutados.

    Los algoritmos también pueden representarse gráficamente empleando diagramas de flujo o formas similares. De esta manera, son fácilmente comprensibles, especialmente para personas que no son programadores. También, de esta manera, los algoritmos son más "universales", pues no dependen de un lenguaje de programación específico.

    Los algoritmos también pueden escribirse en pseudocódigo, lo que también los hace fáciles de entender.


    Se hacen intentos para que las computadoras interpreten y ejecuten los diagramas de flujo y los pseudocódigos, pero no logran la flexibilidad, potencia y velocidad de los algoritmos puramente escritos en un lenguaje de programación específico.

    Un algoritmo también puede expresarse en lenguaje natural, aunque esto puede traer ambigüedades e interpretaciones erróneas (la ambigüedad es propia del lenguaje humano).
    Características de un algoritmo.
    Las características que debe poseer una secuencia de tareas para considerarse algoritmo son: precisión, de finitud y finitud.
    Precisó. El algoritmo debe indicar el orden exacto de ejecución de cada tarea.
    Definido. Si se sigue el algoritmo dos o más veces con los mismos datos de entrada, se deben obtener los mismos datos de salida.
    Finito. El algoritmo debe terminar en algún momento y debe usar una cantidad de recursos finita
    Dada una cantidad de datos de entrada de un algoritmo, se dice que la cantidad de un recurso usada por dicho algoritmo para su ejecución determina la complejidad del algoritmo respecto a tal recurso. Cuando se implementa un algoritmo en un computador digital, los recursos con los que se cuenta son tiempo de proceso y memoria. Por lo tanto, a un algoritmo implementado en un computador digital se le pueden calcular sus complejidades temporal y espacial.
    Tipos de algoritmos según su función
    Algoritmo de ordenamiento
    En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación o reordenamiento de la entrada que satisfaga la relación de orden dada.
    Algoritmo de búsqueda
    Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto

    http://www.alegsa.com.ar/Dic/algoritmo.php
    http://es.wikipedia.org/wiki/Algoritmo#Tipos_de_algoritmos_seg.C3.BAn_su_funci.C3.B3n

    ResponderEliminar
  23. Hector Rodriguez
    C.I 11644786
    Seccion 10

    Algoritmo. (Quizá del lat. tardío *algobarismus, y este abrev. del ár. clás. ḥisābu lḡubār, cálculo mediante cifras arábigas). m. Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. || 2. Método y notación en las distintas formas del cálculo
    .

    Tipos de algoritmos según su función
    Algoritmo de ordenamiento
    En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada.

    Algoritmo de búsqueda

    Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.


    . Algoritmos y funciones
    Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los números naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.
    Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo (secuencia de pasos finita, ordenada y definida) calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.
    Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann; a este último tipo de funciones se las denomina funciones no computables
    Tipos de algoritmos según su función [editar]
    Algoritmo de ordenamiento
    Algoritmo de búsqueda
    Técnicas de diseño de algoritmos [editar]
    Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.
    Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.
    Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios
    Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro ancesor.
    Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
    Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la solución al problema completo.
    Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
    Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
    Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.
    Vuelta Atrás (Backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas

    Las características de un buen algoritmo son:
    - Debe tener un punto particular de inicio.
    - Debe ser definido, no debe permitir dobles interpretaciones.
    - Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.
    - Debe ser finito en tamaño y tiempo de ejecución

    http://www.open-class.net/velaldo/Apuntes/PD04107/Unidad2.htm
    http://es.wikipedia.org/wiki/Algoritmo#Tipos_de_algoritmos_seg.C3.BAn_su_funci.C3.B3n
    Microsoft® Encarta® 2008. © 1993-2007 Microsoft Corporación

    ResponderEliminar
  24. Yudith Rodriguez
    C.I 7999025
    Seccion 10

    Definición

    Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado.
    Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe de ser definido, finito y preciso.
    Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa.
    Descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento.
    Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.
    Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas.
    Descripción precisa de una sucesión de instrucciones que permite llevar a cabo un trabajo en un número finito de pasos.
    Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven un determinado problema.
    Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada.
    Un conjunto de símbolos y procedimientos usados en la realización de un cálculo.
    Una secuencia de pasos que conducen a la realización de una tarea.
    Características:

    Las características fundamentales que debe cumplir todo algoritmo son:
    Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.
    Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.
    Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.
    Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.
    Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.

    ¿Tipos de algoritmos?

    Existen dos tipos y son llamados así por su naturaleza:
    Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
    Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
    Simbología de los algoritmos
    Se utiliza un rectángulo redondeado para el inicio y finalización de los algoritmos, los rombos son utilizados para las decisiones y los rectángulos para las acciones a tomar. Las flechas nos indican el flujo teniendo en cuenta que las decisiones por ¨no¨ crecerán verticalmente y las decisiones por ¨si¨ crecerán hacia derecha. Si bien estos no son los únicos símbolos, para nuestros objetivos son considerados como suficientes.
    Una de las preguntas que se suele plantear, es si los algoritmos son siempre confiables, pregunta que merece referirse a Renato Cartesius. Tomando esta cuestión como disparador haremos mención a algunas virtudes y limitaciones de los algoritmos.
    Virtudes
    Los algoritmos nos brindan la oportunidad de seleccionar aquello que se considera prioritario, lo cual no es poco y la capacidad como ordenador del pensamiento comienza desde su primer paso, el cual implica definir con precisión el problema, que como sabemos es de por sí una tarea intelectual muy importante.
    Imprimen además los algoritmos, claridad lógica y secuencial al procesamiento sistemático tanto de los datos clínicos como a las pruebas y los procedimientos Lógicamente todo esto ya le da validez por el hecho de contribuir a mejorar nuestro juicio clínico, pero más aun porque consecuentemente su práctica nos permite mejorar la atención de nuestros pacientes en muchas oportunidades.
    Existen muchos algoritmos computarizados basados en distintos grados de evidencia, los cuales nos facilitan su aplicación y también nos brindan un importante recurso de investigación y educación medica.
    Inconvenientes
    Podemos decir que entre los inconvenientes más importantes está el desconocimiento de su existencia y el no saber cuáles son sus límites. A estos que posiblemente son los más importantes, se le suman la incapacidad de convertir lo expresado en algoritmos y la carencia de su disponibilidad, ya que si bien existe una cantidad importante de algoritmos, por diversos motivos solo se utilizan muy pocos de manera rutinaria.
    Otro inconveniente a tener en cuenta es acostumbrarse exclusivamente a algoritmos ajenos y pretender que sean lo que no son, no son la verdad, son tan solo una herramienta y su eficiencia dependerá del uso que se le dé. Un detalle para tener en cuenta es la existencia de una propuesta para crear un centro de algoritmos.
    En síntesis debemos pensar que muchos de los inconvenientes dependen de quienes los desconocen, de quienes no conocen sus límites y de aquellos que los sobres utilizan.

    http://boards4.melodysoft.com/app?ID=2004BFDP0402&msg=14&DOC=81

    http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php

    http://med.unne.edu.ar/revista/revista116/algoritmos.html

    ResponderEliminar
  25. Buenas tardes profesor soy el alumno: Victor Rivas CI: 6.521.553 de la seccion 10 de ingenieria.

    Un algoritmo es un conjunto de operaciones y procedimientos que deben seguirse para resolver un problema.
    Cabe destacar que el algoritmo se deriva del nombre latinizado del gran Matemático Árabe Mohamed Ibn Al Kow Rizmi, el cual escribió sobre los años 800 y 825 su obra Quitad Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero. Fue Fibinacci, el que tradujo la obra al latín y el inicio con la palabra: Algoritmi Dicit.
    El lenguaje algorítmico es aquel por medio al cual se realiza un análisis previo del problema a resolver y encontrar un método que permita resolverlo. El conjunto de todas las operaciones a realizar y el orden en que se deben efectuarse, se le denomina algoritmo.
    Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy importante será el diseño de algoritmos. El diseño de la mayoría de los algoritmos requiere creatividad y conocimientos profundos de la técnica de la programación. En esencia, la solución de un problema se puede expresar mediante un algoritmo.
    Características de los Algoritmos:
    Las características fundamentales que debe cumplir todo algoritmo son:
    • Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
    • Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
    • Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún momento; o sea, debe tener un numero finito de pasos.
    Un algoritmo debe definir tres partes fundamentales: Entrada, Proceso y Salida.
    Ejemplo:
    Un cliente ejecuta un pedido a una fábrica. Esta examina en su banco de datos la ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario rechazara el pedido. Redactar el algoritmo correspondiente.
    Los pasos del algoritmo son:

    Entrada inicio

    Leer el pedido
    Proceso Examinar la ficha del cliente si el cliente es solvente aceptar pedido;
    En caso contrario, rechazar pedido

    Salida. Fin

    Diseño del Algoritmo
    En la etapa de análisis del proceso de programación se determina que hace el programa. En la etapa de diseño se determina como hace el programa la tarea solicitada. Los métodos más eficaces para el proceso de diseño se basan en el conocido por Divide y Vencerás, es decir, la resolución de un problema complejo se realiza dividiendo el problema en sub− problemas y a continuación dividir estos sub problemas en otros de nivel más bajo, hasta que pueda ser implementada una solución en la computadora. Este método se conoce técnicamente como diseño descendente (Top Down) o modular. El proceso de romper el problema en cada etapa y expresar cada paso en forma más detallada se denomina refinamiento sucesivo.
    Cada sub programa es resuelto mediante un modulo (sub programa) que tiene un solo punto de entrada y un solo punto de salida.
    Cualquier programa bien diseñado consta de un programa principal (el modulo de nivel más alto) que llama a sub programas (módulos de nivel más bajo) que a su vez pueden llamar a otros sub programas. Los programas estructurados de esta forma se dice que tienen un diseño modular y el método de romper el programa en módulos más pequeño se llama Programación Modular. Los módulos pueden ser planeados, codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a continuación combinarlos entre sí. El proceso implica la ejecución de los siguientes pasos hasta que el programa se termina:
    • programar modulo.
    • Comprobar el modulo.
    • Si es necesario, depurar el modulo.
    • Combinar el modulo con los módulos anteriores.
    El proceso que convierte los resultados del análisis del problema en un diseño modular con refinamiento sucesivo que permitan una posterior traducción al lenguaje se denomina diseño de algoritmo.







    Clasificación de los algoritmos
    Los algoritmos con el manejo de la información se clasifican en:

    a) De ordenación
    b) De búsqueda

    Ambos procesos pueden clasificarse como internos o externos dependiendo del lugar en el que se encuentre almacenada la información.
    Los internos se llevan a cabo en memoria principal; los externos se realizan en memoria secundaria (Discos flexibles, cintas, discos duros, etcétera).
    La operación de búsqueda es la que permite recuperar datos previamente almacenados. Ordenar significa reorganizar un conjunto de datos u objetos de acuerdo a una secuencia específica. El proceso de ordenación es importante cuando requiere optimizarse un proceso de búsqueda.

    Formalmente definimos ordenación de la siguiente manera:
    Sea A una lista de n elementos Ao, A1, A2,...,An.
    La lista A estará ordenada después de aplicarle un proceso logramos que:

    a) Ao <= A1 <= A2 ... <= An (ordenamiento ascendente)
    b) Ao>= A1 >= A2 ... >= An (ordenamiento Descendente)

    Un método de ordenación es estable si el orden relativo de elementos iguales permanece inalterado durante el proceso de ordenación. La estabilidad es conveniente si los elementos ya se encontraban ordenados conforme a algún otro campo.
    Un método de ordenación es inestable si se altera el orden relativo de elementos iguales durante el proceso de ordenación.






    Técnicas para realizar un algoritmo
    Las dos técnicas para elaborar un algoritmo son el diagrama de flujo y el pseudocódigo.
    Diagrama de Flujo
    Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de cómo deben realizarse los pasos en la computadora para producir resultados.
    Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre sí mediante líneas que indican el orden en que se deben ejecutar los procesos. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).
    Pseudocódigo.
    Lenguaje de especificación, mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.
    Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
    Tipos de algoritmos:
    Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
    Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
    Bibliografía
    http://boards4.melodysoft.com/app?ID=2005AEDII0103&msg=11&DOC=21
    http://www.desarrolloweb.com/articulos/2184.php
    http://www.monografias.com/trabajos59/concepto-algoritmos/concepto-algoritmos.shtml
    http://es.wikipedia.org/wiki/Algoritmo

    ResponderEliminar
  26. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  27. Buenas Tardes Profesor,
    Alumno: Mauir Gonzalez
    C.I:11.639.632
    4to Semestre de Ing. Seccion 10


    ¿QUÉ ES ALGORITMO?

    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ó un tratado sobre manipulación de números y ecuaciones en el siglo IX.

    Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.

    ¿TIPOS DE ALGORITMOS…?

    Existen dos tipos y son llamados así por su naturaleza:
    • Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
    • Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.

    Lenguajes Algorítmicos

    Un Lenguaje algorítmico es una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso.

    Tipos de Lenguajes Algorítmicos
    • Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo).


    • No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).

    INICIO
    Edad: Entero
    ESCRIBA “cual es tu edad?”
    Lea Edad
    SI Edad >=18 entonces
    ESCRIBA “Eres mayor de Edad”
    FINSI
    ESCRIBA “fin del algoritmo”
    FIN
    Bibliografía: www.desarrolloweb.com/articulos/2144.php

    ResponderEliminar
  28. Saludos Profesor. Mi información está en el siguiente link

    http://www.4shared.com/file/74348983/47d1b3c3/Algoritmos.html

    Jesús González
    C.I. 7.822.516
    Sección BINS09

    ResponderEliminar
  29. Algoritmo: es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
    En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón

    Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución.

    Características de los algoritmos
    El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:
    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
    Tipos de algoritmos según su función
    Algoritmo de ordenamiento
    Algoritmo de búsqueda


    Algoritmo de ordenamiento
    En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos
    Algoritmo de búsqueda
    Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto

    Bibliografía
    http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml
    http://es.wikipedia.org/wiki/Algoritmo

    Alumno: Fran Hernández
    C.I. 5.571.738
    4BIN S-10
    .

    ResponderEliminar
  30. Armando Romero CI:9.997.949
    seccion Nº 10
    Aqui le envio mi investigacion sobre algoritmos.

    Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra "algoritmo" deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las palabras: Algoritmi dicit.
    Características
    • Preciso (debe indicar el orden de realización en cada paso y no puede tener ambigüedad).
    • Definido (si se sigue dos veces, obtiene el mismo resultado cada vez)
    • Finito (tiene fin; un número determinado de pasos).
    • Debe ser Sencillo, Legible.
    • Modular.
    • Eficiente y Efectivo.
    • Se ha de desarrollar en el menor tiempo posible.
    • Correcto.
    • Todo Algoritmo debe tener cero ó más entradas.
    • Debe tener al menos una salida y ésta debe ser tangible.
    Estructura de un algoritmo:
    1. Tiene un inicio.
    2. Una lectura o entrada de datos.
    3. El proceso de datos.
    4. Una salida de información.
    5. Un final.

    Un algoritmo se usa en todo momento de la vida, hasta el más mínimo proceso que un ser humano haga nada más que con realizar una secuencia de paso esta realizo un algoritmo. El algoritmo se puede utilizar desde la informática, matemática, hasta un simple proceso domestico como el cocinar.
    Técnicas para la formulación de algoritmos
    Las dos herramientas utilizadas comúnmente para diseñar algoritmos son:
    Pseudocódigo y el Diagrama de Flujo.
    Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de cómo deben realizarse los pasos en la computadora para producir resultados. Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre sí mediante líneas que indican el orden en que se deben ejecutar los procesos.

    Recomendaciones para el diseño de Diagramas de Flujo
    Se deben se usar solamente líneas de flujo horizontal y/o vertical.
    Se debe evitar el cruce de líneas utilizando los conectores.
    Se deben usar conectores solo cuando sea necesario.
    No deben quedar líneas de flujo son conectar.
    Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.
    Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.

    Pseudocódigo.

    Lenguaje de especificación, mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.

    Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
    Tipos de algoritmos:
    • Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
    • Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
    1.5 Lenguajes Algorítmicos
    Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso.
    Tipos de Lenguajes Algorítmicos
    • Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo).
    • No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocódigo).
    http://html.rincondelvago.com/diseno-estructurado-de-algoritmos.html
    www.desarrolloweb.com/articulos/2143.php
    es.wikipedia.org/wiki/Algoritmo

    ResponderEliminar
  31. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  32. Alumno:
    Virachandra Villalobos.
    C.I 19512935
    Seccion 10 Ingenieria Nocturno.

    Algoritmos

    Es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. En resumidas cuentas, es la descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento.

    Un organigrama o diagrama de flujos es una representación semigráfica del algoritmo en cuestión. Esto nos facilita la visión descriptiva de la ejecución del programa, así como la generación de la traza del algoritmo. Se denomina traza de un algoritmo a la ejecución manual de un programa obteniendo para cada paso un resultado.

    Lo que pretende un algoritmo es sintetizar de alguna forma una tarea, cálculo o mecanismo antes de ser transcrito al ordenador. Los pasos que hay que seguir son los siguientes:

    Análisis previo del problema.

    Primera visión del método de resolución.
    Descomposición en módulos.
    (Programación estructurada).
    Búsqueda de soluciones parciales.
    Ensamblaje de soluciones finales.

    Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que lo ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo. Así, por ejemplo, en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar en español, ingles o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración del plato se realizaran sin importar el idioma del cocinero.

    En la ciencia de la computación y en la programación, los algoritmos son más importantes que los lenguajes de programación o las computadoras. Un lenguaje de programación es tan solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de programación como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute y se efectúe el proceso correspondiente.

    Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy importante será el diseño de algoritmos. El diseño de la mayoría de los algoritmos requiere creatividad y conocimientos profundos de la técnica de la programación. En esencia, la solución de un problema se puede expresar mediante un algoritmo.
    Características:

    Las características fundamentales que debe cumplir todo algoritmo son:

    * Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.

    * Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.

    * Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.

    * Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.

    * Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.

    Tipos de Algoritmos

    * Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.

    * Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.

    Existen dos principales tecnicas de diseño de algoritmos de programación, el Top Down y el Bottom Up.

    Top Down

    También conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al problema. Consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información. Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa.

    La utilización de la técnica de diseño Top-Down tiene los siguientes objetivos básicos:

    * Simplificación del problema y de los subprogramas de cada descomposición.

    * Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas.
    * El programa final queda estructurado en forma de bloque o módulos lo que hace mas sencilla su lectura y mantenimiento.

    Bottom Up

    El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.

    Cuando la programación se realiza internamente y haciendo un enfoque ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el desempeño global, sea fluido. Los problemas de integración entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programación alcanza la fecha limite para la integración total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente.
    Uno de ellos es la duplicación de esfuerzos para acceder el software y mas aún al introducir los datos.
    Otro es, que se introducen al sistema muchos datos carentes de valor.
    Un tercero y tal vez el mas serio inconveniente del enfoque ascendente, es que los objetivos globales de la organización no fueron considerados y en consecuencia no se satisfacen.

    ResponderEliminar
  33. Disculpe profesor se me olvido la bibliografia.

    aqui esta:

    http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php
    http://www.monografias.com/trabajos/algoritmo/algoritmo.shtml
    http://html.rincondelvago.com/algoritmos-computacionales.html
    http://www.desarrolloweb.com/articulos/2183.php

    ResponderEliminar
  34. Buenas noches prof ivan Martin
    alumno:
    Carlos Hernandez
    CI 18.140.358
    4to semestre
    Ing. Sec10. Noct.

    algoritmos

    Algoritmo
    En matemáticas, ciencias de la computación, y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia.
    Historia
    La palabra algoritmo proviene del nombre del matemático llamado Muhammad ibn Musa al-Khwarizmi que vivió entre los siglos VIII y IX. Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, de ahí que su principal logro no fuera el de crear nuevos teoremas o corrientes de pensamiento, sino el de simplificar la matemática a punto tal que pudieran ser comprendidas y aplicadas por un mayor número de personas. Cabe destacar cómo señaló las virtudes del sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos mecánicos en vez de las manos (por ejemplo, ábacos). También estudió la manera de reducir las operaciones que formaban el cálculo. Es por esto que aún no siendo el creador del primer algoritmo, el concepto lleva aunque no su nombre, sí su pseudónimo.
    Así, de la palabra algorismo, que originalmente hacía referencia a las reglas de uso de la aritmética utilizando dígitos árabes, se evolucionó a la palabra latina, derivación de al-Khwarizmi, algobarismus, que más tarde mutaría a algoritmo en el siglo XVIII. La palabra ha cambiado de forma que en su definición se incluye a todos los procedimientos finitos para resolver problemas.
    Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842. Por ello que es considerada por muchos como la primera programadora aunque, desde Charles Babbage, nadie completó su máquina, por lo que el algoritmo nunca se implementó.
    La falta de rigor matemático en la definición de "procedimiento bien definido" para los algoritmos trajo algunas dificultades a los matemáticos y lógicos del siglo XIX y comienzos de XX. Este problema fue en gran parte resuelto con la descripción de la máquina de Turing, un modelo abstracto de computadora formulado por Alan Turing, y la demostración de que cualquier método anticipado por otros matemáticos que pueda encontrarse para describir "procedimientos bien definidos" puede ser emulado en una máquina de Turing (una afirmación conocida como "tesis de Church-Turing").
    En la actualidad, el criterio formal para definir un algoritmo es que se trata de un proceso que puede implementarse en una máquina de Turing completamente especificada, o en alguno de los formalismos equivalentes. El interés original de Turing era el problema de la detención: decidir cuándo un algoritmo describe un procedimiento de terminación. En términos prácticos importa más la teoría de la complejidad computacional, que incluye los problemas llamados NP-completos, es decir aquellos sobre los que generalmente se presume que requerirán tiempo más que polinómico para cualquier algoritmo (determinístico). NP denota la clase de los problemas de decisión que pueden ser resueltos en tiempo polinómico por una máquina de Turing no determinística.
    En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemático, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.
    Cuando escribimos un programa de computadora, generalmente estamos llevando a cabo un método que se ha inventado para resolver algún problema previamente. Este método es a menudo independiente de la computadora y es probable que sea igualmente apropiado para muchas tipos de computadora y muchos lenguajes de computadora. Es el método, en el programa de computación, el que nosotros debemos estudiar para aprender cómo se está tratando de resolver el problema. El término algoritmo se usa en la informática para describir un método problema-solución conveniente para la aplicación en un programa de computadora. Los algoritmos son los materiales de informática, son los objetos centrales de estudio para muchos, si no la mayoría, de las áreas de campo.
    Importancia del algoritmo
    La importancia de un algoritmo radica en mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos o de otro tipo. Al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida, comportándose como una caja negra. Sin embargo, no toda caja negra que convierta una entrada en una salida se puede considerar un algoritmo: para que un algoritmo pueda ser considerado como tal, debe ser una secuencia ordenada, finita y definida (formalización de su comportamiento) de instrucciones. De este modo se puede seguir y predecir el comportamiento del algoritmo para cualquier entrada posible (salvo algoritmos probabilistas, que tiene usualmente una salida distinta), a partir del seguimiento de esa secuencia de instrucciones, que como es ordenada y definida, no da lugar a ambigüedades y puede seguirse su traza.
    El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema (método), el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.
    La mayoría de los algoritmos involucran métodos de organizar los datos que intervienen en el cómputo. Estos objetos creados son llamados, de esta manera la estructura de los datos, y también son objetos centrales del estudio en la informática. De esta forma, los algoritmos y estructuras de los datos van siempre de la mano. Los algoritmos simples pueden dar lugar a una estructura de datos complicada y, recíprocamente, los algoritmos complicados pueden usar estructuras de los datos simples.
    Cuando usamos una computadora para ayudarnos a resolver un problema, nos enfrentamos típicamente con varios posibles esquemas. Para los problemas pequeños, lo que apenas importa es que lo usemos, con tal de que se tenga uno que resuelva el problema correctamente. Para los problemas grandes (o aplicaciones dónde nosotros necesitamos resolver un gran número de problemas pequeños), sin embargo, nos motivamos en inventar métodos que usan tiempo eficazmente de forma rápida como sea posible.
    Cuando un programa de computadora es grande o complejo, este será desarrollado con mucho esfuerzo, ya que se debe comprender y definir el problema a ser resuelto, manejando su complejidad, y descomponiéndolo en partes más pequeñas que puedan resolverse más fácilmente. A menudo, muchos de los algoritmos que se necesitan, después de la descomposición son triviales al instrumento. En la mayoría de los casos, sin embargo, existen algoritmos cuyo funcionamiento es crítico porque alguno o varios de los recursos del sistema (memoria, tiempos de uso de procesador, etc.) pueden agotarse durante su funcionamiento.
    Características de los algoritmos
    El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:
    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
    Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no ambigua", o "suficientemente básicas", y así sucesivamente..
    A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los algoritmos probabilistas.
    Algoritmos y funciones
    Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los números naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.
    Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo (secuencia de pasos finita, ordenada y definida) calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.
    Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann; a este último tipo de funciones se las denomina funciones no computables.
    Medios de expresión de un algoritmo
    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
    La descripción de un algoritmo usualmente se hace en tres niveles:
    1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
    Diagrama de flujo


    Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x
    Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
    Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.
    Pseudocódigo
    Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un codigo al que aunque es entendible no se aplica al proceso que debe realizar la maquina.
    Máquina de Turing
    La máquina de Turing es un modelo matemático, diseñado por Alan Turing, que formaliza el concepto de algoritmo. A este modelo se le refiere comúnmente como la "descripción de más bajo nivel" por el hecho de que no utiliza ninguna expresión coloquial.
    Implementación
    Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.
    Análisis de algoritmos
    Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.
    El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el idioma del programador.
    Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de éste con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.
    Ejemplo de algoritmo
    El problema consiste en encontrar el máximo de un conjunto de números. Para un ejemplo más complejo véase Algoritmo de Euclides.

    Descripción de alto nivel
    Dado un conjunto finito C de números, se tiene el problema de encontrar el número más grande. Sin pérdida de generalidad se puede asumir que dicho conjunto no es vacío y que sus elementos están numerados como .
    Es decir, dado un conjunto se pide encontrar m tal que para todo elemento x que pertenece al conjunto C.
    Para encontrar el elemento máximo, se asume que el primer elemento (c0) es el máximo; luego, se recorre el conjunto y se compara cada valor con el valor del máximo número encontrado hasta ese momento. En el caso que un elemento sea mayor que el máximo, se asigna su valor al máximo. Cuando se termina de recorrer la lista, el máximo número que se ha encontrado es el máximo de todo el conjunto.
    Descripción formal
    El algoritmo escrito de una manera más formal, esto es, en pseudocódigo tendría el siguiente aspecto:
    Algoritmo Encontrar el máximo de un conjunto
    función
    //C es un conjunto no vacío de números//
    // | C | es el número de elementos de C//

    para hasta hacer
    si entonces

    devolver

    Sobre la notación:
    • " " representa la asignación entre dos objetos. Por ejemplo, significa que el objeto m cambia su valor por el de x
    • "devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el máximo de C)
    Implementación
    En lenguaje Java:
    public int max( int c[] ) {
    int n = c.length;
    int m = c[0];
    for( int i = 0 ; i < n ; i++ ) {
    if( c[i] > m ) {
    m = c[i];
    }
    }
    return m;
    }
    En lenguaje Visual Basic 8 (2005):
    Public Function max(C As Integer()) As Integer
    Dim n As Integer = C.GetLength(0)
    Dim m As Integer = C(0)
    For i As Integer = 1 To n
    If C(i) > m Then
    m = C(i)
    End If
    Next
    Return m
    End Function
    En lenguaje Delphi:
    function Max(const ListaNumeros: array of Integer): Integer;
    var
    vTemp, i: Integer;
    begin
    vTemp:= 0;

    for i:= 1 to High(ListaNumeros) do
    if ListaNumeros[i] > vTemp then
    vTemp:= ListaNumeros[i];

    Result:= vTemp;
    end;
    En lenguaje Ada
    type T_Conjunto is array <> of Integer;
    function Maximo
    (Conjunto : T_Conjunto) return Integer
    is
    Temporal : Integer := Conjunto (1);
    begin
    for I in 2 .. Conjunto'Last loop
    if Conjunto (I) > Temporal then
    Temporal := Conjunto (I);
    end if;
    end loop;
    return Temporal;
    end Maximo;

    En lenguaje Python
    def max(c):
    n=len(c)
    m=c[0]
    for i in range(0,n):
    if c[i]>m: m=c[i]
    return m
    Análisis
    El algoritmo anterior tiene un orden de eficiencia en tiempo de O(n), en la notación O mayúscula, siendo n el tamaño de la entrada, más concretamente, en este caso, el número de elementos de C. Además, como el algoritmo necesita recordar un único valor (el máximo) requiere un espacio adicional de O(1) (hay que tener en cuenta que el tamaño de las entradas no se considera como memoria usada por el algoritmo).

    Fuentes Bibliografícas
    (Sin Autor) (ultima actualización, 2008) http://es.wikipedia.org/wiki/Algoritmo, Wikipedia, algoritmos y funciones, consultada el 01/12/2008 disponible

    ResponderEliminar
  35. Carlos Alvarez
    C.I.: 18.754.772
    4BIN- Sección 10

    ALGORITMOS

    Algoritmos: (Del latín, dixit algorithmus y éste a su vez del matemático persa al Jwarizmi). Es una lista bien definida, ordenada y finita de operaciones

    Para que se usan:
    Permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución.

    Cual es la finalidad de los algoritmos:
    Resolución de cálculos complicados mediante el uso repetido de otro método de cálculo más sencillo. Ejemplos básicos son los métodos para efectuar operaciones aritméticas (multiplicación, división, obtención de raíces cuadradas…), la obtención del máximo común divisor y del mínimo común múltiplo de un número mediante su descomposición en factores primos, y la división de un polinomio por x – a mediante la regla de Ruffini. En la actualidad, el término algoritmo se aplica a muchos de los métodos de resolución de problemas que emplean una secuencia mecánica de pasos, como en el diseño de un programa de ordenador o computadora. Esta secuencia se puede representar en forma de un diagrama de flujo para que sea más fácil de entender.

    Que tipos de algoritmos hay:
    Algoritmo de ordenamiento:
    Es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación, o reordenamiento de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.

    Algoritmo de búsqueda:
    Es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Es decir, consiste en solucionar un problema de existencia o no de un elemento determinado en un conjunto finito de elementos y al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no.
    En el caso de existir el algoritmo podría proporcionar la localización del elemento dentro del conjunto.

    Bibliografía consultada:
    • Microsoft ® Encarta ® 2008. © 1993-2007 Microsoft Corporation. Reservados todos los derechos.
    • http://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento

    • http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda

    • http://es.wikipedia.org/wiki/Algoritmo#Tipos_de_algoritmos_seg.C3.BAn_su_funci.C3.B3n

    ResponderEliminar
  36. Alumna:
    Martínez Elsi
    C.I V- 13.375.084
    elsiyami_mar@hotmail.com
    Ing. Nocturno
    Sección: 10

    ALGORITMOS

    Es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia.

    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

    La descripción de un algoritmo usualmente se hace en tres niveles:

    1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.

    CARACTERÍSTICAS DE LOS ALGORITMOS
    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia: "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
    PARA QUE SE USAN
    Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los números naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.
    Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra.
    Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo (secuencia de pasos finita, ordenada y definida) calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.
    QUE TIPOS DE ALGORITMOS HAY

    • Algoritmo de ordenamiento
    Es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.

    • Algoritmo de búsqueda
    Es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.
    Este problema puede reducirse a devolver la existencia de un número en un vector.
    ENLACE:
    http://es.wikipedia.org/wiki/Algoritmo#Tipos_de_algoritmos_seg.C3.BAn_su_funci.C3.B3n

    http://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento

    http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqueda

    ResponderEliminar
  37. buenas tardes profesor,Alumno: Argenis torres CI.14.566.448
    Sección 10,4to semestre de ingeniería unefa vargas

    algoritmo
    concepto: Conjunto de operaciones que se utilizan para resolver un problema específico. En este conjunto de instrucciones se indica la secuencia de operaciones que se deben realizar para, a partir de los datos de entrada, obtener el resultado buscado.
    El concepto de algoritmo es anterior a los ordenadores, y ampliamente utilizado en el mundo de la ciencia para la resolución metódica de problemas. Sin embargo, con la aparición de los ordenadores se comprobó que era una herramienta ideal, ya que cualquier algoritmo puede transformarse en un programa informático.

    Definido: si se sigue dos veces, se obtiene el mismo resultado.
    Preciso: implica el orden de realización de cada uno de los pasos
    Finito: Tiene un numero determinado de pasos, implica que tiene un fin.

    Características de los algoritmos


    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel
    A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida).
    Funciones:
    En general, se escriben algoritmos para resolver problemas que no son tan fáciles de resolver a primera vista, y de los que necesitamos especificar el conjunto de acciones que se llevarán a cabo para su resolución.

    Medios de expresión de un algoritmo
    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
    La descripción de un algoritmo usualmente se hace en tres niveles:
    1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
    Tipos de algoritmos:
    *Algoritmos voraces: destruye o consume rápidamente. Llevándolo al concepto que nos interesa, se puede decir que destruyen el problema que se nos presente al momento de construir un algoritmo.Tal como su nombre lo indica, el enfoque que aplican es muy corto, y toman decisiones basándose en la información que tienen disponible de modo inmediato, sin tener en cuenta los efectos que estas decisiones puedan tener en el futuro. Por tal razón resultan fáciles de inventar, fáciles de implementar y, cuando funcionan, suelen ser eficaces, pero no eficientes.

    *Algoritmos de programación dinámica: La programación dinámica es un método ascendente. Se resuelven primero los sub.-ejemplares más pequeños y por tanto más simples. Combinando las soluciones se obtienen las soluciones de ejemplares sucesivamente más grandes hasta llegar al ejemplar original.

    *Algoritmos divide y vencerás: En la fase de diseño del ciclo de vida de un programa, dado un problema a resolver, en primer lugar hay que estudiar la posibilidad de dividirlo en otros más pequeños, llamados subproblemas (este método es conocido como "divide y vencerás").

    *Algoritmos probabilistas: Un algoritmo probabilista (o probabilístico) es un algoritmo que basa su resultado en la toma de algunas decisiones al azar, de tal forma que, en promedio, obtiene una buena solución al problema planteado para cualquier distribución de los datos de entrada. Es decir, al contrario que un algoritmo determinista, a partir de unos mismos datos se pueden obtener distintas soluciones y, en algunos casos, soluciones erróneas.
    En general, se escriben algoritmos para resolver problemas que no son tan fáciles de resolver a primera vista, y de los que necesitamos especificar el conjunto de acciones que se llevarán a cabo para su resolución.

    BIBLIOGRAFIA
    http://www.monografias.com
    http://es.wikipedia.org./wiki/algoritmo
    http://unlar.com.ar
    http://espanol.answer.yahoo.com
    http://thales.cica.es
    http://carlospes.com/minidiccionario

    ResponderEliminar
  38. Buenos dias prof.
    A continuación le anexo mi Bibliografía.

    http://es.wikipedia.org/wiki/Algoritmos

    http://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento

    Nombre:jhonny castillo
    C.I:14.566.262
    SECCION: 9° de Ing. Nocturno.

    Saludos....

    ResponderEliminar
  39. Buenas tardes profesor

    Alumno Julio Cesar Martinez CI11.641.219 4to semestre de Ing. Seccion 10

    Se me olvido colocar de donde obtuve la información. Mi asignación la extraje de las diapositivas del profesor de programación Tito (laboratorio, meseta de mamo)

    ResponderEliminar
  40. Julio Silva CI 12.056.255. 4to semestre Ing. sección 10

    Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.
    Pasos para realizar un algoritmo:
    Análisis del problema: Conducen al diseño detallado por medio un código escrito en forma de un algoritmo.
    Diseño de algoritmo: la palabra misma lo dice es el diseño del algoritmo en si, elaboración del algoritmo.
    Codificación: Se implementa el algoritmo en un código escrito en un lenguaje de programación. Refleja las ideas desarrolladas en las etapas de análisis y diseño
    Compilación y ejecución: Traduce el programa fuente a programa en código de maquina y lo ejecuta.
    Verificación: Busca errores en las etapas anteriores y los elimina.
    Depuración: corrupción de las distintas etapas que tengas error o que estén sin terminar el proceso.
    Documentación: es una especie de manual técnico de manera que la persona que lo vaya a utilizar sepa como operarlo, de igual manera se elabora uno para el programador, de manera que si otra persona quisiera ingresar mas código a dicha programación se pueda familiarizarse rápidamente con el código.
    Las características del algoritmo son:
    Ser definido, Ser finito, Tener una o más entradas, Tener una o más salidas, Efectividad.
    Tipos de algoritmo:
    Algorítmico: Utiliza un algoritmo y puede ser implementado en una computadora.
    Heurística: Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares. De las mismas, a se deducen una serie de reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de la mejor alternativa en todas o la mayoría de las veces.


    Bibliografía
    http://es.wikipedia.org/wiki/Algoritmo
    http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml

    ResponderEliminar
  41. Características de los algoritmos

    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
    Algoritmos y funciones:

    Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los números naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.
    Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo (secuencia de pasos finita, ordenada y definida) calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.
    Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann; a este último tipo de funciones se las denomina funciones no computables.

    Medios de expresión de un algoritmo:
    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
    La descripción de un algoritmo usualmente se hace en tres niveles:
    1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
    Diagrama de flujo


    Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x
    Artículo principal: Diagrama de flujo
    Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
    Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.
    Pseudocódigo
    Artículo principal: Pseudocódigo
    Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un codigo al que aunque es entendible no se aplica al proceso que debe realizar la maquina.
    Máquina de Turing
    Artículo principal: Máquina de Turing
    La máquina de Turing es un modelo matemático, diseñado por Alan Turing, que formaliza el concepto de algoritmo. A este modelo se le refiere comúnmente como la "descripción de más bajo nivel" por el hecho de que no utiliza ninguna expresión coloquial.
    Implementación
    Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.
    Análisis de algoritmos
    Artículo principal: Análisis de algoritmos
    Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.
    El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el idioma del programador.
    Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de éste con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.
    Ejemplo de algoritmo
    El problema consiste en encontrar el máximo de un conjunto de números. Para un ejemplo más complejo véase Algoritmo de Euclides.
    Descripción de alto nivel
    Dado un conjunto finito C de números, se tiene el problema de encontrar el número más grande. Sin pérdida de generalidad se puede asumir que dicho conjunto no es vacío y que sus elementos están numerados como .
    Es decir, dado un conjunto se pide encontrar m tal que para todo elemento x que pertenece al conjunto C.
    Para encontrar el elemento máximo, se asume que el primer elemento (c0) es el máximo; luego, se recorre el conjunto y se compara cada valor con el valor del máximo número encontrado hasta ese momento. En el caso que un elemento sea mayor que el máximo, se asigna su valor al máximo. Cuando se termina de recorrer la lista, el máximo número que se ha encontrado es el máximo de todo el conjunto.
    Descripción formal
    El algoritmo escrito de una manera más formal, esto es, en pseudocódigo tendría el siguiente aspecto:
    Algoritmo Encontrar el máximo de un conjunto
    función
    //C es un conjunto no vacío de números//
    // | C | es el número de elementos de C//

    para hasta hacer
    si entonces

    devolver

    Sobre la notación:
    • " " representa la asignación entre dos objetos. Por ejemplo, significa que el objeto m cambia su valor por el de x
    • "devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el máximo de C)
    Implementación
    En lenguaje Java:
    public int max( int c[] ) {
    int n = c.length;
    int m = c[0];
    for( int i = 0 ; i < n ; i++ ) {
    if( c[i] > m ) {
    m = c[i];
    }
    }
    return m;
    }
    En lenguaje Visual Basic 8 (2005):
    Public Function max(C As Integer()) As Integer
    Dim n As Integer = C.GetLength(0)
    Dim m As Integer = C(0)
    For i As Integer = 1 To n
    If C(i) > m Then
    m = C(i)
    End If
    Next
    Return m
    End Function
    En lenguaje Delphi:
    function Max(const ListaNumeros: array of Integer): Integer;
    var
    vTemp, i: Integer;
    begin
    vTemp:= 0;

    for i:= 1 to High(ListaNumeros) do
    if ListaNumeros[i] > vTemp then
    vTemp:= ListaNumeros[i];

    Result:= vTemp;
    end;
    En lenguaje Ada
    type T_Conjunto is array <> of Integer;
    function Maximo
    (Conjunto : T_Conjunto) return Integer
    is
    Temporal : Integer := Conjunto (1);
    begin
    for I in 2 .. Conjunto'Last loop
    if Conjunto (I) > Temporal then
    Temporal := Conjunto (I);
    end if;
    end loop;
    return Temporal;
    end Maximo;
    En lenguaje Python
    def max(c):
    n=len(c)
    m=c[0]
    for i in range(0,n):
    if c[i]>m: m=c[i]
    return m
    Análisis
    El algoritmo anterior tiene un orden de eficiencia en tiempo de O(n), en la notación O mayúscula, siendo n el tamaño de la entrada, más concretamente, en este caso, el número de elementos de C. Además, como el algoritmo necesita recordar un único valor (el máximo) requiere un espacio adicional de O(1) (hay que tener en cuenta que el tamaño de las entradas no se considera como memoria usada por el algoritmo).

    Alumno: Suárez Jean
    Ci: 14386158
    Secc: 10

    ResponderEliminar
  42. Doalfre Caraballo
    C.I 19444001
    Secciòn 9
    Esta fue la tarea sobre el algoritmo a investigar

    http://es.wikipedia.org/wiki/Algoritmo

    ResponderEliminar
  43. Buenas quien escribe es Jesús Indriago C.I 6.469.458 Sección 9 en el blog dice claramente que estudiemos lo referente a los algoritmos y le enviemos las paginas de Internet o las bibliografias de las cuales leímos el tema, quiero decir que yo me informe de unas guías que nos facilito el profesor del laboratorio, mi pregunta es tengo que enviarle las guías?. Estas están en un archivo power point espero su respuesta.

    ResponderEliminar
  44. Douglas leal 15545664
    Ingeniería
    Sección: 9 Nocturno

    Algoritmos.

    Un algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución.

    Para que se usan.

    En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los manuales de usuario, los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemático, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.

    Cual es la finalidad de los algoritmos.
    Normalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales, en esencia, todo algoritmo calcula a funciones definidas en los números naturales. Una función es parcial cuando hay números naturales que no pertenecen a su dominio, y una función es total en caso contrario. Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado para los valores en los que la función está definida, no devolviendo resultado para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Así, todo algoritmo calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza. Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann; a este último tipo de funciones se las denomina funciones no computables.
    Que tipos de algoritmos hay.
    Algoritmo de ordenamiento: En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.
    Algoritmo de búsqueda: es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto. Este problema puede reducirse a devolver la existencia de un número en un vector.

    http://es.wikipedia.org/wiki/Algoritmo#Tipos_de_algoritmos_seg.C3.BAn_su_funci.C3.B3n

    ResponderEliminar
  45. hola
    Yelitza Martnez
    C.I 18534112

    Este es el link en donde extraje la informacion acerca del algoritmo

    http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml

    ResponderEliminar
  46. hola profesor una pregunta eso no entiendo como eso lo que pasa que soy medio sorda porfavor me explica me agregar mi correo es nellyantillano11@hotmail.com espero me responde gracias

    ResponderEliminar
  47. En matemáticas, ciencias de la computación, y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia..
    En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemático, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.
    Cuando escribimos un programa de computadora, generalmente estamos llevando a cabo un método que se ha inventado para resolver algún problema previamente. Este método es a menudo independiente de la computadora y es probable que sea igualmente apropiado para muchas tipos de computadora y muchos lenguajes de computadora. Es el método, en el programa de computación, el que nosotros debemos estudiar para aprender cómo se está tratando de resolver el problema. El término algoritmo se usa en la informática para describir un método problema-solución conveniente para la aplicación en un programa de computadora. Los algoritmos son los materiales de informática, son los objetos centrales de estudio para muchos, si no la mayoría, de las áreas de campo.
    Características de los algoritmos
    El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:
    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
    Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no ambigua", o "suficientemente básicas", y así sucesivamente..
    A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los algoritmos probabilistas.


    Tipos de algoritmos según su función

    Algoritmo de ordenamiento
    En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.
    Desde los comienzos de la computación, el problema del ordenamiento ha atraído gran cantidad de investigación, tal vez debido a la complejidad de resolverlo eficientemente a pesar de su planteamiento simple y familiar. Por ejemplo, BubbleSort fue analizado desde 1956.1 Aunque muchos puedan considerarlo un problema resuelto, nuevos y útiles algoritmos de ordenamiento se siguen inventado hasta el día de hoy (por ejemplo, el ordenamiento de biblioteca se publicó por primera vez en el 2004). Los algoritmos de ordenamiento son comunes en las clases introductorias a la computación, donde la abundancia de algoritmos para el problema proporciona una gentil introducción a la variedad de conceptos núcleo de los algoritmos, como notación de O mayúscula, algoritmos divide y vencerás, estructuras de datos, análisis de los casos peor, mejor, y promedio, y límites inferiores.
    Algoritmo de búsqueda
    Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.
    Este problema puede reducirse a devolver la existencia de un número en un vector.


    http://es.wikipedia.org/wiki/Algoritmo

    CARLOS DIAZ
    17.959.456
    SECCIÓN 9 INGENIERIA NOCTURNO.

    ResponderEliminar
  48. Algoritmo
    Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra "algoritmo" deriva del nombre latinizado del gran matemático árabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de
    numeración hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las palabras: Algoritmi dicit.

    Características:
    Las características fundamentales que debe cumplir todo algoritmo son:
    • Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.
    • Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos.
    • Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.
    • Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.
    • Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.


    Algoritmo


    Es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.

    Donde:

    Preciso: implica el orden de realización de cada uno de los pasos

    Definido: si se sigue dos veces, se obtiene el mismo resultado.

    Finito: Tiene un numero determinado de pasos, implica que tiene un fin,


    Tipos de Algoritmo



    Algorítmico

    Utiliza un algoritmo y puede ser implementado en una computadora.

    Ejemplo

    • Instrucciones para manejar un vehículo
    • Instrucciones para secar grano a granel
    • Instrucciones para resolver ecuación de segundo grado


    Heurística

    Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares. De las mismas, a se deducen una serie de reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de la mejor alternativa en todas o la mayoría de las veces.




    http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php


    http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml

    ALEXIS RODRIGUEZ
    14.512.135
    SECCIÓN 9 INGENIERIA NOCTURNO.

    ResponderEliminar
  49. Keidy hidalgo 19.334.496
    Seccion 10 cuarto semestre

    • Historia de un algoritmo
    La palabra algoritmo proviene del nombre del matemático llamado Muhammad ibn Musa al-Khwarizmi que vivió entre los siglos VIII y IX. Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, de ahí que su principal logro no fuera el de crear nuevos teoremas o corrientes de pensamiento, sino el de simplificar la matemática a punto tal que pudieran ser comprendidas y aplicadas por un mayor número de personas. Cabe destacar cómo señaló las virtudes del sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos mecánicos en vez de las manos (por ejemplo, ábacos). También estudió la manera de reducir las operaciones que formaban el cálculo. Es por esto que aún no siendo el creador del primer algoritmo, el concepto lleva aunque no su nombre, sí su pseudónimo.
    Así, de la palabra algorismo, que originalmente hacía referencia a las reglas de uso de la aritmética utilizando dígitos árabes, se evolucionó a la palabra latina, derivación de al-Khwarizmi, algobarismus, que más tarde mutaría a algoritmo en el siglo XVIII. La palabra ha cambiado de forma que en su definición se incluye a todos los procedimientos finitos para resolver problemas.
    Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842. Por ello que es considerada por muchos como la primera programadora aunque, desde Charles Babbage, nadie completó su máquina, por lo que el algoritmo nunca se implementó.
    La falta de rigor matemático en la definición de "procedimiento bien definido" para los algoritmos trajo algunas dificultades a los matemáticos y lógicos del siglo XIX y comienzos de XX. Este problema fue en gran parte resuelto con la descripción de la máquina de Turing, un modelo abstracto de computadora formulado por Alan Turing, y la demostración de que cualquier método anticipado por otros matemáticos que pueda encontrarse para describir "procedimientos bien definidos" puede ser emulado en una máquina de Turing (una afirmación conocida como "tesis de Church-Turing").
    En la actualidad, el criterio formal para definir un algoritmo es que se trata de un proceso que puede implementarse en una máquina de Turing completamente especificada, o en alguno de los formalismos equivalentes. El interés original de Turing era el problema de la detención: decidir cuándo un algoritmo describe un procedimiento de terminación. En términos prácticos importa más la teoría de la complejidad computacional, que incluye los problemas llamados NP-completos, es decir aquellos sobre los que generalmente se presume que requerirán tiempo más que polinómico para cualquier algoritmo (determinístico). NP denota la clase de los problemas de decisión que pueden ser resueltos en tiempo polinómico por una máquina de Turing no determinística.
    En matemáticas, ciencias de la computación, y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia...
    En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemático, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.
    Cuando escribimos un programa de computadora, generalmente estamos llevando a cabo un método que se ha inventado para resolver algún problema previamente. Este método es a menudo independiente de la computadora y es probable que sea igualmente apropiado para muchas tipos de computadora y muchos lenguajes de computadora. Es el método, en el programa de computación, el que nosotros debemos estudiar para aprender cómo se está tratando de resolver el problema. El término algoritmo se usa en la informática para describir un método problema-solución conveniente para la aplicación en un programa de computadora. Los algoritmos son los materiales de informática, son los objetos centrales de estudio para muchos, si no la mayoría, de las áreas de campo.

    • Características de los algoritmos
    El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:
    1. Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    2. Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    3. Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    4. Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    5. Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
    • Algoritmos y funciones
    Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los números naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.
    Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo (secuencia de pasos finita, ordenada y definida) calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.
    Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann; a este último tipo de funciones se las denomina funciones no computables.

    • Medios de expresión de un algoritmo
    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
    La descripción de un algoritmo usualmente se hace en tres niveles:
    1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.

    • Análisis de algoritmos
    Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.
    El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el idioma del programador.
    Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de éste con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.

    Tipos de algoritmos según su función
    • Algoritmo de ordenamiento
    En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.
    Desde los comienzos de la computación, el problema del ordenamiento ha atraído gran cantidad de investigación, tal vez debido a la complejidad de resolverlo eficientemente a pesar de su planteamiento simple y familiar. Por ejemplo, BubbleSort fue analizado desde 1956.1 Aunque muchos puedan considerarlo un problema resuelto, nuevos y útiles algoritmos de ordenamiento se siguen inventado hasta el día de hoy (por ejemplo, el ordenamiento de biblioteca se publicó por primera vez en el 2004). Los algoritmos de ordenamiento son comunes en las clases introductorias a la computación, donde la abundancia de algoritmos para el problema proporciona una gentil introducción a la variedad de conceptos núcleo de los algoritmos, como notación de O mayúscula, algoritmos divide y vencerás, estructuras de datos, análisis de los casos peor, mejor, y promedio, y límites
    • Algoritmo de búsqueda
    Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.
    Este problema puede reducirse a devolver la existencia de un número en un vector.
    Técnicas de diseño de algoritmos
    • Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.
    • Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.
    • Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios
    • Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro ancesor.
    • Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
    • Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la solución al problema completo.
    • Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
    • Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
    • Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.
    • Vuelta Atrás (Backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas.

    ResponderEliminar
  50. hola prof es keidy hidalgoC.I 19334496,de la seccion 10 de ing se me olvido colocarle de donde saque la informacion.

    http://es.wikipedia.org/wiki/Algoritmo

    ResponderEliminar
  51. Buenas Noches Profesor pienso que está página es un poco completa ya que trata sobre diferentes temas de programación.
    PROGRAMACIÓN EXCELENTE MATERIAL


    4BINS9
    Steawart Jiménez. CI: 19246818

    ResponderEliminar
  52. Buenas noches profesor.

    yo por mi parte me he basado en la informacion ofrecida por monografias para pulir los conocimientos sobre la materia.

    Alli se encuentra uno de los trabajos mas interesantes y detallados sobre los algoritmos y su funcionalidad.

    referencia bibliografica;
    http://www.monografias.com/trabajos11/alcom/alcom.shtml?monosearch
    referencia bibliografica:
    http://www.monografias.com/trabajos11/alcom/alcom.shtml?monosearch

    ---------------------------------
    Pedro Luis Perez
    C.I 18.536.234
    SECCION 09 - INGENIERIA

    ResponderEliminar
  53. ALGORITMO
    Es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia.
    En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemático, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.
    Cuando escribimos un programa de computadora, generalmente estamos llevando a cabo un método que se ha inventado para resolver algún problema previamente. Este método es a menudo independiente de la computadora y es probable que sea igualmente apropiado para muchas tipos de computadora y muchos lenguajes de computadora. Es el método, en el programa de computación, el que nosotros debemos estudiar para aprender cómo se está tratando de resolver el problema. El término algoritmo se usa en la informática para describir un método problema-solución conveniente para la aplicación en un programa de computadora. Los algoritmos son los materiales de informática, son los objetos centrales de estudio para muchos, si no la mayoría, de las áreas de campo.
    FINALIDAD
    La finalidad de un algoritmo radica en mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos o de otro tipo. Al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida, comportándose como una caja negra. Sin embargo, no toda caja negra que convierta una entrada en una salida se puede considerar un algoritmo: para que un algoritmo pueda ser considerado como tal, debe ser una secuencia ordenada, finita y definida (formalización de su comportamiento) de instrucciones. De este modo se puede seguir y predecir el comportamiento del algoritmo para cualquier entrada posible (salvo algoritmos probabilistas, que tiene usualmente una salida distinta), a partir del seguimiento de esa secuencia de instrucciones, que como es ordenada y definida, no da lugar a ambigüedades y puede seguirse su traza.
    El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema (método), el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.
    La mayoría de los algoritmos involucran métodos de organizar los datos que intervienen en el cómputo. Estos objetos creados son llamados, de esta manera la estructura de los datos, y también son objetos centrales del estudio en la informática. De esta forma, los algoritmos y estructuras de los datos van siempre de la mano. Los algoritmos simples pueden dar lugar a una estructura de datos complicada y, recíprocamente, los algoritmos complicados pueden usar estructuras de los datos simples.
    Cuando usamos una computadora para ayudarnos a resolver un problema, nos enfrentamos típicamente con varios posibles esquemas. Para los problemas pequeños, lo que apenas importa es que lo usemos, con tal de que se tenga uno que resuelva el problema correctamente. Para los problemas grandes (o aplicaciones dónde nosotros necesitamos resolver un gran número de problemas pequeños), sin embargo, nos motivamos en inventar métodos que usan tiempo eficazmente de forma rápida como sea posible.
    Cuando un programa de computadora es grande o complejo, este será desarrollado con mucho esfuerzo, ya que se debe comprender y definir el problema a ser resuelto, manejando su complejidad, y descomponiéndolo en partes más pequeñas que puedan resolverse más fácilmente. A menudo, muchos de los algoritmos que se necesitan, después de la descomposición son triviales al instrumento. En la mayoría de los casos, sin embargo, existen algoritmos cuyo funcionamiento es crítico porque alguno o varios de los recursos del sistema (memoria, tiempos de uso de procesador, etc.) pueden agotarse durante su funcionamiento.
    TIPOS
     algoritmo de ordenamiento
     algoritmo de búsqueda
    algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.
    Desde los comienzos de la computación, el problema del ordenamiento ha atraído gran cantidad de investigación, tal vez debido a la complejidad de resolverlo eficientemente a pesar de su planteamiento simple y familiar. Por ejemplo, BubbleSort fue analizado desde 1956.1 Aunque muchos puedan considerarlo un problema resuelto, nuevos y útiles algoritmos de ordenamiento se siguen inventado hasta el día de hoy (por ejemplo, el ordenamiento de biblioteca se publicó por primera vez en el 2004). Los algoritmos de ordenamiento son comunes en las clases introductorias a la computación, donde la abundancia de algoritmos para el problema proporciona una gentil introducción a la variedad de conceptos núcleo de los algoritmos, como notación de O mayúscula, algoritmos divide y vencerás, estructuras de datos, análisis de los casos peor, mejor, y promedio, y límites inferiores.
    Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.
    Este problema puede reducirse a devolver la existencia de un número en un vector.
    Fuente: www.wikipedia.com


    Kharla Baez
    C.I: 17.074.747
    seccion "9"

    ResponderEliminar
  54. Un algoritmo es un procedimiento a seguir, para resolver un problema en términos de:

    1. Las acciones por ejecutar y el
    2. El orden en que dichas acciones deben ejecutarse

    Un algoritmo nace en respuesta a la aparición de un determinado problema. Una algoritmo esta compuesto de una serie finita de pasos que convergen en la solución de un problema, pero además estos pasos tienen un orden específico.

    Entenderemos como problema a cualquier acción o evento que necesite cierto grado de análisis, desde la simpleza de cepillarse los dientes hasta la complejidad del ensamblado de un automóvil. En general, cualquier problema puede ser solucionado utilizando un algoritmo, en este sentido podemos utilizar los algoritmos para resolver problemas de computo.

    Un algoritmo para un programador es una herramienta que le permite resaltar los aspectos más importantes de una situación y descartar los menos relevantes. Todo problema de cómputo se puede resolver ejecutando una serie de acciones en un orden específico.
    Por ejemplo considere el algoritmo que se elaboraría para el problema o situación de levantarse todas las mañanas para ir al trabajo:

    Salir de la cama
    quitarse el pijama
    ducharse
    vestirse
    desayunar
    arrancar el automóvil para ir al trabajo o tomar transporte.
    Nótese que en el algoritmo anterior se ha llegado a la solución del problema en 6 pasos, y no se resaltan aspectos como: colocarse los zapatos después de salir de la cama, o abrir la llave de la regadera antes de ducharse. Estos aspectos han sido descartados, pues no tienen mayor trascendencia, en otras palabras los estamos suponiendo, en cambio existen aspectos que no podemos obviarlos o suponerlos, de lo contrario nuestro algoritmo perdería lógica, un buen programador deberá reconocer esos aspectos importantes y tratar de simplificar al mínimo su problema.

    Es importante recalcar que los pasos de un algoritmo no son conmutativos pues, no daría solución al mismo problema a tratar.

    El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:

    Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
    Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no ambigua", o "suficientemente básicas", y así sucesivamente..

    A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los algoritmos probabilistas.

    Tipos de algoritmos según su función
    Algoritmo de ordenamiento

    Quicksort en acción sobre una lista de números aleatorios. Las líneas horizontales son valores pivote.En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.

    Desde los comienzos de la computación, el problema del ordenamiento ha atraído gran cantidad de investigación, tal vez debido a la complejidad de resolverlo eficientemente a pesar de su planteamiento simple y familiar. Por ejemplo, BubbleSort fue analizado desde 1956.[1] Aunque muchos puedan considerarlo un problema resuelto, nuevos y útiles algoritmos de ordenamiento se siguen inventado hasta el día de hoy (por ejemplo, el ordenamiento de biblioteca se publicó por primera vez en el 2004). Los algoritmos de ordenamiento son comunes en las clases introductorias a la computación, donde la abundancia de algoritmos para el problema proporciona una gentil introducción a la variedad de conceptos núcleo de los algoritmos, como notación de O mayúscula, algoritmos divide y vencerás, estructuras de datos, análisis de los casos peor, mejor, y promedio, y límites inferiores.
    Algoritmo de búsqueda

    Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir al finalizar el algoritmo este debe decir si el elemento en cuestión existe o no en ese conjunto (si pertenece o no a él), además, en caso de existir, el algoritmo podría proporcionar la localización del elemento dentro del conjunto.

    Este problema puede reducirse a devolver la existencia de un número en un vector.

    Medios de expresión de un algoritmo
    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

    La descripción de un algoritmo usualmente se hace en tres niveles:

    Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.

    Diagrama de flujo
    Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número xArtículo principal: Diagrama de flujo
    Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.

    Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.

    Pseudocódigo
    Artículo principal: Pseudocódigo
    Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar. pseudo viene de falso y por ende es un codigo al que aunque es entendible no se aplica al proceso que debe realizar la maquina.

    Máquina de Turing
    Artículo principal: Máquina de Turing
    La máquina de Turing es un modelo matemático, diseñado por Alan Turing, que formaliza el concepto de algoritmo. A este modelo se le refiere comúnmente como la "descripción de más bajo nivel" por el hecho de que no utiliza ninguna expresión coloquial.

    Implementación
    Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.

    Análisis de algoritmos
    Artículo principal: Análisis de algoritmos
    Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.

    El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el idioma del programador.

    Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de éste con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.

    ResponderEliminar
  55. ALGORITMOS
    En matemáticas, ciencias de la computación, y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia.
    CARACTERISTICAS DE LOS ALGORITMOS
    El científico de computación Donald Knuth ofreció una lista de cinco propiedades, que son ampliamente aceptadas como requisitos para un algoritmo:
    Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de pasos".
    Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
    Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
    Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".
    Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
    Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no ambigua", o "suficientemente básicas", y así sucesivamente..
    A partir del carácter finito y de la salida se deduce que ante una misma situación inicial (o valores de entrada) un algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepción de los algoritmos probabilistas.
    ALGORITMOS Y FUNCIONES
    Formalmente, un algoritmo calcula a una función. Como cualquier conjunto finito es numerable, y cualquier conjunto no numerable se puede expresar en términos del conjunto de los números naturales (infinito, pero numerable, de hecho no existe otro conjunto más grande que sea también numerable), en esencia, todo algoritmo calcula a funciones definidas en los numeros naturales. En este punto, una función está parcial o totalmente definida. Una función es parcial cuando hay números naturales que no pertenecen a su dominio (es decir, hay números naturales sobre los que no está definida la función), y una función es total en caso contrario.
    Si una función es parcial, el algoritmo que lo calcula solo devolverá un resultado (es decir gasta un tiempo de cálculo finito) para los valores en los que la función está definida, no devolviendo resultado (el tiempo de cálculo es infinito) para el resto de valores. Si un algoritmo que calcula a una función parcial devolviera un resultado para los valores no definidos de la función, entonces no calcularía a esa función sino a otra. Del mismo modo, un algoritmo que calcula a una función total siempre devuelve un resultado para todo valor, y que al igual que las funciones parciales, éste debe coincidir exactamente con el valor que devuelve la función a la que calcula; y reiterativamente, en caso contrario, no calcularía a esa función sino a otra. Así, todo algoritmo (secuencia de pasos finita, ordenada y definida) calcula a una función definida sobre los números naturales, sea cuál sea ésta su naturaleza.
    Toda función para la cual exista un algoritmo que lo calcule se denomina función computable (parcialmente computable o totalmente computable depende del grado de definición de la función en cuestión), pero existen funciones que no pueden ser calculadas como la función de Ackermann; a este último tipo de funciones se las denomina funciones no computables.
    MEDIOS DE EXPRESION DE UN LOGARITMO
    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
    La descripción de un algoritmo usualmente se hace en tres niveles:
    Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
    También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
    DIAGRAMA DE FLUJO
    Un diagrama de flujo es una forma más tradicional de especificar los detalles algorítmicos de un proceso y constituye la representación gráfica de un proceso multifactorial. Se utiliza principalmente en programación, economía y procesos industriales, pasando también a partir de estas disciplinas a formar parte fundamental de otras, como la psicología cognitiva; estos diagramas utilizan una serie de símbolos con significados especiales. Son la representación gráfica de los pasos de un proceso, que se realiza para entenderlo mejor. Son modelos tecnológicos utilizados para comprender los rudimentos de la programación lineal.

    DEFINICION
    Es la representacion grafica de flujo o secuencia de rutinas simples, es una forma de especificar los detalles algoritmicos de un proceso mediante la esquematizacion grafica para entenderlo mejor. Se basan en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de la operación.
    Un diagrama de flujo es la representación grafica del flujo o secuencia de rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las unidades involucradas y los responsables de su ejecución; en pocas palabras es la representación simbólica o pictórica de un procedimiento administrativo.
    El método de ordenación más conocido y popular entre estudiantes y aprendices de programación, es el método burbuja, por su facilidad de comprensión y programación. El método de búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos. Encontramos dos técnicas que utiliza este método de acceso, para encontrar elementos dentro de un array: Búsqueda secuencial y búsqueda binaria.
    SIMBOLOS UTILIZADOS
    Para poder hacer comprensibles los diagramas a todas las personas, los símbolos se someten a una normalización, es decir, se hicieron símbolos casi universales, ya que, en un principio cada usuario podría tener sus propios símbolos para representar sus procesos en forma de Diagrama de flujo. Esto trajo como consecuencia que sólo aquel que conocía sus símbolos, los podía interpretar. La simbología utilizada para la elaboración de diagramas de flujo es variable y debe ajustarse a un patrón definido previamente.
    En teoría, no es necesario usar un tipo especial de símbolos para crear un diagrama de flujo, pero existen algunos ampliamente utilizados por lo que es adecuado conocerlos y utilizarlos, ampliando así las posibilidades de crear un diagrama más claro y comprensible para crear un proceso lógico y con opciones múltiples adecuadas. Se utilizan los símbolos indicados a continuación, estandarizados según la norma ISO 5807:



    Símbolo Significado
    Comienzo o final de proceso: en su interior situamos materiales, información o acciones para comenzar el proceso o para mostrar el resultado en el final del mismo.
    Conexión con otros procesos: Nombramos un proceso independiente que en algún momento aparece relacionado con el proceso principal.
    Actividad: Tarea o actividad llevada a cabo durante el proceso. Puede tener muchas entradas, pero solo una salida
    Información de apoyo: Situamos en su interior la información necesaria para alimentar una actividad ( datos para realizarla )
    Decisión/ Bifurcación: Indicamos puntos en que se toman decisiones: sí o no, abierto o cerrado...
    Conexiones de pasos o flechas: Muestran dirección y sentido del flujo del proceso, conectando los símbolos.
    Documento: Se utiliza este símbolo para hacer referencia a la generación o consulta de un documento específico en un punto del proceso.

    Existen además un sin fin de formas especiales para denotar las entradas, las salidas, los almacenamientos, etcétera.
    De acuerdo al estándar ISO, los símbolos e incluso las flechas deben tener ciertas características para permanecer dentro de sus lineamientos y ser considerados sintácticamente correctos. En el caso del círculo de conexión, se debe procurar usarlo sólo cuando se conecta con un proceso contenido dentro de la misma hoja.
    Existen también conectores de página, que se asemejan a un "rectángulo oblicuo" y se utilizan para unir actividades que se encuentran en otra hoja.
    CARACTERISTICAS QUE DEBE CUMPLIR UN DIAGRAMA DE FLUJO
    En los diagramas de flujo se presuponen los siguientes aspectos:
    • Existe siempre un camino que permite llegar a una solución (finalización del algoritmo).
    • Existe un único inicio del proceso.
    • Existe un único punto de fin para el proceso de flujo (salvo del rombo que indica una comparación con dos caminos posibles).
    Desarrollo del Diagrama de Flujo Las siguientes son acciones previas a la realización del diagrama de flujo :
    • Identificar a las ideas principales para desarrollará el diagrama de flujo. Deben estar presentes el dueño o responsable del proceso, los dueños o responsables del proceso anterior y posterior y de otros procesos interrelacionados, otras partes interesadas. * Definir que se espera obtener del diagrama de flujo.
    • Identificar quién lo empleará y cómo. * Establecer el nivel de detalle requerido.
    • Determinar los límites del proceso a describir. Los pasos a seguir para construir el diagrama de flujo son :
    • Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.
    • Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
    • Si el nivel de destalle definido incluye actividades menores, listarlas también.
    • Identificar y listar los puntos de decisión.
    • Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.
    • Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.
    http://es.wikipedia.org/wiki/algoritmo
    http://es.wikipedia.org/wiki/Diagrama_de_flujo
    http://www.google.co.ve/imgres?imgurl=http://www.adrformacion.com/udsimg/calidad/3/Diagrama%2520flujo.gif&imgrefurl=http://www.adrformacion.com/cursos/calidad/leccion3/tutorial2.html&h=273&w=386&sz=3&tbnid=MDXIZcI0ABkJ::&tbnh=87&tbnw=123&prev=/images%3Fq%3Ddiagrama%2Bde%2Bflujo&hl=es&usg=__zPM2Asx9kfKI_X76-x8klW3W0Rw=&sa=X&oi=image_result&resnum=2&ct=image&cd=1

    ResponderEliminar
  56. profesor es jefferson salazar la informacion consultada y estudiada de mi parte se encuentra en esta direccion.

    http://es.wikipedia.org/wiki/algoritmo

    ResponderEliminar
  57. Jefferson Salazar
    C.I 16.726.758
    Seccion 09
    Ingeneria Nocturna


    Profesor ya le envie mi link solo que me faltaron mis datos que aqui le expreso.

    ResponderEliminar
  58. Buenas noches profesor es
    Deilimar Canelon
    C.I-19914999
    Seccion 09
    ing sistema

    Este es mi link de la informacion de algoritmo investigada

    htpp://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml

    ResponderEliminar
  59. mi link

    htpp://www.monografias.com/trabajos15/algoritmos
    /algoritmos.shtml

    Deilimar Canelon
    CI 19914999
    seccion 9

    ResponderEliminar
  60. Buenas tardes prof esté es el link donde encontre información sobre algoritmo y sus tipos:

    http://es.wikipedia.org/wiki/Algoritmo

    Alismar Torrealba
    Sección 9
    C.I. 18.754.967

    ResponderEliminar
  61. JESUS INDRIAGO C:I 6.469.458 sección 9 ingeniería nocturno.
    Algoritmo:Es un conjunto de reglas para resolver determinado problema describiendo de forma lógica su solución. Cada una de las acciones de que consta un algoritmo es denominada sentencia y éstas deben ser escritas en términos de cierto lenguaje comprensible para el computador, que es el lenguaje de programación. Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el problema y disponerlas en el orden en que han de ser ejecutadas.
    Tipos de algoritmos
    Narrado:Este algoritmo es caracterizado porque sigue un proceso de ejecución común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada.
    Ejemplo.
    Algoritmo para asistir a clases:
    Ejemplo
    -Levantarse.
    -Bañarse.
    -Vestirse.
    -Desayunar.
    -Cepillarse los dientes.
    -Salir de casa.
    -Tomar el autobús.
    -Llegar a la universidad.
    -Buscar el aula.
    -Ubicarse en un asiento.
    Pseudocódigo:
    Es una técnica para diseño de programas que permite definir las estructuras de datos, las operaciones que se aplicarán a los datos y la lógica que tendrá el programa de computadora para solucionar un determinado problema. Utiliza un pseudolenguaje muy parecido a nuestro idioma, pero que respeta las directrices y los elementos de los lenguajes de programación. Se concibió para superar las dos principales desventajas de los flujogramas: lento de crear y difícil de modificar sin un nuevo redibujo.
    Diagrama de flujo:
    Son la representación gráfica de la solución algorítmica de un problema. Para diseñarlos se utilizan determinados símbolos o figuras que representan una acción dentro del procedimiento. Utilizan unos símbolos normalizados, con los pasos del algoritmo escritos en el símbolo adecuado y los símbolos unidos con flechas, denominadas líneas de flujo, que indican el orden en que los pasos deben ser ejecutados.
    Secuencia de flujo normal
    en una solución de problema:
    -Tiene un inicio.
    -Una lectura o entrada de datos.
    -El proceso de datos.
    -Una salida de información.
    -Un final.
    Reglas:
    -El comienzo del programa figurará en la parte superior del diagrama.
    -Los símbolos de comienzo y fin deberán aparecer una única vez.
    -El flujo de las operaciones será de arriba a abajo y de izquierda a derecha.
    -Se debe guardar cierta simetría en la representación de bifurcaciones y bucles.
    -Se evitarán los cruces de líneas de flujo, utilizando conectores.
    Ventajas:
    -Rápida comprensión de las relaciones
    -Análisis efectivo de las diferentes secciones del programa
    -Pueden usarse como modelos de trabajo en el diseño de nuevos programas o sistemas
    -Comunicación con el usuario
    -Documentación adecuada de los programas
    -Codificación eficaz de los programas
    -Depuración y pruebas ordenadas de programas.

    Bibliografia:
    Material de guías facilitados por el profesor del laboratorio de programación.

    ResponderEliminar