• 11 odgovora
  • 11.176 pregleda
Pravljenje matrice 09.10.2007. u 19:21 · pre 231 meseci #1
Potreban mi je kod koji ce da ispise matricu brojeva na ekranu od neke zadate vrednosti. Brojevi se redjaju redom, po vrstama.
Ovo mi ispisuje redom brojeve ali po kolonama, a meni treba po vrstama.
Kad promenim mesta ideksa i i j, ne radi.
Ako neko ima neku ideju kako ovo da uradim.


Code:

public class Program
{
    public static void main(String[] args)
    {
        int[][] matrica = new int[4][5];
        int brojac = 1;
        for (int i = 0; i < 4; i++)
        {
        
            
            for (int j = 0; j < 5; j++)
            {
                
                matrica[i][j] = brojac;
                System.out.print(matrica[i][j]);
                System.out.print(" ");
                brojac++;
                
                
            }
            System.out.println();
        }
    System.Console.ReadKey();
    }

}

Izlaz je
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20

A treba mi nesto ovako:

1 5 9 13 17
2 6 10 14 18
3 7 11 15 19
4 8 12 16 20




Re: Pravljenje matrice 09.10.2007. u 21:13 · pre 231 meseci #2
pa zameni petlje, tako da prvo iteriras po j pa onda po i... i umesto <4 i <5 kostisti matrica.length i matrica.length
Potpis
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
Re: Pravljenje matrice 09.10.2007. u 21:18 · pre 231 meseci #3
Grehota bre da ti neko ovo resi, a tako si blizu! Verujemo u tebe, samo napred!

Posle mozes i da stavis u cv, persistent, self motivated, strong problem solving abilities itd. ;)

"Upornost je majka uspeha"

Potpis
If people were meant to pop out of beds we would all sleep in toasters.
Google is your friend http://justfuckinggoogleit.com/
Re: Pravljenje matrice 09.10.2007. u 23:54 · pre 231 meseci #4
Nisam nista dobio menjanjem petlji. Opet vraca istu stvar. Uspeo sam nekako da "nabudzim" da to radi na drugi nacin (kod ispod).

Promenljive a i b su tu da bi se izbeglo menjanje koda u zavisnosti od duzine niza. Hvala za pomoc!

Ako neko uspe da resi menjanjem petlji bilo bi dobro da postuje, da vidim gde sam gresio :-).

@sanchi
bez tvoje podrske ne bi uspeo.... :-))




Code:

public class Program
{
    public static void main(String[] args)
    {
        int a = 4;
        int b = 5;
        int brojac = 10;
        int pocetna = brojac;
        int[][] matrica = new int[a][b];
        
        for (int i = 0; i < a;i++ )
        {
            for (int j = 0; j < b; j++)
            {
                matrica[i][j] = brojac;
                System.out.print(matrica[i][j]);
                System.out.print(" ");
                brojac+=a;
            }
            pocetna++;
            brojac = pocetna;
            System.out.println();
        }
    System.Console.ReadKey();
    }

}

Re: Pravljenje matrice 11.10.2007. u 13:11 · pre 231 meseci #5
Program u kome zamenis redosled petlji u stvari radi, ali ti to ne vidis na izlazu iz prostog razloga sto sadrzaj matrice zavisi od ovog brojaca.
Drugim recima iako matricu ispisujes po vrstama, izlaz je isti kao kada je ispisujes po kolonama jer je takav sadrzaj matrice (inicijalizujes je dok je ispisujes).

Inicijalizuj matricu pre njenog obilaska (ispisivanja), pa onda napravi dva obilaska (po vrstama i po kolonama) i dobices pravilan izlaz.

Hint: Napravi metodu za svaku od ovih stvari (init, printRowByRow, printColByCol), a u glavnom programu samo barataj sa njima.

Pozdrav,
Rade
Potpis
http://www.linkedin.com/in/radegm
Re: Pravljenje matrice 28.10.2018. u 18:38 · pre 97 meseci #6
Ovako, kako da generisem matricu 10x10 to znam, ali kako da random u nju rasporedim 14 jedinica (gde jedinice predstavljaju brodice) i ostalo da budu nule, znaci prazna polja. Stigao sam do opsteg generisanja matrice, al ne umem da uradim sa jedinicama i nulama. Moze li ko da mi pomogne. Inace pravim program za potapanje brodica u eclipsu.

import java.util.Random;
import java.util.Scanner;

public class PotapanjeBRODOVA {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner unos = new Scanner(System.in);



System.out.println("Unesite broj redova matrice:");
int n = unos.nextInt();
System.out.println("Unesite broj kolona matrice:");
int m = unos.nextInt();


int [][] A = generisanjeMatrice(n,m);
int [][] B = generisanjeMatrice(n,m);
stampa1 (A);
stampa (B);


}

