Programiranje

Java zadatak za početnike | Potrebna pomoć

RackasD pon 18.2.2019 21:13

Pozdrav svima! Da li neko zna javu da mi može pomoći ovaj zadatak, hitno je potrebno ali ovo je tek uvod u Javu, amaterski, može li ko pomoći ? 

Radi se u NetBeansu, a evo zadatka:

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. Elemente jednake nuli ne treba ubacivati u rezultujuće nizove.

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. U tom slučaju, treba brojati i elemente koji su jednaki nuli. Pri tome, ne treba ispisivati koliko puta se ponavlja svaki element niza, već prebrojati i ispisati samo one elelemente koji se ponavljaju i koliko puta.

Naravno, potrebno je da napisana funkcionalnost bude primenljiva na bilo koji niz celobrojnih vrednosti, ne samo na ovaj konkretan primer.

Dr.Atom pet 22.2.2019 18:26

Ne znam kako ide sintaksa Jave tacno, međutim mogu ti napisati malo uputstvo (pseudo kod) po kojem ces raditi jer ukoliko poznajes sintaksu Jave vjerovatno ti ovo nece biti problem.

 

1. Deklariras jedno polje(array) u koje strpas određene brojeve( i pozitivne i negativne), zatim pravis drugo polje(array) u kojem ces strpavati pozitivne, treci array za negativne, cetvrti za duplikate. npr. umjesto array mozes staviti ime pozitivni, negativni, duplikati ( i ostavis to prazno jer ces to popunjavati poslije)

 

2.  Pravis for petlju (kako bi mogao proci kroz niz sa tom petljom) 

 

3. U petlji postavljas uslove( EDIT: U Scope-u te for petlje) ako je array[i]<0 ( [i] ide u zagradu ako si u for petlji stavio for(int i=0;i<=broj_elemenata_array;i++) )  dodaj taj broj (koji je manji od nule) u polje(array) negativnih brojeva, zatim ako je array[i]>0  dodaj taj broj u pozitivne brojeve, ako je array[i]=array[i] onda te brojeve strpavas u duplikate.

P.S Ne znam sad tacno logiku u Javi i da li se moze kod zadnjeg dijela ( array[i] = array[i] ) ovako uraditi i provjeriti da li je određeni element npr. na poziciji 3 jednak elementu na poziciji broj 8 ili ce samo gledati susjedne brojeve jesu li jednaki (tj. ako imas polje koje ima brojeve {12,12,3,4...} da li ce ono samo brojati da ima duplikat ukoliko se broj koji se ponavlja nalazi iskljucivo na sljedecoj poziciji od trenutnog elementa). Npr. ako bi broj 12, bio 1. element niza, i opet se ponovio kao 5. element niza, a ono ga ne svrsta u duplikate onda je to logicka greska, pa se pozabavi time :)   

cat7 sri 8.5.2019 14:26
Java programiranje

molim za pomoc. Naime pokusavam da napravim niz od 5 razlicitih brojeva, medjutim, negdje sam se zapetljao. molim za pomoc.

 

public static void main(String[] args) {
    //dekaracija vrijednosti
        int slbroj;
        int[] niz2 = new int[5];
        int b=0;
        for (int a=0;a<5;a++){
     do {
        slbroj= (int) (Math.random()*10
                 );
         for (int c=0;c<5;c++){
             if (slbroj!=niz2[c]){niz2[a]=slbroj ;b++;}
         }         
     }while (b==5);
   
       
} for(int g=0;g<5;g++){
            System.out.println(niz2[g]);}}}

Ivan(4) sri 8.5.2019 22:04

I mene si zapetljao!

 

Probaj da vežbaš upotrebu debuggera na programu koji si napisao (jako korisna veština). Pokreni izvršavanje korak po korak i vidi gde će ponašanje programa odstupiti od onoga što očekuješ. Ako ti nije jasno zašto je negde skrenuo sa pravog puta, postavi odgovarajuće watcheve (nema puno promenljivih, pa možeš i na sve, uključujući niz) pa vidi sam zašto su uslovi drugačiji nego što očekuješ.

 

Hint

do while petlja sigurno nije dobra

 

Spoiler

S obzirom na logiku koju si definisao, b<>5 ima veće šanse da bude dobar uslov.

 

Sa tom izmenom, program ima šanse da će raditi ono što želiš, mada ima još pomalo nezgrapnih mesta.

 

EDIT: Zapravo, ne, i dalje neće raditi ispravno. Opet, probaj da otkriješ sam zašto je tako.

 

Dodatni hintovi

for c petlja nije dobro definisana.

 

Nema potrebe da provera da li generisani broj već postoji u nizu ide od prvog do petog člana niza ako si prethodno dodelio samo npr dva. 

 

Bilo bi dobro razdvojiti proveru da li postoji duplikat od dodele, ne raditi to u jednoj petlji kao što je trenutno slučaj.