Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoVico Murgia Modificato 11 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.