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

Stringovi
WWW:
Idite na Prethodno  1, 2, 3
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
Luuka
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54)
Postovi: (925)16
Spol: muško
Sarma = la pohva - posuda
188 = 301 - 113
Lokacija: Hakuna Matata

PostPostano: 0:11 čet, 25. 6. 2009    Naslov: Citirajte i odgovorite

hm hm... rekao bih da tu MORA ić || u petlji. Jer ako je && on će ić skroz dok oba nisu '\0', a to će se desit samo ako su jednako dugi. Ako nisu jednako dugi, onda će u onom kraćem na i-tom mjestu (onom koje je iza njegovog '\0') pisat nešt bezveze, i tko zna kad će se potrefit da oba bude \0 (najvjerojatnije nikad).

Po meni bio kod trebo bit:

[code:1]int stringcompare(char *s, char *t){

int i;

for(i=0;s[i]!='\0' || t[i]!='\0';i++)
if(s[i]<t[i]) return -1;
else if(s[i]>t[i]) return 1;

// tu je i od jednog na \0
if(s[i]<t[i]) return -1;
if(s[i]>t[i]) return 1;
//tu su jednako dugački, i sve je isto, pa su isti skroz
return 0;
}[/code:1]

(jedina promjena && u || )
hm hm... rekao bih da tu MORA ić || u petlji. Jer ako je && on će ić skroz dok oba nisu '\0', a to će se desit samo ako su jednako dugi. Ako nisu jednako dugi, onda će u onom kraćem na i-tom mjestu (onom koje je iza njegovog '\0') pisat nešt bezveze, i tko zna kad će se potrefit da oba bude \0 (najvjerojatnije nikad).

Po meni bio kod trebo bit:

Kod:
int stringcompare(char *s, char *t){
   
    int i;
   
    for(i=0;s[i]!='\0' || t[i]!='\0';i++)
    if(s[i]<t[i]) return -1;
      else if(s[i]>t[i]) return 1;

   // tu je i od jednog na \0
    if(s[i]<t[i]) return -1;
    if(s[i]>t[i]) return 1;
  //tu su jednako dugački, i sve je isto, pa su isti skroz
    return 0;
}


(jedina promjena && u || )



_________________
"Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
markotron
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 9:59 čet, 25. 6. 2009    Naslov: Citirajte i odgovorite

hm...
|| operator je ili.. dakle dok je bar jedan tocan uvjet ce bit zadovoljne... pa ako je jedan dosao na \0 a drugi nije.. svejedno ce se petlja dalje vrtit.. a sa && operatorom to se nece desit.. jer cim je jedan \0 prekida se.. (jer nisu oba)

mislim da si zamjenio || i && :D
hm...
|| operator je ili.. dakle dok je bar jedan tocan uvjet ce bit zadovoljne... pa ako je jedan dosao na \0 a drugi nije.. svejedno ce se petlja dalje vrtit.. a sa && operatorom to se nece desit.. jer cim je jedan \0 prekida se.. (jer nisu oba)

mislim da si zamjenio || i && Very Happy



_________________
reductio ad absurdum
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
Luuka
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54)
Postovi: (925)16
Spol: muško
Sarma = la pohva - posuda
188 = 301 - 113
Lokacija: Hakuna Matata

PostPostano: 10:06 čet, 25. 6. 2009    Naslov: Citirajte i odgovorite

[quote="markotron"]hm...
|| operator je ili.. dakle dok je bar jedan tocan uvjet ce bit zadovoljne... pa ako je jedan dosao na \0 a drugi nije.. svejedno ce se petlja dalje vrtit.. a sa && operatorom to se nece desit.. jer cim je jedan \0 prekida se.. (jer nisu oba)

mislim da si zamjenio || i && :D[/quote]

Ma nisam zamijenio, samo sam si krivo zavrti u glavi... :oops:
Pa sam opisao petlju "obrnuto"

Dakle, prvi post na ovoj temi mi je bio dobar, da nisu niš zeznuli, i opis ko u prošlom postu, samo ne || nego && :D
markotron (napisa):
hm...
|| operator je ili.. dakle dok je bar jedan tocan uvjet ce bit zadovoljne... pa ako je jedan dosao na \0 a drugi nije.. svejedno ce se petlja dalje vrtit.. a sa && operatorom to se nece desit.. jer cim je jedan \0 prekida se.. (jer nisu oba)

mislim da si zamjenio || i && Very Happy


Ma nisam zamijenio, samo sam si krivo zavrti u glavi... Embarassed
Pa sam opisao petlju "obrnuto"

Dakle, prvi post na ovoj temi mi je bio dobar, da nisu niš zeznuli, i opis ko u prošlom postu, samo ne || nego && Very Happy



_________________
"Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Milojko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 8:33 pet, 26. 6. 2009    Naslov: Citirajte i odgovorite

[quote="Milojko"]mislim da su se zeznuli malo.
al, nije mi jasan kod kao takav.
zar to ne dođe na nulti znak, vidi dali je jedan "manji" od drugog i onda vrati +/-1? mislim da bi trebao kod izgledati drukčije:
[code:1]
int stringcompare(char *s, char *t){

int i, raz = 0;
for (i = 0; s[i] != '\0' && t[i] != '\0'; ++i) {
if (s[i]) < t[i]) --raz;
if (s[i] > t[i]) ++raz;
}
if (raz > 0) return 7;
if (raz < 0) return -7;
if (raz == 0) return 0;
}[/code:1][/quote]

samo da se ispravim, funkcija strcmp vraća razlika između prva dva znaka u kojima se razlikuju. na 51. stranici piše. to sam tek jučer vidio Smile

tak da, ova funkcija iz rješenja ide do prvog znaka u kojem se razlikuju unutar for-petlje, a ak je jedan od nizova kraći, tome služi ova provjera na kraju.
Milojko (napisa):
mislim da su se zeznuli malo.
al, nije mi jasan kod kao takav.
zar to ne dođe na nulti znak, vidi dali je jedan "manji" od drugog i onda vrati +/-1? mislim da bi trebao kod izgledati drukčije:
Kod:

int stringcompare(char *s, char *t){

int i, raz = 0;
for (i = 0; s[i] != '\0' && t[i] != '\0'; ++i) {
            if (s[i]) < t[i]) --raz;
            if (s[i] > t[i]) ++raz;
            }
if (raz > 0) return 7;
if (raz < 0) return -7;
if (raz == 0) return 0;
}


samo da se ispravim, funkcija strcmp vraća razlika između prva dva znaka u kojima se razlikuju. na 51. stranici piše. to sam tek jučer vidio Smile

tak da, ova funkcija iz rješenja ide do prvog znaka u kojem se razlikuju unutar for-petlje, a ak je jedan od nizova kraći, tome služi ova provjera na kraju.



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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.
Idite na Prethodno  1, 2, 3
Stranica 3 / 3.

 
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