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

Prog2 DZ
WWW:
Idite na Prethodno  1, 2, 3 ... 7, 8, 9 ... 11, 12, 13  Sljedeće
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
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 21:08 pet, 11. 5. 2012    Naslov: Citirajte i odgovorite

Just wondering, kako si znala koliko prostora alocirati za string?
Just wondering, kako si znala koliko prostora alocirati za string?



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
kiara
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 11. 2011. (23:22:57)
Postovi: (55)16
Sarma = la pohva - posuda
= 7 - 4

PostPostano: 21:19 pet, 11. 5. 2012    Naslov: Citirajte i odgovorite

Isla sam char po char u ulaznoj datoteci, ako je razlicito od razmaka sam brojala a ako nije sam stavila brojac na 0 i tako nasla koliko najdulja rijec ima slova, i s tim maksimumom sam alocirala memoriju za string.
Isla sam char po char u ulaznoj datoteci, ako je razlicito od razmaka sam brojala a ako nije sam stavila brojac na 0 i tako nasla koliko najdulja rijec ima slova, i s tim maksimumom sam alocirala memoriju za string.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 21:23 pet, 11. 5. 2012    Naslov: Citirajte i odgovorite

Zvuci ok. Zalijepi tekst zadatka i svoje rjesenje ovdje, pa ce netko pogledati (gflegar, na primjer O:)).
Zvuci ok. Zalijepi tekst zadatka i svoje rjesenje ovdje, pa ce netko pogledati (gflegar, na primjer Angel).



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
kiara
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 11. 2011. (23:22:57)
Postovi: (55)16
Sarma = la pohva - posuda
= 7 - 4

PostPostano: 21:27 pet, 11. 5. 2012    Naslov: Citirajte i odgovorite

Haha, ok, hvala. Evo...
Napišite program koji čita datoteku "nehoai.in", te ju prepisuje u datoteku "nehoai.out" tako da u prepisivanju sva pojavljivanja stringa "boe" zamijeni stringom "vvrxrcr".
Napomena: Nemojte uvoditi ograničenja na duljinu datoteke i/ili pojedinih linija i riječi u datoteci.
Haha, ok, hvala. Evo...
Napišite program koji čita datoteku "nehoai.in", te ju prepisuje u datoteku "nehoai.out" tako da u prepisivanju sva pojavljivanja stringa "boe" zamijeni stringom "vvrxrcr".
Napomena: Nemojte uvoditi ograničenja na duljinu datoteke i/ili pojedinih linija i riječi u datoteci.





datoteke2.c
 Description:

Download
 Filename:  datoteke2.c
 Filesize:  1.01 KB
 Downloaded:  120 Time(s)

[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 22:18 pet, 11. 5. 2012    Naslov: Citirajte i odgovorite

Mislim da to ne uzrokuje gresku, ali otvaras file koji je vec otvoren (i to preko istog pointera!). Vracanje na pocetak filea se radi naredbom [tt]rewind()[/tt] (to je ili bude (not sure) radjeno na predavanju) ili prije drugog [tt]fopen[/tt]-a istog filea napravis prvo [tt]fclose[/tt].

Koliko vidim, ti pogubis razmake medju rijecima. Koliko se sjecam, verifikator tu nije cjepidlaka (sto se tice broja razmaka), ali ipak ne mozes sve rijeci spojiti u jednu.
Mislim da to ne uzrokuje gresku, ali otvaras file koji je vec otvoren (i to preko istog pointera!). Vracanje na pocetak filea se radi naredbom rewind() (to je ili bude (not sure) radjeno na predavanju) ili prije drugog fopen-a istog filea napravis prvo fclose.

Koliko vidim, ti pogubis razmake medju rijecima. Koliko se sjecam, verifikator tu nije cjepidlaka (sto se tice broja razmaka), ali ipak ne mozes sve rijeci spojiti u jednu.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
kiara
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 11. 2011. (23:22:57)
Postovi: (55)16
Sarma = la pohva - posuda
= 7 - 4

PostPostano: 22:54 pet, 11. 5. 2012    Naslov: Citirajte i odgovorite

Ok, probat cu ovo s fclose, kad nisam dva puta otvorila mi je izlazna datoteka bila prazna a nisam znala da se prvo mora zatvoriti. A meni u izlaznoj datoteci ostanu razmaci kao i u ulaznoj. Ne spoje mi se sve rijeci u jednu.
Ok, probat cu ovo s fclose, kad nisam dva puta otvorila mi je izlazna datoteka bila prazna a nisam znala da se prvo mora zatvoriti. A meni u izlaznoj datoteci ostanu razmaci kao i u ulaznoj. Ne spoje mi se sve rijeci u jednu.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 0:21 sub, 12. 5. 2012    Naslov: Citirajte i odgovorite

Ne vidim kako je moguce da ti ne spoji. Ucitavas rijec po rijec (s [tt]%s[/tt]) i onda ih nekako ispisujes, bez razmaka iza.

Vidim da ispisujes onaj [tt]\0[/tt] na kraju. :shock: Moguce se na Win to ponasa kao razmak... ali ne to raditi. Jednostavno, nakon svake rijeci zapisi razmak i ne idi po stringu do [tt]'\0'[/tt].

Usput, cemu uvjet [tt]... && i+1 < n && i+2 < n[/tt]? Valjda je prvi uvijek istina ako je i drugi istina. :)
Ne vidim kako je moguce da ti ne spoji. Ucitavas rijec po rijec (s %s) i onda ih nekako ispisujes, bez razmaka iza.

