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:

Pedro Luís Pérez dijo...

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

Unknown dijo...

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.

Ladiz Felibertt dijo...

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

Angelica Mata dijo...

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

Unknown dijo...

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

Luis Arturo Fernandez dijo...

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

EDWUARD YEGUEZ dijo...

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

Unknown dijo...

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

EDWUARD YEGUEZ dijo...

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

Angelica Mata dijo...

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

Magaly Romero dijo...

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

Julio Cesar dijo...

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.

Nahir dijo...

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

pabloleon891 dijo...

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

Eduardo Rivero dijo...

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

JULIMAR dijo...

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

EDGAR ALEXANDER DIAZ CASTILLO dijo...

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

alexey marin dijo...

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

Unknown dijo...

 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

Unknown dijo...

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

yelson rojas dijo...

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.

celina rojas dijo...

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

hector rodriguez dijo...

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

Yudith Rodriguez dijo...

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

Unknown dijo...

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

maquir dijo...
Este comentario ha sido eliminado por el autor.
maquir dijo...

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

Jesus Gonzalez BINS9 dijo...

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

Unknown dijo...

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
.

Unknown dijo...

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

Virachandra dijo...
Este comentario ha sido eliminado por el autor.
Virachandra dijo...

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.

Virachandra dijo...

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

Unknown dijo...

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

Unknown dijo...

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

Nils^Elis dijo...

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

jose dijo...

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

Jhonny Castillo dijo...

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....

Julio Cesar dijo...

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)

Julio Cesar dijo...

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

jean suarez dijo...

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

doalfrecaraballoseccion05 dijo...

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

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

Unknown dijo...

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.

Unknown dijo...

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

Unknown dijo...

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

nelly antillano dijo...

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

Unknown dijo...

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.

Unknown dijo...

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.

keidy hidalgo dijo...

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.

keidy hidalgo dijo...

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

Steawart Jiménez dijo...

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

Unknown dijo...

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

Kharla Baez dijo...

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"

Maria Lamorte dijo...

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.

Elis Aranda dijo...

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

jefferson dijo...

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

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

jefferson dijo...

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.

Deilimar Canelon dijo...

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

Deilimar Canelon dijo...

mi link

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

Deilimar Canelon
CI 19914999
seccion 9

ALISMAR dijo...

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

Jesus Indriago dijo...

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.