Algoritmo: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Etichette: Annullato Modifica da mobile Modifica da web per mobile
Nessun oggetto della modifica
Etichette: Annullato Modifica da mobile Modifica da web per mobile
Riga 72:
Inizialmente un algoritmo può essere descritto attraverso l'uso di un [[diagramma di flusso]] o ricorrendo a uno [[pseudocodice]]. Successivamente, nella fase di [[Programmazione (informatica)|programmazione]] l'algoritmo così scritto verrà tradotto in [[linguaggio di programmazione]] a opera di un [[programmatore]] sotto forma di [[codice sorgente]] dando vita al [[programma (informatica)|programma]] che sarà [[esecuzione (informatica)|eseguito]] dal calcolatore, eventualmente dopo un'ulteriore traduzione in [[linguaggio macchina]]. Particolare rilevanza teorica in tale ambito assume il [[teorema di Böhm-Jacopini]] che afferma che qualunque algoritmo può essere implementato utilizzando tre sole strutture, la [[sequenza (informatica)|sequenza]], la [[selezione (informatica)|selezione]] e il ciclo ([[iterazione]]), da applicare ricorsivamente alla composizione di [[istruzione (informatica)|istruzioni]] elementari. Nella pratica corrente il programmatore professionista nel suo lavoro svolge automaticamente questo processo di traduzione scrivendo direttamente il codice sorgente necessario nelle suddette modalità avendo già trovato la soluzione al problema dato.
 
== Approccio matematico ==Dalla precedente definizione di algoritmo si evincono alcune proprietà necessarie, senza le quali un algoritmo non può essere definito tale:
== Approccio matematico ==
 
i passi costituenti devono essere "elementari", ovvero non ulteriormente scomponibili (atomicità);
i passi costituenti devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale (non ambiguità);
l'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso (finitezza)
l'esecuzione deve avere termine dopo un tempo finito (terminazione);
l'esecuzione deve portare a un risultato univoco (effettività).
Esistono numerosi modelli matematici di algoritmo. In generale, un algoritmo riceve un insieme di valori (dati) in [[input]] e ne genera uno in output (chiamato soluzione). Dato dunque un algoritmo A si denota con f<sub>A</sub> la funzione che associa a ogni ingresso x di A la corrispondente uscita.