mat's ha scritto:
Sono ancora alle prime armi e sto studiando da un libro delle scuole superiori comprato su internet (per imparare qualcosa di nuovo).
Sono arrivato a leggere e capire i vettori e questo esercizio mi sembrava un po' facile.
Ma allora tu e GabLep non siete la stessa persona!? Visto che a quest'ultimo l'esercizio è stato assegnato dal suo professore di Sistemi!
In ogni caso quell'esercizio può essere svolto in vari modi.
Ipotizzamo di utilizzare un ciclo for del tipo
for(int i = 0; i < 8; i++)
per andare a modificare il generico elemento
VET2[i]
con
VET1[f(i)]
dove f(i) è una funzione di i.
Vediamo ora nel particolare in che modo vanno associati i due indici:
i | f(i)
|
0 | 4
1 | 5
2 | 6
3 | 7
4 | 0
5 | 1
6 | 2
7 | 3
A questo punto utilizzando un po' di ingegno si può esplicitare direttamente f(i), utilizzando per esempio l'operatore modulo, in modo da ottenere qualcosa del genere
for(int i = 0; i < 8; i++)
{
VET2[i] = VET1[f(i)];
}
oppure più banalmente
for(int i = 0; i < 8; i++)
{
if(i < 4)
{
VET2[i] = VET1[f_1(i)];
}
else
{
VET2[i] = VET1[f_2(i)];
}
}
dove f_1(i) e f_2(i) sono banali da ricavare se si osserva la differenza tra i due indici nell'elenco sopra riportato.