La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica B Allievi Elettrici - AA 2000-01 Fondamenti della programmazione in linguaggio C (IV)

Presentazioni simili


Presentazione sul tema: "Informatica B Allievi Elettrici - AA 2000-01 Fondamenti della programmazione in linguaggio C (IV)"— Transcript della presentazione:

1 Informatica B Allievi Elettrici - AA 2000-01 Fondamenti della programmazione in linguaggio C (IV)

2 Dichiarazione dei dati: dati complessi o strutturati Record (o struct): memorizzano aggregazioni di dati di diversa natura: struct{char via[20]; int numero; intCAP; charcitta[20];} indirizzo; ( indirizzo e un record di 4 campi di vario tipo) Assegnazione: indirizzo = (Donatello, 25, 00134, roma); oppure: indirizzo.numero=25; indirizzo.citta=roma; Accesso: citta-di-arrivo = indirizzo.citta;

3 Tipi di dati Il tipo e un concetto astratto che esprime: –insieme di valori (allocazione di spazio) –operazioni permesse I tipi possono essere: – predefiniti (built-in) o definiti dal programmatore –semplici o strutturati Esempi: int, float, double etc. (semplice, predefinito), char (semplice, predefinito), i tipi enumerativi (semplici, def. dal programm.), gli array e i record (strutturati, def. dal programmatore)

4 Tipi di dati: costruttori di tipo (I) Costruttore di tipi enumerativi: typedef enum {jan, feb, march,apr,may,june,july,aug,sept, oct,nov,dec} monthtype; (si introduce un tipo nuovo che e quello dei mesi) MESE monthtype; (si dichiara che MESE è di tipo monthtype) oppure: typedef enum {vero,falso} boolean; (definiamo noi il tipo booleano, inesistente in C, introducendo il tipo enumerativo dei valori booleani)

5 Ancora array Array a due dimensioni: typedef int aMatrix[20][30]; (si introduce un tipo nuovo che e quello delle matrici di 20*30 elementi) aMatrix A ; (si dichiara che A e di tipo aMatrix) Oppure a tre (etc…): typedef float Matrix3[20][20][30]; (si introduce un tipo nuovo che e quello delle matrici di 20*20*30 elementi) Matrix3 A ; (si dichiara che A e di tipo Matrix3)

6 Tipi di dati: costruttori di tipo (II) Costruttore di array: typedef char stringa[20]; (si introduce un tipo nuovo stringa che e quello degli array di 20 elementi di tipo char) stringa nome,cognome; (si dichiara che nome e cognome sono di tipo stringa)

7 Tipi di dati: costruttori di tipo (III) Costruttore di record: typedef struct {int giorno; monthtype mese; int anno;} date; introduco un tipo date per le date. Poi posso dichiarare: date oggi, domani, dopodomani; typedef struct {stringa nome; stringa cognome; date nato-il ; stringa nato-a; stringa codicefiscale;} persona;

8 Esempio: rappresentazione di insiemi (ordinati) mediante array int insieme[100]; (insieme e un array di 100 elementi di tipo intero) oppure: typedef int settype[100]; (si da il nome settype al tipo degli array di 100 elementi di tipo intero) e poi: settype insieme; (si dichiara che insieme e di tipo settype ) Un elemento appartiene allinsieme se la corrispondente posizione e diversa da 0, altrimenti non appartiene

9 Esempio: rappresentazione di insiemi (ordinati) mediante vettori Esempio: le carte da gioco : int carte[54]; Mazzo di carte (cuori quadri fiori picche jolly): 111111111111111111111111111111111111111111111111111111 Carte di cuori: 111111111111100000000000000000000000000000000000000000 Solo le figure: 000000000011100000000001110000000000111000000000011100 Cosa sono carte[52] e carte[3] ?

10 Esempio: rappresentazione di insiemi (ordinati) mediante vettori Esempi: unione U di due insiemi S e T: i=0; while i < 100 do {U[i] = S[i] || T[i]; /* operatore OR */ i=i+1} intersezione I di due insiemi S e T: i=0; while i < 100 do {I[i] = S[i] && T[i]; /* operatore AND */ i=i+1} Esercizio: riscrivere con il FOR


Scaricare ppt "Informatica B Allievi Elettrici - AA 2000-01 Fondamenti della programmazione in linguaggio C (IV)"

Presentazioni simili


Annunci Google