Click to edit Algoritmo Master /tle 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 /tle 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 /tle 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 /tle style descrive l'efficienza dell'algoritmo numero di operazioni svolte dall'algoritmo rela/vamente alla misura dell'informazione su cui opera l'algoritmo esempio: per mebere in ordine una lista di N numeri interi un algoritmo può eseguire N*N operazioni oppure logn operazioni complessità /piche degli algoritmi, in ordine crescente: logn, N, NlogN, N 2, 2 N
Click Descrizione to edit Master di un algoritmo /tle style un algoritmo è descritto in un 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 /tle 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 DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI ESECUTORE una macchina astratta capace di eseguire le azioni specificate dallo algoritmo.
Esempio: Click to la edit preparazione Master /tle del style caffè Esecutore: essere umano corredato di caffepera "moka", cucina a gas e macina-caffè; Algoritmo: 1. svitare la caffepera; 2. se si dispone di caffè macinato: riempire il filtro con il caffè macinato e andare al punto 3 altrimen/ se si dispone di caffè in chicchi: macinarlo e tornare al punto 2 altrimen/ terminare (il caffè non si può fare..) 3. riempire la parte inferiore della caffepera con acqua 4. inserire il filtro nella macchina 5. avvitare la caffepera 6. accendere il fuoco a gas 7. collocare la moka sul fuoco 8. abendere l'uscita del caffè 9. spegnere il fuoco 10. terminare (il caffè è pronto)
Click Esempio: to edit assicurazione Master /tle auto style scrivere un algoritmo per decidere se l'assicurazione della macchina è scaduta 1. anno corrente < anno scadenza polizza? non è scaduta, fine 2. anno corrente > anno scadenza polizza? è scaduta, fine 3. mese corrente < mese scadenza polizza? non è scaduta, fine 4. mese corrente > mese scadenza polizza? è scaduta, fine 5. giorno corrente < giorno scadenza polizza? non è scaduta, fine 6. giorno corrente > giorno scadenza polizza? è scaduta, fine 7. non è scaduta ma lo sarà tra 24 ore
Click Il to concebo edit Master di variabile /tle style per eseguire una qualsiasi algoritmo, abbiamo bisogno di poter immagazzinare i risulta/ temporanei e finali dell'algoritmo concebualmente, le variabili possono essere viste come delle scatole con: un'e/cheba che ci permebe di iden/ficarne il contenuto dei pezzi di carta al loro interno su cui si possono annotare/ modificare i valori di un calcolo che si sta facendo
Click to edit Variabili Master /tle style una variabile rappresenta una zona di memoria RAM che può essere usata per memorizzare un valore analogia con una scatola di scarpe e/chebata in uno scaffale (che rappresenta la RAM): la scatola ha un'e/cheba con un nome una posizione nello scaffale un valore (le scarpe che si trovano dentro la scatola) [un /po (forma della scatola)]* (* vedremo più avan/ cos'è e a che serve il /po di una variabile)
Click to edit Variabili Master /tle style nella pra/ca: ogni variabile ha un nome mnemonico, che si usa nel programma per riferirsi alla variabile stessa. ogni variabile con/ene un valore che può essere lebo e modificato a piacimento durante l esecuzione di un programma, il sistema opera/vo man/ene una associazione tra il nome di ogni variabile e l indirizzo della cella di memoria in cui è memorizzato il suo valore in defini/va una variabile è semplicemente un'astrazione della cella di memoria fisica
Click to edit Variabili Master /tle style A = Valore oppure A Valore significa che il valore specificato a destra dell'uguale viene memorizzato nella zona di memoria RAM e/chebata con l'e/cheba "A": Valore A a3enzione: non si traba di un'equivalenza matema/ca!!!
Click to edit Variabili Master /tle style B = A oppure B A significa che un certo valore, precedentemente memorizzato nella zona di memoria e/chebata con "A", viene copiato nella zona di memoria e/chebata con "B": Valore A B
Click Esempio: to edit Master incremento /tle style A = A + 1 oppure A A + 1 (N.B.: matema/camente ciò non ha alcun senso!) in informa/ca significa "prima calcoliamo A+1 e poi memorizziamo il risultato del calcolo in A" s/amo quindi considerano il valore di A in due istan/ diversi: prima per leggerne il valore e incrementarlo e dopo per memorizzare il suo nuovo valore Valore + 1 A A
Click Diagrammi to edit Master di flusso /tle style un diagramma di flusso (flow chart) è la definizione grafica delle operazioni che cos/tuiscono un algoritmo è uno strumento efficace per la descrizione degli algoritmi i diagrammi di flusso usano forme geometriche diverse per rappresentare: trasferimento di informazioni (lebura da/, scribura risulta/, visualizzazione da/ intermedi) esecuzione di calcoli assunzione di decisioni esecuzione di iterazioni (ripe/zione di sequenze di operazioni)
Click Diagrammi to edit Master di flusso /tle style elaborazione i blocchi rebangolari 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 da/ (lebura da tas/era, visualizzazione su video) decisione i blocchi a forma di rombo vengono u/lizza/ per rappresentare istruzioni di salto condizionato inizio/fine i blocchi ovali vengono u/lizza/ per rappresentare l inizio e la fine dell algoritmo v ß E operation yes no condition start stop
Calcolo Click to dell area edit Master di un /tle rebangolo 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 to l area edit Master di un rebangolo /tle style START Leggi Altezza Leggi Base Area = Base*Altezza Stampa Area STOP
Click Conversione to edit Master lire in /tle Euro style leggi da input l'importo in lire (an/ca moneta usata in Italia fino al secolo XX) calcola il corrispepvo in Euro dai in output il risultato
Click Conversione to edit Master lire in /tle Euro style START Leggi Lire Euro = Lire/1936,27 Stampa Euro STOP
Click to edit IF-THEN-ELSE Master /tle style selezione tra due istruzioni sulla base di una condizione Then I Else O
Click Massimo to edit tra Master due numeri /tle style leggi X leggi Y se X > Y stampa X altrimen/ stampa Y
Click Massimo to edit tra Master due numeri /tle style
Click to edit Pari Master o dispari /tle style leggi N dividi N per 2 se resto = 0 scrivi N è pari altrimen/ scrivi N è dispari
Click to edit Pari Master o dispari /tle style
Click to edit WHILE-DO Master /tle style I O
Click to edit ESEMPIO Master /tle style CALCOLO DEL FATTORIALE N!=N*(N-1)*(N-2)* *2 START Leggi N F = N N>1? no yes N=N-1 F=F*N Stampa F STOP
Click to edit DO-WHILE Master /tle style I O
Click to edit ESEMPIO Master /tle style CALCOLO DEL FATTORIALE N!=N*(N-1)*(N-2)* *2 START Leggi N F = N N=N-1 F=F*N yes N>1? no Stampa F STOP
Scambio Click to dei edit valori Master di due /tle variabili 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
Click Scambio to edit dei valori Master di due variabili /tle style
Click to edit Esercizi Master /tle style da/ 2 numeri in input trovare e stampare in output il max da/ 3 numeri in input trovare e stampare in output il max da/ 3 numeri in input stamparli in ordine crescente da/ 2 numeri in input stampare in output la somma sul prezzo di un prodobo viene pra/cato lo sconto del 3% se costa meno di 1.000.000 e del 5% se costa di più; dato in input il prezzo P, calcolare il prezzo da pagare secondo la regola sopra describa sul prezzo di un bigliebo di un treno viene applicato un supplemento del 7% se il treno è di /po "a", del 12% se è di /po "b" e del 18% se è di /po "c"; per gli altri treni non c'è supplemento; calcolare il prezzo totale del bigliebo, a seconda del /po di treno e comunicare il /po di treno con il prezzo calcolato
Click to edit Esercizi Master /tle style da/ 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 posi/vi e la somma dei nega/vi 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 to edit Programma Master /tle 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
Click to Algoritmo edit Master e programma /tle style problema algoritmo programma metodo risolutivo linguaggio di programmazione un programma è la formulazione, in un certo linguaggio di programmazione, di un algoritmo che risolve un dato problema
Click Algoritmi to edit Master vs. programmi /tle style calcolo del faboriale: esiste un solo algoritmo per calcolare il faboriale esistono teoricamente infinite implementazioni (e quindi programmi) per il calcolo del faboriale, una per ogni linguaggio di programmazione esistente e quindi: per ogni programma esiste un solo algoritmo per ogni algoritmo esistono infini/ programmi
Linguaggi Click to edit programmazione Master /tle style I linguaggi di programmazione ad alto livello permebono di scrivere programmi con una notazione adaba agli esseri umani, e in alcuni casi molto intui/va. Usando degli opportuni tradubori (compilatori ed interpre/) lo stesso programma può essere usato su macchine diverse Fortran, Cobol, Pascal, Ada, C, C++, Java, Lisp, ML, Prolog,...
Click to Il edit compilatore Master /tle style un programma scribo in un linguaggio ad alto livello è debo programma sorgente. per essere eseguito su un computer, va tradobo nel linguaggio macchina del computer (il linguaggio del processore) il compilatore è un programma che esegue la traduzione, producendo il programma ogge3o, ossia una sequenza di istruzioni in linguaggio macchina il compilatore segnala anche eventuali errori di sintassi nella scribura del programma sorgente
Click to Il edit compilatore Master /tle style programma P scritto nel linguaggio L compilatore per P sul computer M programma P nel linguaggio macchina di M esecuzione di P su M
Click to edit L'interprete Master /tle style in alterna/va alla compilazione, un programma sorgente può essere interpretato. un interprete è un programma che non produce alcun programma oggebo, ma legge il ogni istruzione del programma sorgente e genera le istruzioni macchina corrisponden/, che vengono passate all hardware per l'esecuzione.
Click Compilatori edit Master Vs. Interpre/ /tle style programma compilato vantaggi: la traduzione avviene una sola volta, e poi il programma oggebo può essere eseguito quanto si vuole svantaggi: la compilazione richiede un certo tempo di esecuzione programma interpretato vantaggi: il programma può essere eseguito subito senza dover abendere la fine della compilazione svantaggi: la traduzione avviene mentre si esegue il programma con conseguenze rallentamento dell'esecuzione alcuni linguaggi permebono entrambe le scelte abualmente, i computer sono così poten/ che anche la compilazione di lunghi programmi non richiede molto tempo