Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Errore struttura dati

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[51] Re: Errore struttura dati

Messaggioda Foto UtentePietroBaima » 7 apr 2014, 16:06

Foto Utentedaniele1996, una curiosità... a scuola vi fanno usare arduino e le sue librerie, l'ambiente di programmazione facilitata e tutto il resto?
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12207
Iscritto il: 12 ago 2012, 1:20
Località: Londra

0
voti

[52] Re: Errore struttura dati

Messaggioda Foto Utentefairyvilje » 7 apr 2014, 16:07

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? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

0
voti

[53] Re: Errore struttura dati

Messaggioda Foto Utentedaniele1996 » 7 apr 2014, 16:07

lo staticha la stessa funzione che ha in java?
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

0
voti

[54] Re: Errore struttura dati

Messaggioda Foto Utentedaniele1996 » 7 apr 2014, 16:09

No, a scuola fsacciamo talmente poco che ci vado per passatempo!
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

0
voti

[55] Re: Errore struttura dati

Messaggioda Foto Utentefairyvilje » 7 apr 2014, 16:10

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? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

0
voti

[56] Re: Errore struttura dati

Messaggioda Foto Utentedaniele1996 » 7 apr 2014, 16:13

Quindi quella matrice appena creata in un oggetto non verrà ricreata, giusto?
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

1
voti

[57] Re: Errore struttura dati

Messaggioda Foto Utentefairyvilje » 7 apr 2014, 16:17

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 :)
"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? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

0
voti

[58] Re: Errore struttura dati

Messaggioda Foto Utentedaniele1996 » 7 apr 2014, 16:20

ma dopo che io creo l'oggetto così:
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 :)
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

0
voti

[59] Re: Errore struttura dati

Messaggioda Foto Utentefairyvilje » 7 apr 2014, 16:21

:ok:
"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? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

0
voti

[60] Re: Errore struttura dati

Messaggioda Foto Utentedaniele1996 » 7 apr 2014, 16:23

In precedenza avevo richiamato i costruttori... ma non sapevo come crearli...
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

PrecedenteProssimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti