Java zadatak: nizovi

Učlanjen(a)
05.01.2015
Poruka
3
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.
 
Član
Učlanjen(a)
26.07.2012
Poruka
455
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:
Učlanjen(a)
03.03.2015
Poruka
1
//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:
Član
Učlanjen(a)
16.11.2009
Poruka
205
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
 
Učlanjen(a)
13.11.2015
Poruka
2
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.
 
Učlanjen(a)
08.12.2015
Poruka
1
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:
Učlanjen(a)
31.12.2010
Poruka
9
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
 
Član
Učlanjen(a)
21.09.2009
Poruka
243
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.
Evo Java koda koji obavlja izvlačenje pozitivnih i negativnih elemenata niza, kao i brojanje duplikata:

Java:
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};

        // Izvlačenje pozitivnih i negativnih elemenata
        int[] positiveArray = extractPositiveElements(array);
        int[] negativeArray = extractNegativeElements(array);

        // Ispisivanje dobijenih nizova
        System.out.println("Pozitivni elementi: " + Arrays.toString(positiveArray));
        System.out.println("Negativni elementi: " + Arrays.toString(negativeArray));

        // Brojanje duplikata
        int duplicateCount = countDuplicates(array);
        System.out.println("Broj duplikata: " + duplicateCount);
    }

    public static int[] extractPositiveElements(int[] array) {
        int positiveCount = 0;

        // Prvo prolazimo kroz niz da bismo izračunali broj pozitivnih elemenata
        for (int i = 0; i < array.length; i++) {
            if (array[i] > 0) {
                positiveCount++;
            }
        }

        // Alociramo novi niz sa odgovarajućom veličinom za pozitivne elemente
        int[] positiveArray = new int[positiveCount];

        // Drugi prolaz kroz niz da bismo smestili pozitivne elemente u novi niz
        int index = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] > 0) {
                positiveArray[index] = array[i];
                index++;
            }
        }

        return positiveArray;
    }

    public static int[] extractNegativeElements(int[] array) {
        int negativeCount = 0;

        // Prvo prolazimo kroz niz da bismo izračunali broj negativnih elemenata
        for (int i = 0; i < array.length; i++) {
            if (array[i] < 0) {
                negativeCount++;
            }
        }

        // Alociramo novi niz sa odgovarajućom veličinom za negativne elemente
        int[] negativeArray = new int[negativeCount];

        // Drugi prolaz kroz niz da bismo smestili negativne elemente u novi niz
        int index = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] < 0) {
                negativeArray[index] = array[i];
                index++;
            }
        }

        return negativeArray;
    }

    public static int countDuplicates(int[] array) {
        int duplicateCount = 0;

        // Sortiramo niz kako bismo grupisali duplikate
        Arrays.sort(array);

        // Prolazimo kroz sortirani niz i brojimo duplikate
        for (int i = 0; i < array.length - 1; i++) {
            if (array[i] == array[i + 1]) {
                duplicateCount++;
            }
        }

        return duplicateCount;
    }
}

Ovaj program prvo prolazi kroz niz kako bi izračunao broj pozitivnih i negativnih elemenata, a zatim alocira nove nizove odgovarajuće veličine. U drugom prolazu kroz niz, pozitivni i negativni elementi se smještaju u odgovarajuće nove nizove. Takođe, niz se sortira kako bi se brojali duplikati. Na kraju se ispisuju pozitivni i negativni nizovi, kao i broj duplikata.
 
Natrag
Top