La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algoritmi. 2 Algoritmo Un metodo preciso e sistematico per ottenere uno specifico risultato Ne abbiamo già incontrati diversi: –riconoscimento del clic.

Presentazioni simili


Presentazione sul tema: "Algoritmi. 2 Algoritmo Un metodo preciso e sistematico per ottenere uno specifico risultato Ne abbiamo già incontrati diversi: –riconoscimento del clic."— Transcript della presentazione:

1 Algoritmi

2 2 Algoritmo Un metodo preciso e sistematico per ottenere uno specifico risultato Ne abbiamo già incontrati diversi: –riconoscimento del clic di un pulsante –la tecnica del segnaposto –conversione esadecimale/binario e viceversa

3 3 Algoritmi nella vita quotidiana alcuni li abbiamo imparati a scuola – per esempio le operazioni aritmetiche alcuni li abbiamo ricostruiti da soli – come la ricerca di un numero telefonico altri hanno istruzioni scritte – le ricette di cucina, le istruzioni di assemblaggio dei mobili, le mappe stradali...

4 4 Le cinque proprietà essenziali degli algoritmi 1.Input specificato –i dati che saranno trasformati attraverso i calcoli per produrre loutput –devono specificare il tipo, la quantità e la forma che dovranno avere i dati 2.Output specificato –il risultato della computazione –talvolta è possibile non avere alcun output

5 5 Le cinque proprietà essenziali degli algoritmi (cont.) 3.Determinatezza –la sequenza degli eventi devessere specificata –ogni passo devessere descritto in ogni suo aspetto, inclusa la gestione degli errori 4.Efficacia –le operazioni devono essere effettivamente eseguibili da parte dellagente 5.Terminazione –lelaborazione deve giungere al termine in un tempo finito

6 6 Algoritmi e linguaggi Linguaggio naturale –utilizzato dalle persone: noi usiamo un linguaggio naturale come litaliano –lambiguità è comune nei linguaggi naturali Linguaggi di programmazione –linguaggi formali progettati per esprimere algoritmi –hanno una definizione precisa; non ci sono ambiguità

7 7 Programmi e algoritmi Un programma è un algoritmo concepito per operare in un determinato insieme di circostanze ed espresso in un particolare linguaggio

8 8 Un algoritmo: Ordina CD Immaginate dei CD disposti in modo disordinato su uno scaffale Volete ordinarli alfabeticamente in base al nome del gruppo, del cantante o del compositore Come risolvere questo problema?

9 9 Ordina CD (cont.) Input: una sequenza non ordinata di CD che riempie una scaffalatura Output: gli stessi CD nella stessa scaffalatura, ordinati alfabeticamente Istruzioni: 1.Usiamo il termine Artista per riferirci al nome del gruppo, del cantante o del compositore di un CD 2.Decidete quale estremo della rastrelliera corrisponde allinizio della sequenza alfabetica e chiamate Alfa la prima posizione di quellestremo 3.Chiamate Beta la posizione immediatamente adiacente ad Alfa

10 10 Ordina CD (cont.) 4. Se lArtista del CD nella posizione Beta precede alfabeticamente lArtista del CD nella posizione Alfa scambiate i due CD; in caso contrario continuate. 5. Se cè ancora almeno un posto dopo Beta, consideratela la nuova posizione Beta e tornate allistruzione 4; in caso contrario continuate. 6. Se ci sono due o più posti dopo Alfa, considerate quello immediatamente successivo come nuova posizione Alfa e quello ancora dopo come nuova posizione Beta e saltate allistruzione 4; in caso contrario lesecuzione è terminata.

11 11 Istruzione 1 Usiamo il termine Artista per riferirci al nome del gruppo, del cantante o del compositore di un CD Questo passo assegna un nome alloperazione utilizzata per determinare il nome in base a cui sarà effettuato per lordinamento

12 12

13 13 Istruzione 2 Decidete quale estremo della rastrelliera corrisponde allinizio della sequenza alfabetica e chiamate Alfa la prima posizione di quellestremo Dà un punto di partenza al processo e definisce Alfa. Allinizio, Alfa si riferisce alla prima posizione nella sequenza alfabetica; man mano che lesecuzione prosegue, il nome fa riferimento a posizioni successive

14 14

15 15 Istruzione 3 Chiamate Beta la posizione immediatamente adiacente ad Alfa Dà un significato iniziale a Beta. Alfa e Beta non hanno un significato intrinseco; sono i termini scelti per indicare due posizioni sullo scaffale

16 16

17 17 Istruzione 4 Se lArtista del CD nella posizione Beta precede alfabeticamente lArtista del CD nella posizione Alfa scambiate i due CD; in caso contrario continuate. Questa è listruzione che svolge la gran parte del lavoro. Listruzione confronta i nomi degli artisti che caratterizzano i CD in Alfa e Beta e, se necessario, li scambia in modo che siano nellordine corretto

18 18

19 19 Istruzione 5 Se cè ancora almeno un posto dopo Beta, consideratela la nuova posizione Beta e tornate allistruzione 4; in caso contrario continuate. Ridefinisce Beta in modo che il nome si riferisca alla posizione successiva nella sequenza, se esiste.Con questa nuova definizione di Beta è possibile eseguire nuovamente lIstruzione 4, confrontando una diversa coppia di CD

20 20

21 21 Istruzione 6 Se ci sono due o più posti dopo Alfa, considerate quello immediatamente successivo come nuova posizione Alfa e quello ancora dopo come nuova posizione Beta e saltate allistruzione 4; in caso contrario lesecuzione è terminata. Quando arriviamo a questistruzione, il CD che precede tutti gli altri si trova in Alfa. Possiamo far avanzare Alfa di un posto e percorrere ancora tutti i CD, localizzando il CD che precede alfabeticamente tutti gli altri. Quando non ci sono più due posti per definire le posizioni Alfa e Beta, lintera scaffalatura è stata ordinata e lalgoritmo termina

22 22 Analisi dellalgoritmo Ordina CD Illustra le cinque caratteristiche base degli algoritmi –Gli input e gli output sono specificati –Ogni istruzione è definita in modo preciso (determinatezza) –Le operazioni sono efficaci perché semplici e meccanicamente eseguibili –Lordinamento alfabetico è meccanico, così il nostro algoritmo è efficace –Il requisito di terminazione è soddisfatto: dato che con un numero finito di posti esiste un numero finito di coppie distinte, le istruzioni 4, 5 e 6 non possono essere ripetute allinfinito

23 23 Unanalisi più approfondita Caratteristiche strutturali –due istruzioni, 5 e 6, in cui lagente deve ripetere azioni già eseguite. In questi casi si dice che lalgoritmo presenta un ciclo –Cicli e test Un ciclo deve includere un test per determinare se le istruzioni devono essere ripetute ancora una volta –Ipotesi di partenza Ipotizziamo che –lo scaffale sia pieno di CD (senza spazi vuoti) –la parola "dopo" significa lo slot più lontano dal punto iniziale

24 24

25 25 Lalgoritmo di ordinamento per scambio Lesempio Ordina CD illustra un algoritmo standard chiamato ordinamento per scambio –confronta coppie di oggetti scelti in modo particolare, li scambia se non sono ordinati e prosegue considerandoli tutti uno dopo laltro –possiamo usare lo stesso algoritmo con un diverso criterio di ordinamento

26 26 Lastrazione nel pensiero algoritmico Possiamo considerare alcune parti del comportamento di un algoritmo come unità funzionali piuttosto che come singole istruzioni

27 27 Astrazione della scansione Beta Le istruzioni 4 e 5 illustrano lidea di ununità computazionale, che chiameremo scansione Beta –loperazione consiste nello scandire nellordine tutti i CD che seguono una specifica posizione Alfa –mentre Alfa rimane in una posizione fissa per tutta la scansione, Beta visita ogni posizione successiva ad Alfa, confrontando i CD e scambiandoli quando necessario –il suo effetto è trovare il CD successivo nellordinamento e di spostarlo nella posizione Alfa

28 28

29 29 Astrazione della scansione Alfa Alfa percorre lo scaffale a partire dalla posizione in cui comincia lordinamento e occupa tutte le posizioni (tranne lultima) eseguendo a ogni iterazione le istruzioni della scansione Beta

30 30

31 31

32 32 Proprietà della scansione Alfa 1.Esaustiva. Prende in considerazione tutti i CD dalla prima posizione allultima (esclusa) 2.Non ridondante. Nessun posto è assegnato ad Alfa più di una volta. Ne consegue che il processo termina se la scansione Beta termina 3.Progressiva. Alla fine di ogni scansione Beta, il CD che segue immediatamente nellordinamento tutti quelli già ordinati si trova nella posizione Alfa 4.Completa. Quando lultima scansione Beta è completata, il CD nellultima posizione segue quello nella penultima 5.Risolutiva. Il CD che precede alfabeticamente tutti gli altri si trova nel primo posto dello scaffale, in virtù della proprietà 4 e del fatto che sono stati presi in considerazione tutti i CD. Per ogni nuova posizione di Alfa, Beta assegna il CD immediatamente successivo nellordinamento. Ne segue che il programma esegue correttamente un ordinamento alfabetico.

33 33 Astrazioni per altri algoritmi e programmi Le astrazioni delle scansioni Alfa e Beta si applicano specificatamente allalgoritmo di ordinamento di scambio e ai programmi da esso derivati Altri algoritmi e programmi si comportano diversamente e richiedono astrazioni differenti, con altre caratteristiche Ogni situazione è diversa, ma lapproccio – astrazione del comportamento e analisi delle proprietà – è sempre lo stesso


Scaricare ppt "Algoritmi. 2 Algoritmo Un metodo preciso e sistematico per ottenere uno specifico risultato Ne abbiamo già incontrati diversi: –riconoscimento del clic."

Presentazioni simili


Annunci Google