Laboratorio di Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di Informatica"

Transcript

1 Laboratorio di Informatica Dr. Marco Fondi Lezione # 6 Efficienza degli algoritmi. Il linguaggio di programmazione Perl Corso di Laurea in Scienze Biologiche, AA

2 Programma del corso 1. Introduzione al corso. Informatica ed algoritmi (cenni). Breve storia dell Informatica. Scopi e campi applicativi dell informatica (Biologia > la Bioinformatica). 2. Rappresentazione dell informazione. La codifica dell informazione nel calcolatore 3. Hardware. Architettura fisica di un computer 4. Software. Software di Base (sistemi operativi) Gli algoritmi. Principali Pseudocodice tipi di e Algoritmi. principali linguaggi Principai di algoritmi programmazione utilizzati in Principali Biologia tipi di (introduzione) Algoritmi Algoritmi Efficienza per degli l allineamento algoritmi. Il linguaggio di sequenze di programmazione biologiche Perl 7. Perl scripting. Algoritmi di importanza biologica 8. Algoritmi per la ricerca in banca-dati 8.. Il pacchetto Microsoft Office. Il foglio di lavoro Excel 9. Algoritmi per la costruzione di alberi filogenetici

3 Programma del corso 1. Introduzione al corso. Informatica ed algoritmi (cenni). Breve storia dell Informatica. Scopi e campi applicativi dell informatica (Biologia > la Bioinformatica). 2. Rappresentazione dell informazione. La codifica dell informazione nel calcolatore 3. Hardware. Architettura fisica di un computer 4. Software. Software di Base (sistemi operativi) Gli algoritmi. Principali Pseudocodice tipi di e Algoritmi. principali linguaggi Principai di algoritmi programmazione utilizzati in Principali Biologia tipi di (introduzione) Algoritmi Algoritmi Efficienza per degli l allineamento algoritmi. Il linguaggio di sequenze di programmazione biologiche Perl 7. Perl scripting. Algoritmi di importanza biologica 8. Algoritmi per la ricerca in banca-dati 8.. Il pacchetto Microsoft Office. Il foglio di lavoro Excel 9. Algoritmi per la costruzione di alberi filogenetici

4 Lezione # 6 1. efficienza degli algoritmi (analisi degli algoritmi) 2. ordini di grandezza degli algoritmi 3. Perl, da pseudocodice a programma

5 Trovare un algoritmo per risolvere un problema è una parte fondamentale dell informatica

6 Trovare un algoritmo per risolvere un problema è una parte fondamentale dell informatica Attributi degli algoritmi 1- correttezza La prima caratteristica fondamentale degli algoritmi è la correttezza. Il risultato di un algoritmo deve essere la soluzione corretta di unproblema L algoritmo deve fornire i risultati corretti per tutti i casi possibili se non conosciamo tutti i casi possibili (probabile, altrimenti non ci saremmo messi a scrivere un algoritmo), dobbiamo creare dei modelli (confronti) che funzionino da test per l algoritmo

7

8 2- Facilità di comprensione (chiarezza) Gli algoritmi degli informatici non hanno solo un interesse teorico, devono essere usati! a. manutenzione b. ripetibilità dell analisi, della ricerca

9 2- Facilità di comprensione (chiarezza) Gli algoritmi degli informatici non hanno solo un interesse teorico, devono essere usati! a. manutenzione b. ripetibilità dell analisi, della ricerca 3- Efficienza Uso attento delle risorse del computer I computer aumentano costantemente le loro capacità ma i problemi diventano sempre più complessi da risolvere. Un algoritmo scritto male (anche se corretto) impiegherà sempre più tempo del dovuto, anche su un super-computer!

10 4- Eleganza fornire una soluzione elegante dà soddisfazione! anche se (spesso) una soluzione elegante non è facile da capire

11 4- Eleganza fornire una soluzione elegante dà soddisfazione! anche se (spesso) una soluzione elegante non è facile da capire Efficienza in termini di spazio e tempo degli algoritmi L efficienza rispetto allo spazio si può misurare in base alla quantità di informazioni che l algoritmo deve registrare in memoria per realizzare il proprio compito (oltre ai dati che deve utilizzare). Se utilizza poche locazioni di memoria in più rispetto ai dati di ingresso allora possiamo dire che è un algoritmo efficiente

12 Efficienza in termini di spazio e tempo degli algoritmi L efficienza in termini di tempo è più difficile da valutare. Consideriamo l algoritmo di ricerca sequenziale di NOME all interno di un elenco telefonico: 1. su quale computer eseguiamo la ricerca? 2. di quale città è l elenco? 3. dove è posizionato il nome che vogliamo cercare all interno dell elenco? Il tempo di esecuzione tende a riflettere maggiormente la velocità della macchina o le variazioni dei dati di ingresso

13 Valutando il tempo di esecuzione di un algoritmo si ottengono indicazioni utili

14 Valutando il tempo di esecuzione di un algoritmo si ottengono indicazioni utili Ad esempio si può valutare l efficienza di due macchine diverse, eseguendo su di esse lo stesso algoritmo con gli stessi dati di ingresso BENCHMARKING

15 Misurare l efficienza di un algoritmo analisi degli algoritmi (es. ricerca sequenziale dentro elenco di nomi) 1. ottieni i valori per NOME, N1, N2... N imposta il valore i a 1 e il valore di TROVATO a no 3. Finchè (TROVATO = no) e (i<=n) ripeti da 4 a 7 4. se NOME= Ni 5. stampa il numero Ti 6. TROVATO=sì 7. altrimenti 8. somma 1 ad i 9. se (TROVATO = no) allora 10. stampa il numero non è stato trovato 11. STOP

16 Misurare l efficienza di un algoritmo analisi degli algoritmi (es. ricerca sequenziale dentro elenco di nomi) 1. ottieni i valori per NOME, N1, N2... N imposta il valore i a 1 e il valore di TROVATO a no 3. Finchè (TROVATO = no) e (i<=n) ripeti da 4 a 7 4. se NOME= Ni 5. stampa il numero Ti 6. TROVATO=sì 7. altrimenti 8. somma 1 ad i 9. se (TROVATO = no) allora 10. stampa il numero non è stato trovato 11. STOP

17 Misurare l efficienza di un algoritmo analisi degli algoritmi (es. ricerca sequenziale dentro elenco di nomi) 1. ottieni i valori per NOME, N1, N2... N imposta il valore i a 1 e il valore di TROVATO a no 3. Finchè (TROVATO = no) e (i<=n) ripeti da 4 a 7 4. se NOME= Ni 5. stampa il numero Ti 6. TROVATO=sì 7. altrimenti 8. somma 1 ad i 9. se (TROVATO = no) allora 10. stampa il numero non è stato trovato 11. STOP

18 Quanto lavoro per l algoritmo di ricerca sequenziale? caso migliore caso peggiore

19 Quanto lavoro per l algoritmo di ricerca sequenziale? caso migliore caso peggiore il nome da cercare è all inizio dell elenco

20 Quanto lavoro per l algoritmo di ricerca sequenziale? caso migliore il nome da cercare è all inizio dell elenco caso peggiore il nome da cercare è alla fine dell elenco

21 Quanto lavoro per l algoritmo di ricerca sequenziale? caso migliore il nome da cercare è all inizio dell elenco caso peggiore il nome da cercare è alla fine dell elenco In generale, se effettuiamo tanti confronti, in media il numero di ricerche da effettuare sarà n/2. I casi in cui il nome da cercare si localizza nella prima metà dell elenco (casi favorevoli) si bilancerà con quelli in cui il nome si trova nella seconda metà dell elenco

22 Esempio: ricerca di un numero di telefono all interno dell elenco di New York ( di numeri) su un computer capace di effettuare confronti al secondo

23 Esempio: ricerca di un numero di telefono all interno dell elenco di New York ( di numeri) su un computer capace di effettuare confronti al secondo confronti x 1 sec/confronto = 100 secondi

24 Esempio: ricerca di un numero di telefono all interno dell elenco di New York ( di numeri) su un computer capace di effettuare confronti al secondo confronti x 1 sec/confronto = 100 secondi minuto e 40 secondi + il tempo per scorrere nell elenco = circa 4 minuti! La ricerca sequenziale non è abbastanza efficiente (in termini di tempo), per valori di n molto grandi

25 E in termini di spazio? L algoritmo memorizza l elenco dei nomi e il NOME da cercare tra i dati di ingresso. La sola memoria di aggiuntiva richiesta è quella per registrare il valore indice i e l indicatore Trovato.

26 E in termini di spazio? L algoritmo memorizza l elenco dei nomi e il NOME da cercare tra i dati di ingresso. La sola memoria di aggiuntiva richiesta è quella per registrare il valore indice i e l indicatore Trovato. Efficiente in termini di spazio!

27 Ordine di grandezza degli algoritmi Il caso peggiore della ricerca sequenziale prevede n confronti. Se indichiamo il lavoro sussidiario con c, allora il lavoro totale richiesto è cn

28 Ordine di grandezza degli algoritmi Il caso peggiore della ricerca sequenziale prevede n confronti. Se indichiamo il lavoro sussidiario con c, allora il lavoro totale richiesto è cn lavoro, cn 4 c=2 c=1 tutti grafici lineari 3 c=1/2 2 1 n

29 Ordine di grandezza degli algoritmi Il caso peggiore della ricerca sequenziale prevede n confronti. Se indichiamo il lavoro sussidiario con c, allora il lavoro totale richiesto è cn lavoro, cn 4 c=2 c=1 tutti grafici lineari 3 c=1/2 2 1 ordine di n grandezza n

30 Ordinamento per selezione Ordinare un elenco di elementi (alfabetico, numerico) 5, 7, 2, 8, 3 parte non ordinata parte ordinata

31 Ordinamento per selezione Ordinare un elenco di elementi (alfabetico, numerico) 5, 7, 2, 8, 3 parte non ordinata parte ordinata Pseudocodice: 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

32 5, 7, 2, 8, 3 2 parte non ordinata parte ordinata 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

33 5, 7, 2, 8, 3 2 parte non ordinata parte ordinata * 5, 7, 2, 8, 3 4 parte non ordinata parte ordinata * 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

34 5, 7, 2, 8, 3 2 parte non ordinata parte ordinata * 5, 7, 2, 8, 3 4 parte non ordinata parte ordinata ** 5, 7, 2, 8, 3 5 parte non ordinata parte ordinata * ** 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

35 5, 7, 2, parte non ordinata parte ordinata 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

36 5, 7, 2, parte non ordinata parte ordinata * 5, 7, 2, parte non ordinata parte ordinata * 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

37 5, 7, 2, parte non ordinata parte ordinata * 5, 7, 2, parte non ordinata parte ordinata ** 5, 7, 2, parte non ordinata parte ordinata * ** 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

38 5, 3, 2 7, 8 6 parte non ordinata parte ordinata 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

