Qual è la differenza tra Pseudocodice e Algoritmo?

In termini molto semplici, pseudocodice è una narrazione che descrive la logica dell'algoritmo.

Lo pseudocodice non è un codice eseguibile, quindi non è obbligatorio utilizzare una sintassi esatta; tuttavia, è utile seguire uno standard ampiamente utilizzato nel settore, che può essere facilmente compreso dal team di soluzioni.

Unified Modeling Language (UML) e altre metodologie di modellazione aziendale possono anche essere definiti esempi di pseudocodice. Sebbene non siano puramente basati sul testo, questi strumenti vengono utilizzati per fornire una rappresentazione visiva di un'attività o di un processo eseguibile.

È buona pratica documentare chiaramente lo pseudocodice strutturato e completo per aiutare a tradurlo in modo accurato ed è una parte essenziale nella pianificazione della soluzione e della logica di programmazione.

Se lo pseudocodice non esiste per un algoritmo, allora il tempo non necessario viene speso a pensare alla soluzione, o ad estrarre un'idea vaga mentre si trova nella fase di codifica, di solito con una scadenza incombente.

Quando si risolve un algoritmo, lo pseudocodice fornisce il pensiero di fondo su come è stato messo insieme e lo sviluppatore può o non può essere sempre in giro per aiutare a capirlo.

Guarda questo esempio pseudocodice della Khan Academy[io]:

Questo è uno pseudocodice basato su testo scritto in uno strumento di sviluppo software.

I tratti precedenti // indicano che il testo è un commento (o commentato in termini di sviluppo) e quindi non fa parte del codice eseguibile.

Il testo in grassetto di seguito mostra la sintassi e le dimensioni dello sviluppatore mentre lo interpretano dai requisiti dello pseudocodice in codice eseguibile.

// Come facciamo ad avere le nostre idee in codice?

// Disegna la faccia, un ovale al centro
ellisse (larghezza /2, altezza/2, 200, 300);

// Disegna i due occhi, due ovali, circa i 2/3 del viso e 1/5 della dimensione del viso
ellisse (larghezza /2 - 40, altezza/2 - 50, 40, 40);
ellisse (larghezza /
2 + 40, altezza/2 - 50, 40, 40);

Un altro esempio qui sotto mostra un approccio più tecnico e strutturato alla scrittura di pseudocodici:

Se il voto dello studente è maggiore o uguale a 60

Stampa "Ben fatto!"

altro

Stampa "Mi dispiace, hai fallito"

Quando ci si riferisce allo pseudocodice strutturato, esistono termini standard che rappresentano la logica dell'algoritmo, ad esempio SEQUENZA, MENTRE, IF-then-else e costrutti aggiuntivi che sono anche utili includono Repeat-until, ASTUCCIO, e PER.

Questi termini sono compresi dagli sviluppatori e utili per creare requisiti senza utilizzare termini gergali o personali che potrebbero non essere compresi da altri.

  • SEQUENZA indica l'esecuzione dall'alto verso il basso delle attività in sequenza.
  • MENTRE è un ciclo ripetitivo in esecuzione fino a quando una condizione, definita all'inizio, viene soddisfatta.
  • IF-then-else è una decisione presa tra due condizioni:
Esempio

Se Orario Lavorato> Normale Settimana POI

Visualizza messaggio scheda attività straordinario

ALTRO

Mostra il normale messaggio della scheda attività

  • Repeat-until è un ciclo ripetitivo in esecuzione fino a quando una condizione, definita alla fine, viene soddisfatta.
Esempio

RIPETERE

sequenza

Fino a condizione

  • ASTUCCIO fornisce decisioni multiple in base al valore di un'espressione.
  • PER è un ciclo di conteggio ripetitivo

Si noti che per ogni attività o processo, utilizzare il FINE/FINISCI SE (dove IF è usato) alla fine per indicare che è il punto di terminazione o risultato di uscita.

Quando i costrutti sono nidificati l'uno dentro l'altro, devono essere chiaramente rientrati dai loro costrutti genitori, quindi in altre parole, tutte le istruzioni che mostrano una dipendenza dovrebbero essere rientrate.

Con i verbi, le parole 'facendo', fai uso di termini come Processo, Computer, Ripristina, Incremento, Aggiungi, Moltiplica, Stampa, Mostra ecc. E nota che l'indentazione promuove lo pseudocodice desiderabile.

Ora esaminiamo gli algoritmi e in che modo sono diversi dallo pseudocodice.

Innanzitutto, cos'è un algoritmo?

"Informalmente, un algoritmo è una procedura computazionale ben definita che richiede
qualche valore, o insieme di valori, come input e produce qualche valore, o insieme di valori, come
produzione. Un algoritmo è quindi una sequenza di passaggi computazionali che trasformano il
inserire nell'output
.” [Ii]

Quindi, in termini più semplici, un algoritmo è una logica di codice eseguibile definita da una sequenza di passaggi per risolvere un problema o completare un'attività.

Diversamente dallo pseudocodice, la persona che scrive l'algoritmo ha bisogno della conoscenza di programmazione perché è interpretata dal computer - non uno sviluppatore - per eseguire attività, manipolare, crittografare ed estrarre i dati.

Algoritmi istruisce fondamentalmente un programma per computer per eseguire un'attività, come definito nella logica del codice. Errori in qualsiasi sintassi di programmazione impediscono l'esecuzione corretta di queste attività, che è dove sono richieste le conoscenze di programmazione.

Quando scrivi lo pseudocodice in fase di pianificazione, ricorda che l'algoritmo deve essere efficace, focalizzato e raggiungere un risultato finale; tutti gli aspetti della soluzione devono essere sempre considerati.

Cosa fa l'algoritmo? Fondamentalmente, viene eseguito da un trigger, da un processo o da un altro algoritmo e accetta i dati come input. I dati passano attraverso i passaggi di istruzioni e manipolazioni per produrre l'output.

I dati vengono archiviati in variabili e ogni variabile viene denominata per l'algoritmo che assegna i dati ad esso durante il processo di esecuzione.

Gli algoritmi vengono anche denominati perché possono includere riferimenti e chiamate ad altri algoritmi. Ci possono essere molte complessità e aspetti tecnici nello sviluppo di algoritmi, indipendentemente dal software di codifica utilizzato e, pertanto, deve essere ben definito per produrre risultati accurati e desiderati.

Un altro aspetto importante da considerare con la progettazione e l'implementazione di un algoritmo è la velocità con cui viene eseguito. Ciò è sempre più evidente con gli utenti finali che si stanno abituando a software più veloci e dispositivi più veloci.

Ad esempio, l'applicazione di filtri ai criteri di ricerca e l'attesa di un tempo insolitamente lungo per la visualizzazione dei risultati può essere un'esperienza insopportabile. Gli sviluppatori dovrebbero quindi verificare come e quando i dati vengono ricevuti, i dati possono essere filtrati in un processo secondario, ecc.

Scrivere una logica di codice che rallenta qualsiasi processo ha ripercussioni negative sugli utenti, sullo sviluppatore e sull'azienda.

In sintesi, lo pseudocodice è una narrazione importante per la pianificazione della logica del codice e l'implementazione di solide soluzioni. Queste soluzioni sono implementate utilizzando algoritmi ben strutturati, veloci ed efficaci che producono risultati accurati e desiderati.