public static int [][] generisanjematrice(int n, int m, int k)
{

Random rnd = new Random();
int A [][] = new int [n][m];
for(int i=0; i<n; i++)
{
for(int j=0; j<m; i++)
{
A[j]= rnd.nextInt(50)+1;
}
}
return A;
}
public static void stampa1(int[][]A)
{
System.out.println("Matrica A je:");
for(int i=0; i<A.length; i++)
{
for(int j=0; j<A[0].length; j++)
{
System.out.print(A[j] + "\t");
}
System.out.println();

}
}

public static int [][] generisanjeMatrice (int n, int m)
{

Random rnd = new Random();
int B [][] = new int [n][m];
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
B[j]=rnd.nextInt(50)+1;
}
}
return B;
}
public static void stampa(int[][]B)
{

System.out.println("Matrica B je:");
for(int i=0;i<B.length;i++)
{
for(int j=0;j<B[0].length;j++)
{
System.out.print(B[j]+ "\t");
}
System.out.println();
}
}
}


Potpis
MM
Re: Pravljenje matrice 28.10.2018. u 21:56 · pre 97 meseci #7
Ne tako.
Kao prvo treba ti dvodimenzionalni niz boolean a ne int.
Kao drugo, treba ti petlja od 14 iteracija, gde ćeš da koristiš random generator da ti izabere člana niza kojeg ćeš da setuješ na true.
Potpis
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
Re: Pravljenje matrice 29.10.2018. u 07:42 · pre 97 meseci #8
U stvari treba ti do - while petlja, u kojoj ćeš random da postavljaš neke elemente matrice na true.
Pošto je moguće da je upravo isti element već od ranije postavljen na true, treba proveravati koliko je trenutno postavljeno na true, i kad taj broj dostigne željenu cifru 14 izaći iz petlje.
Potpis
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
Re: Pravljenje matrice 29.10.2018. u 08:33 · pre 97 meseci #9
A petlju treba da stavim i u jednu i u drugu matricu ? Znaci razbih mozak nocas do 2 i nista :(
Potpis
MM
Re: Pravljenje matrice 29.10.2018. u 10:17 · pre 97 meseci #10
Ali, prava igra potapanja brodića podrazumeva da neki brodići zauzimaju više polja, zar ne?

U tom smislu ne mogu baš sva polja koja se zadaju kao da su zauzeta brodićima biti baš random. Može da bude random prvo polje brodića, potom se odredi random pravac i smer ka sledećim poljima koja on zauzima, uz uslov da ako nema dovoljno polja do ivice u tom pravcu, onda mora neki drugi smer ili čak pravac.
Potpis
Blessed are those who can laugh at themselves, for they shall never cease to be amused.
Re: Pravljenje matrice 29.10.2018. u 10:20 · pre 97 meseci #11

public class Podmornice {

public static void main(String[] args) {
new Podmornice();
}

private final int dimenzijaMatrice = 10;
private final int potrebanBrojPodmornica = 14;

private boolean matrica[][] = new boolean[dimenzijaMatrice][dimenzijaMatrice];
private Random randomGenerator = new Random();

public Podmornice() {

int dostignutiBrojPodmornica = 0;
int randomPoPrvojDimenziji;
int randomPoDrugojDimenziji;

while (dostignutiBrojPodmornica < potrebanBrojPodmornica) {
randomPoPrvojDimenziji = randomGenerator.nextInt(dimenzijaMatrice-1); // mislim da se ovako dobija random int izmedju 0 i 9 ali nisam 100% siguran
randomPoDrugojDimenziji = randomGenerator.nextInt(dimenzijaMatrice-1);

// Proverava da li je mozda na toj [x][y] lokaciji vec postavljena podmornica u nekoj od prethodnih iteracija.
// Ako nije, postavlja je, i inkrementira dostignuti broj podmornica
if (!matrica[randomPoPrvojDimenziji][randomPoDrugojDimenziji]) {
matrica[randomPoPrvojDimenziji][randomPoDrugojDimenziji] = true;
dostignutiBrojPodmornica++;
}
}
// na ovoj liniji koda imas popunjenu matricu, pa mozes da je prikazes ili sa njom radis sta vec treba
}
}
Potpis
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
Re: Pravljenje matrice 29.10.2018. u 10:23 · pre 97 meseci #12
Citat:
mjanjic:Ali, prava igra potapanja brodića podrazumeva da neki brodići zauzimaju više polja, zar ne?

Naravno, sad možemo da pustimo mašti na volju !

Ovo je odgovor, tj. pomoć Bubašinu, da krene sa mrtve tačke, jer je siroma' do dva noću mozgao.

Bilo kako bilo, kod koji sam postavio pravi matricu boolean 10x10 sa svim false vrednostima, i u njoj random postavljenih 14 vrednosti na true.
Potpis
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme