C++pomoc oko zadatka

C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Avatar
nicky
Site Admin
Postovi: 2074
Pridružen/a: 07 pro 2007, 16:30
Spol: Ž
OS: ubuntu 12.04
Lokacija: Zagreb

Re: C++pomoc oko zadatka

Post Postao/la nicky »

int x[] nije dobro jel nema definiranu veličinu polja. Treba ispraviti u

Kod: Označi sve

int x[10]
for (i=1;i<=10;i++); ako ima znak ; na kraju, odvriti će se do kraja bez da izvršava naredbe u bloku
taj bi dio trebao ozgledati ovako

Kod: Označi sve

for (i=1;i<=10;i++)
{
   cout<<unesite brojeve u niz<<endl;
   cin>>x[i];
}
Ostalo sam već komentirala u prijašnjem postu.
Avatar
gagiD
Postovi: 408
Pridružen/a: 15 lis 2013, 01:42
Spol: M
OS: Arch / Manjaro / #!

Re: C++pomoc oko zadatka

Post Postao/la gagiD »

nicky je napisao/la:dva mala ispravka u gagijevom rješenju

Traži se niz od manjeg prema većem, pa je if uvjet

Kod: Označi sve

 if ( niz[i] > niz[j])
Vanjska for petlja bi isto trebala ići od i = 0 a ne od i = 1

Varijable deklarirati izvan for petlje (int tmp), jer se u protivnom sa svakim prolaskom inicijalizira varijabla i uništava na kraju petlje (troši vrijeme) umjesto da koristi jednom inicijalizirani podatak i uništi kad više nije potreban.
U ovakvoj postavci petlji treba da bude <, ako ne vjerujes probaj ;)

Razlog zasto vanjska petlja ide od 1(a unutrasnja zavrsava na 8) je da se ne ispituje da li je npr. niz[0] < niz[0], sto nema smisla.

A za tmp si upravu, pametnije je da se izvuce iz petlje :thmb-up

Edit by nicky:
maknula sam one iz mog quotea da bude preglednije
Avatar
PunkBastard
Postovi: 1975
Pridružen/a: 19 srp 2011, 22:39
Spol: M
OS: Debian 7 Wheezy
Lokacija: wonderland

Re: C++pomoc oko zadatka

Post Postao/la PunkBastard »

nicky je napisao/la:int x[] nije dobro jel nema definiranu veličinu polja. Treba ispraviti u

Kod: Označi sve

int x[10]
for (i=1;i<=10;i++); ako ima znak ; na kraju, odvriti će se do kraja bez da izvršava naredbe u bloku
taj bi dio trebao ozgledati ovako

Kod: Označi sve

for (i=1;i<=10;i++)
{
   cout<<unesite brojeve u niz<<endl;
   cin>>x[i];
}
Ostalo sam već komentirala u prijašnjem postu.
Ako radi na windowsima ne mora veličinu definirati, bude dinamički određena ako napišeš int x[], iz nekog razloga, nisam tražio zašto to na linuxu ne radi.
I don't want to be a human. I want to see gamma rays, I want to hear x-rays and I want to smell dark matter. I want to reach out with something other than this prehensile paws and feel the solar wind of a super nova flowing over me.
Avatar
Medojedni jazavac
Postovi: 1536
Pridružen/a: 22 tra 2012, 08:55
Spol: M
OS: eOS Luna
Lokacija: ForHill Croatia
Kontakt:

Re: C++pomoc oko zadatka

Post Postao/la Medojedni jazavac »

Varijable unutar petlje su dobra stvar i nije tocno kaj je nicky navela. Varijabla se alocira na stogu samo jednom, jednako ko da je napisana na pocetku funkcije, a vidljivost joj je ogranicena unutar petlje.

Razlika bi bila pri kreiranju objekata, ali nije tema.
stefan je napisao/la:tu mač gemišta
To understand recursion, you must first understand recursion.
Avatar
nicky
Site Admin
Postovi: 2074
Pridružen/a: 07 pro 2007, 16:30
Spol: Ž
OS: ubuntu 12.04
Lokacija: Zagreb

Re: C++pomoc oko zadatka

Post Postao/la nicky »

PunkBastard je napisao/la:...
Ako radi na windowsima ne mora veličinu definirati, bude dinamički određena ako napišeš int x[], iz nekog razloga, nisam tražio zašto to na linuxu ne radi.
Takva definicija nije u skladu sa sintaksom C-a. Ne prolazi kompajliranje ni na windowsima. Meni javlja "Size of x is unknown or zerro"

@gagiD taj algoritam čak ni ne sortira niz, npr. 8 2 3 5 1 Po tom algoritmu je rezultat 2 3 1 5 8

Ovo je ispravna verzija bubble sorta:

Kod: Označi sve

for(i = 0;i < 10;i++)
  for(j = i+1;j < 10;j++)
     {
     if(niz[i] > niz[j])
           //zamjeni niz[i] sa niz[j]
    }
Avatar
gagiD
Postovi: 408
Pridružen/a: 15 lis 2013, 01:42
Spol: M
OS: Arch / Manjaro / #!

Re: C++pomoc oko zadatka

Post Postao/la gagiD »

nicky je napisao/la: @gagiD taj algoritam čak ni ne sortira niz, npr. 8 2 3 5 1 Po tom algoritmu je rezultat 2 3 1 5 8
Probo i radi :)
slika
Avatar
nicky
Site Admin
Postovi: 2074
Pridružen/a: 07 pro 2007, 16:30
Spol: Ž
OS: ubuntu 12.04
Lokacija: Zagreb

Re: C++pomoc oko zadatka

Post Postao/la nicky »

gagiD je napisao/la:
nicky je napisao/la: @gagiD taj algoritam čak ni ne sortira niz, npr. 8 2 3 5 1 Po tom algoritmu je rezultat 2 3 1 5 8
Probo i radi :)
slika
My bad, radi i tvoj :-D
Medojedni jazavac je napisao/la:Varijable unutar petlje su dobra stvar i nije tocno kaj je nicky navela. Varijabla se alocira na stogu samo jednom, jednako ko da je napisana na pocetku funkcije, a vidljivost joj je ogranicena unutar petlje....
I tu sam pogriješila :-D Danas sam puna pogrešaka
Avatar
PunkBastard
Postovi: 1975
Pridružen/a: 19 srp 2011, 22:39
Spol: M
OS: Debian 7 Wheezy
Lokacija: wonderland

Re: C++pomoc oko zadatka

Post Postao/la PunkBastard »

@nicky meni ja dok sam radio na faksu u C++ radilo mi je takvo definiranje arraya (na win), za C ne znam jer nisam nikada probao.
I don't want to be a human. I want to see gamma rays, I want to hear x-rays and I want to smell dark matter. I want to reach out with something other than this prehensile paws and feel the solar wind of a super nova flowing over me.
Odgovori