Witam chciałem stworzyć program który będzie grupował 'cos'. To 'cos' mieści się w 3 kolumnach w 1 wierszu, tych 'cos' możne być kilka, w kolumnie 0 znajduje się id, w 1 są losowe wartości, 2 są losowe wartości , funkcja join(0,2) przesuwamy do wiersza w którym jest to 'cos' z id 0, 'cos' z id 2. Mam problem z 3 rzeczami :
- funkcja setSize wysypuje program po wpisaniu liczby (nie można nic wpisać i nic się nie pokazuje, jakby się zaciął). Wiem mogę to ustawić seterem ale jestem ciekawy dlaczego to nie działa
- nrWiersza=i cały czas zapisuje do nrWiersza i, a ja chce zęby zrobił to tylko raz i potem już tego nie robił
- j*=3 w pętli nie działa. Powinno działać tak ze j jest mniejsze od długości pętli która jest dzielona na 3 i teraz to j * 3 czyli np 03, 13 ,2*3
jeśli widzicie jeszcze jakieś błędy to uciesze się jak mi je wskażecie
Scanner scanner = new Scanner(System.in);
Random r = new Random();
int tabSize=3;
int tab[][] = new int [tabSize][tabSize*3];
int nrWiersza;
int ostatniaKolumna1;
int ostatniaKolumna2;
public void tabSize(){
System.out.println("Set the tab size");
tabSize = scanner.nextInt();
}
public void uzupelnianieTab(){
for(int i=0; i<tab.length; i++){
for(int j=0; j<tab[i].length; j++){
tab[i][j] = 0;
}
}
for(int i=0; i<tab.length; i++){
//ID
tab[i][0]=i;
//MASA
tab[i][1] = r.nextInt(101)+1;
//IQ
tab[i][2] = r.nextInt(101)+1;
}
}
public void join(int pierwsza, int druga){
nrWiersza=0;
for(int i=0; i<tab.length; i++){
for(int j=0; j<tab[i].length/3; j*=3){
if(tab[i][j]==pierwsza){
ostatniaKolumna1=0;
for(int x=0; x<tab[i].length; x++){
if(tab[i][x]!=0){
ostatniaKolumna1=x;
}
else{
nrWiersza=i;
break;
}
}
}
if(tab[i][j]==druga){
ostatniaKolumna2=0;
for(int a=0; a<tab[i].length; a++){
if(tab[i][a]!=0){
ostatniaKolumna2=a;
}
else{
for(int z=0; z<=ostatniaKolumna2; z++){
tab[nrWiersza][ostatniaKolumna1+z+1] += tab[i][z];
}
for(int z=0; z<=ostatniaKolumna2; z++){
tab[i][z] = 0;
}
break;
}
}
}
}
}
}
KolonieModel model = new KolonieModel();
model.tabSize();
model.uzupelnianieTab();
model.pokazTab();
model.join(0,2);
model.pokazTab();