39 5, 3, 2 7, 8 6 parte non ordinata parte ordinata... 2, 3, 5, 7, 8 parte non ordinata parte ordinata 1. Ottieni i valori dell elenco 2. Imposta il marcatore per la selezione non ordinata al termine dell elenco 3. Finchè la selezione non ordinata dell elenco non è vuota, ripeti i passi da 4 a 6 4. Seleziona il numero massimo nella selezione non ordinata dell elenco 5. Scambia questo numero con l ultimo nella selezione non ordinata dell elenco 6. Sposta a sinistra di una posizione il marcatore per la selezione non ordinata 7. STOP

40 Esiste un caso migliore ed un caso peggiore?

41 Esiste un caso migliore ed un caso peggiore? NO, questo algoritmo esegue la stessa quantità di lavoro, indipendentemente dalla disposizione iniziale degli elementi

42 Esiste un caso migliore ed un caso peggiore? NO, questo algoritmo esegue la stessa quantità di lavoro, indipendentemente dalla disposizione iniziale degli elementi Vengono effettuati n scambi, uno per ogni posizione nell elenco, per posizionare il valore corretto nella rispettiva posizione (n-1) + (n-2) + (n-3) (n-1) x n =(1/2)n 2 - (1/2)n 2

43 Esiste un caso migliore ed un caso peggiore? NO, questo algoritmo esegue la stessa quantità di lavoro, indipendentemente dalla disposizione iniziale degli elementi Vengono effettuati n scambi, uno per ogni posizione nell elenco, per posizionare il valore corretto nella rispettiva posizione (n-1) + (n-2) + (n-3) (n-1) x n =(1/2)n 2 - (1/2)n 2 se l elenco diventa più lungo di 10 volte, il lavoro aumenta di un fattore vicino a 10 2

44 Ordine di grandezza degli algoritmi il numero di confronti svolti dall algoritmo non cresce linearmente con le dimensioni del problema n, ma cresce con il quadrato della stessa. Un algoritmo che svolge un lavoro cn 2 per qualsiasi costante c, si dice di ordine di grandezza n 2

45 Ordine di grandezza degli algoritmi il numero di confronti svolti dall algoritmo non cresce linearmente con le dimensioni del problema n, ma cresce con il quadrato della stessa. Un algoritmo che svolge un lavoro cn 2 per qualsiasi costante c, si dice di ordine di grandezza n 2 lavoro, cn 4 c=2 c=1 c=1/ n

46 Ordine di grandezza degli algoritmi il numero di confronti svolti dall algoritmo non cresce linearmente con le dimensioni del problema n, ma cresce con il quadrato della stessa. Un algoritmo che svolge un lavoro cn 2 per qualsiasi costante c, si dice di ordine di grandezza n 2 lavoro, cn 4 c=2 c=1 c=1/ ordine di n grandezza n 2

47 confronto fra n ed n 2 lavoro 4 n 2 n n numero di unità di lavoro richieste n n 2 100n E+11

48 Per n sufficientemente grandi l algoritmo con ordine di grandezza n 2 lavora di più e richiede più tempo per l esecuzione, indipendentemente dai fattori costanti richiesti per il lavoro sussidiario

49 Per n sufficientemente grandi l algoritmo con ordine di grandezza n 2 lavora di più e richiede più tempo per l esecuzione, indipendentemente dai fattori costanti richiesti per il lavoro sussidiario lavoro 4 n 2 n n

50 Tuttavia, per n piccoli, la dimensione del lavoro sussidiario (c) potrebbe essere significativa

51 Tuttavia, per n piccoli, la dimensione del lavoro sussidiario (c) potrebbe essere significativa confrontiamo un algoritmo 0.25n 2 con un algoritmo 10n lavoro sussidiario

52 Tuttavia, per n piccoli, la dimensione del lavoro sussidiario (c) potrebbe essere significativa confrontiamo un algoritmo 0.25n 2 con un algoritmo 10n 0.25n 2 10n lavoro sussidiario lavoro n

53 ordine di grandezza n 2 ordine di grandezza n lavoro 4 n 2 n n

54 Algoritmo di ricerca binaria L algoritmo di ricerca sequenziale che cerca elementi all interno di un elenco di nomi ha ordine di grandezza n

55 Algoritmo di ricerca binaria L algoritmo di ricerca sequenziale che cerca elementi all interno di un elenco di nomi ha ordine di grandezza n L algoritmo di ricerca binaria è più efficiente ma funziona solo quando l elenco è ordinato Es. Se dobbiamo cercare il nome Rossi all interno di un elenco telefonico, sfruttiamo il fatto che i nomi sono ordinati alfabeticamente. Se apriamo l elenco alla lettera L sappiamo che il nome sarà più sotto, se apriamo l elenco alla lettera V sappiamo che il nome sarà più in alto nell elenco

56 L algoritmo di ricerca binaria procede allo stesso modo. Se NOME precede il nome che si trova a metà dell elenco allora la ricerca viene ristretta alla prima metà dell elenco e la procedura viene poi ripetuta su questo elenco più piccolo. L algoritmo si ferma quando il nome è stato trovato o quando non ci sono più elementi da confrontare.

57 In pseudocodice... variabili in rosso 1. ottieni i valori per NOME, N1, N2... N imposta il valore inizio a 1 e il valore di TROVATO a no 3. Imposta il valore di fine ad n 4. Finchè (TROVATO = no) e (inizio <=n) ripeti da 5 a Imposta il valore di m al valore centrale fra inizio e fine 6. Se NOME è uguale a Nm (valore centrale fra inizio e fine) esegui i passi 7 e 8 7. Stampa il numero della persona trovata, Tm 8. Imposta il valore TROVATO a sì 9. Altrimenti (se NOME precede Nm) allora imposta fine = m Altrimenti (se NOME segue Nm) allora imposta inizio = m Se (TROVATO = no ) allora stampa il messaggio Numero non trovato 12. STOP

