DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio –...
-
Upload
saturnino-colombo -
Category
Documents
-
view
218 -
download
2
Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio –...
![Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/1.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Tipi di dati strutturatiTipi di dati strutturati
Marco D. Santambrogio – [email protected]. aggiornata al 4 Marzo 2013
![Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/2.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ObiettiviObiettivi
• Dichiarazione di nuovi tipi di dato
• Dato strutturati
2
![Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/3.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Definire un nuovo tipoDefinire un nuovo tipo
Sinonimi:
typedef int Intero;Intero a;int b;
typedef char Stringa[10];Stringa c;char d[10];
Tipi enumerativi:
typedef enum {lun,mar,mer,gio,ven,sab,dom} Settimana;Settimana giorno;giorno = lun;giorno = 3; /* 3 equivale a gio */
Non funziona con scanf() e printf().
![Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/4.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
? ??
ilMioRecord
?
Definire un nuovo tipoDefinire un nuovo tipo
Tipi strutturati:
typedef struct{
char campo1;float campo2;int campo3[2];
} Record;
Record ilMioRecord;
ilMioRecord.campo1 = 'A';ilMioRecord.campo2 = 24.56;ilMioRecord.campo3[0] = 23;ilMioRecord.campo3[1] = 45;
24.56 23A
ilMioRecord
45
campo1 campo2 campo3
![Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/5.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Numeri complessi: Numeri complessi: problemaproblema• L’utente inserisce due numeri
complessi (parte reale e parte immaginaria) e l’elaboratore esegue l’operazione di somma Es: 3+4i + 5-6i = 8-2i
• Il programma chiede all’utente se
vuole calcolare un’altra somma. Se l’utente inserisce il carattere ‘q’ il programma termina, altrimenti ricomincia daccapo.
![Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/6.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Numeri complessiNumeri complessi
![Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/7.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Numeri complessi: noteNumeri complessi: note
"%f" stampa un numero float con il segno “-” se è negativo, senza segno se è positivo"%+f" stampa un numero float con il segno “-” se è negativo, con il segno “+” se è positivo"i" non fa parte degli specificatori di formato
![Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/8.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Una nota sulla scanf()Una nota sulla scanf()
Quando inserisco dei dati da tastiera, gli stessi vengono accodati nello standard input (stdin) del programmaAnche in carattere ENTER finale viene accodato:
Se inserisco: 123 [ENTER]Ottengo in stdin: 123 ‘\n’Eseguo scanf(“%d”,&x); stdin diventa: ‘\n’Inserisco il numero 432; stdin diventa: ‘\n’ 432 ‘\n’
Eseguo scanf(“%d”,&x); stdin diventa: ‘\n’
La scanf() scarta l’eventuale ‘\n’ che incontra prima del numero da leggere ma lascia il ‘\n’ finale.
![Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/9.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Una nota sulla scanf()Una nota sulla scanf()
• Adesso proviamo a leggere un carattere: Inserisco il carattere ‘w’; stdin diventa: ‘\n’ ‘w’ ‘\n’ Eseguo scanf(“%c”,&y); stdin diventa: ‘w’ ‘\n’
• La scanf(), quando legge un carattere (e solo in questo caso), NON scarta l’eventuale ‘\n’ iniziale! Lo mette nella variabile y e lascia il resto in stdin Senza immettere nient’altro, eseguo un’altra
scanf(“%c”,&y); stdin diventa: ‘\n’
• Questa volta la scanf() mette ‘w’ in y
• Quindi: se devo leggere caratteri (“&c”) ma prima ho effettuato altre letture, devo togliere da stdin il carattere ‘\n’ rimasto.
![Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/10.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Schedine: problemaSchedine: problema
• Il programma, partendo da un array di dimensione prefissata che contiene in ogni cella: data della giocata colonna con i tredici segni
• Copia in un altro vettore solo le giocate dell’anno 2012
• Quindi, visualizza queste giocate.
![Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/11.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Schedine: datiSchedine: dati
![Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/12.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Schedine: inserimento datiSchedine: inserimento dati
![Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/13.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Schedine: copia valoriSchedine: copia valori
![Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/14.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Schedine: stampa dei Schedine: stampa dei risultatirisultati
![Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/15.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Squadra di calcio: Squadra di calcio: problemaproblema• Il programma, partendo da un array che
contiene i dati personali dei calciatori di una squadra, permette di calcolare: totale goal fatti dalla squadra goal fatti dagli attaccanti goal fatti dai centrocampisti goal fatti dai difensori totale goal subiti dalla squadra
• Il programma inoltre visualizza i dati personali di tutti i giocatori
• Per ogni giocatore, il programma memorizza: numero di maglia ruolo goal fatti (subiti, se è un portiere).
![Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 4 Marzo 2013.](https://reader036.fdocumenti.com/reader036/viewer/2022062418/5542eb4f497959361e8bf0b5/html5/thumbnails/16.jpg)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Fonti per lo studio + Fonti per lo studio + CreditsCredits• Fonti per lo studio
Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill• Capitolo 5 (No: 5.5.3, 5.5.4 e 5.6)
• Credits Vito Perrone, Daniele Braga