¿Cuál es la diferencia entre algoritmos y programación?

Un algoritmo describe los pasos generales para resolver un problema. Para ser válido, el algoritmo debe ser correcto en los resultados que proporciona y también debe terminar. Lo que significa que un analista tiene que demostrar estas dos características para establecer la validez del algoritmo.

Para ser válido, un programa simplemente tiene que compilar (o ser interpretado) y aquí radica la diferencia clave. Un programa es una secuencia de pasos escritos para ejecutarse en una máquina. Este es un programa válido de Python:

mientras cierto:
imprimir “dahsdkasd”

Esto destaca dos cosas. En primer lugar, los criterios para que algo sea un programa se cumplen por su simple calidad de ser ejecutable en una máquina. No tiene que resolver un problema interesante, aunque es difícil imaginar por qué alguien escribiría un programa de este tipo. En segundo lugar , no tiene que terminar, en principio. Esto es importante porque hay clases enteras de programas escritos de esta manera. Un shell de comando, por ejemplo, o un sistema operativo que debe ejecutarse para siempre a menos que un estímulo externo lo detenga.

Los programas generalmente implementan algoritmos, y otros, como un sistema operativo, implementan muchos algoritmos. Pasar de un algoritmo a un programa es pasar de una idea a una cosa concreta. A menudo hay que rellenar huecos que el algoritmo no especifica pero que los humanos pueden entender intuitivamente.

En pocas palabras, un algoritmo es una secuencia de pasos que describe una idea para resolver un problema que cumple con los criterios de corrección y terminabilidad. Un programa es una secuencia de pasos que se especifica con suficiente detalle para poder ejecutarse en una máquina.

El algoritmo está resolviendo el problema en un lenguaje lógico genérico. Un algoritmo se centra más en la comprensión humana general y se encuentra en un nivel abstracto más alto, que une todos los lenguajes de programación de computadoras. Un problema podría tener el mismo algoritmo, pero 10 implementaciones diferentes en 10 lenguajes de programación diferentes.

La programación está implementando el problema (algoritmo) ya resuelto en un lenguaje de computadora específico donde la sintaxis y otros parámetros relevantes son diferentes, basados ​​en diferentes lenguajes de programación.

Primero, comprenda que no hay una buena definición formal de “algoritmo” al momento de escribir. La palabra clave aquí es “formal”.

Lo que sabemos es que, sea lo que sea un “algoritmo”, se ubica entre la “función matemática” y el “programa de computadora”.

Una función matemática es la noción formal de una asignación de entradas a
salidas. Entonces, por ejemplo, “ordenar” es un mapeo entre una secuencia de
artículos aptos para pedidos y una secuencia de artículos aptos para pedidos del mismo tipo,
que asigna cada secuencia a su secuencia ordenada. Esta función podría ser
implementado usando diferentes algoritmos (p. ej., combinación de clasificación, clasificación de montón).
Cada algoritmo, a su vez, podría implementarse usando diferentes programas
(incluso dado el mismo lenguaje de programación).

Entonces, el mejor manejo que tenemos de lo que es un “algoritmo” es que es
algún tipo de clase de equivalencia en programas, donde dos programas son
equivalente si hacen “esencialmente lo mismo”. Cualesquiera dos programas
que implementan el mismo algoritmo deben calcular la misma función, pero
Lo contrario no es cierto.

Cualquiera sea la relación de equivalencia que elijamos, esto nos da cierta estructura.
Los algoritmos forman una categoría en virtud del hecho de que son
cociente categoría de programas. Algunas relaciones de equivalencia interesantes
son conocidos por dar lugar a estructuras categóricas interesantes; para
ejemplo, la categoría de algoritmos primitivos recursivos es universal
objeto en la categoría de categorías. Cada vez que ves interesante
estructura así, usted sabe que esta línea de investigación probablemente será
útil.

Un algoritmo define cómo se puede resolver el problema. El algoritmo no es específico del idioma y el mismo algoritmo puede implementarse usando diferentes lenguajes de programación.

El programa, por otro lado, se especifica para un idioma en particular. Un programa hecho con c o c ++ no se puede usar como lo es para algún otro lenguaje de programación (por ejemplo, java) ya que la sintaxis, las palabras clave, etc. serían diferentes para ese idioma en particular.