58 Cerchiamo Claudio in questo elenco Anna Bruno Claudio Dino Giuseppe Nicola Sandra

59 Cerchiamo Claudio in questo elenco Anna Bruno Claudio Dino Giuseppe Nicola Sandra Anna Bruno Claudio Dino Giuseppe Nicola Sandra

60 Cerchiamo Claudio in questo elenco Anna Bruno Claudio Dino Giuseppe Nicola Sandra Anna Bruno Claudio Dino Giuseppe Nicola Sandra Claudio precede Dino e quindi scartiamo tutto ciò che sta dopo Dino

61 Cerchiamo Claudio in questo elenco Anna Bruno Claudio Dino Giuseppe Nicola Sandra Anna Bruno Claudio Dino Giuseppe Nicola Sandra Claudio precede Dino e quindi scartiamo tutto ciò che sta dopo Dino Anna Bruno Claudio 1 2 3

62 Cerchiamo Claudio in questo elenco Anna Bruno Claudio Dino Giuseppe Nicola Sandra Anna Bruno Claudio Dino Giuseppe Nicola Sandra Claudio precede Dino e quindi scartiamo tutto ciò che sta dopo Dino Claudio segue Bruno e quindi scartiamo tutto ciò che sta prima di Bruno Anna Bruno Claudio 1 2 3

63 Cerchiamo Claudio in questo elenco Anna Bruno Claudio Dino Giuseppe Nicola Sandra Anna Bruno Claudio Dino Giuseppe Nicola Sandra Claudio precede Dino e quindi scartiamo tutto ciò che sta dopo Dino Claudio segue Bruno e quindi scartiamo tutto ciò che sta prima di Bruno Anna Bruno Claudio TROVATO = sì Stampa il numero Tn

64 nome prima di nome 4 nome dopo nome

65 nome prima di nome 4 nome dopo nome nome prima nome 2 nome dopo nome 2 1 3

66 nome prima di nome 4 nome dopo nome nome prima nome 2 nome dopo nome 2 nome prima di nome 6 nome dopo nome

67 Analisi dell algoritmo di ricerca binaria caso migliore N=? caso peggiore N=?

68 Analisi dell algoritmo di ricerca binaria caso migliore N=? N=1 caso peggiore N=?

69 Analisi dell algoritmo di ricerca binaria caso migliore N=? N=1 caso peggiore N=? Il massimo numero di volte per cui un numero n può essere diviso a metà senza scendere sotto 1

70 Analisi dell algoritmo di ricerca binaria caso migliore N=? N=1 caso peggiore N=? Il massimo numero di volte per cui un numero n può essere diviso a metà senza scendere sotto 1 log2 n lavoro 4 l algoritmo di ricerca binaria ha ordine di grandezza logn log n n

71 ordine di grandezza n 2 ordine di grandezza n ordine di grandezza log n lavoro 4 n 2 n 3 log n 2 1 n

72 Esempio: ricerca di un numero di telefono all interno dell elenco di numeri) su un computer capace di effettuare 1000 confronti al secondo (caso peggiore)

73 Esempio: ricerca di un numero di telefono all interno dell elenco di numeri) su un computer capace di effettuare 1000 confronti al secondo (caso peggiore) ricerca sequenziale confronti x sec/confronto = 100 secondi 1000

74 Esempio: ricerca di un numero di telefono all interno dell elenco di numeri) su un computer capace di effettuare 1000 confronti al secondo (caso peggiore) ricerca sequenziale confronti x sec/confronto = 100 secondi 1000 ricerca binaria 17 1 confronti x sec/confronto = secondi = , log 2 17 =17

75 Esempio: ricerca di un numero di telefono all interno dell elenco di numeri (New York) su un computer capace di effettuare 1000 confronti al secondo (caso medio)

76 Esempio: ricerca di un numero di telefono all interno dell elenco di numeri (New York) su un computer capace di effettuare 1000 confronti al secondo (caso medio) ricerca sequenziale (in media) confronti x sec/confronto = secondi > 2 ore!

77 Esempio: ricerca di un numero di telefono all interno dell elenco di numeri (New York) su un computer capace di effettuare 1000 confronti al secondo (caso medio) ricerca sequenziale (in media) confronti x sec/confronto = secondi > 2 ore! ricerca binaria 25 1 confronti x sec/confronto = secondi =~

78 Ecco perchè è importante scegliere BENE l algoritmo da usare!

79 Ecco perchè è importante scegliere BENE l algoritmo da usare! L algoritmo binario lavora su un elenco ordinato.? Ordinare un elenco richiede molto tempo

80 Ecco perchè è importante scegliere BENE l algoritmo da usare! L algoritmo binario lavora su un elenco ordinato.? Ordinare un elenco richiede molto tempo E importante valutare anche quante volte (quanto è utile) verrà utilizzato un algoritmo (o un programma)!

81 Per alcuni problemi non esistono algoritmi del tipo di quelli visti in precedenza (limitati polinomialmente). Sono problemi definiti intrattabili e richiedono così tanto lavoro da essere virtualmente inutilizzabili.

82 Per alcuni problemi non esistono algoritmi del tipo di quelli visti in precedenza (limitati polinomialmente). Sono problemi definiti intrattabili e richiedono così tanto lavoro da essere virtualmente inutilizzabili. Questi problemi vengono spesso affrontati attraverso algoritmi di approssimazione (usati frequentemente in biologia!)

83 Riassumendo 1/2... Il software di sistema è un insieme di programmi che gestisce le risorse di un computer e che ne facilita l utilizzo unità di memoria ALU I/O unità di controllo bus segnale F/S R0 R1 interfaccia A software di sistema interfaccia B MAR circuiti decodifica memoria MDR controllore lettura/ scrittura R2... R15 ALU GT EQ LT linee di selezione Controllor e I/O dispositivo I/O PC +1 IR Circuito decodifica istruzioni segnali di controllo utente RAM registro codici condizionali hardware

