¿Diferencia entre un pseudocódigo y un algoritmo?

17

Técnicamente, ¿hay alguna diferencia entre estas dos palabras o podemos usarlas indistintamente? Ambos describen más o menos la secuencia lógica de los pasos que siguen para resolver un problema. ¿no es así? Entonces, ¿por qué en realidad usamos dos de esas palabras si están destinadas a hablar de lo mismo?

O, en caso de que no sean palabras sinónimas, ¿qué es lo que las diferencia? ¿En qué contextos se supone que debemos usar la palabra pseudocódigo frente al algoritmo de la palabra?

Vamsi Emani
fuente
44
Un algoritmo es de clasificación rápida. El pseudocódigo es "Hazme un sándwich, y una vez que esté hecho, tráemelo".
Neil
Ver esta respuesta a otra pregunta. Allí describí una relación entre un algoritmo y un pseudocódigo.
Goran Jovic
3
La versión corta: 'El pseudocódigo es una de las formas de representar un algoritmo'
Goran Jovic
3
@Neil o incluso SUDO me hacen un sándwich xkcd.com/149
StuperUser

Respuestas:

37

La definición de Wikipedia de un Algoritmo:

En matemáticas e informática, un algoritmo es un método eficaz expresado como una lista finita de instrucciones bien definidas para calcular una función. Los algoritmos se utilizan para el cálculo, el procesamiento de datos y el razonamiento automatizado.

Los algoritmos se pueden describir de varias maneras, desde fórmulas matemáticas puras hasta gráficos complejos, la mayoría de las veces, sin pseudocódigo.

El pseudocódigo describe cómo implementar un algoritmo sin entrar en detalles sintácticos.

Entonces no, en realidad no son sinónimos.

Demian Brecht
fuente
8

Un algoritmo es una idea sobre cómo escribir el código. El pseudocódigo es el texto escrito que necesita para comunicar esa idea.

DanC
fuente
¡Agradable! Corto y recto. Pero yo diría "un texto escrito" que "el texto escrito". ¿Qué piensas?
Luciano
6

"Pseudocódigo" es "algoritmo" como "Inglés" es "broma".

Un algoritmo es una estructura formal para algo que podría expresarse en pseudocódigo o en código real .

Una broma knock-knock es una estructura formal para algo que podría expresarse en inglés o en algún otro idioma. (¿Otras culturas hacen bromas de golpe-golpe? Ni siquiera lo sé).

Dan Ray
fuente
No lo creo. Al menos no hay nada similar en portugués sobre ese juego de golpe y golpe. Entonces, yo diría que no hay otros idiomas romances como el español y el italiano. No incluiré el francés porque tuvo un largo romance con el inglés en las islas británicas hace siglos, y no conozco otras lenguas romances como el rumano y otros.
Luciano
3

Solo hay un algoritmo de clasificación rápida, que es el tipo de cosa que existiría en el mundo de ideas puras de Platón. Podría haber cualquier número de descripciones diferentes de pseudocódigo de la misma. Creo que definiría el seudocódigo como texto que se parece más o menos al código de la computadora, y que un programador experimentado podría traducirlo al código de la computadora real sin tener que dar saltos creativos.

Entonces no, no usaría los términos indistintamente.

PeterAllenWebb
fuente
2

Un algoritmo es un enfoque lógico sistemático utilizado para resolver problemas en una computadora, mientras que Pseudocódigo es la declaración en inglés simple que se puede traducir más tarde a un lenguaje de programación (programa).

aloyce boniface
fuente
2

Un algoritmo es la semántica, mientras que el pseudocódigo es solo una sintaxis de la comunicación sobre la resolución de un problema. Esto significa que el algoritmo es una forma real de resolver un problema, mientras que el pseudocódigo es solo una forma de expresarlo.

Un algoritmo tiene el mismo significado (semántico) si lo expresa de alguna manera (sintaxis) ya sea lenguaje de programación C, seudocódigo o idioma inglés.

m3th0dman
fuente
1

El pseudocódigo, según tengo entendido, es un intermediario entre un algoritmo y un programa implementado. Puede basar su pseudocódigo en un algoritmo. Contiene pasos transferibles para implementar.

Algoritmo por otro lado implica la lógica general. en pasos secuenciales para resolver un problema. si se representa esquemáticamente se llama diagrama de flujo.

Algunos podrían referirse a esto como pseudocódigo que es un término común en el desarrollo de software empresarial en el que los desarrolladores de objetos empresariales del lado del cliente escriben pseudocódigo en función de los requisitos. Esto se le da a un programador / desarrollador para que lo implemente.

