|
||||
|
|
#1 (permalink) |
|
Nuovo della community ![]()
14 Messaggi
![]() |
definire una matrice
Ciao,
come posso definire una matrice "RilevazioniSettimanali" fuori dal main di tipo "Sensore"(struttura).ho pensato di scrivere: typedef struct{ int temperatura; int...; } Sensore; typedef Sensore RilevazioniSettimanali[7][6]; ma poi non so come assegnare alle righe e alle colonne il tipo di dato!!! |
|
|
|
|
|
#2 (permalink) |
|
Moderatore Globale ![]() ![]()
316 Messaggi
![]() ![]() ![]() |
La sintassi per l'accesso a membri di strutture organizzate in array è identica alla dot notation normalmente utilizzata per le singole strutture.
Laddove quindi si usa codice:
Sensore.temperatura = 25; codice:
RilevazioniSettimanali[3][0].temperatura = 27; Voglio comunque sperare che tu stia studiando il linguaggio C su un serio testo di riferimento, nel quale queste banalità sintattiche sono chiarite in modo inequivocabile. Il forum non può e non deve sostituire lo studio individuale degli elementi di base del linguaggio.
__________________
Tutti gli utenti sono pregati di prendere visione del Regolamento del Forum e di rispettarlo. • "Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk." (Leopold Kronecker) • "A Mathematician is a machine for turning coffee into theorems." (Pal Erdös) • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico. |
|
|
|
|
|
#3 (permalink) |
|
Nuovo della community ![]()
14 Messaggi
![]() |
Sto studiando dal libro consigliato dal prof:"C corso completo di programmazione" (Harvey M. Deitel).
La mia domanda non era questa..forse mi sono spiegata male!!!!so benissimo come accedere ad un array in una struttura..il problema è che sto svolgendo un esercizio che mi chiede di Costruire un programma in C per la elaborazione di rilevazioni giornaliere di temperatura e umidità. In particolare si chiede di: 1.Definire GiornoSettimanale come tipo enumerativo con valori: lun, mar, mer, gio, ven, sab, dom. 2.Definire Provincia come tipo enumerativo con valori: Bari, Bat, Brindisi, Foggia, Lecce, Taranto. 3.Definire Valore come tipo enumerativo con valori: alto, basso. 4.Definire il tipo Sensore come struttura i cui campi sono temperatura di tipo reale e umidita di tipo Valore. 5.Definire il tipo RilevazioniSettimanali come matrice (7x6) di tipo Sensore le cui righe rappresentano le occorrenze distinte del tipo GiornoSettimanale e le colonne rappresentano le occorrenze distinte del tipo Provincia. Il mio problema è il punto 5..nel mio studio non ho mai incontrato la definizione di una matrice fuori dal main..e vorrei sapere se esiste una procedura particolare. Ho provato con: typedef Sensore RilevazioniSettimanali[7][6]; ma poi ho problemi quando mando la matrice alle funzioni perchè il compilatore non riconosce il tipo RilevazioniSettimanali. Se la richiesta non fosse quella io definirei la matrice di tipo sensore nel main e il problema sarebbe risolto. Sono stata più chiara adesso?..grazie!!! |
|
|
|
|
|
#4 (permalink) |
|
Neofita della community ![]()
118 Messaggi
![]() |
Puoi sempre definire i tuoi tipi in un file header che poi includerai nel modulo principale, dopodichè puoi dichiarare quello che ti serve nel main.
__________________
"Fatti non foste per viver come bruti, ma per seguire virtute e conoscenza." "Hack to learn, not to steal." "In un mondo di ciechi, chi ha un occhio solo è un Re" |
|
|
|
|
|
#5 (permalink) |
|
Nuovo della community ![]()
14 Messaggi
![]() |
Non abbiamo studiato i file..siamo arrivati alle strutture e poi ci siamo fermati!!!non esiste nessun altro modo?
Io ho pensato che esiste, in analogia al caso dei vettori. Se avessi dovuto definire un vettore invece che una matrice avrei scritto: typedef Sensore RilevazioniSettimanali[7]; Non esiste un analogo? |
|
|
|
|
|
#6 (permalink) |
|
Neofita della community ![]()
118 Messaggi
![]() |
Non c'è bisogno di funzioni di files, se è quello che intendi. Comunque, tu puoi definire tutto quello che vuoi fuori dal main, poi dichiari l'occorrenza della tua variabile nel main.
Noto comunque solo ora una cosa che mi sembra un errore: Dopo che tu dichiari la tua struttura e chiami il tipo Sensore, per crearne un'occorrenza basterà codice:
Sensore RilevazioniSettimanali[7][6]; codice:
typedef Sensore RilevazioniSettimanali[7][6];
__________________
"Fatti non foste per viver come bruti, ma per seguire virtute e conoscenza." "Hack to learn, not to steal." "In un mondo di ciechi, chi ha un occhio solo è un Re" |
|
|
|
|
|
#8 (permalink) |
|
Neofita della community ![]()
118 Messaggi
![]() |
Ok, non ho il compilatore sotto mano per fare delle prove ma...che compilatore usi? Che errori ottieni quando compili? Puoi postare il codice completo per vedere meglio dove puo essere l'inghippo?
__________________
"Fatti non foste per viver come bruti, ma per seguire virtute e conoscenza." "Hack to learn, not to steal." "In un mondo di ciechi, chi ha un occhio solo è un Re" |
|
|
|
|
|
#9 (permalink) | |
|
Moderatore Globale ![]() ![]()
316 Messaggi
![]() ![]() ![]() |
Quote:
Più informazioni si forniscono, maggiore è la speranza matematica di ottenere una risposta utile e risolutiva... ![]() Il seguente sorgente è stato da me compilato ed eseguito con successo utilizzando separatamente BCC 5.5.1, Visual C++ Express 2009, Open Watcom: codice:
#include <stdio.h>
#include <string.h>
typedef enum {lun, mar, mer, gio, ven, sab, dom} GiornoSettimanale;
typedef enum {Bari, Bat, Brindisi, Foggia, Lecce, Taranto} Provincia;
typedef enum {alto, basso} Valore;
typedef struct {
float temperatura;
Valore umidita;
} Sensore;
typedef Sensore RilevazioniSettimanali[7][6];
void InserisciDati(RilevazioniSettimanali tab)
{
memset(tab, 0, sizeof(tab));
tab[Bari][lun].temperatura = 27.1;
tab[Bari][lun].umidita = alto;
tab[Taranto][mar].temperatura = 29.3;
tab[Taranto][mar].umidita = basso;
tab[Foggia][mer].temperatura = tab[Bari][lun].temperatura + 2.9;
tab[Foggia][mer].umidita = basso;
}
int main(void)
{
RilevazioniSettimanali tabulato;
InserisciDati(tabulato);
printf("Bari lun: temp %.2f°C, umidità %s\n",
tabulato[Bari][lun].temperatura,
(tabulato[Bari][lun].umidita == basso ? "bassa" : "alta"));
printf("Taranto mar: temp %.2f°C, umidità %s\n",
tabulato[Taranto][mar].temperatura,
(tabulato[Taranto][mar].umidita == basso ? "bassa" : "alta"));
printf("Foggia mer: temp %.2f°C, umidità %s\n",
tabulato[Foggia][mer].temperatura,
(tabulato[Foggia][mer].umidita == basso ? "bassa" : "alta"));
return (0);
}
__________________
Tutti gli utenti sono pregati di prendere visione del Regolamento del Forum e di rispettarlo. • "Die ganzen Zahlen hat der liebe Gott gemacht, alles andere ist Menschenwerk." (Leopold Kronecker) • "A Mathematician is a machine for turning coffee into theorems." (Pal Erdös) • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico. Ultima modifica di M.A.W. 1968 : 11-01-2010 a 21:00. |
|
|
|
|
![]() |
| Strumenti della discussione | |
| Modalità di visualizzazione | |
|
|
Tutti gli orari sono GMT +1. Attualmente sono le 21:51.












Modalità lineare