84 Riassumendo 1/2... Il software di sistema è un insieme di programmi che gestisce le risorse di un computer e che ne facilita l utilizzo unità di memoria ALU I/O unità di controllo bus segnale F/S R0 R1 interfaccia A software di sistema interfaccia B MAR circuiti decodifica memoria MDR controllore lettura/ scrittura R2... R15 ALU GT EQ LT linee di selezione Controllor e I/O dispositivo I/O PC +1 IR Circuito decodifica istruzioni segnali di controllo utente RAM registro codici condizionali hardware macchina virtuale

85 Riassumendo 2/2... Problema Algoritmo Programma Soluzione

86 Riassumendo 2/2... Problema Algoritmo Programma Soluzione Pseudocodice

87 macchina virtuale unità di memoria ALU I/O unità di controllo bus segnale F/S R0 R1 software di sistema interfaccia B MAR circuiti decodifica memoria MDR controllore lettura/ scrittura R2... R15 ALU GT EQ LT linee di selezione Controllor e I/O dispositivo I/O PC +1 IR Circuito decodifica istruzioni segnali di controllo utente RAM registro codici condizionali hardware Problema Algoritmo Programma Soluzione Pseudocodice

88 macchina virtuale unità di memoria ALU I/O unità di controllo bus segnale F/S R0 R1 software di sistema interfaccia B MAR circuiti decodifica memoria MDR controllore lettura/ scrittura R2... R15 ALU GT EQ LT linee di selezione Controllor e I/O dispositivo I/O PC +1 IR Circuito decodifica istruzioni segnali di controllo utente RAM registro codici condizionali hardware Problema Algoritmo Programma Soluzione Pseudocodice

89 Linguaggio macchina Linguaggio assemblativo Linguaggio di programmazione pseudocodice Italiano, inglese Linguaggi a basso livello Linguaggio di alto Livello Linguaggi naturali

90 A causa di questa "vicinanza" all'hardware, non esiste un unico linguaggio assembly. Al contrario, ogni CPU o famiglia di CPU ha un suo proprio assembly, diverso dagli altri. Ad esempio, sono linguaggi assembly ben diversi quelli per i processori Intel x86, per i Motorola e per i Dec Alpha. Questo significa che conoscere un certo linguaggio assembly significa saper scrivere programmi solo su una determinata CPU o famiglia di CPU.

91 A causa di questa "vicinanza" all'hardware, non esiste un unico linguaggio assembly. Al contrario, ogni CPU o famiglia di CPU ha un suo proprio assembly, diverso dagli altri. Ad esempio, sono linguaggi assembly ben diversi quelli per i processori Intel x86, per i Motorola e per i Dec Alpha. Questo significa che conoscere un certo linguaggio assembly significa saper scrivere programmi solo su una determinata CPU o famiglia di CPU. Linguaggio macchina Linguaggio assemblativo Linguaggio di programmazione pseudocodice Italiano, inglese Linguaggi a basso livello Linguaggio di alto Livello Linguaggi naturali

92 programma sorgente programma oggetto Programma in linguaggio di alto livello compilatore * Programma in linguaggio macchina loader * Il suo lavoro può essere suddiviso in 4 fasi Fase 1: analisi lessicale Fase II: analisi sintattica Fase III: analisi semantica e generazione del codice Fase IV: ottimizzazione del codice Programma in linguaggio macchina caricato in memoria hardware OUTPUT

93 Linguaggi di programmazione

94 Cosa vuol dire PERL Practical Extraction and Reporting Language - Perl è il linguaggio - perl è il compilatore - Non PERL 46

95 Introduzione a PERL (Larry Wall, 1987) Nato per assistere l utente Unix per le comuni operazioni, troppo pesanti, troppo dipendenti dalla shell ma troppo complesse da codificare in C... Compattezza (sinteticità) e potenza Finalizzato principalmente per elaborare stringhe e file di testo (es. un genoma!) Correntemente molto usato per operazioni di amministrazione di sistema e per CGI/HTTP Linguaggio Interpretato Riferimenti classici: - Programming Perl, L.Wall. R.L.Schwartz - Learning Perl, R.L.Schwartz

96 Istruzioni di base Come si presenta uno script PERL (primo.pl) #!/user/bin/perl #esempio iniziale print scrivi una stringa terminata da return ; $nome=<stdin>; print ciao $nome\n ; Esplicitamente: prompt> perl primo.pl Simboli: {} rappresenta un blocco di istruzioni # commenti $ precede nomi variabili e elementi scalari di array precede nomi di array normali o di raggruppamenti di elementi di array % precede i nomi di array associativi & precede i nomi delle funzioni <STDIN>, <STDOUT> descrittori di standard input, output

97 Istruzioni di base Come si presenta uno script PERL (primo.pl) #!/user/bin/perl #esempio iniziale print scrivi una stringa terminata da return ; $nome=<stdin>; print ciao $nome\n ; Esplicitamente: prompt> perl primo.pl Simboli: {} rappresenta un blocco di istruzioni # commenti $ precede nomi variabili e elementi scalari di array precede nomi di array normali o di raggruppamenti di elementi di array % precede i nomi di array associativi & precede i nomi delle funzioni <STDIN>, <STDOUT> descrittori di standard input, output

98 Variabili scalari Un posto dove noi mettiamo dei dati (numeri, parole (stringhe) etc.) Il valore di una variabile nomevar e sempre identificato con $nomevar Case sensitive ($nomevar $NOMEVAR $NomeVar) Autoincremento, autodecremento: ++$nomevar oppure $nomevar++