Algoritmo que encontraría más común en la programación de terminología como programación de sistemas, búsqueda, clasificación, básicamente en cualquier lugar donde haya una lógica compleja para implementar.

Aditya P
fuente
1

Aunque el pseudocódigo parece más cercano al código que un algoritmo, en la práctica, el pseudocódigo es menos formal y es una descripción de más alto nivel. Por ejemplo, puede describir una computadora que juega ajedrez como un pseudocódigo como este:

  • colocar piezas iniciales en sus ubicaciones
  • mostrar tablero
  • mientras el juego no ha terminado
    • hacer movimiento y tablón de anuncios
    • solicitar al usuario que se mueva
    • hacer que los usuarios se muevan

Sí, este es un seudocódigo, es útil como un buen punto de partida, pero pasa por alto muchos detalles. No tiene en cuenta las dificultades y variaciones de implementación, pero el mayor beneficio es que le permite conceptualizar toda la situación sin tener que resolver todos los detalles.

Puede revisarlo, agregando un nivel más de esta manera:

  • colocar piezas iniciales en sus ubicaciones
  • mostrar tablero
  • mientras el tablero no es jaque mate o sorteo
    • hacer una lista de los movimientos legales de las blancas
    • elige el mejor según algunos criterios
    • hacer ese movimiento y calcular el tablero resultante
    • ver si ha ocurrido jaque mate o empate
    • tablero de visualización
    • hacer una lista de los movimientos legales de las negras
    • solicitar al usuario movimiento legal para la entrada
    • hacer ese movimiento y calcular el tablero resultante
    • ver si ha ocurrido jaque mate o empate
    • tablero de visualización

Ahora puede escribir un pseudocódigo para cada uno de los pasos principales, como "hacer una lista de los movimientos legales de las negras", así:

  • por cada pieza negra
    • para tipo de pieza en una ubicación determinada
      • hacer una lista de las siguientes ubicaciones posibles

Ahora puede ver que el poder del pseudocódigo está realmente en su capacidad de mostrar toda la situación de una vez y luego le permite abordar los detalles pieza por pieza. La debilidad es que cualquier paso no es un paso simple definido.

Un algoritmo generalmente recoge uno de estos pasos y detalla varias estructuras de datos en un lenguaje simbólico para que pueda cumplir eficientemente el objetivo del paso.

Por ejemplo, get_legal_moves(board, color)es digno de un diseño de algoritmo:

get_legal_moves(board, color):
    for i,j in board_dimensions
        if piece_at i,j is of color
            if piece type is KNIGHT
                add the following to the next moves list:
                    location i+1 j+2, i-1 j+2... etc
            if piece type is rook
                add locations:....

Puede ver que el algoritmo tiene que ser muy preciso para ser útil.

Asegura varias cosas: que los objetivos se cumplirán sin errores, ante todo. Los pasos son muy detallados y ejecutables de forma mecanizada y los pasos son lo suficientemente pequeños como para que pueda reordenarlos para aumentar la eficiencia (velocidad) con la que finaliza la tarea.

Ravi Annaswamy
fuente
Esto parece ser una descomposición del algoritmo de arriba hacia abajo expresada en pseudocódigo en cada paso.
Nathan Tuggy
0

Desde mi experiencia, el pseudocódigo siempre ha sido escrito por personal funcional (personas que poseen el proceso) como una forma de expresar las reglas comerciales que se aplican a un proceso, módulo o subsistema.

Un algoritmo es un conjunto distintivo de enunciados lógicos para resolver una tarea lo más específica posible.

Michael Riley - AKA Gunny
fuente
0

Algoritmo es algo que se representa en términos matemáticos. Incluye, análisis, implementación básica (incluso eso se expresa en pseudocódigo), consideraciones de complejidad (análisis de mejor, promedio y peor caso, etc.).

El pseudocódigo es una representación de un programa legible por humanos. Incluso eso puede usarse para describir un algoritmo.

sarat
fuente
-2

Pseudo significa single & code puede ser una instrucción ... aquí Pseudo-code significa una declaración que se utiliza para comprender el lenguaje de programación de la computadora fácilmente ... ayuda a Analizar el código de programación ... . donde como algoritmo es un paso lógico finito de instrucciones para resolver un problema.

gopiraj anupa
fuente
1
esto no parece ofrecer nada sustancial sobre cuestiones planteadas y se explica en 10 respuestas anteriores
mosquito