Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Errore struttura dati

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

6
voti

[21] Re: Errore struttura dati

Messaggioda Foto UtentePietroBaima » 7 apr 2014, 12:18

Purtroppo un compilatore "avanzato" (nel senso, secondo me, che non lo voleva nessuno) che ti permette di scrivere in un linguaggio che dovrebbe assomigliare al C++, ma è stato pensato da qualche genio del male (io lo chiamo C--) e che cerca di riconoscere quanto più codice possibile, semplicemente saltando le linee di codice errato e che segnala errore solo quando non ne può fare a meno, per esempio quando una funzione diventa vuota oppure c'è un errore che non permette l'interpretazione di tutte le linee successive è semplicemente osceno.
perché poi? perché il "programmatore" potrebbe sentirsi triste vedendosi riconosciuto un errore?

Poi ci sono anche altre prodezze...

E studiarsi il C, poi il C++ originale e imparare a programmare in modo serio senza fare arducosate?
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

2
voti

[22] Re: Errore struttura dati

Messaggioda Foto UtenteDirtyDeeds » 7 apr 2014, 12:28

PietroBaima ha scritto:Poi ci sono anche altre prodezze...


Aaaaargh! Mo' capisco...
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,9k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

4
voti

[23] Re: Errore struttura dati

Messaggioda Foto Utentefairyvilje » 7 apr 2014, 12:29

Hey il C-- esiste sul serio :D! Non prenderlo in giro ;)
http://www.cminusminus.org/
"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

2
voti

[24] Re: Errore struttura dati

Messaggioda Foto UtentePietroBaima » 7 apr 2014, 12:32

fairyvilje ha scritto:Non prenderlo in giro ;)


he he he... ogni tanto mi diverto un po' :D
Però, in effetti, non avevo pensato che potrebbe essere irrispettoso nei confronti del C-- ;-)
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

1
voti

[25] Re: Errore struttura dati

Messaggioda Foto UtentePietroBaima » 7 apr 2014, 12:33

DirtyDeeds ha scritto:Aaaaargh! Mo' capisco...

Ehhh... benvenuto tra gli ardutraumatizzati... :-P
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

[26] Re: Errore struttura dati

Messaggioda Foto Utentedaniele1996 » 7 apr 2014, 12:36

Ho risolto in questo modo:

Codice: Seleziona tutto

#include <Arduino.h>
// void setPinMatrix(int,int,int,int,struct Zone);
  //  void initialize(struct Zone);
    //void readInput(struct Zone);
   // boolean comp(struct Zone);
   
      boolean 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}
                    };
                   
            int i = 0;
            int j = 0;

      struct Zone {
          int AnalogPin;
          int pinMatrix[3];
          int firstRead[8];
          int AnalogRead[8];
      };
     
     


  void setPinMatrix(int pin0, int pin1, int pin2, int AnalogPin, struct Zone z){

    z.pinMatrix[0] = pin0;
    z.pinMatrix[1] = pin1;
    z.pinMatrix[2] = pin2;
    z.AnalogPin = AnalogPin;

  }
 
   void readInput(struct Zone z){
     for( i = 0; i<8; i++){
       for( j = 0; j<3; j++){
       digitalWrite(z.pinMatrix[j], Matrix[i][j]);
     }
       z.AnalogRead[i] = analogRead(z.AnalogPin);
     
      }
    }
 
  void initialize(struct Zone z){
    for( i = 0; i<3; i++){
       pinMode(z.pinMatrix[i], OUTPUT);
    }
    readInput(z);
    for(j =0; j< 8;j++){
     z.firstRead[j] = z.AnalogRead[j];
    }
   
  }
    boolean comp(struct Zone z){
      int f=0;
      for( i = 0;i < 8; i++){
        if(z.firstRead[i] == z.AnalogRead[i]){
        f++;
        }
      }
      return f==8;
    }



Non ho capito perché non accetta i prototipi... ma tutto funziona bene... Grazie a tutti :)
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

1
voti

[27] Re: Errore struttura dati

Messaggioda Foto Utentefairyvilje » 7 apr 2014, 12:40

Perché hai dichiarato quel vettore globale? :(
Non farlo per questo esistono i membri statici...

Impara ad interpretare gli errori. Ad ogni modo la tua struttura non è ancora definita quando dichiari i prototipi. Quindi non può funzionare. Ma la dichiarazione dei prototipi SERVE! non va tralasciata.

PS. In C++ non serve scrivere struct prima di costruire un oggetto della struttura...
"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

[28] Re: Errore struttura dati

Messaggioda Foto Utentedaniele1996 » 7 apr 2014, 12:41

Cioè tiipo dovrei scrivere così:

Codice: Seleziona tutto
void miafunzione(Zone nomeVariabile){
.
//Codice
.
}
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

1
voti

[29] Re: Errore struttura dati

Messaggioda Foto Utentefairyvilje » 7 apr 2014, 12:44

Ripartiamo da capo ok? Dicci cosa vuoi fare e scriviamo del codice che sia formalmente corretto e non che vada semplicemente per benevolenza del compilatore :).
Torniamo all'idea di base, quella di usare una struttura con i membri e le funzioni. Ti richiedo se sai cosa siano le variabili statiche e se sai utilizzare i costruttori.

Comunque in linea di principio si usa così ;)
Ma passare copie di oggetti piuttosto che referenze è una pessima idea quando non necessario.
Ultima modifica di Foto Utentefairyvilje il 7 apr 2014, 12:49, modificato 3 volte in totale.
"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

4
voti

[30] Re: Errore struttura dati

Messaggioda Foto UtenteDirtyDeeds » 7 apr 2014, 12:46

E, già che ci siamo, dichiarare i tipi prima di utilizzarli?! Va be' che è C-=INFINITY però...
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,9k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

PrecedenteProssimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti