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 nella risoluzione di un problema. non è vero? SO perché usiamo effettivamente due di queste parole se vogliono parlare dello stesso?

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

    
posta Vamsi Emani 20.05.2011 - 07:22
fonte

11 risposte

37

La definizione di Wikipedia di un algoritmo:

In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning.

Gli algoritmi possono essere descritti in vari modi, da semplici 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 nemmeno sinonimi.

    
risposta data 20.05.2011 - 07:34
fonte
7

Un algoritmo è un'idea su come scrivere il codice. Pseudo codice è il testo scritto che ti serve per comunicare quell'idea.

    
risposta data 20.05.2011 - 16:54
fonte
6

"Pseudocode" significa "algoritmo" come "inglese" significa "battuta".

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

Una battuta di knock-knock è una struttura formale per qualcosa che potrebbe essere espresso in inglese o in un'altra lingua. (Le altre culture fanno battute a colpi di martello? Non lo so nemmeno.)

    
risposta data 20.05.2011 - 16:13
fonte
3

Esiste solo un algoritmo di quicksort, che è il tipo di cosa che esisterebbe nel mondo delle idee pure di Platone. Ci potrebbe essere un numero qualsiasi di descrizioni pseudo-codice diverse di esso. Penso che definirei lo pseudo-codice come testo che somiglia grosso modo al codice del computer e che potrebbe essere tradotto da un programmatore esperto nel codice del computer reale senza dover fare alcun salto creativo.

Quindi no, non userei i termini in modo intercambiabile.

    
risposta data 20.05.2011 - 16:16
fonte
2

Un algoritmo è un approccio logico sistematico utilizzato per risolvere problemi in un computer mentre Pseudocode è l'istruzione in chiaro inglese che può essere successivamente tradotto in un linguaggio di programmazione (programma).

    
risposta data 24.04.2012 - 16:14
fonte
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.

Algoritmo d'altra parte implica la logica generale. in passaggi sequenziali per risolvere un problema. se è rappresentato schematicamente è chiamato un diagramma di flusso.

Alcuni potrebbero riferirsi a questo in quanto lo pseudo codice è 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 si potrebbe trovare più comune nella programmazione della terminologia come la programmazione, ricerca, ordinamento dei sistemi, praticamente laddove esiste una logica complessa da implementare.

    
risposta data 20.05.2011 - 07:35
fonte
1

Un algoritmo è semantico mentre lo pseudo-codice è solo una sintassi della comunicazione relativa alla 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 esprimere in questo modo.

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

    
risposta data 07.11.2012 - 22:19
fonte
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ù alto. Ad esempio, puoi descrivere un computer che gioca a scacchi come uno pseudo-codice come questo:

  • posiziona i pezzi iniziali nelle loro posizioni
  • mostra scheda
  • mentre il gioco non è finito
    • metti mossa e tabellone
    • richiama l'utente per lo spostamento
    • muovere gli utenti

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

Puoi modificarlo aggiungendo un altro livello in questo modo:

  • posiziona i pezzi iniziali nelle loro posizioni
  • mostra scheda
  • mentre il board non è scacco matto o pareggio
    • crea un elenco delle mosse legali di White
    • scegli il migliore in base ad alcuni criteri
    • effettua quella mossa e calcola la scacchiera risultante
    • controlla se si è verificato lo scacco matto o il pareggio
    • tabellone
    • crea un elenco di mosse legali del nero
    • richiama l'utente per lo spostamento legale per l'input
    • effettua quella mossa e calcola la scacchiera risultante
    • controlla se si è verificato lo scacco matto o il pareggio
    • tabellone

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

  • per ogni pezzo nero
    • per tipo di pezzo in una determinata posizione
      • crea un elenco delle prossime posizioni possibili

Ora puoi vedere che la potenza dello pseudocodice è davvero nella sua capacità di mostrare l'intera situazione in un colpo solo e quindi di permetterti di descrivere i dettagli pezzo per pezzo. Il punto debole è che qualsiasi passaggio non è un passaggio semplice e definito.

Un algoritmo in genere acquisisce uno di questi passaggi e dettaglia le 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 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 saranno raggiunti senza errori, prima di tutto. I passaggi sono molto dettagliati ed eseguibili in modo meccanizzato e così i passaggi sono abbastanza piccoli da poterli riordinare per aumentare l'efficienza (velocità) con cui hai terminato l'operazione.

    
risposta data 07.11.2012 - 22:07
fonte
0

Dalla mia esperienza Pseudo-codice è sempre stato scritto da personell funzionale (persone che possiedono il processo) come un modo per esprimere le regole di business che si applicano a un processo, modulo o sottosistema.

Un Algorithm è un insieme difinito di istruzioni logiche per risolvere il più possibile un compito specifico.

    
risposta data 20.05.2011 - 15:59
fonte
0

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

Lo pseudo codice è una rappresentazione leggibile da un programma. Anche quello può essere usato per descrivere un algoritmo.

    
risposta data 20.05.2011 - 16:06
fonte
-2

Pseudo significa singolo & il codice può essere un'istruzione..qui Pseudo-codice significa un'istruzione che è usata per capire 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.

    
risposta data 30.06.2017 - 10:36
fonte

Leggi altre domande sui tag