Šta je novo?
SerbianForum

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • Hvala svima na 1 900 000+ postova & 500 000+ tema!

Java zadatak: nizovi

  • Začetnik teme Javaman
  • Datum pokretanja
J

Javaman

#1
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
#2
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

#3
//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

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

kobayashi

Član
#5
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

#6
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

#7
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

#8
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