Différence entre un pseudo code et un algorithme?

17

Techniquement, y a-t-il une différence entre ces deux mots ou pouvons-nous les utiliser de manière interchangeable? Les deux décrivent plus ou moins la séquence logique des étapes qui suivent pour résoudre un problème. n'est-ce pas? Alors pourquoi utilisons-nous réellement deux de ces mots s'ils sont censés parler de la même chose?

Ou, si ce ne sont pas des mots synonymes, qu'est-ce qui les différencie? Dans quels contextes sommes-nous censés utiliser le mot pseudo-code contre l'algorithme de mots?

Vamsi Emani
la source
4
Un algorithme est quicksort. Le pseudocode est "Faites-moi un sandwich, puis une fois qu'il est fait, apportez-le-moi."
Neil
Voir cette réponse à une autre question. Là, j'ai décrit une relation entre un algorithme et un pseudocode.
Goran Jovic
3
La version courte: «Le pseudo-code est l'un des moyens de représenter un algorithme»
Goran Jovic
3
@Neil ou même SUDO me font un sandwich xkcd.com/149
StuperUser

Réponses:

37

Définition d'un algorithme par Wikipédia:

En mathématiques et en informatique, un algorithme est une méthode efficace exprimée comme une liste finie d'instructions bien définies pour calculer une fonction. Les algorithmes sont utilisés pour le calcul, le traitement des données et le raisonnement automatisé.

Les algorithmes peuvent être décrits de différentes manières, des formules mathématiques pures aux graphiques complexes, plus souvent qu'autrement, sans pseudocode.

Le pseudocode décrit comment vous implémenteriez un algorithme sans entrer dans les détails syntaxiques.

Donc non, ils ne sont pas vraiment synonymes.

Demian Brecht
la source
8

Un algorithme est une idée sur la façon d'écrire le code. Le pseudo-code est le texte écrit dont vous avez besoin pour communiquer cette idée.

DanC
la source
Agréable! Court et droit. Mais je dirais "un texte écrit" que "le texte écrit". Qu'est-ce que tu penses?
Luciano
6

"Pseudocode" est à "algorithme" comme "anglais" est à "blague knock-knock".

Un algorithme est une structure formelle pour quelque chose qui pourrait être exprimé en pseudocode ou en code réel .

Une blague à couper le souffle est une structure formelle pour quelque chose qui pourrait être exprimé en anglais ou dans une autre langue. (Est-ce que d'autres cultures font des blagues à deux? Je ne sais même pas.)

Dan Ray
la source
Je ne pense pas. Au moins, il n'y a rien de similaire en portugais à propos de ce jeu de frappe. Donc, je dirais qu'il n'y en a pas aussi dans d'autres langues romanes comme l'espagnol et l'italien. Je n'inclurai pas le français parce qu'il a eu une longue liaison avec l'anglais dans les îles britanniques il y a des siècles, et je ne connais pas d'autres langues romanes comme le roumain et d'autres.
Luciano
3

Il n'y a qu'un seul algorithme de tri rapide, qui est le genre de chose qui existerait dans le monde des idées pures de Platon. Il peut y avoir plusieurs descriptions de pseudo-codes différentes. Je pense que je définirais le pseudo-code comme un texte qui ressemble à peu près au code informatique, et pourrait être traduit par un programmeur expérimenté en code informatique réel sans avoir à faire de sauts créatifs.

Donc non, je n'utiliserais pas les termes de façon interchangeable.

PeterAllenWebb
la source
2

Un algorithme est une approche logique systématique utilisée pour résoudre des problèmes dans un ordinateur tandis que le pseudocode est la déclaration en anglais simple qui peut être traduite plus tard dans un langage de programmation (programme).

aloyce boniface
la source
2

Un algorithme est la sémantique tandis que le pseudo-code n'est qu'une syntaxe de la communication sur la résolution d'un problème. Cela signifie que l'algorithme est un moyen réel de résoudre un problème alors que le pseudo-code n'est qu'un moyen d'exprimer de cette façon.

Un algorithme a la même signification (sémantique) si vous l'exprimez de quelque façon que ce soit (syntaxe) que ce soit le langage de programmation C, le pseudo-code ou la langue anglaise.

m3th0dman
la source
1

Le pseudo-code que je comprends est un intermédiaire entre un algorithme et un programme implémenté. Vous pouvez baser votre pseudo-code sur un algorithme. Il contient des étapes transférables à mettre en œuvre.

L'algorithme, d'autre part, implique la logique globale. en étapes séquentielles pour résoudre un problème. s'il est représenté schématiquement, il est appelé un organigramme.

Certains pourraient y faire référence en tant que pseudo-code étant un terme courant dans le développement de logiciels d'entreprise où les développeurs d'objets métier côté client écrivent du pseudo-code en fonction des exigences. Il est remis à un programmeur / développeur à implémenter.

Algorithme que vous trouveriez plus courant dans la programmation de la terminologie comme la programmation des systèmes, la recherche, le tri, pratiquement partout où il y a une logique complexe à implémenter.

Aditya P
la source
1

Même si le pseudo-code semble plus proche du code qu'un algorithme, en pratique, le pseudo-code est moins formel et c'est une description de plus haut niveau. Par exemple, vous pouvez décrire un ordinateur jouant aux échecs comme un pseudo-code comme celui-ci:

  • placer les pièces initiales à leur emplacement
  • tableau d'affichage
  • pendant que le jeu n'est pas terminé
    • faire bouger et afficher le panneau
    • invite l'utilisateur à se déplacer
    • faire bouger les utilisateurs

Oui, c'est un pseudocode, il est utile comme bon point de départ mais passe sous silence de nombreux détails. Il ne tient pas compte des difficultés et des variations de mise en œuvre, mais le plus grand avantage est qu'il vous permet de conceptualiser l'ensemble de la situation sans avoir à résoudre tous les détails.

Vous pouvez le réviser, en ajoutant un niveau supplémentaire comme ceci:

  • placer les pièces initiales à leur emplacement
  • tableau d'affichage
  • tandis que le conseil n'est pas échec et mat ou tirage
    • faire une liste des actions légales des blancs
    • choisir le meilleur selon certains critères
    • faire ce mouvement et calculer le conseil résultant
    • voir si échec ou mat a eu lieu
    • panneau d'affichage
    • faire une liste des actions légales des noirs
    • invite l'utilisateur à se déplacer légalement pour entrée
    • faire ce mouvement et calculer le conseil résultant
    • voir si échec ou mat a eu lieu
    • panneau d'affichage

Vous pouvez maintenant écrire un pseudocode pour chacune des étapes principales comme "faire une liste des mouvements légaux des noirs", comme ceci:

  • pour chaque pièce noire
    • pour le type de pièce dans un emplacement donné
      • faire une liste des prochains emplacements possibles

Maintenant, vous pouvez voir que la puissance du pseudocode réside dans sa capacité à afficher la situation en une seule fois, puis à vous permettre d'adresser les détails pièce par pièce. La faiblesse est que toute étape n'est pas une étape simple et définitive.

Un algorithme reprend généralement l'une de ces étapes et détaille diverses structures de données dans un langage symbolique afin que vous puissiez atteindre efficacement l'objectif de l'étape.

Par exemple, get_legal_moves(board, color)est digne d'une conception d'algorithme:

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

Vous pouvez voir que l'algorithme doit être très précis pour être utile.

Cela garantit plusieurs choses: que les objectifs soient atteints sans erreur, d'abord et avant tout. Les étapes sont très détaillées et exécutables de manière mécanisée et que les étapes sont suffisamment petites pour que vous puissiez les réorganiser pour augmenter l'efficacité (vitesse) avec laquelle vous terminez la tâche.

Ravi Annaswamy
la source
Cela semble être une décomposition d'algorithme descendante exprimée en pseudocode à chaque étape.
Nathan Tuggy
0

D'après mon expérience, le pseudo-code a toujours été écrit par des personnes fonctionnelles (personnes propriétaires du processus) comme moyen d'exprimer les règles métier qui s'appliquent à un processus, un module ou un sous-système.

Un algorithme est un ensemble difinitif d'instructions logiques permettant de résoudre une tâche aussi spécifique que possible.

Michael Riley - AKA Gunny
la source
0

L'algorithme est quelque chose qui est représenté en termes mathématiques. Il comprend, l'analyse, l'implémentation de base (même celle qui est exprimée en pseudo-code), les considérations de complexité (meilleure, moyenne et pire analyse, etc.).

Le pseudo-code est une représentation lisible par l'homme d'un programme. Même cela peut être utilisé pour décrire un algorithme.

Sarat
la source
-2

Pseudo signifie single & code peut être une instruction..ici Pseudo-code signifie une déclaration qui est utilisée pour comprendre facilement le langage de programmation informatique ... il aide à Analyser le code de programmation ... . où comme algorithme est une étape logique finie d'instructions pour résoudre un problème.

gopiraj anupa
la source
1
cela ne semble pas offrir quoi que ce soit de substantiel par rapport aux points avancés et expliqués dans les 10 réponses précédentes
gnat