Click to edit Algoritmo Master title style algoritmo

  • Slides: 31
Download presentation
Click to edit Algoritmo Master title style • algoritmo: un insieme ordinato di operazioni

Click to edit Algoritmo Master title style • algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito • in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Click to edit Proprietà Master title style • un algoritmo deve essere: • non

Click to edit Proprietà Master title style • un algoritmo deve essere: • non ambiguo (i risultati non devono variare in funzione della macchina o persona che esegue l'algoritmo) • corretto (deve risolvere un dato problema) • realizzabile (deve essere eseguibile con le risorse a disposizione) • finito (deve essere composto da un numero finito di passi elementari; le operazioni sono eseguite un numero finito di volte) • efficiente (deve avere un costo accettabile, se non ottimo, in termini di risorse consumate: tempo di CPU richiesto per completare, quantità di memoria utilizzata, quantità di bit trasferiti)

Click to edit Efficienza Master title style • efficienza è il termine usato per

Click to edit Efficienza Master title style • efficienza è il termine usato per descrivere l’uso attento delle risorse da parte di un algoritmo • come si misurano il tempo e lo spazio consumati da un algoritmo, in modo da determinare se è efficiente? – efficienza rispetto allo spazio: si può giudicare in base alla quantità di informazioni che l’algoritmo deve registrare nella memoria del computer per svolgere il proprio compito, oltre ai dati iniziali sui quali opera – efficienza rispetto al tempo: è un’indicazione della quantità di “lavoro” richiesto dall’algoritmo stesso; è una misura dell’efficienza implicita del metodo, indipendente dalla velocità della macchina su cui è eseguito, dai valori dei dati di ingresso elaborati ma non dalla loro quantità

Click to edit Complessità Master title style • descrive l'efficienza dell'algoritmo – numero di

Click to edit Complessità Master title style • descrive l'efficienza dell'algoritmo – numero di operazioni svolte dall'algoritmo relativamente alla misura dell'informazione su cui opera l'algoritmo • esempio: per mettere in ordine una lista di N numeri interi un algoritmo può eseguire N*N operazioni oppure log. N operazioni • complessità tipiche degli algoritmi, in ordine crescente: – log. N, N, Nlog. N, N 2, 2 N

Click Descrizione to edit Master di un algoritmo title style • un algoritmo è

Click Descrizione to edit Master di un algoritmo title style • un algoritmo è descritto in linguaggio • il linguaggio di descrizione di un algoritmo deve essere adeguato alle caratteristiche del suo esecutore • esecutore umano: – linguaggio naturale – linguaggio grafico (ad esempio i diagrammi di flusso) • esecutore automatico (computer): – linguaggio di programmazione

Click to edit. Esecuzione Master title style • l'esecuzione delle azioni nell'ordine specificato dall'algoritmo

Click to edit. Esecuzione Master title style • l'esecuzione delle azioni nell'ordine specificato dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema ESECUTORE una macchina astratta capace di eseguire le azioni specificate dallo algoritmo.

Click to edit Esempio Master title style • scrivere un algoritmo per decidere se

Click to edit Esempio Master title style • scrivere un algoritmo per decidere se l'assicurazione della macchina è scaduta – – – – anno corrente < anno scadenza polizza? non è scaduta, fine anno corrente > anno scadenza polizza? è scaduta, fine mese corrente < mese scadenza polizza? non è scaduta, fine mese corrente > mese scadenza polizza? è scaduta, fine giorno corrente < giorno scadenza polizza? non è scaduta, fine giorno corrente > giorno scadenza polizza? è scaduta, fine non è scaduta ma lo sarà tra 24 ore

Click to edit. Variabili Master title style • una variabile rappresenta una zona di

Click to edit. Variabili Master title style • una variabile rappresenta una zona di memoria RAM che può essere usata per memorizzare un valore • analogia con una scatola di scarpe etichettata in uno scaffale (che rappresenta la RAM): – – la scatola ha un nome una posizione nello scaffale un valore (le scarpe che si trovano dentro la scatola) [un tipo (forma della scatola)]* (* vedremo più avanti cos'è e a che serve il tipo di una variabile)

Click to edit. Variabili Master title style • A = Valore oppure A ←

Click to edit. Variabili Master title style • A = Valore oppure A ← Valore significa che "Valore" viene memorizzato nella zona di memoria RAM etichettata con l'etichetta "A": Valore A

Click to edit. Variabili Master title style • B = A oppure B ←

Click to edit. Variabili Master title style • B = A oppure B ← A significa che "Valore", precedentemente memorizzato nella zona di memoria etichettata con "A" viene copiato nella zona di memoria etichettata con "B": Valore A B

Click Diagrammi to edit Master di flusso title style • un diagramma di flusso

Click Diagrammi to edit Master di flusso title style • un diagramma di flusso (flow chart) è la definizione grafica delle operazioni che costituiscono un algoritmo • è uno strumento efficace per la descrizione degli algoritmi • i diagrammi di flusso usano forme geometriche diverse per rappresentare: – trasferimento di informazioni (lettura dati, scrittura risultati, visualizzazione dati intermedi) – esecuzione di calcoli – assunzione di decisioni – esecuzione di iterazioni (ripetizione di sequenze di operazioni)

Click Diagrammi to edit Master di flusso title style – elaborazione – i blocchi

Click Diagrammi to edit Master di flusso title style – elaborazione – i blocchi rettangolari rappresentano istruzioni di assegnazione di valori o una modifica dello stato globale della computazione – input/output - i blocchi a forma di parallelogramma corrispondono a operazioni di input/output dei dati (lettura da tastiera, visualizzazione su video) – decisione – i blocchi a forma di rombo vengono yes utilizzati per rappresentare istruzioni di salto condizionato – inizio/fine – i blocchi ovali vengono utilizzati per rappresentare l’inizio e la fine dell’algoritmo v E operation condition no start stop

Calcolo Click to dell’area edit Master di untitle rettangolo style • • leggi da

Calcolo Click to dell’area edit Master di untitle rettangolo style • • leggi da input l’altezza (H) leggi da input la base (B) calcola l’area H*B dai in output il risultato

Calcola Click tol’area edit Master di un rettangolo title style START Leggi Altezza Leggi

Calcola Click tol’area edit Master di un rettangolo title style START Leggi Altezza Leggi Base Area = Base*Altezza Stampa Area STOP

Click Conversione to edit Master lire in title euro style • leggi da input

Click Conversione to edit Master lire in title euro style • leggi da input l’importo in lire • calcola il corrispettivo in Euro • dai in output il risultato

Click Conversione to edit Master lire in title Euro style START Leggi Lire Euro

Click Conversione to edit Master lire in title Euro style START Leggi Lire Euro = Lire/1936, 27 Stampa Euro STOP

Click to edit IF-THEN-ELSE Master title style • selezione tra due istruzioni sulla base

Click to edit IF-THEN-ELSE Master title style • selezione tra due istruzioni sulla base di una condizione I Then Else O

Click Massimo to edit tra Master due numeri title style • leggi X •

Click Massimo to edit tra Master due numeri title style • leggi X • leggi Y • se X > Y – stampa X altrimenti – stampa Y

Click Massimo to edit tra Master due numeri title style

Click Massimo to edit tra Master due numeri title style

Click to edit Pari Master o disparititle style • leggi N • dividi N

Click to edit Pari Master o disparititle style • leggi N • dividi N per 2 • se resto = 0 – scrivi “N è pari” altrimenti – scrivi “N è dispari”

Click to edit Pari Master o disparititle style

Click to edit Pari Master o disparititle style

Click to edit WHILE-DO Master title style I O

Click to edit WHILE-DO Master title style I O

Click to edit ESEMPIO Master title style • CALCOLO DEL FATTORIALE • N!=N*(N-1)*(N-2)*…*2 START

Click to edit ESEMPIO Master title style • CALCOLO DEL FATTORIALE • N!=N*(N-1)*(N-2)*…*2 START Leggi N F=N N>1? no yes N=N-1 Stampa F F=F*N STOP

Click to REPEAT-UNTIL edit Master title style I O

Click to REPEAT-UNTIL edit Master title style I O

Click to edit ESEMPIO Master title style • CALCOLO DEL FATTORIALE • N!=N*(N-1)*(N-2)*…*2

Click to edit ESEMPIO Master title style • CALCOLO DEL FATTORIALE • N!=N*(N-1)*(N-2)*…*2

Scambio Click todei editvalori Master di due titlevariabili style • • Leggi valore prima

Scambio Click todei editvalori Master di due titlevariabili style • • Leggi valore prima variabile X Leggi valore seconda variabile Y Conserva X in una variabile temporanea Aux Assegna il valore di Y ad X Assegna il valore di Aux a Y Scrivi X Scrivi Y

dei valori di due variabili Click. Scambio to edit Master title style

dei valori di due variabili Click. Scambio to edit Master title style

Click to edit. Esercizi Master title style • • • dati 2 numeri in

Click to edit. Esercizi Master title style • • • dati 2 numeri in input trovare e stampare in output il max dati 3 numeri in input stamparli in ordine crescente dati 2 numeri in input stampare in output la somma sul prezzo di un prodotto viene praticato lo sconto del 3% se costa meno di 1. 000 e del 5% se costa di più; dato in input il prezzo P, calcolare il prezzo da pagare secondo la regola sopra descritta • sul prezzo di un biglietto di un treno viene applicato un supplemento del 7% se il treno è di tipo "a", del 12% se è di tipo "b" e del 18% se è di tipo "c"; per gli altri treni non c'è supplemento; calcolare il prezzo totale del biglietto, a seconda del tipo di treno e comunicare il tipo di treno con il prezzo calcolato

Click to edit. Esercizi Master title style • dati in input i min, ore

Click to edit. Esercizi Master title style • dati in input i min, ore e sec stampare in output il totale dei secondi • data in input una data verificare se è giusta • dato in input 100 valori stampare in output la somma dei numeri positivi e la somma dei negativi • dato in input una parola stampare in output se è una palindrome o no • dato in input una parola stampare in output il numero delle vocali

Click Algoritmo to edit Master e programma title style • ogni computer è una

Click Algoritmo to edit Master e programma title style • ogni computer è una macchina in grado di eseguire azioni elementari su dati • l'esecuzione delle azioni elementari viene attivata tramite sequenze di istruzioni • le istruzioni sono espresse attraverso frasi di un opportuno linguaggio di programmazione • un programma non è altro che la formulazione testuale di un algoritmo in un linguaggio di programmazione

Algoritmo e programma Click to edit Master title style un programma è la formulazione

Algoritmo e programma Click to edit Master title style un programma è la formulazione testuale, in un certo linguaggio di programmazione, di un algoritmo che risolve un dato problema.