Šta je novo?
SerbianForum

Dobrodošli na SerbianForum.org, mjesto na kojem možete pronaći apsolutno sve, mjesto druženja i odlične zabave!

Java zadatak: nizovi

  • Začetnik teme Javaman
  • Datum pokretanja
J

Javaman

Potrebna mi je pomoc, pokusavam da resim zadatak. Nesto sam vec pokusao, medjutim nisam siguran da li je to to, nadam se da je neko raspolozen, makar da me usmeri nekako. Jasno mi je da se koristi for petlja kao i if konstrukcija, sve to sad treba nekako da se uklopi.Hvala unapred. Zadatak glasi:

Dat je sledeći niz:

int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87}.

Potrebno je napraviti dva niza, jedan za smeštanje pozitivnih, a drugi za smeštanje negativnih elemenata niza array i potrebnu logiku koja će obaviti izvlačenje odgovarajućih elemenata u odgovarajući niz.

Drugim rečima, potrebno je iz niza array, koji je dat, izvući sve pozitivne elemente i smestiti u zaseban niz i izvući sve negativne elemente i smestiti u zaseban niz.

Takođe je potrebno odrediti i broj duplikata u nizu array.

Naravno, potrebno je da napisana funkcionalnost bude primenljiva na bilo koji niz celobrojnih vrednosti.
 
awax22

awax22

Član
Evo ti za početak dio koda koji razdvaja array u dve i ispisuje ih u "Console" nisam imao vremena da rešim duplikate, sorry, nadam se da će ti i ovo pomoći!

pozz!


package proba1;

public class ProbaRazdvajanjePlusMinus1 {

/**
* @param args
*/
public static void main(String[] args) {

int i,a,b;
int [] array1 = new int[20];//{12,23, -22, 0, 43,545, -4, -55,43, 12,0, -999, -87

array1[0] = 12;
array1[1] = 23;
array1[2] = -22;
array1[3] = 0;
array1[4] = 43;
array1[5] = 545;
array1[6] = -4;
array1[7] = -55;
array1[8] = 43;
array1[9] = 12;
array1[10] = 0;
array1[11] = -991;
array1[12] = -87;

int [] arrayPlus = new int[20];
int [] arrayMinus = new int[20];


a=b=0;


for (i = 0; i < 13; i++) {
if (array1 > 0 || array1 == 0){
arrayPlus[a] =array1;
a++;}
else
{arrayMinus =array1;
b++;}

}
System.out.println("Pozitivni brojevi niza");
for (i = 0; i < a; i++) {
System.out.println(arrayPlus);}


System.out.println("");

System.out.println("Negativni brojevi niza");
for (i = 0; i < b; i++) {
System.out.println(arrayMinus);}

}
}


sorry ima grešaka prilikom kopiranja u editor neće da prihvati sve uglate zagrade kod array 1 arrayPlus i arrayMinus tako da će ti verovatno prikazivati greške ako želiš mogu ti na mejl poslati rešenje!
 
Poslednja izmena:
C

ChicagoKid

//Evo programa koji radi i pojednostavljen je

public class Proba {

public static void main(String [] args){

int [] niz = {-3,-2,-1,0,1,2,3};


int [] poz = new int[1];
int [] neg = new int[3];
int [] nula = new int[1];




for(int i=0; i<niz.length;i++){

if(niz<0){
neg=niz;

System.out.println(neg);



}
else if(niz==0)
{
nula=niz;
System.out.println(nula);
}


else{
poz=niz;
System.out.println(poz);
}
}


}
}

 
Poslednja izmena:
J

javalator

Problem mi je sa izdvajanjem negativnih/pozitivnih iz niza.... na istom zadatku
 
K

kobayashi

Član
Zašto je problem, postoji "push" metoda za dodavanje elemenata postojećem nizu, tako da se nakon ispitivanja da li je element početnog niza pozitivan ili negativan, može jednostavno "push" metodom taj element ubaciti u odgovarajući novi niz.

Što se tiče poređenja duplikata, umesto da sortiraš niz i da se onda zezaš sa poređenjem uzastopnih elemenata, postoji nekoliko načina (najprostiji je sa duplom petljom):
http://javarevisited.blogspot.rs/2015/06/3-ways-to-find-duplicate-elements-in-array-java.html
 
J

javalator

Sve je dobro ispalo, odradio sam mada drugom metodom, ovo sa duplom for petljom sam i ranije primenio, ali u svakom slucaju, veoma koristan nacin i savet, hvala.
 
S

serbos

mozes meni poslati resenje na mail? hvala

Evo ti za početak dio koda koji razdvaja array u dve i ispisuje ih u "Console" nisam imao vremena da rešim duplikate, sorry, nadam se da će ti i ovo pomoći!

pozz!


package proba1;

public class ProbaRazdvajanjePlusMinus1 {

/**
* @param args
*/
public static void main(String[] args) {

int i,a,b;
int [] array1 = new int[20];//{12,23, -22, 0, 43,545, -4, -55,43, 12,0, -999, -87

array1[0] = 12;
array1[1] = 23;
array1[2] = -22;
array1[3] = 0;
array1[4] = 43;
array1[5] = 545;
array1[6] = -4;
array1[7] = -55;
array1[8] = 43;
array1[9] = 12;
array1[10] = 0;
array1[11] = -991;
array1[12] = -87;

int [] arrayPlus = new int[20];
int [] arrayMinus = new int[20];


a=b=0;


for (i = 0; i < 13; i++) {
if (array1 > 0 || array1 == 0){
arrayPlus[a] =array1;
a++;}
else
{arrayMinus =array1;
b++;}

}
System.out.println("Pozitivni brojevi niza");
for (i = 0; i < a; i++) {
System.out.println(arrayPlus);}


System.out.println("");

System.out.println("Negativni brojevi niza");
for (i = 0; i < b; i++) {
System.out.println(arrayMinus);}

}
}


sorry ima grešaka prilikom kopiranja u editor neće da prihvati sve uglate zagrade kod array 1 arrayPlus i arrayMinus tako da će ti verovatno prikazivati greške ako želiš mogu ti na mejl poslati rešenje!


moze meni poslati resenje ? hvala ti
 
Poslednja izmena od urednika:
C

cotomas

PUno lakše rješenje je da se koristi objekt tipa Liste umjesto polja (Array) jer se tada ne mora voditi briga o tomu kolika veličina je potrebna. A List se može na kraju pretvoriti u array ako je potrebno
 
Top