Differenza tra uno pseudo codice e un algoritmo?


17

Tecnicamente, c'è una differenza tra queste due parole o possiamo usarle in modo intercambiabile? Entrambi descrivono più o meno la sequenza logica dei passaggi che seguono per risolvere un problema. no? Quindi perché usiamo effettivamente due di queste parole se sono pensate per parlare della stessa cosa?

Oppure, nel caso in cui non siano sinonimi, che cosa li differenzia? In quali contesti dovremmo usare la parola pseudo codice contro la parola algoritmo?


4
Un algoritmo è quicksort. Lo pseudocodice è "Fammi un panino, poi una volta fatto, portamelo".
Neil,

Vedi questa risposta a un'altra domanda. Lì ho descritto una relazione tra un algoritmo e uno pseudocodice.
Goran Jovic,

3
La versione breve: "Il codice pseudo è uno dei modi per rappresentare un algoritmo"
Goran Jovic,

3
@Neil o persino SUDO mi fanno un sandwich xkcd.com/149
StuperUser

Risposte:


37

Definizione di Wikipedia di un algoritmo:

In matematica e informatica, un algoritmo è un metodo efficace espresso come un elenco finito di istruzioni ben definite per il calcolo di una funzione. Gli algoritmi vengono utilizzati per il calcolo, l'elaborazione dei dati e il ragionamento automatico.

Gli algoritmi possono essere descritti in vari modi, da pure formule matematiche a grafici complessi, più volte che no, senza pseudocodice.

Lo pseudocodice descrive come implementare un algoritmo senza entrare nei dettagli sintattici.

Quindi no, non sono davvero sinonimi.


8

Un algoritmo è un'idea su come scrivere il codice. Lo pseudo codice è il testo scritto necessario per comunicare quell'idea.


Bello! Corto e dritto. Ma direi "un testo scritto" rispetto a "il testo scritto". Cosa pensi?
Luciano,

6

"Pseudocodice" significa "algoritmo" come "inglese" significa "bussare a bussare".

Un algoritmo è una struttura formale per qualcosa che potrebbe essere espresso in pseudocodice o in codice reale .

Una barzelletta è una struttura formale per qualcosa che potrebbe essere espresso in inglese o in qualche altra lingua. (Altre culture fanno battute a bussare? Non lo so nemmeno.)


Io non la penso così. Almeno non c'è niente di simile in portoghese in quel gioco knock-knock. Quindi, direi che non esiste anche in altre lingue romanze come lo spagnolo e l'italiano. Non includerò il francese perché ha avuto una lunga relazione con l'inglese nelle isole britanniche secoli fa e non conosco altre lingue romanze come il rumeno e altre.
Luciano,

3

C'è solo un algoritmo quicksort, che è il tipo di cosa che esisterebbe nel mondo delle idee pure di Platone. Potrebbe esserci un numero qualsiasi di diverse descrizioni di pseudo-codice. Penso che definirei lo pseudo-codice come testo che assomiglia approssimativamente al codice del computer e potrebbe essere tradotto da un programmatore esperto in un vero codice del computer senza dover fare alcun salto creativo.

Quindi no, non userei i termini in modo intercambiabile.


2

Un algoritmo è un approccio logico sistematico utilizzato per risolvere i problemi in un computer, mentre Pseudocode è la frase in inglese semplice che può essere successivamente tradotta in un linguaggio di programmazione (programma).


2

Un algoritmo è il semantico mentre lo pseudo-codice è solo una sintassi della comunicazione sulla risoluzione di un problema. Ciò significa che l'algoritmo è un modo reale in cui un problema viene risolto mentre lo pseudo-codice è solo un modo per esprimerlo.

Un algoritmo ha lo stesso significato (semantico) se lo si esprime in qualche modo (sintassi) sia in linguaggio di programmazione C, pseudo-codice o lingua inglese.


1

Lo pseudo codice come ho capito è un intermediario tra un algoritmo e un programma implementato. Puoi basare il tuo pseudo codice su un algoritmo. Questo contiene passaggi trasferibili da implementare.

L'algoritmo implica invece la logica generale. in passaggi sequenziali per risolvere un problema. se è rappresentato schematicamente, viene chiamato diagramma di flusso.

Alcuni potrebbero riferirlo a questo come pseudo codice che è un termine comune nello sviluppo di software aziendale in cui gli sviluppatori di oggetti Business lato client scrivono pseudo codice in base ai requisiti. Questo è dato a un programmatore / sviluppatore da implementare.

Algoritmo che potresti trovare più comune nella programmazione della terminologia come la programmazione dei sistemi, la ricerca, l'ordinamento, praticamente in tutti i casi in cui esiste una logica complessa da implementare.


1

Anche se lo pseudo-codice sembra più vicino al codice di un algoritmo, in pratica lo pseudo-codice è meno formale ed è una descrizione di livello più elevato. Ad esempio, puoi descrivere un computer che gioca a scacchi come uno pseudo codice come questo:

  • posizionare i pezzi iniziali nelle loro posizioni
  • mostra bordo
  • mentre il gioco non è finito
    • fare mossa e tabellone
    • richiedere all'utente di spostarsi
    • far muovere gli utenti

Sì, questo è pseudocodice, è utile come un buon punto di partenza, ma ripercorre molti dettagli. Non tiene conto delle difficoltà e delle variazioni di implementazione, ma il vantaggio maggiore è che consente di concettualizzare l'intera situazione senza dover risolvere tutti i dettagli.

Puoi rivederlo, aggiungendo un altro livello in questo modo:

  • posizionare i pezzi iniziali nelle loro posizioni
  • mostra bordo
  • mentre la tavola non è scacco matto o pareggio
    • fare una lista delle mosse legali del bianco
    • scegli il meglio secondo alcuni criteri
    • fai quella mossa e calcola la scheda risultante
    • vedere se si è verificato scacco matto o pareggio
    • tabellone
    • fai una lista delle mosse legali del nero
    • richiedere all'utente una mossa legale per l'input
    • fai quella mossa e calcola la scheda risultante
    • vedere se si è verificato scacco matto o pareggio
    • tabellone

Ora puoi scrivere pseudocodice per ciascuno dei passaggi principali come "fai un elenco delle mosse legali del nero", in questo modo:

  • per ogni pezzo nero
    • per il tipo di pezzo in una data posizione
      • fare un elenco delle prossime posizioni possibili

Ora puoi vedere che il potere dello pseudocodice è davvero nella sua capacità di mostrare l'intera situazione in una volta sola e quindi permetterti di affrontare i dettagli pezzo per pezzo. Il punto debole è che ogni passo non è un semplice passo definito.

Un algoritmo in genere rileva uno di questi passaggi e descrive in dettaglio varie strutture di dati in un linguaggio simbolico in modo da poter raggiungere in modo efficiente l'obiettivo del passaggio.

Ad esempio, get_legal_moves(board, color)è degno di un design di 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:....

Puoi vedere che l'algoritmo deve essere molto preciso per essere utile.

Garantisce diverse cose: che gli obiettivi vengano raggiunti senza errori, innanzitutto. I passaggi sono molto dettagliati ed eseguibili in modo meccanizzato e i passaggi sono abbastanza piccoli da poterli riordinare per aumentare l'efficienza (velocità) con cui si termina l'attività.


Questa sembra essere una decomposizione dell'algoritmo top-down espressa in pseudocodice ad ogni passo.
Nathan Tuggy,

0

Dalla mia esperienza, lo pseudo-codice è sempre stato scritto dal personale funzionale (persone che possiedono il processo) come un modo per esprimere le regole aziendali che si applicano a un processo, modulo o sottosistema.

Un algoritmo è un insieme difinitivo di istruzioni logiche per risolvere un'attività il più specifica possibile.


0

L'algoritmo è qualcosa che è rappresentato in termini matematici. Include analisi, implementazione di base (anche espressa in pseudo codice), considerazioni sulla complessità (analisi migliore, media e peggiore, ecc.).

Lo pseudo codice è una rappresentazione leggibile dall'uomo di un programma. Anche quello può essere usato per descrivere un algoritmo.


-2

Pseudo significa single & code può essere un'istruzione..qui Pseudo-code significa un'istruzione che viene utilizzata per comprendere facilmente il linguaggio di programmazione del computer ... aiuta ad analizzare il codice di programmazione ... . dove come algoritmo è un passo logico finito di istruzioni per risolvere un problema.


1
questo non sembra offrire nulla di sostanziale rispetto ai punti formulati e spiegati nelle precedenti 10 risposte
moscerino del
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.