Un programa es un conjunto detallado de instrucciones que debe llevar a cabo una computadora, mientras que un algoritmo es una secuencia detallada de pasos para llevar a cabo un proceso. Los lenguajes de programación fueron diseñados para facilitar este proceso. Usan palabras clave especiales y sintaxis equivalentes a vocabulario y gramática en un lenguaje humano. El lenguaje de programación luego convierte estas palabras clave y sintaxis en código binario que la computadora ejecuta para realizar el algoritmo.

Su objetivo final es realizar alguna tarea. Para principiantes en programas de computadora, explicaría con este ejemplo:

Un ingeniero planifica la casa antes de la construcción, por lo que se está haciendo un gran esfuerzo. Antes de comenzar el trabajo de construcción real, debe hacer cosas como medir el terreno, realizar pruebas de terreno, decidir sobre los diferentes tipos de materiales que se utilizarán, dibujar la arquitectura de la casa, etc.
Una vez que comienzas a construir la casa, es muy difícil alterar las cosas (hacer cambios en el sótano y estás en proceso de construir el último piso).

Esta es la regla universal que todos siguen, el diseño se realizará antes de producir el producto real. Se está utilizando la misma lógica en la programación, puede pensar en la fase de diseño para escribir el algoritmo, la fase de producción para programar utilizando el lenguaje adecuado de su elección.

Algoritmo:

–Es cualquier procedimiento computacional bien definido que toma algún valor, o conjunto de valores, como entrada y produce algún valor, o conjunto de valores, como salida.

–Es, por lo tanto, una secuencia de pasos computacionales que transforman la entrada en la salida.

–Cualquier método especial para resolver un cierto tipo de problema.

Programación:

Un programa es la expresión de un algoritmo en un lenguaje de programación.

El algoritmo es un conjunto de instrucciones que resuelven un problema dado. La computadora puede o (en su mayoría) puede no entender el idioma utilizado para escribir el algoritmo (generalmente seudocódigo o inglés).

La programación es transferir el contenido del algoritmo a un lenguaje que la computadora entienda para que pueda pedirle a la computadora que implemente el algoritmo.

Los algoritmos son básicamente los bloques de construcción de la programación. Un programa es una casa, un algoritmo es un ladrillo.

Wikipedia tiene un algoritmo de ejemplo:

si L.size = 0 devuelve nulo
mayor ← L [0]
para cada artículo en L, hacer
si artículo> más grande, entonces
← artículo más grande
volver más grande

Básicamente, todo lo que hace es tomar una lista de números y devolver el número más alto de la lista. Necesitas eso, por ejemplo, si tienes una lista de tus clientes, y quieres encontrar la más antigua, o tal vez tienes una base de datos de consultas de soporte, y quieres encontrar la consulta más antigua, ya que esa es una prioridad más alta , o algo así.

Ese es un bloque de construcción en un programa, un problema típico de programación en el mundo real podría tener 10,000, 100,000 o 1,000,000 de esos bloques de construcción.

Hagamos una analogía con el inglés

codificación = capaz de leer, escribir y comprender gramática en inglés

Algoritmo = Capaz de poner ideas en forma de poemas o ensayos en cualquier idioma o en tablas

programación = algoritmo + codificación.

El algoritmo es el enfoque abstracto / mecanismo de idea para resolver algún problema. No necesita ser lo suficientemente detallado como para especificar inequívocamente cada paso para una computadora. Algoritmo tiene que terminar.

El programa es instrucciones para una computadora. Tiene que ser lo suficientemente claro para que una máquina se ejecute. Los programas pueden o no terminar. Un bucle infinito sigue siendo un programa, pero no se consideraría un algoritmo.

Esperemos que eso no resuelva una tarea 😛

Un algoritmo es simplemente un conjunto de pasos a seguir para resolver un problema en particular. Ni siquiera tiene que expresarse como un programa de computadora. Un programa, por otro lado, es una implementación particular de un algoritmo o algoritmos múltiples más probables.

Un algoritmo es una estrategia para resolver un problema dado, en el que tiende a pensar antes de escribir cualquier código. Donde como programación es el proceso de implementación de esa estrategia.

El algoritmo es una secuencia de pasos para resolver un problema.

La programación es escribir este algoritmo en un lenguaje de programación para que pueda implementar la solución en una computadora.

La diferencia fundamental básica entre ellos es que el programa está precedido por un número de línea, mientras que el algoritmo está precedido por pasos