Click to edit Algoritmo Master title style algoritmo
- Slides: 41
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 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 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 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 è 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 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.
Esempio: Click tolaedit preparazione Master titledel style caffè • Esecutore: essere umano corredato di caffettiera "moka", cucina a gas e macina-caffè; • Algoritmo: 1. svitare la caffettiera; 2. se si dispone di caffè macinato: • riempire il filtro con il caffè macinato e andare al punto 3 • altrimenti se si dispone di caffè in chicchi: macinarlo e tornare al punto 2 • altrimenti terminare (il caffè non si può fare. . ) 3. 4. 5. 6. 7. riempire la parte inferiore della caffettiera con acqua inserire il filtro nella macchina avvitare la caffettiera accendere il fuoco a gas collocare la moka sul fuoco 8. attendere l'uscita del caffè 9. spegnere il fuoco 10. terminare (il caffè è pronto)
Click Esempio: to edit assicurazione Master title auto style • scrivere un algoritmo per decidere se l'assicurazione della macchina è scaduta 1. 2. 3. 4. 5. 6. 7. 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. Il to concetto edit Master di variabile title style • per eseguire una qualsiasi algoritmo, abbiamo bisogno di poter immagazzinare i risultati temporanei e finali dell'algoritmo • concettualmente, le variabili possono essere viste come delle scatole con: – un'etichetta che ci permette di identificarne 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 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'etichetta con 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 • nella pratica: – ogni variabile ha un nome mnemonico, che si usa nel programma per riferirsi alla variabile stessa. – ogni variabile contiene un valore che può essere letto e modificato a piacimento – durante l’esecuzione di un programma, il sistema operativo mantiene una associazione tra il nome di ogni variabile e l’indirizzo della cella di memoria in cui è memorizzato il suo valore • in definitiva una variabile è semplicemente un'astrazione della cella di memoria fisica
Click to edit. Variabili Master title style • A = Valore oppure A ← Valore significa che il valore specificato a destra dell'uguale viene memorizzato nella zona di memoria RAM etichettata con l'etichetta "A": Valore A • attenzione: non si tratta di un'equivalenza matematica!!!
Click to edit. Variabili Master title style • B = A oppure B ← A significa che un certo valore, precedentemente memorizzato nella zona di memoria etichettata con "A", viene copiato nella zona di memoria etichettata con "B": Valore A B
Click. Esempio: to edit Master incremento title style • A = A + 1 oppure A ← A + 1 (N. B. : matematicamente ciò non ha alcun senso!) • in informatica significa "prima calcoliamo A+1 e poi memorizziamo il risultato del calcolo in A" • stiamo quindi considerano il valore di A in due istanti 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 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 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 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 Base Area = Base*Altezza Stampa Area STOP
Click Conversione to edit Master lire in title Euro style • leggi da input l'importo in lire (antica moneta usata in Italia fino al secolo XX) • calcola il corrispettivo in Euro • dai in output il risultato
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 di una condizione I Then Else O
Massimo due numeri Click to edit tra Master 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 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 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 Leggi N F=N N>1? no yes N=N-1 Stampa F F=F*N STOP
Click to edit DO-WHILE Master title style I O
Click to edit ESEMPIO Master title style START • CALCOLO DEL FATTORIALE • N!=N*(N-1)*(N-2)*…*2 Leggi N F=N N=N-1 F=F*N yes no N>1? Stampa F STOP
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
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 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 to edit Programma Master 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, in un certo linguaggio di programmazione, di un algoritmo che risolve un dato problema
Click Algoritmi to edit Master vs. programmi title style • calcolo del fattoriale: – esiste un solo algoritmo per calcolare il fattoriale – esistono teoricamente infinite implementazioni (e quindi programmi) per il calcolo del fattoriale, una per ogni linguaggio di programmazione esistente • e quindi: – per ogni programma esiste un solo algoritmo – per ogni algoritmo esistono infiniti programmi
Linguaggi Click to edit di programmazione Master title style • I linguaggi di programmazione ad alto livello permettono di scrivere programmi con una notazione adatta agli esseri umani, e in alcuni casi molto intuitiva. • Usando degli opportuni traduttori (compilatori ed interpreti) lo stesso programma può essere usato su macchine diverse • Fortran, Cobol, Pascal, Ada, C, C++, Java, Lisp, ML, Prolog, . . .
Click to Iledit compilatore Master title style • un programma scritto in un linguaggio ad alto livello è detto programma sorgente. • per essere eseguito su un computer, va tradotto nel linguaggio macchina del computer (il linguaggio del processore) • il compilatore è un programma che esegue la traduzione, producendo il programma oggetto, ossia una sequenza di istruzioni in linguaggio macchina • il compilatore segnala anche eventuali errori di sintassi nella scrittura del programma sorgente
Click to Iledit compilatore Master title 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 title style • in alternativa alla compilazione, un programma sorgente può essere interpretato. • un interprete è un programma che non produce alcun programma oggetto, ma legge il ogni istruzione del programma sorgente e genera le istruzioni macchina corrispondenti, che vengono passate all’hardware per l'esecuzione.
Click Compilatori to edit Master Vs. Interpreti title style • programma compilato – vantaggi: la traduzione avviene una sola volta, e poi il programma oggetto 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 attendere la fine della compilazione – svantaggi: la traduzione avviene mentre si esegue il programma conseguenze rallentamento dell'esecuzione • alcuni linguaggi permettono entrambe le scelte • attualmente, i computer sono così potenti che anche la compilazione di lunghi programmi non richiede molto tempo
- Informaatika mitteinformaatikutele
- Click to edit master title style
- Click to edit master title style
- Click to edit master title style
- Hard edits
- Click clever click safe
- Click clever
- Cyber safety
- Clever click
- Master title style
- Master title style
- Click to add title
- Click to add title
- Click to add title
- What is a slide title master pair
- Master title
- Who taught how
- Prefatory elements in proposal exclude
- Title title
- Mla front page
- Chicago style title page
- Title page example apa
- Informal writing rules
- Periodic cumulative and inverted sentences
- Formal vs informal style
- Referential vs expressive style
- Modified block letter parts
- Inversion poetry example
- @qussaiomarii:https://forms.gle/1fbyoualyf1wnwt19
- Edit decision list
- Cégértékelés
- Gene edit
- Translation edit rate
- Lc3 multiplication
- Quick edit+
- Jeopardy edit
- Doodle admin link
- Edit
- Yang merupakan modus edit, kecuali
- Please feel free to modify
- H@ntai
- Cimco edit cena