PDA

View Full Version : [c++] problema con array immodificabile in parte (?)


vermaccio
22-03-2006, 15:23
vedere codice allegato:

riga 31 --> creo array e ne inizializzo dei valori per controllare che poi vengano sostituiti

double Jacobiano[3][4]= { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };



riga 438/450 --> modifico l'array cella a cella !!!!


riga 454 (sostituite "robot_console_printf" con "printf")--> l'array solo in parte è stato cambiato. i primo 8 elementi sono ancora 1 2 3 4 5 6 7 8 dell'inizializzazione, come se la modifica appena fatta non ha mai avuto luogo!!!!!!!

arghhhh!!!!!!

perchè?

sottovento
22-03-2006, 15:39
Ciao,
ho dato un'occhiata al tuo software.
Il motivo e' semplice: stai editando questo file con editor diversi, i quali usano diverse modalita' di ritorno a capo. Sembrerebbe quasi un file scritto continuamente cambiando sistema operativo.
Il risultato e' che le istruzioni a cui fai riferimento sono commentate. Probabilmente il tuo editor le vede normali.
Sono riuscito ad accorgermene usando il caro e vecchio gvim.

Soluzione:
- apri il file con l'editor del tuo ambiente di sviluppo;
- batti qualche volta il tasto ENTER prima e dopo le righe "incriminate";
- fai piu' attenzione a questi problemini, ti fanno perdere un sacco di tempo


High Flying
Sottovento

vermaccio
22-03-2006, 16:24
uhu?

ma ho scritto tutto usando visual studio .net!
da visual studio .net io vedo tutto 2bene".
bho.

mi fai un esempio di riga "incriminata" che crea il pastrocchio?

vermaccio
22-03-2006, 16:41
ma porc!
ho stampato in pdf ed hai ragione tu!!!!!!!!
ma visual studio non vede l'errore.
e il notpad nemmeno!
azzoooo!!!!!!!!!!!

che uso per levare le schifezze?

sottovento
22-03-2006, 17:35
Il mio editor (ed evidentemente il tuo compilatore) vedono questa situazione

//definizione matrice J 3X4 jacobiano istantaneo (devo aver calcolato valori theta, q1, q2, x, y attuali)
//attento! gli indici della matrice partono da zero e non da 1!!!!!
// simile a "kinematic modeling and redundancy resolution of nonholonomic mobile manipulators, Oriolo, pag.5)^MJacobiano[0][0]=cos(theta);^MJacobiano[0][1]=-d*sin(theta)-braccio2*sin(theta+q1)*sin(q2);^MJacobiano[0][2]=-braccio2*sin(theta+q1)*sin(q2);^MJacobiano[0][3]=braccio2*cos(theta+q1)*cos(q2);^MJacobiano[1][0]=sin(theta);^MJacobiano[1][1]=d*cos(theta)+braccio2*cos(theta+q1)*sin(q2);^MJacobiano[1][2]=braccio2*cos(theta+q1)*sin(q2);^MJacobiano[1][3]=braccio2*sin(theta+q1)*cos(q2);
Jacobiano[2][0]=0;
Jacobiano[2][1]=0;
Jacobiano[2][2]=0;
Jacobiano[2][3]=-braccio2*sin(q2);


Non ci sono "a capo", quindi e' tutto nel commento

sottovento
22-03-2006, 17:36
ma porc!
ho stampato in pdf ed hai ragione tu!!!!!!!!
ma visual studio non vede l'errore.
e il notpad nemmeno!
azzoooo!!!!!!!!!!!

che uso per levare le schifezze?

Se te la senti, prova ad usare gvim, ma ti avverto che e' veramente complicato se non l'hai mai usato.
In alternativa, prova a battere qualche volta il tasto ENTER per inserire delle righe vuote

High Flying
Sottovento

wingman87
22-03-2006, 18:22
Secondo me la soluzione migliore è usare l'altro metodo x il commento, non il "//", quello che indica esattamente dove inizia e dove finisce il commento, non ricordo se è "*/" o qualcosa del genere. Ciao!