Sie sind auf Seite 1von 11

Algoritmo

Ir a la navegaciónIr a la búsqueda
No se debe confundir con Logaritmo.

Los diagramas de flujo sirven para representar algoritmos de manera gráfica

En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas,


un algoritmo (del latín, dixit algorithmus y este del griego arithmos, que significa
«número», quizá también con influencia del nombre del matemático persa Al-Juarismi)1 es
un conjunto de instrucciones o reglas definidas y no-ambiguas, ordenadas y finitas que
permite, típicamente, solucionar un problema, realizar un cómputo, procesar datos y llevar
a cabo otras tareas o actividades.2 Dados un estado inicial y una entrada, siguiendo los
pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el
objeto de estudio de la algoritmia.1
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas.
Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un
aparato, o las instrucciones que recibe un trabajador de su patrón. Algunos ejemplos
en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de
la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener
el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver
un sistema de ecuaciones lineales.
En términos de programación, un algoritmo es una secuencia de pasos lógicos que
permiten solucionar un problema. Los derechos de autor otorgan al propietario el derecho
exclusivo sobre el uso de la obra, con algunas excepciones. Cuando alguien crea una obra
original fija en un medio tangible, automáticamente se convierte en el propietario de los
derechos de autor de dicha obra.

Medios de expresión de un algoritmo[editar]


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[editar]

Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número

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[editar]
Artículo principal: Pseudocódigo

El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de


alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas
convenciones sintácticas propias de lenguajes de programación, como asignaciones,
ciclos y condicionales, aunque no está regido por ningún estándar.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un
algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una
implementación. Programadores diferentes suelen utilizar convenciones distintas, que
pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin
embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o
utilizar un entorno de programación específico, y es a la vez suficientemente estructurado
para que su implementación se pueda hacer directamente a partir de él.
Así el pseudocódigo cumple con las funciones antes mencionadas para representar algo
abstracto los protocolos son los lenguajes para la programación. Busque fuentes más
precisas para tener mayor comprensión del tema.

Sistemas formales[editar]
La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos
que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de
Turing, máquina de registro y funciones μ-recursivas. Estos modelos son tan precisos
como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin
embargo se mantienen independientes de cualquier computadora y de cualquier
implementación.

Implementación[editar]
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 y eléctrico. 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 solo algunos ejemplos.

Variables[editar]
Son elementos que toman valores específicos de un tipo de datos concreto. La declaración
de una variable puede realizarse comenzando con var. Principalmente, existen dos
maneras de otorgar valores iniciales a variables:

1. Mediante una sentencia de asignación.


2. Mediante un procedimiento de entrada de datos (por ejemplo: 'read').

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

 Un algoritmo debe ser preciso: tiene que 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: el algoritmo se debe terminar en algún
momento; o sea, debe tener un número finito de pasos.
 Un algoritmo debe ser legible: El texto que lo describe debe ser claro,
tal que permita entenderlo y leerlo fácilmente.
 Un algoritmo debe definir tres partes: Entrada, Proceso y Salida.

Formas de representar un algoritmo

publicado a la(s) 9 may. 2017 21:31 por Carlos Enrique [ actualizado el 10 may. 2017 2:53 ]

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

Son aquellas lenguas que han sido generadas espontáneamente en un grupo de hablantes con
propósito de comunicarse, a diferencia de otras lenguas, como puedan ser una lengua
construida, los lenguajes de programación o los lenguajes formales usados en el estudio de la
lógica formal, especialmente la lógica matemática.

Los algoritmos escritos en este lenguaje se caracterizan por seguir un proceso de ejecución
común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar
para resolver un problema determinado.

Los inconvenientes de escribir algoritmos en este lenguaje son: la ambigüedad, la no


universalidad y la amplitud del mismo lo cual genera errores y no puede ser interpretado
correctamente por el computador.

Pseudocódigo

Es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural
con algunas convenciones sintácticas propias de lenguajes de programación, como
asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado
para describir algoritmos en libros y publicaciones científicas, y como producto intermedio
durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una
ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren
menos espacio para representar instrucciones complejas.

El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y


por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación.
Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en
la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general,
es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y
es a la vez suficientemente estructurado para que su implementación se pueda hacer
directamente a partir de él.

Definición de Diagrama de flujo


Un diagrama de flujo es una forma esquemática de
representar ideas y conceptos en relación. A menudo, se
utiliza para especificar algoritmos de manera gráfica.
Se conoce como diagramas de flujo a aquellos gráficos representativos que se utilizan para
esquematizar conceptos vinculados a la programación, la economía, los procesos técnicos y/o
tecnológicos, la psicología, la educación y casi cualquier temática de análisis.

Los diagramas de flujo son múltiples y diversos y pueden abordar muchos temas distintos de
formas también muy diferentes. En cualquier caso, el aspecto en común entre ellos es la
presencia de un vínculo entre los conceptos enunciados y una interrelación entre las ideas.
Comúnmente, se utiliza este tipo de diagramas para detallar el proceso de un algoritmo y, así,
se vale de distintos símbolos para representar la trayectoria de operaciones precisas a través
de flechas. Siempre que existe un diagrama de flujo existe un proceso o sistema que pretende
ser graficado a través de símbolos visuales que, en vez de términos verbales, simplifican el
funcionamiento de dicho proceso y lo hacen más claro y evidente al lector.

Para que el diagrama de flujo tenga sentido como tal, debe existir un camino hacia una
solución que parte de un único inicio y arriba a un único punto final. Con el propósito de
desarrollar un diagrama de estas características, se recomienda definir el propósito y
destinatario del gráfico, identificar las ideas principales, determinar los límites y alcance del
proceso a detallar, establecer el nivel de detalle requerido, identificar acciones, procesos y
subprocesos, construir el diagrama y finalmente titularlo con exactitud. Conviene revisar el
diagrama para comprobar que cumple su objetivo con claridad y precisión.

Los símbolos más utilizados en los diagramas de flujo son la flecha (que indica sentido y
trayectoria), el rectángulo (representa un evento o proceso), el rombo (una condición),
el círculo (un punto de conexión) y otros.

Además, existen diversos tipos de diagramas. El vertical, en el que la secuencia o flujo es de


arriba hacia abajo; el horizontal, de izquierda a derecha; el panorámico, puede apreciarse de
una vez y de forma tanto vertical como horizontal; el arquitectónico, describe una ruta sobre
un plano arquitectónico de trabajo.

Tipos de diagramas de flujo[editar]


 Formato vertical: en él, el flujo y la secuencia de las operaciones, va de arriba hacia
abajo. Es una lista ordenada de las operaciones de un proceso con toda la información
que se considere necesaria, según su propósito.

 Formato horizontal: en él, el flujo o la secuencia de las operaciones, va de izquierda a


derecha.

 Formato panorámico: el proceso entero está representado en una sola carta y puede
apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita
su comprensión, aun para personas no familiarizadas. Registra no solo en línea
vertical, sino también horizontal, distintas acciones simultáneas y la participación de
más de un puesto o departamento que el formato vertical no registra.

 Formato arquitectónico: describe el itinerario de ruta de una forma o persona sobre el


plano arquitectónico del área de trabajo. El primero de los flujogramas es
eminentemente descriptivo, mientras que los utilizados son fundamentalmente
representativos.
¿Cuáles Son Las Principales
Diferencias Entre Las Señales
CMOS y TTL?
Hardware: Multifunction DAQ (MIO)

Problema:

¿Cuáles son algunas de las diferencias entre señales CMOS y TTL, y cómo se
comparan?

Solución:
Características de la lógica CMOS:
• Disipación de baja potencia: La disipación de potencia depende de la potencia
de la fuente de poder, su frecuencia, carga en la salida y el tiempo de arranque.
A 1 MHz y a 50pF de carga, la disipación de potencia es típicamente 10nW por
compuerta.
• Retrasos de propagación corta: Depende de la fuente de poder, los retrasos
de propagación son usualmente de 25 ns a 50 ns.
• Tiempos de subida y bajada controlados: Los flancos de subida y de bajada
son usualmente denominados como rampas en lugar de funciones de escalón,
y tardan entre 20% – 40% más que los retrasos de propagación.
• La inmunidad al ruido ronda el 50% o 45% de la oscilación lógica.
• Niveles lógicos serán esencialmente iguales a la fuente de poder, esto debido
a la alta impedancia de entrada.
• Nivel de tensión desde 0 a VDD donde VDD es la fuente de tensión. Un nivel
bajo es cualquier valor entre 0 y 1/3 de VDD mientras que un nivel alto se
representa como cualquier valor entre 2/3 VDD y VDD.

Características de la lógica TTL:


• 10 mW de disipación de potencia por compuerta.
• Retrasos de propagación son de 10ns al tratar con 15 pF/400 Ω de carga.
• El rango de tensión está entre 0 y Vcc donde Vcc es usualmente 4.75V –
5.25V. Un nivel bajo es representado por niveles de tensión entre 0V– 0.8V,
mientras que un nivel alto se representa por niveles de tensión entre 2V – Vcc.
CMOS comparado con TTL:
• Los componentes CMOS son usualmente más caros que los equivalentes en
TTL. Sin embargo, la tecnología CMOS es más barata a nivel de sistema, esto
debido a los chips que poseen un menor tamaño además que requieren menos
regulación.
• Los circuitos CMOS no drenan tanta potencia como los TTL en los períodos
de inactividad. Sin embargo, el consumo de potencia de los CMOS se
incrementa más rápidamente que los TTL al aumentar la velocidad del reloj. Un
menor consumo de corriente requiere menor distribución de la fuente de
alimentación, teniendo como producto un diseño más sencillo y barato.
• Debido a que los tiempos de subida y bajada son mayores, la transmisión de
las señales digitales resulta más sencilla y barata con los chips CMOS.
• Los componentes CMOS son más susceptibles a daños por descargas
electrostáticas con respecto a los componentes TTL.

DIFERENCIAS ENTRE CMOS Y TTL

En comparación con las familias lógicas TTL, las familias lógicas CMOS son más lentas
en cuanto a velocidad de operación; requieren de mucho menos potencia; tienen un mejor
manejo del ruido; un mayor intervalo de suministro de voltaje; un factor de carga más elevado
y requieren de mucho menos espacio (área en el CI) debido a lo compacto de los transistores
MOSFET. Además, debido a su alta densidad de integración, los CI MOS están superando a los
CI bipolares en el área de integración a gran escala. (LSI - memorias grandes, CI de calculadora,
microprocesadores, así como VLSI).Por otro lado, la velocidad de operación de los CI TTL los
hace dominar las categorías SSI o MSI (compuertas, FF y contadores)

Das könnte Ihnen auch gefallen