Errore struttura dati
Moderatore:
Paolino
0
voti
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12207
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
0
voti
- Codice: Seleziona tutto
struct Zone{
public:
Zone(int pin0, int pin1, int pin2, int AnalogPin);
void setPinMatrix(int pin0, int pin1, int pin2, int AnalogPin);
void initialize();
void readInput();
boolean comp();
private:
int AnalogPin;
int pinMatrix[3];
int firstRead[8];
int AnalogRead[8];
static int Matrix[8][3];
};
int Zone::Matrix[8][3]= {
{LOW, LOW, LOW },
{LOW, LOW, HIGH},
{LOW, HIGH, LOW },
{LOW, HIGH, HIGH},
{HIGH, LOW, LOW },
{HIGH, LOW, HIGH},
{HIGH, HIGH, LOW },
{HIGH, HIGH, HIGH}
};
Zone::Zone(int pin0, int pin1, int pin2, int AnalogPin){
pinMatrix[0] = pin0;
pinMatrix[1] = pin1;
pinMatrix[2] = pin2;
AnalogPin = AnalogPin;
}
void Zone::setPinMatrix(int pin0, int pin1, int pin2, int AnalogPin){
pinMatrix[0] = pin0;
pinMatrix[1] = pin1;
pinMatrix[2] = pin2;
AnalogPin = AnalogPin;
}
void Zone::initialize(){
for(int i=0; i<3; i++){
pinMode(pinMatrix[i], OUTPUT);
}
readInput();
for(int j=0; j<8; j++){
firstRead[j] = AnalogRead[j];
}
}
void Zone::readInput(){
for(int i=0; i<8; i++){
for(int j=0; j<3; j++){
digitalWrite(pinMatrix[j], Matrix[i][j]);
}
AnalogRead[i] = analogRead(AnalogPin);
}
}
boolean Zone::comp(){
int f=0;
for(int i = 0;i < 8; i++){
if(firstRead[i] == AnalogRead[i])f++;
}
return (f==8);
}
Questo è il codice un po' riordinato nel suo complesso. Ho scritto un costruttore in base al tuo codice preesistente ma nulla ti vieta di avere un comportamento di default differenziato.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
No, a scuola fsacciamo talmente poco che ci vado per passatempo!
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
0
voti
daniele1996 ha scritto:lo staticha la stessa funzione che ha in java?
Static ha molti significati in C++. In questo contesto, nella dichiarazione di membri statici, il funzionamento è praticamente equivalente.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
Quindi quella matrice appena creata in un oggetto non verrà ricreata, giusto?
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
1
voti
No, è unica, modificabile (non essendo costante) e leggibile da tutti gli oggetti di quel tipo. Viene creata in memoria all'inizio dell'esecuzione e rimane "viva" fino al temine del programma.
Un membro statico non è legato agli oggetti ma al ciclo di vita della classe stessa :)
Un membro statico non è legato agli oggetti ma al ciclo di vita della classe stessa :)
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
ma dopo che io creo l'oggetto così:
Accedo così:
? (è un esempio)
Ottimo, così posso risparmiare ram in quel modo :)
- Codice: Seleziona tutto
Zone miaZona(pin1,pin2,pin3,analogpin);
Accedo così:
- Codice: Seleziona tutto
miaZona.initialize();
? (è un esempio)
Ottimo, così posso risparmiare ram in quel modo :)
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
0
voti

"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
In precedenza avevo richiamato i costruttori... ma non sapevo come crearli...
-

daniele1996
610 3 8 11 - Sostenitore

- Messaggi: 1554
- Iscritto il: 29 ago 2011, 11:29
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 8 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
pigreco]=π