LABORATORIO DI INFORMATICA Corso di laurea in Scienze della Formazione Primaria a.a.2014/2015 A cura del Prof. Sergio Miranda
2 LEZIONE N.6 Algoritmi
GLI ALGORITMI (1/5) Un algoritmo è una sequenza di istruzioni la cui esecuzione consente di realizzare un particolare trattamento dell informazione o più in generale di risolvere uno specifico problema: Calcolare la somma di due numeri Calcolare la lunghezza dell ipotenusa di un triangolo rettangolo Risolvere una equazione di secondo grado Una ricetta di cucina Le istruzioni per montare un mobile 3
IL TERMINE ALGORITMO DERIVA DA 4
GLI ALGORITMI (2/5) Un algoritmo presuppone la presenza di qualcuno (o qualcosa) in grado di eseguirlo: l esecutore (in informatica è il calcolatore) Ogni esecutore ha il suo modello di elaborazione ed il suo ciclo di esecuzione: Es. Macchina di Turing, Macchina di Von Neumann L algoritmo viene letto dall esecutore il quale, partendo dai dati in input, esegue, in un ben preciso ordine, le istruzioni in esso riportate giungendo, al termine, a ottenere i dati in output Per essere eseguito, l algoritmo deve essere formulato in un linguaggio comprensibile dall esecutore Un esecutore può eseguire un algoritmo formulato in un linguaggio che non conosce a patto che l algoritmo stesso sia preventivamente tradotto in un linguaggio che invece gli è noto 5
UN ESEMPIO DI ALGORITMO Procedura per fare la frittata 6
GLI ALGORITMI (3/5) L algoritmo deve prevedere soltanto istruzioni elementari, che richiedono all esecutore la conduzione di operazioni elementari (operazioni che egli sa compiere senza bisogno di ulteriori specificazioni) Un algoritmo può richiedere l esecuzione di altri algoritmi precedentemente specificati all esecutore L algoritmo deve essere formulato in un linguaggio non ambiguo, in cui cioè ogni istruzione caratterizzi univocamente una delle operazioni che l esecutore è in grado di compiere L algoritmo deve specificare senza ambiguità l ordine di esecuzione delle istruzioni cui l esecutore deve attenersi scrupolosamente 7
Area di una campana (1) Problema Scomposizione del problema in tre sottoproblemi r Sottoproblema 1 s = ½ r 2 r=b/ 2 Sottoproblema 2 h 2 b B h 2 b s = b h 2 s =?? B Sottoproblema 3 s =?? 8 8
Area di una campana (2) b Scomposizione del sottoproblema 3 in tre ulteriori sottoproblemi B Sottoproblema 3 effettiva: h b 1 s = ½ (½(B b) ) + ½ (B b) ½ (B b) b + ½ (½(B b) h Sottoproblema 3.1 Sottoproblema 3.2 1 ) Sottoproblema 3.3 s =½ (½(B b) ) s = b s =½ (½(B b) ) Composizione delle soluzioni dei tre sottoproblemi 3.1, 3.2 e 3.3 per risolvere il sottoproblema 3 9 9
Area di una campana (3) Problema r Sottoproblema 1 s = ½ r 2 h 2 r=b/ 2 b B effettiva: s = ½ r 2 + b h 2 + ½ (½(B b) ) + b + ½ (½(B b) ) Composizione delle soluzioni dei tre sottoproblemi 1, 2 e 3 per risolvere il problema originario h 2 b B Sottoproblema 2 s = b h 2 Sottoproblema 3 effettiva: s = ½ (½(B b) ) + b + ½ (½(B b) ) 10 1 0
GLI ALGORITMI (4/5) L algoritmo deve essere formulato in un numero finito di istruzioni L esecuzione di un algoritmo deve terminare fornendo i dati in output in un tempo finito L algoritmo deve essere deterministico: eseguendo lo stesso algoritmo più volte sugli stessi dati di input, l esecutore deve generare sempre gli stessi dati di output 08/06/2015 Dott. Francesco Orciuoli 11
GLI ALGORITMI (5/5) Un algoritmo parametrico è un algoritmo che, facendo riferimento ai dati di input È in grado di risolvere non un solo problema ma una classe di problemi Algoritmo per risolvere 12 + 24 Algoritmo parametrico per risolvere X + Y dove X e Y possono essere rimpiazzati da qualsiasi numero X e Y si dicono variabili e funzionano come registri di memoria nei quali si possono scrivere e leggere dati 08/06/2015 Dott. Francesco Orciuoli 12
LE VARIABILI Sono contenitori Occorre stabilire che tipo di «contenuto» possono contenere Il tipo di contenuto è fisso Il loro contenuto può variare Le variabili contengono dati Il «senso» che le fa diventare informazioni si aggiunge con la programmazione 08/06/2015 Prof. Sergio Miranda 13