Algoritmo
Soluzione di un Problema
Il nome deriva da quello di un Matematico Arabo
ABU JÀ FAR MOHAMMED IBN MÛSÂ AL KHOWÂRIZMÎ
Ha le seguenti caratteristiche :
- Sequenza
- Istruzioni scritte una dopo l’altra
- Eseguibili in un certo ordine una alla volta
- (Non necessariamente nello stesso ordine in cui sono state scritte)
- Istruzioni Elementari
- Le istruzioni non possono essere scomponibili ulteriormente rispetto alla capacità dell'esecutore
- Finitezza
- Definitezza
- Esiste un inizio
- Esiste almeno una Fine
(Possono essercene anche più di una)
- Si segue una sola istruzione alla volta
(Solo alla fine di una istruzione può essere eseguita la successiva )
- Deve essere un Comando ben definito
- Deterministico
- Ogni istruzione deve produrre sempre lo stesso effetto se eseguita a partire dalle stesse condizioni iniziali.
- Terminazione
- Deve terminare
(Deve essere Raggiungibile la Fine)
- Deve terminare in un Tempo Finito
(No Loop Infinito)
- Risultato
- Si deve produrre un Risultato se si seguono le istruzioni
- Ci possono essere anche risultati intermedi ma quello che conta è quello finale
- Risultato Osservabile
- Ogni istruzione deve produrre, una volta eseguita, un risultato effettivamente riscontrabile.
- Correttezza
- Il Risultato deve essere corretto
(deve essere quello voluto)
- Alle prove deve sempre dare il risultato giusto
(1+1 deve fare sempre 2)
- Non Ambiguità
- Le istruzioni devono essere Leggibili
(scritte in un linguaggio comprensibile dall’esecutore)
- Devono essere Eseguibili
(non devono essere delle richieste assurde ma fattibili)
- Non devono essere Ambigue
- (devono riportare con esattezza tutti i passaggi)
- Es. Girare una manopola in senso antiorario per 15 °
Es. Voltare per la strada a sinistra ad un incrocio)
- Riproducibile
- Il procedimento può essere ripetuto tutte le volte che si vuole ottenendo sempre gli stessi risultati
- Esaustivo
- Per tutti i casi che si possono presentare deve essere prevista una soluzione da seguire
- Indipendenza dai Dati di ingresso
- Non deve dipendere dal Valore dei Dati
(Es. 1+1=2 200+125=325 ecc.)
- Non deve dipendere dal Numero di dati
( Es. 1+1=2; 1+1+1=3; ………………. 1+1+1+1+1+…+1=Σi per quanti siano gli uno scritti)
- Non deve dipendere dalla Memoria necessaria per memorizzare i dati