buongiorno,
un piccolo consiglio, questo passaggio di array a funzioni e pulito, o a lungo andare può creare errori?
ossia tre funzioni che modificano posizioni differenti dello stesso array, quindi blocks0 modifica dalla 0 alla 4, blocks1 dalla 5 alla 11, blocks2 dalla 11 alla 15 del array trasf, il quale poi trasferisce tutto in a[] e tutto logico, oppure ci sono osservazioni che ho trascurato?codice:int trasf[16]; int a[16]; void lettura() { Blocks0(trasf, 5); Blocks1(trasf, 6); Blocks2(trasf, 5); } void Blocks0(int transf[], int lung) { . . . if (i % 200 == 0) { for (int i = 0; i < 5; i++) { transf[i] = 0; } . . . if (coordinatex0[j] > 270 && coordinatex0[j] <= 310 ) { inserimento0[0] = coordinatex0[j]; transf[0] = 1; } ////////////////////////////////////////////////////////// if (coordinatex0[j] > 220 && coordinatex0[j] <= 270 ) { inserimento0[1] = coordinatex0[j]; transf[1] = 1; } ////////////////////////////////////////////////////////// if (coordinatex0[j] > 120 && coordinatex0[j] <= 210 ) { inserimento0[2] = coordinatex0[j]; transf[2] = 1; } . . . else { for (int i = 0; i < 5; i++) { transf[i] = 0; } } void Blocks1(int transf[], int lung) { . . . if (i % 200 == 0) { for (int i = 5; i < 11; i++) { transf[i] = 0; } . . . if (coordinatex0[j] > 270 && coordinatex0[j] <= 310 ) { inserimento0[0] = coordinatex0[j]; transf[5] = 1; } ////////////////////////////////////////////////////////// if (coordinatex0[j] > 220 && coordinatex0[j] <= 270 ) { inserimento0[1] = coordinatex0[j]; transf[6] = 1; } ////////////////////////////////////////////////////////// if (coordinatex0[j] > 120 && coordinatex0[j] <= 210 ) { inserimento0[2] = coordinatex0[j]; transf[7] = 1; } . . . else { for (int i = 5; i <11; i++) { transf[i] = 0; } } void Blocks2(int transf[], int lung) { . . . if (i % 200 == 0) { for (int i = 11; i < 16; i++) { transf[i] = 0; } . . . if (coordinatex0[j] > 270 && coordinatex0[j] <= 310 ) { inserimento0[0] = coordinatex0[j]; transf[11] = 1; } ////////////////////////////////////////////////////////// if (coordinatex0[j] > 220 && coordinatex0[j] <= 270 ) { inserimento0[1] = coordinatex0[j]; transf[12] = 1; } ////////////////////////////////////////////////////////// if (coordinatex0[j] > 120 && coordinatex0[j] <= 210 ) { inserimento0[2] = coordinatex0[j]; transf[13] = 1; } . . . else { for (int i = 11; i <16; i++) { transf[i] = 0; } } void trasferimento(int a[], int trasf[]) { for(int i=0; i<16; i++) { a[i] = trasf[i]; }
grazie mille

Rispondi quotando