Vidim da ispisujes onaj \0 na kraju. Shocked Moguce se na Win to ponasa kao razmak... ali ne to raditi. Jednostavno, nakon svake rijeci zapisi razmak i ne idi po stringu do '\0'.

Usput, cemu uvjet ... && i+1 < n && i+2 < n? Valjda je prvi uvijek istina ako je i drugi istina. Smile



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
kiara
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 11. 2011. (23:22:57)
Postovi: (55)16
Sarma = la pohva - posuda
= 7 - 4

PostPostano: 1:33 sub, 12. 5. 2012    Naslov: Citirajte i odgovorite

Neznam, meni pise razmake. Ali probat cu ovako kako ste vi rekli, razumijem da ih ne bi trebalo bit. Neznam za ovaj uvjet, nisam bas previse razmisljala, samo sam stavila da mi ne radi to ako izadje za jedan i za dva znaka van stringa.
Neznam, meni pise razmake. Ali probat cu ovako kako ste vi rekli, razumijem da ih ne bi trebalo bit. Neznam za ovaj uvjet, nisam bas previse razmisljala, samo sam stavila da mi ne radi to ako izadje za jedan i za dva znaka van stringa.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
chiko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 09. 2010. (17:43:27)
Postovi: (E)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 3 - 1

PostPostano: 17:25 sub, 12. 5. 2012    Naslov: Citirajte i odgovorite

Nije mi jasno što mi je krivo u zadatku?Meni dobro ispada na kompjuteru ali verifikator nece da prihvati.
Zadatak 2:

Napišite program koji učitava jednu liniju teksta s najviše 20151 znakova. Tom tekstu treba izbrisati svaku 3. riječ, a ostalima izokrenuti redoslijed slova (same riječi ostaju u originalnom poretku). Tako dobiveni tekst treba ispisati.
Možete pretpostaviti da tekst sadrži samo slova i razmake.

[code:1]#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>

int brojac( char s[], int i ){
while(1){
if(s[i]=='\0')
return i;
if(isblank(s[i])==1)
return i;
i++;
}
return i;
}

void zamjeni(char a[] ,int prvi_clan,int zadnji_clan){

char temp;

while(prvi_clan<zadnji_clan){
temp=a[prvi_clan];
a[prvi_clan]=a[zadnji_clan];
a[zadnji_clan]=temp;
prvi_clan+=1;
zadnji_clan-=1;
}
}

void makni_rijec(char a[], int prvi_clan, int j ){
while(a[j]!='\0'){
a[prvi_clan]=a[j];
prvi_clan++;
j++;
}
a[prvi_clan]='\0';
}

int main(){

int prvi_clan=0, zadnji_clan=0;
int i=0, br_rijeci=0, j;
char a[20151];
gets(a);

while ( a[i] != '\0'){

if(!isblank(a[i])){
br_rijeci++;

if(br_rijeci==3){
prvi_clan=i;
zadnji_clan=brojac(a,i);
makni_rijec(a , prvi_clan, zadnji_clan );
br_rijeci=0;

}

else{
prvi_clan=i;
zadnji_clan=brojac(a,i)-1;
zamjeni(a, prvi_clan, zadnji_clan);
i=zadnji_clan+1;
}

}
else

i++;


}

puts(a);

return 0;
}[/code:1]
Nije mi jasno što mi je krivo u zadatku?Meni dobro ispada na kompjuteru ali verifikator nece da prihvati.
Zadatak 2:

Napišite program koji učitava jednu liniju teksta s najviše 20151 znakova. Tom tekstu treba izbrisati svaku 3. riječ, a ostalima izokrenuti redoslijed slova (same riječi ostaju u originalnom poretku). Tako dobiveni tekst treba ispisati.
Možete pretpostaviti da tekst sadrži samo slova i razmake.

Kod:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>

int brojac( char s[], int i ){
while(1){
if(s[i]=='\0')
return i;
if(isblank(s[i])==1)
return i;
i++;
}
return i;
}

void zamjeni(char a[] ,int prvi_clan,int zadnji_clan){

char temp;

while(prvi_clan<zadnji_clan){
temp=a[prvi_clan];
a[prvi_clan]=a[zadnji_clan];
a[zadnji_clan]=temp;
prvi_clan+=1;
zadnji_clan-=1;
}
}

void makni_rijec(char a[], int prvi_clan, int j ){
while(a[j]!='\0'){
a[prvi_clan]=a[j];
prvi_clan++;
j++;
}
a[prvi_clan]='\0';
}

int main(){

int prvi_clan=0, zadnji_clan=0;
int i=0, br_rijeci=0, j;
char a[20151];
gets(a);

while ( a[i] != '\0'){

if(!isblank(a[i])){
br_rijeci++;

if(br_rijeci==3){
    prvi_clan=i;
    zadnji_clan=brojac(a,i);
    makni_rijec(a , prvi_clan, zadnji_clan );
    br_rijeci=0;

}

else{
    prvi_clan=i;
    zadnji_clan=brojac(a,i)-1;
    zamjeni(a, prvi_clan, zadnji_clan);
    i=zadnji_clan+1;
}

}
else

i++;


}

puts(a);

return 0;
}



_________________
Kake-Bake
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 17:40 sub, 12. 5. 2012    Naslov: Citirajte i odgovorite

Bez detaljnog proucavanja, zapele mi za oko ove dvije stvari:

1. [tt]if(isblank(s[i])==1)[/tt] -- nemas garanciju da za razmak vraca 1 (ovisi o compileru), samo da vraca ne-nulu.

2. U tvoj string stane najvise 20150 znakova, sto je jedan znak premalo (vjerojatno je ovo problem zbog kojeg ti verifikator odbija rjesenje).

Ostalo mi [b]izgleda[/b] O.K.
Bez detaljnog proucavanja, zapele mi za oko ove dvije stvari:

1. if(isblank(s[i])==1) – nemas garanciju da za razmak vraca 1 (ovisi o compileru), samo da vraca ne-nulu.

2. U tvoj string stane najvise 20150 znakova, sto je jedan znak premalo (vjerojatno je ovo problem zbog kojeg ti verifikator odbija rjesenje).

Ostalo mi izgleda O.K.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 19:19 sub, 12. 5. 2012    Naslov: Citirajte i odgovorite

[quote][tt]isblank(s[i])[/tt][/quote]

IIRC, funkcija se zove [tt]isspace[/tt] :-k
Citat:
isblank(s[i])


IIRC, funkcija se zove isspace Think



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:32 sub, 12. 5. 2012    Naslov: Citirajte i odgovorite

[quote="mdoko"][quote][tt]isblank(s[i])[/tt][/quote]
IIRC, funkcija se zove [tt]isspace[/tt] :-k[/quote]

You're right; [tt]isspace()[/tt] je dio standarda; [tt]isblank()[/tt] je novija stvar. No, verifikator se nece zbog toga pobuniti (ali asistenti na kolokviju hoce ;)).
mdoko (napisa):
Citat:
isblank(s[i])

IIRC, funkcija se zove isspace Think


You're right; isspace() je dio standarda; isblank() je novija stvar. No, verifikator se nece zbog toga pobuniti (ali asistenti na kolokviju hoce Wink).



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
chiko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 09. 2010. (17:43:27)
Postovi: (E)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 3 - 1

PostPostano: 22:19 sub, 12. 5. 2012    Naslov: Citirajte i odgovorite

Hvala vsegi prošao je verifikator :lol:
Hvala vsegi prošao je verifikator Laughing



_________________
Kake-Bake
[Vrh]
Korisnički profil Pošaljite privatnu poruku
kiara
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 11. 2011. (23:22:57)
Postovi: (55)16
Sarma = la pohva - posuda
= 7 - 4

PostPostano: 14:27 ned, 13. 5. 2012    Naslov: Citirajte i odgovorite

Opet mi ne priznaje kao tocno, nisam ogranicila, napravila sam pravilno razmake i sve mi radi kako treba, ne znam sta da jos ispravim :(

[code:1]#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
FILE *in, *out;
int i,n,max;
char c;
char *stringi, *stringo={"vvrxrcr"};

in=fopen ("nehoai.in", "rt" );
out=fopen ("nehoai.out", "wt" );
max=-1;
i=0;
while ((c=fgetc(in))!= EOF)
{
if (c!='\t' && c!='\n' && c!=' ') i=i+1;
else i=0;
if (i>max) max=i;
}
stringi=(char*)malloc((max+1)*sizeof(char));
fclose (in);
in=fopen("nehoai.in", "rt" );
while (fscanf(in, "%s", stringi) > 0)
{
n=strlen(stringi);
i=0;
while (i<n)
{
if (stringi[i] == 'b' && stringi[i+1] == 'o' && stringi[i+2] == 'e' && i+2 < n)
{
fprintf (out, "%s", stringo);
i=i+3;
}
else
{
fprintf (out, "%c", stringi[i]);
i=i+1;
}
}
fprintf(out, " ");
}

fclose (in);
fclose (out);
return 0;

}[/code:1]
Opet mi ne priznaje kao tocno, nisam ogranicila, napravila sam pravilno razmake i sve mi radi kako treba, ne znam sta da jos ispravim Sad

Kod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
    FILE *in, *out;
    int i,n,max;
    char c;
    char *stringi, *stringo={"vvrxrcr"};

    in=fopen ("nehoai.in", "rt" );
    out=fopen ("nehoai.out", "wt" );
    max=-1;
    i=0;
    while ((c=fgetc(in))!= EOF)
    {
        if (c!='\t' && c!='\n' && c!=' ')  i=i+1;
        else i=0;
        if (i>max) max=i;
    }
    stringi=(char*)malloc((max+1)*sizeof(char));
    fclose (in);
    in=fopen("nehoai.in", "rt" );
    while (fscanf(in, "%s", stringi) > 0)
    {
        n=strlen(stringi);
        i=0;
        while (i<n)
        {
            if (stringi[i] == 'b' && stringi[i+1] == 'o' && stringi[i+2] == 'e' && i+2 < n)
            {
                fprintf (out, "%s", stringo);
                i=i+3;
            }
            else
            {
                fprintf (out, "%c", stringi[i]);
                i=i+1;
            }
        }
        fprintf(out, " ");
    }

    fclose (in);
    fclose (out);
    return 0;

}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
frutabella
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 10. 2010. (16:35:36)
Postovi: (24E)16
Sarma = la pohva - posuda
-5 = 42 - 47

PostPostano: 16:44 ned, 13. 5. 2012    Naslov: Citirajte i odgovorite

Napišite program koji učitava jednu riječ s najviše 19509 znakova, te ispisuje koliko se puta u toj riječi pojavljuje podstring "bx".



[code:1]#include<stdio.h>

int main (void){

char rijec[19510];
int br=0, i, j;


scanf("%s", rijec);

j=0;
for(i=0; rijec[i]!='\0'; i++)
{

if(rijec[i]=='b' && (rijec[j++]!='\0' && rijec[j]=='x'))
{
br++;
++i;
}
++j;
}

printf("%d", br);



return 0;
}
[/code:1]

Ne razumijem zasto mi verifikator ne prihvaca. :S
Meni radi na kompjuteru. :D
Napišite program koji učitava jednu riječ s najviše 19509 znakova, te ispisuje koliko se puta u toj riječi pojavljuje podstring "bx".



Kod:
#include<stdio.h>

   int main (void){

       char rijec[19510];
       int br=0, i, j;


       scanf("%s", rijec);

       j=0;
       for(i=0; rijec[i]!='\0'; i++)
       {

            if(rijec[i]=='b' && (rijec[j++]!='\0' && rijec[j]=='x'))
            {
                br++;
                ++i;
            }
            ++j;
       }

       printf("%d", br);



       return 0;
   }


Ne razumijem zasto mi verifikator ne prihvaca. :S
Meni radi na kompjuteru. Very Happy


[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 16:52 ned, 13. 5. 2012    Naslov: Citirajte i odgovorite

[quote="frutabella"]
Ne razumijem zasto mi verifikator ne prihvaca. :S
Meni radi na kompjuteru. :D[/quote]
Probaj unijeti [tt]"bbxbbxbbx"[/tt] - tvoj program daje rezultat [tt]1[/tt] umjesto [tt]3[/tt].
frutabella (napisa):

Ne razumijem zasto mi verifikator ne prihvaca. :S
Meni radi na kompjuteru. Very Happy

Probaj unijeti "bbxbbxbbx" - tvoj program daje rezultat 1 umjesto 3.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 19:44 ned, 13. 5. 2012    Naslov: Citirajte i odgovorite

@frutabella: [tt]if(rijec[i]=='b' && (rijec[j++]!='\0' && rijec[j]=='x'))[/tt] :shock:

1. U istom izrazu [b]ne smije[/b] biti [tt]++j[/tt], [tt]j++[/tt] ili ista stvar s minusima, zajedno s drugim [tt]j[/tt]-ovima, jer rezultat nije definiran i stvarno se razlikuje od compilera do compilera (predavanja iz prvog semestra, tamo gdje smo radili izraze).

2. Kako prvo slovo gledas s indeksom [tt]i[/tt], a drugo s indeksom [tt]j[/tt]? Prvi put kad uvjet u [tt]if[/tt] bude istina, [tt]i[/tt] ce "prestici" [tt]j[/tt].

@kiara: Provjerih u verifikatoru: ovdje broj razmaka treba ostati kakav je i bio (sto i ima smisla, za obicni find/replace).
@frutabella: if(rijec[i]=='b' && (rijec[j++]!='\0' && rijec[j]=='x')) Shocked

1. U istom izrazu ne smije biti ++j, j++ ili ista stvar s minusima, zajedno s drugim j-ovima, jer rezultat nije definiran i stvarno se razlikuje od compilera do compilera (predavanja iz prvog semestra, tamo gdje smo radili izraze).

2. Kako prvo slovo gledas s indeksom i, a drugo s indeksom j? Prvi put kad uvjet u if bude istina, i ce "prestici" j.

@kiara: Provjerih u verifikatoru: ovdje broj razmaka treba ostati kakav je i bio (sto i ima smisla, za obicni find/replace).



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 2:17 pon, 14. 5. 2012    Naslov: Citirajte i odgovorite

[quote="vsego"]@frutabella: [tt]if(rijec[i]=='b' && (rijec[j++]!='\0' && rijec[j]=='x'))[/tt] :shock:

1. U istom izrazu [b]ne smije[/b] biti [tt]++j[/tt], [tt]j++[/tt] ili ista stvar s minusima, zajedno s drugim [tt]j[/tt]-ovima, jer rezultat nije definiran i stvarno se razlikuje od compilera do compilera (predavanja iz prvog semestra, tamo gdje smo radili izraze).[/quote]
Ako malo bolje pogledaš, ovo je ipak posebni slučaj zbog lijenog izvršavanja logičkih operatora, pa se točno zna kojim redom će se izvrijednjavati izrazi.
vsego (napisa):
@frutabella: if(rijec[i]=='b' && (rijec[j++]!='\0' && rijec[j]=='x')) Shocked

1. U istom izrazu ne smije biti ++j, j++ ili ista stvar s minusima, zajedno s drugim j-ovima, jer rezultat nije definiran i stvarno se razlikuje od compilera do compilera (predavanja iz prvog semestra, tamo gdje smo radili izraze).

Ako malo bolje pogledaš, ovo je ipak posebni slučaj zbog lijenog izvršavanja logičkih operatora, pa se točno zna kojim redom će se izvrijednjavati izrazi.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3562)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 2:38 pon, 14. 5. 2012    Naslov: Citirajte i odgovorite

Mozda grijesim, ali cini mi se da standard i dalje ne propisuje kad ce se desiti inkrement/dekrement, sto znaci da nemas garanciju kako ce se pojedini compiler (tj. njegova verzija) ponasati. U svakom slucaju, onim studentima koji nemaju namjeru duboko analizirati ponasanje C-a i raznih compilera preporucam da se klone takvih konstrukcija, bez da se bavimo time kad bi to mozda i moglo raditi.

Inace, objasnjenje u tocki 2 mi je krivo. Prvi put kad [tt]rijec[i]=='b'[/tt] bude istina, ali ostatak [tt]if[/tt]-a bude laz, [tt]j[/tt] ce narasti za 2, a [tt]i[/tt] samo za 1, i eto problema. Semanticki je besmisleno dva uzastopna znaka indeksirati razlicitim varijablama.
Mozda grijesim, ali cini mi se da standard i dalje ne propisuje kad ce se desiti inkrement/dekrement, sto znaci da nemas garanciju kako ce se pojedini compiler (tj. njegova verzija) ponasati. U svakom slucaju, onim studentima koji nemaju namjeru duboko analizirati ponasanje C-a i raznih compilera preporucam da se klone takvih konstrukcija, bez da se bavimo time kad bi to mozda i moglo raditi.

Inace, objasnjenje u tocki 2 mi je krivo. Prvi put kad rijec[i]=='b' bude istina, ali ostatak if-a bude laz, j ce narasti za 2, a i samo za 1, i eto problema. Semanticki je besmisleno dva uzastopna znaka indeksirati razlicitim varijablama.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 2:56 pon, 14. 5. 2012    Naslov: Citirajte i odgovorite

[quote="vsego"]Mozda grijesim, ali cini mi se da standard i dalje ne propisuje kad ce se desiti inkrement/dekrement, sto znaci da nemas garanciju kako ce se pojedini compiler (tj. njegova verzija) ponasati.
[/quote]
Nisam ni ja u potpunosti siguran i ne da mi se sada tražiti, ali čini mi se da sam negdje vidio da standard precizira što se događa kod evaluacije logičkih operatora.

[quote]U svakom slucaju, onim studentima koji nemaju namjeru duboko analizirati ponasanje C-a i raznih compilera preporucam da se klone takvih konstrukcija, bez da se bavimo time kad bi to mozda i moglo raditi.[/quote]
Rekao bih i ne samo studentima. Pisati kod koji nije čitljiv bez kopanja po zabačenim dijelovima standarda nikako nije dobra ideja. Naravno, osim ako se radi o nečemu za [url=http://ioccc.org/]IOCCC[/url]. :wink:
vsego (napisa):
Mozda grijesim, ali cini mi se da standard i dalje ne propisuje kad ce se desiti inkrement/dekrement, sto znaci da nemas garanciju kako ce se pojedini compiler (tj. njegova verzija) ponasati.

Nisam ni ja u potpunosti siguran i ne da mi se sada tražiti, ali čini mi se da sam negdje vidio da standard precizira što se događa kod evaluacije logičkih operatora.

Citat:
U svakom slucaju, onim studentima koji nemaju namjeru duboko analizirati ponasanje C-a i raznih compilera preporucam da se klone takvih konstrukcija, bez da se bavimo time kad bi to mozda i moglo raditi.

Rekao bih i ne samo studentima. Pisati kod koji nije čitljiv bez kopanja po zabačenim dijelovima standarda nikako nije dobra ideja. Naravno, osim ako se radi o nečemu za IOCCC. Wink



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[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.
Idite na Prethodno  1, 2, 3 ... 7, 8, 9 ... 11, 12, 13  Sljedeće
Stranica 8 / 13.

 
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