10 - Le strutture(parziale)
-
Upload
magnicondor -
Category
Documents
-
view
33 -
download
0
Transcript of 10 - Le strutture(parziale)
LE STRUTTUREInformatica ed elementi di programmazione 1
IEP 2011 by Andrea Malossini 1
Definire una struttura
IEP 2011 by Andrea Malossini 2
Le strutture permettono di raggruppare "logicamente" variabile dello stesso tipo o di tipo diverso. Esempio di definizione di struttura. Non viene riservata memoria.
Le variabili "raggruppate" in una struttura si chiamano membri della struttura
Definizione di una variabile di tipo struct date. Viene riservata la memoria per la variabile.
Per accedere ai membri di una variabile strutturata si usa il nome della variabile strutturata, il punto, ed il nome del membro (non ci devono essere spazi tra i vari identificatori ed il punto)
Assegnamento di valori ai membri della una struttura
Strutture ed espressioni
IEP 2011 by Andrea Malossini 3
Esempio: programma per determinare la data di domani.
Strutture ed espressioni
IEP 2011 by Andrea Malossini 4
Strutture e funzioni 1
IEP 2011 by Andrea Malossini 5
Esempio: programma per determinare la data di domani (con anni bisestili).
Definire la struttura fuori da ogni funzione permette di renderla "visibile" a tutto il file sorgente. Ovvero ogni funzione del file sorgente può utilizzare tale struttura.
Come per tutte le variabile ordinarie, e diversamente dagli array, le modifiche fatte dalla funzione al parametro formale non si ripercuotono sull'argomento della funzione (passaggio per valore).
Strutture e funzioni 1 ‐ cont
IEP 2011 by Andrea Malossini 6
Strutture e funzioni 1 ‐ cont
IEP 2011 by Andrea Malossini 7
Ristrutturare il programma in modo tale che venga definita ed usata (dal main) una funzione separata per il calcolo della data di domani.
Strutture e funzioni 2
IEP 2011 by Andrea Malossini 8
Strutture e funzioni 2 ‐ cont
IEP 2011 by Andrea Malossini 9
Strutture e funzioni 2 ‐ cont
IEP 2011 by Andrea Malossini 10
IEP 2011 by Andrea Malossini 11
Strutture e funzioni 3
IEP 2011 by Andrea Malossini 12
Struttura per raggruppare ore minuti e secondi
L'uso di un carattere non speciale nella stringa di formato, : indica alla scanf che ci si aspetta che le ore, i minuti ed i secondi siano separati da :
Strutture e funzioni 3 ‐ cont
IEP 2011 by Andrea Malossini 13
Inizializzare le strutture
• Le strutture vengono inizializzate in modo simile agli array:– struct time time1 = {12, 10, 55};
• E' possibile inizializzare solo alcuni membri; quelli non inizializzati avranno valore indefinito (al contrario degli array)– struct time time1 = {12, 10};
IEP 2011 by Andrea Malossini 14
Inizializzare le strutture
• E' possibile specificare i membri nella lista di inizializzazione:– struct time time1 = {.hour=12, .minutes=10};
• E' possibile asssegnare uno o più valori ad una strutture in un unica istruzione, usando i letterali composti:– today = (struct date) {.day = 25, .month = 1,
.year = 2011};
IEP 2011 by Andrea Malossini 15
Array di strutture
• Il C permette di definire array di strutture:– struct time experiments[10];
• ed accedervi usando gli indici:– experiments[0].hour = 7;experiments[0].minutes = 10;
• e di inizializzarlo come negli array multidimensionali:– struct time campioni[3] = { {12,10,11},
{12,10,25} };
IEP 2011 by Andrea Malossini 16
Array di strutture 1
IEP 2011 by Andrea Malossini 17
Array di strutture 1 ‐ cont
IEP 2011 by Andrea Malossini 18