Cos’è un algoritmo? Dove lo posso trovare, e come funziona?

Un algoritmo (anche detto programma) è un insieme di operazioni da svolgere, che devono essere eseguite per risolvere un problema o per ottenere un risultato richiesto. Troviamo algoritmi ovunque intorno a noi: dalla ricetta per cucinare una pietanza, alle indicazioni stradali, fino alle regole per eseguire operazioni chirurgiche.

Ogni volta che qualcuno (che chiameremo richiedente) richiede che qualcun altro (che chiameremo agente) metta in atto un insieme preciso di operazioni (che chiameremo istruzioni), sta eseguendo un algoritmo.

Le istruzioni possono essere di diversi tipi, in base al numero di agenti disponibili, alla loro capacità di riconoscere e di eseguire istruzioni, alle caratteristiche del lavoro da svolgere e anche al modo di ragionare (scelta, gusti, fantasia) del richiedente:

  • possono costituire un elenco, che un solo agente eseguirà nell'ordine in cui sono scritte, oppure essere distribuite in più liste, ciascuna elaborata da un diverso agente;
  • possono rappresentare i singoli passi da seguire secondo una precisa sequenza di esecuzione, oppure descrivere soltanto il risultato desiderato;
  • possono essere estremamente semplici, o molto complesse; e poche (al limite, anche una sola) o molte (a volte, milioni di istruzioni);

Il richiedente può comunicare le istruzioni all'agente in modi e forme anche molto diverse, ma perché funzionino devono obbligatoriamente essere comprensibili ed eseguibili dall'agente.

Il funzionamento dell'algoritmo dipende molto dalle caratteristiche dell'agente. Ad esempio, i due algoritmi:

  • Quando andrai a giocare a pallone, passa anche a prendere il pane, per favore

e

  • MOV   EBX,   EAX

presuppongono agenti completamente diversi: il primo capisce la lingua italiana e può decidere autonomamente l'ordine in cui eseguire le istruzioni; il secondo capisce il linguaggio Assembler, e dispone di (almeno) due 'contenitori' (registri di memoria) denominati EAX ed EBX.

Descriverò soltanto il più semplice algoritmo per eseguire un algoritmo: supponiamo di avere un elenco di un numero ben preciso di istruzioni, numero che chiameremo N. Supponiamo anche di avere un contenitore (detto indice), dove possiamo memorizzare un numero. Il funzionamento è il seguente:

  1. Memorizza nell'indice la posizione della prima istruzione da eseguire;
  2. leggi dall'elenco l'istruzione che si trova nella posizione indicata;
  3. se l'istruzione non è comprensibile o non è eseguibile, segnala il problema e fermati.
  4. esegui l'istruzione;
  5. aumenta il valore memorizzato nell'indice in modo che 'punti' all'istruzione successiva (ad esempio, aggiungendo 1);
  6. se il nuovo valore dell'indice è maggiore di N, segnala il termine del lavoro e fermati.
  7. prosegui dal punto 2.

Spero di essere stato chiaro e utile.

Francesco

Ti è piaciuto? Condividilo
Francesco
Mi piace imparare, spiegare e aiutare.Contattare
Lezioni private - Informatica, Programmazione e Python
Contattare
Usa il nostro Strumento di Ricerca Intelligente
© 2007 - 2024 Letuelezioni.it è un membro della famiglia GoStudent Mappa del sito: Insegnanti privati