99 Array Un posto dove noi mettiamo dei dati (numeri, parole (stringhe) etc.) Il valore di una variabile array e sempre identificato Case @nomi mario giorgio andrea pippo pluto luca ciao

100 @nomi mario giorgio andrea pippo pluto luca ciao ATTENZIONE!!! elementi array = 7 massimo indice = 6 52

101 @nomi mario giorgio andrea pippo pluto luca ciao ATTENZIONE!!! elementi array = 7 massimo indice = 6 52

102 Funzioni primitive degli algoritmi calcolo imposta il valore di una variabile ingresso/uscita ottieni il valore di variabile stampa il valore di variabile stampa il messaggio messaggio condizionali if/then/else iterazione ciclo while ciclo for Si tratta delle istruzioni che si presuppone che l agente di calcolo sappia interpretare e che quindi non dobbiamo spiegare. Sono i mattoni per costruire algoritmi anche molto complessi

103 Funzioni primitive degli algoritmi calcolo imposta il valore di una variabile Operatori ingresso/uscita ottieni il valore di variabile stampa il valore di variabile stampa il messaggio messaggio condizionali if/then/else iterazione ciclo while ciclo for Si tratta delle istruzioni che si presuppone che l agente di calcolo sappia interpretare e che quindi non dobbiamo spiegare. Sono i mattoni per costruire algoritmi anche molto complessi

104 Operatori Operatori aritmetici : + - * / ** % post/pre-decremento, incremento Operatori logici : AND (&&) Se il primo e falso, non valuta il secondo Es. $a>10&&print $a maggiore di 10 OR ( ) Se il primo è vero non valuta il secondo. Es. $a>10 print $a minore di 10 NOT (!) Inverte il risultato logico di confronto tra numeri: < <= > >= ==!= di confronto tra stringhe: lt le gt ge eq ne NB : il confronto tra stringhe e diverso dal confronto tra numeri

105 Funzioni primitive degli algoritmi calcolo imposta il valore di una variabile ingresso/uscita ottieni il valore di variabile stampa il valore di variabile stampa il messaggio messaggio print condizionali if/then/else iterazione ciclo while ciclo for Si tratta delle istruzioni che si presuppone che l agente di calcolo sappia interpretare e che quindi non dobbiamo spiegare. Sono i mattoni per costruire algoritmi anche molto complessi

106 Funzioni primitive degli algoritmi calcolo imposta il valore di una variabile ingresso/uscita ottieni il valore di variabile stampa il valore di variabile stampa il messaggio messaggio condizionali if/then/else Struttura condizionata iterazione ciclo while ciclo for Si tratta delle istruzioni che si presuppone che l agente di calcolo sappia interpretare e che quindi non dobbiamo spiegare. Sono i mattoni per costruire algoritmi anche molto complessi

107 Struttura condizionata Struttura if/else if (condizione) { } else { } primo blocco di istruzioni ; secondo blocco di istruzioni ;

108 Funzioni primitive degli algoritmi calcolo imposta il valore di una variabile ingresso/uscita ottieni il valore di variabile stampa il valore di variabile stampa il messaggio messaggio condizionali if/then/else iterazione ciclo while ciclo for cicli while, until e for Si tratta delle istruzioni che si presuppone che l agente di calcolo sappia interpretare e che quindi non dobbiamo spiegare. Sono i mattoni per costruire algoritmi anche molto complessi

109 Strutture while/until Sintassi while (espressione){ istruzioni ; } until (espressione){ istruzioni ; }

110 Il ciclo for for (condizione iniziale; condizione finale; incremento) { } istruzioni; esempio for ($i=0; $i<100; $i++) { print $i; }

111 1 imposta il valore di conteggio = 0 2 finchè (conteggio <= 100) ripeti passi da 3 a 4 3 conteggio = conteggio +1 4 print conteggio 5 print CONTEGGIO FINITO In Perl: #!/usr/bin/perl $conteggio=0; while ($conteggio<100){ $conteggio++; print "$conteggio\n"; }

112 1 imposta il valore di conteggio = 0 2 finchè (conteggio <= 100) ripeti passi da 3 a 4 3 conteggio = conteggio +1 4 print conteggio 5 print CONTEGGIO FINITO In Perl: #!/usr/bin/perl $conteggio=0; while ($conteggio<100){ $conteggio++; print "$conteggio\n"; } istruzione che dice al computer dove è il compilatore perl scrive anche un a capo

113 Ricerca di un nome all interno di un elenco di nomi (pseudocodice)

114 Ricerca di un nome all interno di un elenco di nomi (pseudocodice) 1. ottieni i valori per NOME, N1, N2... N imposta il valore i a 1 e il valore di TROVATO a no 3. Finchè (TROVATO = no) ripeti da 4 a 7 4. se NOME= Ni 5. stampa il nome Ni 6. TROVATO=sì 7. altrimenti 8. somma 1 ad i 9. STOP

115 @nomi mario giorgio andrea pippo pluto luca ciao

116 In Perl = ("mario","giorgio","andrea", "pippo", "pluto", "luca", "ciao"); $NOME="pippo"; $trovato="no"; $i=0; while ($trovato eq "no"){ } if ($NOME eq $nomi[$i]){ print "\n\nil nome $NOME è stato trovato alla posizione $i\n\n\n"; $trovato="sì"} else {$i++}; if ($trovato eq "no"){ print "\n --- spiacente, il nome non è stato trovato ---\n\n";}

117 In Perl = ("mario","giorgio","andrea", "pippo", "pluto", "luca", "ciao"); $NOME="pippo"; $trovato="no"; $i=0; while ($trovato eq "no"){ } if ($NOME eq $nomi[$i]){ print "\n\nil nome $NOME è stato trovato alla posizione $i\n\n\n"; $trovato="sì"} else {$i++}; dichiarazione variabili if ($trovato eq "no"){ print "\n --- spiacente, il nome non è stato trovato ---\n\n";}

118 In Perl #!/usr/bin/perl dichiarazione = ("mario","giorgio","andrea", "pippo", "pluto", "luca", "ciao"); $NOME="pippo"; $trovato="no"; $i=0; azzeramento contatore while ($trovato eq "no"){ } if ($NOME eq $nomi[$i]){ print "\n\nil nome $NOME è stato trovato alla posizione $i\n\n\n"; $trovato="sì"} else {$i++}; if ($trovato eq "no"){ print "\n --- spiacente, il nome non è stato trovato ---\n\n";}

119 In Perl #!/usr/bin/perl dichiarazione = ("mario","giorgio","andrea", "pippo", "pluto", "luca", "ciao"); $NOME="pippo"; $trovato="no"; $i=0; azzeramento contatore ciclo while while ($trovato eq "no"){ } if ($NOME eq $nomi[$i]){ print "\n\nil nome $NOME è stato trovato alla posizione $i\n\n\n"; $trovato="sì"} else {$i++}; if ($trovato eq "no"){ print "\n --- spiacente, il nome non è stato trovato ---\n\n";}

120 In Perl #!/usr/bin/perl dichiarazione = ("mario","giorgio","andrea", "pippo", "pluto", "luca", "ciao"); $NOME="pippo"; $trovato="no"; $i=0; azzeramento contatore ciclo while while ($trovato eq "no"){ } if ($NOME eq $nomi[$i]){ print "\n\nil nome $NOME è stato trovato alla posizione $i\n\n\n"; $trovato="sì"} else {$i++}; condizionale if/then/else if ($trovato eq "no"){ print "\n --- spiacente, il nome non è stato trovato ---\n\n";}

121 In Perl #!/usr/bin/perl dichiarazione = ("mario","giorgio","andrea", "pippo", "pluto", "luca", "ciao"); $NOME="pippo"; $trovato="no"; $i=0; azzeramento contatore ciclo while while ($trovato eq "no"){ } if ($NOME eq $nomi[$i]){ print "\n\nil nome $NOME è stato trovato alla posizione $i\n\n\n"; $trovato="sì"} else {$i++}; condizionale if/then/else if ($trovato eq "no"){ print "\n --- spiacente, il nome non è stato trovato ---\n\n";} condizionale if/then/else

122 In Perl #!/usr/bin/perl dove sta perl? dichiarazione = ("mario","giorgio","andrea", "pippo", "pluto", "luca", "ciao"); $NOME="pippo"; $trovato="no"; $i=0; azzeramento contatore ciclo while while ($trovato eq "no"){ } if ($NOME eq $nomi[$i]){ print "\n\nil nome $NOME è stato trovato alla posizione $i\n\n\n"; $trovato="sì"} else {$i++}; condizionale if/then/else if ($trovato eq "no"){ print "\n --- spiacente, il nome non è stato trovato ---\n\n";} condizionale if/then/else

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo 1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Dettagli

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE TERZA

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE TERZA PROGRAMMAZIONE DISCIPLINARE PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE TERZA 1. Competenze: le specifiche competenze di base disciplinari previste dalla

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

Programmazione modulare

Programmazione modulare Programmazione modulare 2016 2017 Indirizzo: 1 BIENNIO Informatica e Telecomunicazioni Disciplina: SCIENZE E TECNOLOGIE APPLICATE Classi: 2 C - 2 D - 2 F Ore settimanali: 3 ore Prerequisiti per l'accesso

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1 Corso di INFORMATICA Laurea triennale - Comunicazione&DAMS Dr. Marco Manna 1 1 Dipartimento di Matematica Università della Calabria Corso di laurea intercalsse in COMUNICAZIONE&DAMS http://elleboro.unical.it/drupalab/informatica2009/

Dettagli

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010 ISTITUTO TECNICO COMMERCIALE N. DELL ANDRO - Santeramo in Colle (BA) Programma svolto di INFORMATICA Classe 3 - indirizzo MERCURIO A.S. 2009/2010 Proff. Rosalia Barbara Schiavarelli, Antonio Antonicelli

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Teoria dell Informazione

Teoria dell Informazione Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro

Dettagli

Informatica e Bioinformatica: Algoritmi

Informatica e Bioinformatica: Algoritmi Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi

Dettagli

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per

Dettagli

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011 ISTITUTO TECNICO COMMERCIALE N. DELL ANDRO - Santeramo in Colle (BA) Programma svolto di INFORMATICA Classe 3M - indirizzo MERCURIO A.S. 2010/2011 Proff. Rosalia Barbara Schiavarelli, Antonio Antonicelli

Dettagli

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Dettagli

Architettura di Von Neumann

Architettura di Von Neumann Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da un elaboratore: memorizzare i

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

Dettagli

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Dettagli

Introduzione al funzionamento di un calcolatore elettronico

Introduzione al funzionamento di un calcolatore elettronico 1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio

Corso di Linguaggi di Programmazione + Laboratorio Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un

Dettagli

Introduzione al Linguaggio C ed all IDE DEV-C++

Introduzione al Linguaggio C ed all IDE DEV-C++ Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

Come funzionano i computer

Come funzionano i computer Fluency Come funzionano i computer Capitolo 6 Cosa sanno fare Esecuzione deterministica istruzioni per elaborare dati Devono ricevere una serie di istruzioni da seguire Cosa non sanno fare Non hanno immaginazione

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore

Dettagli

Linee di programmazione

Linee di programmazione Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico regionale per il Lazio Istituto Tecnico Industriale A. Pacinotti ISTITUTO TECNICO TECNOLOGICO - LICEO SCIENTIFICO DELLE SCIENZE

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

Concetti di base dell ICT

Concetti di base dell ICT Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura

Dettagli

PIANO DI LAVORO. a.s. 2015 / 2016

PIANO DI LAVORO. a.s. 2015 / 2016 PIANO DI LAVORO a.s. 2015 / 2016 Materia: INFORMATICA Classe: terza informatica- sez. A Data di presentazione: 15/10/2015 DOCENTI FIRMA Cerri Marta Bergamasco Alessandra Posta elettronica: itisleon@tin.it

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione Laurea in Bioinformatica Docente: Carlo Drioli Web: www.scienze.univr.it/fol/main?ent=oi&id=39990 Programmazione: Dati Strutture di controllo Algoritmi Materiale tratto dai

Dettagli

Primo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Primo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale Primo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini luca@chiodini.org - l.chiodini@campus.unimib.it 10 marzo 2016 Programma 1. Lettura di un problema tratto dalle

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi. Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

PROGRAMMA SVOLTO Materia: Informatica Docentte:: PERAZZOLO GIANTONIO

PROGRAMMA SVOLTO Materia: Informatica Docentte:: PERAZZOLO GIANTONIO ISTITUTO D ISTRUZIONE SUPERIORE "G. VERONESE - G. MARCONI" SEDE CENTRALE G. VERONESE Via P. Togliatti, 833-30015 CHIOGGIA (VE) Tel. 041/5542997-5543371 - Fax 041/5548665 e-mail: veis00200g@pec.istruzione.it

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

Dettagli

Programmazione strutturata

Programmazione strutturata Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Modularizzazione del software

Modularizzazione del software Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica

Dettagli

Lecture 2: Prime Istruzioni

Lecture 2: Prime Istruzioni [http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 2: Prime Istruzioni

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre: Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004 1 Docente Patrizia Boccacci Ufficio 332 III piano Dipartimento di Informatica e Sc. Inf. Tel. 010-3536732 E-mail: boccacci@disi.unige.it

Dettagli

PROGRAMMA PREVENTIVO. Criteri di programmazione didattica. La programmazione didattica verrà sviluppata tenendo conto dei seguenti punti:

PROGRAMMA PREVENTIVO. Criteri di programmazione didattica. La programmazione didattica verrà sviluppata tenendo conto dei seguenti punti: SUPERIORE "G. VERONESE - G. MARCONI" SEDE CENTRALE G. VERONESE Via P. Togliatti, 833-30015 CHIOGGIA (VE) Tel. 041/5542997-5543371 - Fax 041/5548665 e-mail: veis00200g@pec.istruzione.it - Web: www.veronesemarconi.gov.it

Dettagli

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol. Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato

Dettagli

Algoritmi e Programmi

Algoritmi e Programmi Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

STORIA E CARATTERISTICHE

STORIA E CARATTERISTICHE IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico 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

Dettagli

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E G u g l i e l m o M a r c o n i V e r o n a Dipartimento di Progetto didattico disciplinare per le classi terze della articolazione Anno

Dettagli

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema Algoritmi, dati e programmi 1 Algoritmi, dati e programmi 2 Informatica Informatica informatica informazione mezzi mezzi fisici procedure Algoritmi, dati e programmi rappresentazione dell informazione

Dettagli

ESERCIZI SVOLTI DI CALCOLO NUMERICO

ESERCIZI SVOLTI DI CALCOLO NUMERICO STEFANO BERRONE SANDRA PIERACCINI ESERCIZI SVOLTI DI CALCOLO NUMERICO con introduzione a Matlab R CLUT Stefano Berrone Dipartimento di Matematica Politecnico di Torino Sandra Pieraccini Dipartimento di

Dettagli

Programmazione web lato client con JavaScript. Marco Camurri 1

Programmazione web lato client con JavaScript. Marco Camurri 1 Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

Introduzione al Calcolo Scientifico

Introduzione al Calcolo Scientifico Introduzione al Calcolo Scientifico Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico 1 / 14 Calcolo Scientifico Insieme degli

Dettagli

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è una list c) v

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Struttura hw del computer

Struttura hw del computer Informatica per laurea triennale facoltà di medicina LEZIONE 3 Il processore, la memoria e l esecuzione dei programmi 1 Struttura hw del computer Il nucleo di un computer è costituito da 3 principali componenti:

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere

Dettagli

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi. Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l

Dettagli

La ricerca dicotomica

La ricerca dicotomica La ricerca dicotomica Se l array è ordinato, la ricerca di un elemento può essere realizzata in modo più efficiente rispetto alla ricerca sequenziale, utilizzando la ricerca dicotomica. Si usa il termine

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

Dettagli

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE PRIMA

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE PRIMA PROGRAMMAZIONE DISCIPLINARE PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE PRIMA 1. Competenze: le specifiche competenze di base disciplinari previste dalla

Dettagli

Fondamenti VBA. Che cos è VBA

Fondamenti VBA. Che cos è VBA Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione

Dettagli

Prof. Rossella Cancelliere

Prof. Rossella Cancelliere Laboratorio di Informatica e Statistica Chimica Industriale a.a 2004/05 Prof. Rossella Cancelliere Dip. Informatica Univ.Torino C.so Svizzera 185,Torino email:cancelli@di.unito.it tel: 011/670 67 77 Obiettivi

Dettagli

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli