PDA

Visualizza la versione completa : passaggio array a funzioni


gianni88r
16-03-2015, 15:34
buongiorno,

un piccolo consiglio, questo passaggio di array a funzioni e pulito, o a lungo andare può creare errori?





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];
}


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?

grazie mille

alka
17-03-2015, 12:13
Manca il linguaggio di programmazione nel titolo, come indicato nel Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

Rispondi indicando il linguaggio così provvedo a inserirlo.

gianni88r
17-03-2015, 15:17
sorry, linguaggio c!

oregon
17-03-2015, 15:22
sorry, linguaggio c!

In realtà non capisco il senso di tutte quelle funzioni quasi uguali e ripetute...

Loading