Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Please, help! Nesto ne radi dobro.
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
sacy
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 18. 05. 2004. (09:46:51)
Postovi: (1E)16
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 22:17 sri, 2. 6. 2004    Naslov: Please, help! Nesto ne radi dobro. Citirajte i odgovorite

Ovaj program bi trebao sortirati listu uzlazno, ali meni je samo okrene.
Sada nemam pojma u cemu je greska.

LIST insertion_sort(LIST *L){
position p1,p;
LIST *LA;
int found;

p1=MAKE_NULL(LA);
p=FIRST(*L);

p1=FIRST(*LA);
found=0;
INSERT (RETRIEVE(p,*L),p1,LA);
p=NEXT(p,*L);
while(p!=END(*L)){
while(!found && (p1!=END(*LA))){
if (RETRIEVE(p,*L)<=RETRIEVE(p1,*LA))
found=1;
}
else p1=NEXT(p1,*LA);
INSERT (RETRIEVE (p,*L),p1,LA);
/*DELETE(p,L);*/
p=NEXT(p,*L);
}
L=LA;
return *L;
}
Ovaj program bi trebao sortirati listu uzlazno, ali meni je samo okrene.
Sada nemam pojma u cemu je greska.

LIST insertion_sort(LIST *L){
position p1,p;
LIST *LA;
int found;

p1=MAKE_NULL(LA);
p=FIRST(*L);

p1=FIRST(*LA);
found=0;
INSERT (RETRIEVE(p,*L),p1,LA);
p=NEXT(p,*L);
while(p!=END(*L)){
while(!found && (p1!=END(*LA))){
if (RETRIEVE(p,*L)<=RETRIEVE(p1,*LA))
found=1;
}
else p1=NEXT(p1,*LA);
INSERT (RETRIEVE (p,*L),p1,LA);
/*DELETE(p,L);*/
p=NEXT(p,*L);
}
L=LA;
return *L;
}



_________________
I'm always in trouble...
...but it's so fun!
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Blockflöte
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 18. 01. 2004. (17:04:46)
Postovi: (1AB)16
Sarma = la pohva - posuda
= 11 - 2
Lokacija: Zg

PostPostano: 1:14 čet, 3. 6. 2004    Naslov: Citirajte i odgovorite

Nažalost sam preumoran da se natjeram protumačit si cijeli program, ali imaš jedan detalj

[code:1]
LIST insertion_sort(LIST *L){
position p1,p;
LIST *LA;
int found;

p1=MAKE_NULL(LA);
p=FIRST(*L);

p1=FIRST(*LA);
found=0;
INSERT (RETRIEVE(p,*L),p1,LA);
p=NEXT(p,*L);
while(p!=END(*L)){
while(!found && (p1!=END(*LA))){
if (RETRIEVE(p,*L)<=RETRIEVE(p1,*LA)) <--od ovog dijela
found=1;
}
else p1=NEXT(p1,*LA); <--recimo do ovog dijela
INSERT (RETRIEVE (p,*L),p1,LA);
/*DELETE(p,L);*/
p=NEXT(p,*L);
}
L=LA;
return *L;
}
[/code:1]

Onaj if označen prvom strelicom nema vitičaste zagrade iza sebe pa se else ne odnosi ni na što. Ne znam na čemu je ovaj kod bio kompajliran, meni javlja parse error (devc++).

A pretpostavimo li da postoji ta zagrada...nek neko s većom sposobnošću razmišljanja u ove sate odgovori...Ili možda da kod ovako izgleda

[code:1]
LIST insertion_sort(LIST *L){
position p1,p;
LIST *LA;
int found;

p1=MAKE_NULL(LA);
p=FIRST(*L);

p1=FIRST(*LA);
found=0;
INSERT (RETRIEVE(p,*L),p1,LA);
p=NEXT(p,*L);
while(p!=END(*L)){
while(!found && (p1!=END(*LA))){ <-- sporni while
if (RETRIEVE(p,*L)<=RETRIEVE(p1,*LA))
found=1;
else p1=NEXT(p1,*LA);
} <--vitičasta zagrada u ovom redu, onda bi trebalo štimat, bar sintaktički
INSERT (RETRIEVE (p,*L),p1,LA);
/*DELETE(p,L);*/
p=NEXT(p,*L); <--poslije ovoga, recimo, found=0;
}
L=LA;
return *L;
}
[/code:1]

I fali ti found=0;, recimo tamo gore gdje sam označio... bez toga ti se ovaj (sporni) while vrti dok se ne ispuni if (RETRIEVE(p,*L)<=RETRIEVE(p1,*LA)) i više nikad.
Nažalost sam preumoran da se natjeram protumačit si cijeli program, ali imaš jedan detalj

Kod:

LIST insertion_sort(LIST *L){
position p1,p;
LIST *LA;
int found;

p1=MAKE_NULL(LA);
p=FIRST(*L);

p1=FIRST(*LA);
found=0;
INSERT (RETRIEVE(p,*L),p1,LA);
p=NEXT(p,*L);
while(p!=END(*L)){
while(!found && (p1!=END(*LA))){
if (RETRIEVE(p,*L)<=RETRIEVE(p1,*LA))  <--od ovog dijela
found=1;
}
else p1=NEXT(p1,*LA);                          <--recimo do ovog dijela
INSERT (RETRIEVE (p,*L),p1,LA);
/*DELETE(p,L);*/
p=NEXT(p,*L);
}
L=LA;
return *L;
}


Onaj if označen prvom strelicom nema vitičaste zagrade iza sebe pa se else ne odnosi ni na što. Ne znam na čemu je ovaj kod bio kompajliran, meni javlja parse error (devc++).

A pretpostavimo li da postoji ta zagrada...nek neko s većom sposobnošću razmišljanja u ove sate odgovori...Ili možda da kod ovako izgleda

Kod:

LIST insertion_sort(LIST *L){
position p1,p;
LIST *LA;
int found;

p1=MAKE_NULL(LA);
p=FIRST(*L);

p1=FIRST(*LA);
found=0;
INSERT (RETRIEVE(p,*L),p1,LA);
p=NEXT(p,*L);
while(p!=END(*L)){
while(!found && (p1!=END(*LA))){              <-- sporni while
if (RETRIEVE(p,*L)<=RETRIEVE(p1,*LA)) 
found=1;
else p1=NEXT(p1,*LA);                         
}                                             <--vitičasta zagrada u ovom redu, onda                                                        bi trebalo štimat, bar sintaktički
INSERT (RETRIEVE (p,*L),p1,LA);
/*DELETE(p,L);*/
p=NEXT(p,*L);                         <--poslije ovoga, recimo, found=0;
}
L=LA;
return *L;
}


I fali ti found=0;, recimo tamo gore gdje sam označio... bez toga ti se ovaj (sporni) while vrti dok se ne ispuni if (RETRIEVE(p,*L)⇐RETRIEVE(p1,*LA)) i više nikad.



_________________
-山よ,山よ! 山は活きて居る!-
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan