La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore 14.30-17.30 presso Dipartimento di Informatica, Via Buonarroti,

Presentazioni simili


Presentazione sul tema: "1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore 14.30-17.30 presso Dipartimento di Informatica, Via Buonarroti,"— Transcript della presentazione:

1 1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti, 2 stanza 346 DE Tel o per posta elettronica Pagina web del corso: /

2 2 La scorsa lezione … Abbiamo introdotto la struttura tipica del calcolatore di von Neumann Memoria (RAM,dischi, etc) Mantiene Dati e Programmi Processore (CPU) E un esecutore capace di interpretare i singoli passi richiesti dai programmi (istruzioni elementari) Sottosistema di Interfaccia Permette di comunicare dati programmi alla macchina e di ottenere i risultati (tastiera, micr., stampante, schermo, )

3 3 La scorsa lezione... Abbiamo introdotto algoritmi e programmi Dati di ingresso Codificati opportunamente Elaborazione Trasformazione dei dati di ingresso seguendo i passi specificati da un opportuno algoritmo Dati di uscita Umano (che conosce lalgoritmo) Ovvero la descrizione dellalgoritmo secondo un linguaggio comprensibile al calcolatore Calcolatore (che conosce alcune azioni elementari: es confrontare due numeri, eseguire semplici operazioni aritmetiche programma

4 4 Dal problema allalgoritmo: un esempio La biblioteca –Libri disposti sugli scaffali –La posizione di ogni libro è fissata dalle due coordinate (S,P) dove S è il numero dello scaffale dove si trova il libro P è la posizione allinterno dello scaffale –La biblioteca ha uno schedario con una scheda per ogni libro. Ogni scheda contiene, nellordine: cognome e nome dellautore titolo del libro numero scaffale (S) e posizione nello scaffale (P)

5 5 Dal problema allalgoritmo: esempio (2) La biblioteca (cont.) –Le schede sono ordinate in ordine alfabetico del campo autore Problema: Vogliamo specificare un algoritmo che spieghi allutente della biblioteca come trovare un libro cercato supponendo di sapere : Autore e Titolo

6 6 Dal problema allalgoritmo: esempio (3) Un primo algoritmo per il prestito: 1. Decidi il libro da richiedere 2. Cerca la scheda nello schedario 3. Trascrivi la posizione (S,P) 4. Accedi alla posizione (S,P) 5. Preleva il libro e compila la scheda di prestito Le operazioni elementari in questo caso sono piuttosto complesse…

7 7 Dal problema allalgoritmo: esempio (4) … e se non so come si effettua la ricerca nello schedario ? –Tutte le operazioni specificate devono essere elementari per chi esegue lalgoritmo. –Se non lo sono è possibile spiegarle a parte per mezzo di un sotto-algoritmo es : nello spiegare una ricetta spesso si fa riferimento a parti spiegate in altre ricette, tipicamente … preparare la pasta frolla (ricetta p. 212) usando i primi 3 ingredienti, poi preparare il ripieno come segue ….

8 8 Dal problema allalgoritmo: esempio (5) Un sotto algoritmo per cercare nello schedario : 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite, allora il libro cercato non esiste.

9 9 Dal problema allalgoritmo: esempio (6) Due considerazioni : –Per ogni problema\sotto-problema ci sono algoritmi più o meno veloci es: per la ricerca nello schedario si può utilizzare lalgoritmo che utilizziamo solitamente (e spesso non consapevolmente) per cercare una parola sul dizionario –Lalgoritmo presentato, per quanto semplice presenta sia operazioni elementari (confronta, prendi) che strutture di controllo (istruzioni che organizzano la sequenza in cui vengono effettuate le operazioni elementari, es. se….altrimenti … vai a …)

10 10 Dal problema allalgoritmo: le strutture di controllo La struttura di controllo condizionale 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se (sono uguali), allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se (le schede sono esaurite) allora il libro cercato non esiste. (….) specifica la condizione

11 11 Dal problema allalgoritmo: le strutture di controllo (2) La struttura di salto (vai a o go_to) 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 4. Se sono uguali, allora la ricerca è terminata, altrimenti prendi la scheda successiva e vai al passo 3 5. Se le schede sono esaurite allora il libro cercato non esiste.

12 12 Dal problema allalgoritmo: le strutture di controllo (3) La struttura di iterazione (finchè…ripeti) 1. Apri il classificatore 2. Prendi la prima scheda 3. Confronta il campo autore e titolo con quelli cercati 3. Finchè (il campo autore e titolo sono diversi da quelli cercati) ripeti a. Prendi la scheda successiva b. Confronta il campo autore e titolo con quelli cercati 5. Se le schede sono esaurite allora il libro cercato non esiste.

13 13 Algoritmi: ancora esempi... Immaginiamo degli algoritmi per i seguenti problemi : 1. Trovare il maggiore fra 2 numeri interi x e y 2. Trovare il maggiore fra 3 numeri interi x, y e z 3. Trovare il massimo fra N numeri assumiamo le seguenti operazioni elementari –somma (+), sottrazione (-), stabilire se un numero è maggiore o minore di 0, leggere/scrivere dallo schermo … dove ragionevole : –definiamo dei sottoalgoritmi e utilizziamo le strutture di controllo

14 14 Il maggiore fra 2 numeri interi x, y Algoritmo max 1. Leggi i valori di x e y dallesterno 2. Calcola la differenza d fra x e y (d=x-y) 3. Se d è maggiore di 0 vai al passo 5 altrimenti prosegui in sequenza 4. Stampa il massimo è … seguito dal valore di y e vai a 6 5. Stampa il massimo è … seguito dal valore di x 6. Termina lesecuzione

15 15 Il maggiore fra 2 numeri interi x e y (2) x, y, d sono le variabili, cioè i contenitori per i dati coinvolti nellelaborazione. Ogni variabile ha un nome (x,y…) e un valore: il dato contenuto o memorizzato in essa Dobbiamo specificare esplicitamente come e quando lesecuzione termina!

16 16 Il maggiore fra 3 numeri interi Possiamo sfruttare lalgoritmo max come sottoalgoritmo Algoritmo max_3 1. Leggi i valori di x, y, z dallesterno 2. Valuta se x> y usando lalgoritmo max 3. In caso affermativo vai al passo 5 4. Trova il massimo fra y e z (con max) e termina 5. Trova il massimo fra x e z (con max) e termina

17 17 Il massimo fra N numeri interi Possiamo ancora sfruttare lalgoritmo max come sottoalgoritmo! Idea … trovare prima il maggiore fra i primi due numeri, poi confrontare il risultato con il terzo, poi con il quarto etc … In pratica, possiamo usare la struttura di controllo iterativa finchè…ripeti per effettuare le operazioni di max su tutti i numeri in ingresso

18 18 Determinare il massimo fra N numeri interi Algoritmo max_N 1. Leggi il valore di N dallesterno 2. Leggi i primi due numeri 3. Trova il maggiore m fra i primi due numeri (con max ) 4. Finchè (hai esaminato meno di N numeri) a. Leggi un nuovo numero x b. Trova il maggiore fra m e x usando lalgoritmo max c. Assegna il valore del maggiore a m 5. Stampa il massimo è… ed il valore di m e termina

19 19 Diagrammi di Flusso Sono grafici che permettono di esprimere un algoritmo in modo preciso ed intuitivo Si costruiscono a partire da un certo numero di blocchi base che rappresentano le operazioni elementari ed i costrutti di controllo

20 20 Diagrammi di Flusso (2) I blocchi base : Cond. Inizio Fine Sottoprog. Operazione I/0 Elaborazione Si No

21 21 Diagrammi di Flusso (3) I blocchi base vengono collegati tramite freccie che collegano unazione alla successiva allinterno dellalgoritmo Vediamo i diagrammi di flusso degli algoritmi per il calcolo del massimo già visti 1. Trovare il maggiore fra 2 numeri interi x e y 2. Trovare il maggiore fra 3 numeri interi x, y e z 3. Trovare il massimo fra N numeri

22 22 Il maggiore fra 2 numeri interi x, y Algoritmo max 1. Leggi i valori di x e y dallesterno 2. Calcola la differenza d fra x e y (d=x-y) 3. Se d è maggiore di 0 vai al passo 5 altrimenti prosegui in sequenza 4. Stampa il massimo è … seguito dal valore di x e vai a 6 5. Stampa il massimo è … seguito dal valore di y 6. Termina lesecuzione

23 23 DF di max d > 0 ? Inizio Fine Leggi x e y Si No d = x - y Scrivi max è x Scrivi max è y

24 24 DF di max d > 0 ? Inizio Fine Leggi x e y Si No d = x - y Scrivi max è x Scrivi max è y Passo 1 Passo 2 Passo 3 Passo 4 Passo 5 Passo 6

25 25 Il massimo fra N numeri interi Possiamo ancora sfruttare lalgoritmo max come sottoalgoritmo! Idea … trovare prima il maggiore fra i primi due numeri, poi confrontare il risultato con il terzo, poi con il quarto etc … In pratica, possiamo usare la struttura di controllo iterativa finchè…ripeti per effettuare le operazioni di max su tutti i numeri in ingresso

26 26 Determinare il massimo fra N numeri interi Algoritmo max_N 1. Leggi il valore di N dallesterno 2. Leggi i primi due numeri 3. Trova il maggiore m fra i primi due numeri (con max ) 4. Finchè (hai esaminato meno di N numeri) a. Leggi un nuovo numero x b. Trova il maggiore fra m e x usando lalgoritmo max c. Assegna il valore del maggiore a m 5. Stampa il massimo è… ed il valore di m e termina

27 27 Ancora numeri da esaminare ? Inizio Fine Leggi i primi due numeri x1 e x2 e memorizzali nelle variabili a e b SiNo Leggi il nuovo numero in a Scrivi max è m m = max(a,b) m = max(a,m) DF per il problema del massimo di N numeri Supponiamo N fissato

28 28 DF e programmi (1) I DF sono un primo passo verso la formalizzazione di un algoritmo in modo non ambiguo Per ottenere una codifica interpretabile direttamente dalla macchina dobbiamo però specificare molti più dettagli : –trasformare tutte le frasi in variabili e modifiche su di esse : es : ancora numeri da esaminare deve essere tradotto in qualcosa di calcolabile dalla macchina usando solo le operazioni elementari

29 29 I < N ? Inizio Fine Leggi i primi due numeri x1 e x2 e memorizzali nelle variabili a e b Si No Leggi il nuovo numero in a Scrivi max è m m = max(a,b) m = max(a,m) DF per il problema del massimo di N numeri (seconda versione) Leggi N I = 2 I = I + 1 Supponiamo N almeno 2

30 30 DF e programmi (2) Per ottenere una codifica interpretabile direttamente dalla macchina dobbiamo anche : –decidere come codificare linformazione non banale in esempi più complessi del nostro, ad esempio se voglio codificare unimmagine o un video –scrivere il tutto con una codifica leggibile dalla macchina … ma la macchina lavora molto a basso livello (linguaggio macchina, codificato con zeri e uni) !!!!

31 31 DF e programmi (3) … soluzione…. –usare linguaggi di livello più alto (linguaggi di programmazione ad alto livello) –usare dei programmi appositi per far tradurre i nostri programmi in linguaggio macchina (i compilatori) importante …. –I tipici linguaggi (C, Java, Fortran, Basic…) permettono di definire strutture del tutto analoghe ai diagrammi di flusso che abbiamo visto finora

32 32 DF e programmi : max in C main() /* calcola max */ { int x, y, d; scanf ("%d %d, &x, &y) ; d = x - y ; if (d > 0) printf (il max è %d, &x) ; else printf (il max è %d, &y) ; return ; }

33 33 DF e programmi : max_N in C (1) main() /* calcola max_N */ { unsigned int m, i, a, b; i = 2 ; scanf ("%d %d, &a, &b); m = max(a,b); while (i < N) { scanf ("%d, &a) ; m = max(a,m); } printf (il max è %d, &m) ; return ; }

34 34 DF e programmi : max_N in C (2) int max(int x, int y) /* sottoprogramma che calcola max */ { int d; d = x - y ; if (d > 0) return x; else return y; }


Scaricare ppt "1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore 14.30-17.30 presso Dipartimento di Informatica, Via Buonarroti,"

Presentazioni simili


Annunci Google