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

Opet me C nervira- strukture
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
malena
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 03. 2009. (16:43:42)
Postovi: (62)16
Spol: žensko
Sarma = la pohva - posuda
= 9 - 8
Lokacija: ...

PostPostano: 15:35 sub, 20. 6. 2009    Naslov: Citirajte i odgovorite

[quote="vsego"]Prvi isprobaj na racunalu: za neke [tt]n[/tt] ce se sigurno srusiti. :?

Drugi ima pogresan uvjet za brisanje (sto ako su i brojnik i nazivnik negativni?), te ne brise prvog neovisno o uvjetu. :|

Nisam jako detaljno gledao, pa je moguce da ima i koja sporadicna greska. :)[/quote]

pa nisan tako zla da stavljan da forum a da prvo nisan sama za sve n probala. moze objasnjenje zasto prvog ne brise. mislila san ako stavim pom=prvi i prvi=prvi->next te free(pom) da to izbrise prvog.

ok u drugom taj uvjet fali ali i dalje ne funkcionira ako malo bolje pogledas mozes viditi da san unosila ili negativne brojnike ili negativne nazivnike (cisto zbog testiranja) ali opcenito ne radi. dapace samo prvom negativnom razlomku upise 0 u brojnik i ostatak liste je ne promijenjen. bar se nadan da je...
vsego (napisa):
Prvi isprobaj na racunalu: za neke n ce se sigurno srusiti. Confused

Drugi ima pogresan uvjet za brisanje (sto ako su i brojnik i nazivnik negativni?), te ne brise prvog neovisno o uvjetu. Neutral

Nisam jako detaljno gledao, pa je moguce da ima i koja sporadicna greska. Smile


pa nisan tako zla da stavljan da forum a da prvo nisan sama za sve n probala. moze objasnjenje zasto prvog ne brise. mislila san ako stavim pom=prvi i prvi=prvi→next te free(pom) da to izbrise prvog.

ok u drugom taj uvjet fali ali i dalje ne funkcionira ako malo bolje pogledas mozes viditi da san unosila ili negativne brojnike ili negativne nazivnike (cisto zbog testiranja) ali opcenito ne radi. dapace samo prvom negativnom razlomku upise 0 u brojnik i ostatak liste je ne promijenjen. bar se nadan da je...


[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:20 sub, 20. 6. 2009    Naslov: Citirajte i odgovorite

Za sve [tt]n[/tt] sigurno nisi. :P Sorry, ne pada za [tt]n[/tt]-ove, no niti ne radi dobro:

[code:1][vsego@petko tmp]$ gcc t.c && ./a.out
Koji po redu brisemo:
2


Prije deleten:
Br= 7 ,Naz= 8
Br= 6 ,Naz= 7
Br= 5 ,Naz= 6
Br= 4 ,Naz= 5
Br= 2 ,Naz= 3

Nakon deleten:
Br= 0 ,Naz= 8
Br= 6 ,Naz= 7
Br= 154271808 ,Naz= 6
Br= 4 ,Naz= 5
Br= 154271776 ,Naz= 3[/code:1]

Ovdje:
[code:1] del=pom;
pom=pom->next;
free(del);[/code:1]
potrgas listu, jer brises [tt]pom[/tt], a njegov prethodnik i dalje pokazuje na njega. :? Crtati! :prodike:

Sto se drugog tice, krivo sam se izrazio. :oops: Obrise prvog, ali onda krene dalje od (bivseg) treceg (jer se, osim kod brisanja prvog, brise sljedbenik od [tt]pom[/tt], pa novog prvog preskocis); drugog nece obrisati ako i prvi i drugi odgovaraju uvjetu. :? Tu treba [tt]while()[/tt] (pogledaj vjezbe; tamo je identican zadatak, samo s drugim uvjetom). 8)

Inace, niti brisanje nije dobro. :? Slozi listu:
[code:1] razlomak *x=NULL;
x=ubaci(x, 2, 3);
x=ubaci(x, -3, 5);
x=ubaci(x, 4, -7);
x=ubaci(x, -1, 8);[/code:1]
i brisanje ce ti srusiti program. :( Kod brisanja ne smijes bezuvjetno skakati na iduceg ([tt]pom=pom->next;[/tt]) jer onda ne provjeris sve koje trebas, plus mozes izletjeti iz liste, pa te uvjet od [tt]while()[/tt]-a srusi. :(

Please, prouciti u vjezbama taj zadatak. :)

Sorry na greskama iz proslog posta. :oops: Probudise me Jehovini svjedoci ili nesto njima slicno... :gloom: :bully:
Za sve n sigurno nisi. Razz Sorry, ne pada za n-ove, no niti ne radi dobro:

Kod:
[vsego@petko tmp]$ gcc t.c && ./a.out
Koji po redu brisemo:
2


Prije deleten:
Br= 7  ,Naz= 8
Br= 6  ,Naz= 7
Br= 5  ,Naz= 6
Br= 4  ,Naz= 5
Br= 2  ,Naz= 3

Nakon deleten:
Br= 0  ,Naz= 8
Br= 6  ,Naz= 7
Br= 154271808  ,Naz= 6
Br= 4  ,Naz= 5
Br= 154271776  ,Naz= 3


Ovdje:
Kod:
                                  del=pom;
                                  pom=pom->next;
                                  free(del);

potrgas listu, jer brises pom, a njegov prethodnik i dalje pokazuje na njega. Confused Crtati! Drzim prodike

Sto se drugog tice, krivo sam se izrazio. Embarassed Obrise prvog, ali onda krene dalje od (bivseg) treceg (jer se, osim kod brisanja prvog, brise sljedbenik od pom, pa novog prvog preskocis); drugog nece obrisati ako i prvi i drugi odgovaraju uvjetu. Confused Tu treba while() (pogledaj vjezbe; tamo je identican zadatak, samo s drugim uvjetom). Cool

Inace, niti brisanje nije dobro. Confused Slozi listu:
Kod:
    razlomak *x=NULL;
    x=ubaci(x, 2, 3);
    x=ubaci(x, -3, 5);
    x=ubaci(x, 4, -7);
    x=ubaci(x, -1, 8);

i brisanje ce ti srusiti program. Sad Kod brisanja ne smijes bezuvjetno skakati na iduceg (pom=pom→next;) jer onda ne provjeris sve koje trebas, plus mozes izletjeti iz liste, pa te uvjet od while()-a srusi. Sad

Please, prouciti u vjezbama taj zadatak. Smile

Sorry na greskama iz proslog posta. Embarassed Probudise me Jehovini svjedoci ili nesto njima slicno... Malo sam lose volje... Nasilnik



_________________
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
malena
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 27. 03. 2009. (16:43:42)
Postovi: (62)16
Spol: žensko
Sarma = la pohva - posuda
= 9 - 8
Lokacija: ...

PostPostano: 17:40 sub, 20. 6. 2009    Naslov: Citirajte i odgovorite

tnx, a ko se usudi ljutiti na tebe?
samo da znas crtala san i na papiru je dobro izgledalo :widesmile2:
znaci, bez obzira na to sta ja znan da brisen prvog mora se postaviti uvjet i kad njega brisen ili...
tnx, a ko se usudi ljutiti na tebe?
samo da znas crtala san i na papiru je dobro izgledalo Siroki osmjeh
znaci, bez obzira na to sta ja znan da brisen prvog mora se postaviti uvjet i kad njega brisen ili...


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


Pridružen/a: 26. 09. 2007. (09:56:59)
Postovi: (153)16
Spol: žensko
Sarma = la pohva - posuda
27 = 51 - 24

PostPostano: 22:03 sub, 20. 6. 2009    Naslov: Citirajte i odgovorite

[b]Zadatak 6.8.[/b] Riječ je o onom skočimišu koji skače po cesti/brojevnom pravcu pa treba riješiti sa strukturama pamteći gdje skače i koji znak ostavlja.
E sad, riješila sam taj prvi dio s pamćenjem skokova i pozicija, relociranjem memorije i na kraju sortiranjem niza tih structova, napravila sam si kontrolni ispis i stvarno cijeli niz dobro ispiše. ALI, zadatak traži da ispišem slova po redu, [u]a ako neki cijeli broj na tom brojevnom pravcu nije "iskorišten", da napiše crticu[/u]. I sad imam problema s time. [img]http://s2.photobucket.com/albums/y29/waterfly89/Smilies/zid.gif[/img]

[code:1]printf(" %c ", mis[0].znak);
int br=mis[0].skok;
for (int l=1; l<=(mis[i].skok-mis[0].skok); l++){br++;
if (mis[l].skok==br) printf(" %c ", mis[l].znak);
else printf("-");}[/code:1]
[size=1](petlja ide od 1 (budući da smo nulti ispisali) do najdesnije pozicije na pravcu)[/size]

Zanemarimo trenutno činjenicu da zadatak kaže da mi ne smije ispisivati više od jednog znaka po poziciji.
Ideja mi je dakle da imam neki brojač koji će krenuti od najljevije miševe pozicije i povećavati se svakim prolaskom po petlji i ako je skočimiš skočio na broj koji taj brojač pokazuje, trebao bi ispisati skočimišev znak. Ako mi skočimiš iskoristi svaki broj na pravcu, ovaj ispis radi, ali preskoči li neki i trebam li pisati crtice, program mi ispiše sve crtice do kraja niza. :?
Zadatak 6.8. Riječ je o onom skočimišu koji skače po cesti/brojevnom pravcu pa treba riješiti sa strukturama pamteći gdje skače i koji znak ostavlja.
E sad, riješila sam taj prvi dio s pamćenjem skokova i pozicija, relociranjem memorije i na kraju sortiranjem niza tih structova, napravila sam si kontrolni ispis i stvarno cijeli niz dobro ispiše. ALI, zadatak traži da ispišem slova po redu, a ako neki cijeli broj na tom brojevnom pravcu nije "iskorišten", da napiše crticu. I sad imam problema s time.

Kod:
printf(" %c ", mis[0].znak);
int br=mis[0].skok;
for (int l=1; l<=(mis[i].skok-mis[0].skok); l++){br++;
    if (mis[l].skok==br) printf(" %c ", mis[l].znak);
          else printf("-");}

(petlja ide od 1 (budući da smo nulti ispisali) do najdesnije pozicije na pravcu)

Zanemarimo trenutno činjenicu da zadatak kaže da mi ne smije ispisivati više od jednog znaka po poziciji.
Ideja mi je dakle da imam neki brojač koji će krenuti od najljevije miševe pozicije i povećavati se svakim prolaskom po petlji i ako je skočimiš skočio na broj koji taj brojač pokazuje, trebao bi ispisati skočimišev znak. Ako mi skočimiš iskoristi svaki broj na pravcu, ovaj ispis radi, ali preskoči li neki i trebam li pisati crtice, program mi ispiše sve crtice do kraja niza. Confused



_________________
Weit von hier fällt Gold von den Sternen
[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: 23:31 sub, 20. 6. 2009    Naslov: Citirajte i odgovorite

[quote="malena"]samo da znas crtala san i na papiru je dobro izgledalo :widesmile2:[/quote]

Hmda... ljudi cesto crtaju ono sto su si zamislili, a ne ono sto pise u kodu. :) Probaj sada, kad znas da kod ne radi dobro, ici lajnu po lajnu i crtati. :D Nema veze sto je krivo; bitno je da ti "klikne" sto se dogadja i zato to napravi bas na tom pogresnom kodu! :tso:

[quote="malena"]znaci, bez obzira na to sta ja znan da brisen prvog mora se postaviti uvjet i kad njega brisen ili...[/quote]

Pa, mora biti uvjet, naravno. 8) Uvjet za brisanje se tice svih; prvi se razlikuje po nacinu brisanja. :)

[quote="Lafiel"][b]Zadatak 6.8.[/b] Riječ je o onom skočimišu koji skače po cesti/brojevnom pravcu pa treba riješiti sa strukturama pamteći gdje skače i koji znak ostavlja.
E sad, riješila sam taj prvi dio s pamćenjem skokova i pozicija, relociranjem memorije i na kraju sortiranjem niza tih structova, napravila sam si kontrolni ispis i stvarno cijeli niz dobro ispiše. ALI, zadatak traži da ispišem slova po redu, [u]a ako neki cijeli broj na tom brojevnom pravcu nije "iskorišten", da napiše crticu[/u]. I sad imam problema s time. [img]http://s2.photobucket.com/albums/y29/waterfly89/Smilies/zid.gif[/img]
[code:1]printf(" %c ", mis[0].znak);
int br=mis[0].skok;
for (int l=1; l<=(mis[i].skok-mis[0].skok); l++){br++;
if (mis[l].skok==br) printf(" %c ", mis[l].znak);
else printf("-");}[/code:1]
[size=1](petlja ide od 1 (budući da smo nulti ispisali) do najdesnije pozicije na pravcu)[/size]
Zanemarimo trenutno činjenicu da zadatak kaže da mi ne smije ispisivati više od jednog znaka po poziciji.
Ideja mi je dakle da imam neki brojač koji će krenuti od najljevije miševe pozicije i povećavati se svakim prolaskom po petlji i ako je skočimiš skočio na broj koji taj brojač pokazuje, trebao bi ispisati skočimišev znak. Ako mi skočimiš iskoristi svaki broj na pravcu, ovaj ispis radi, ali preskoči li neki i trebam li pisati crtice, program mi ispiše sve crtice do kraja niza. :?[/quote]

Ako je [tt]mis[i].skok[/tt] pozicija na koju je skocimis skocio u [tt]i[/tt]-tom koraku, a [tt]mis[i].znak[/tt] znak koji je on ostavio i tih skokova je ukupno bilo [tt]n[/tt], onda ispis ide ovako:

[code:1]printf("%c", mis[0].znak); /* Ispises prvi znak */
for (i = 1; i < n; ++i) { /* tu ispisujemo sve ostale */
/* prvo razmaci: na poziciji mis[i-1].skok pise neki znak; na poziciji */
/* mis[i].skok ce pisati iduci znak => sve izmedju se popunjava crticama */
for (j = mis[i-1].skok + 1; j <= mis[i].skok - 1; ++j) printf("_");
/* sada ispisemo znak na poziciji mis[i].skok */
printf("%c", mis[i].znak);
}
printf("\n");[/code:1]

Dakle, pravim se blesav (neki bi rekli da se ne pravim :PP) i ponasam se kao da su mi stupci na ekranu numerirani od [tt]mis[0].skok[/tt] do [tt]mis[n-1].skok[/tt] i tako "crtam". 8) Probaj skicirati na papiru sto ovo radi i bit ce ti jasno (bar je bilo na vjezbama i konzultacijama kad sam to radio). :)
malena (napisa):
samo da znas crtala san i na papiru je dobro izgledalo Siroki osmjeh


Hmda... ljudi cesto crtaju ono sto su si zamislili, a ne ono sto pise u kodu. Smile Probaj sada, kad znas da kod ne radi dobro, ici lajnu po lajnu i crtati. Very Happy Nema veze sto je krivo; bitno je da ti "klikne" sto se dogadja i zato to napravi bas na tom pogresnom kodu! Trudim Se Objasniti...

malena (napisa):
znaci, bez obzira na to sta ja znan da brisen prvog mora se postaviti uvjet i kad njega brisen ili...


Pa, mora biti uvjet, naravno. Cool Uvjet za brisanje se tice svih; prvi se razlikuje po nacinu brisanja. Smile

Lafiel (napisa):
Zadatak 6.8. Riječ je o onom skočimišu koji skače po cesti/brojevnom pravcu pa treba riješiti sa strukturama pamteći gdje skače i koji znak ostavlja.
E sad, riješila sam taj prvi dio s pamćenjem skokova i pozicija, relociranjem memorije i na kraju sortiranjem niza tih structova, napravila sam si kontrolni ispis i stvarno cijeli niz dobro ispiše. ALI, zadatak traži da ispišem slova po redu, a ako neki cijeli broj na tom brojevnom pravcu nije "iskorišten", da napiše crticu. I sad imam problema s time.
Kod:
printf(" %c ", mis[0].znak);
int br=mis[0].skok;
for (int l=1; l<=(mis[i].skok-mis[0].skok); l++){br++;
    if (mis[l].skok==br) printf(" %c ", mis[l].znak);
          else printf("-");}

(petlja ide od 1 (budući da smo nulti ispisali) do najdesnije pozicije na pravcu)
Zanemarimo trenutno činjenicu da zadatak kaže da mi ne smije ispisivati više od jednog znaka po poziciji.
Ideja mi je dakle da imam neki brojač koji će krenuti od najljevije miševe pozicije i povećavati se svakim prolaskom po petlji i ako je skočimiš skočio na broj koji taj brojač pokazuje, trebao bi ispisati skočimišev znak. Ako mi skočimiš iskoristi svaki broj na pravcu, ovaj ispis radi, ali preskoči li neki i trebam li pisati crtice, program mi ispiše sve crtice do kraja niza. Confused


Ako je mis[i].skok pozicija na koju je skocimis skocio u i-tom koraku, a mis[i].znak znak koji je on ostavio i tih skokova je ukupno bilo n, onda ispis ide ovako:

Kod:
printf("%c", mis[0].znak); /* Ispises prvi znak */
for (i = 1; i < n; ++i) { /* tu ispisujemo sve ostale */
  /* prvo razmaci: na poziciji mis[i-1].skok pise neki znak; na poziciji */
  /* mis[i].skok ce pisati iduci znak => sve izmedju se popunjava crticama */
  for (j = mis[i-1].skok + 1; j <= mis[i].skok - 1; ++j) printf("_");
  /* sada ispisemo znak na poziciji mis[i].skok */
  printf("%c", mis[i].znak);
}
printf("\n");


Dakle, pravim se blesav (neki bi rekli da se ne pravim Weeee-heeee!!!) i ponasam se kao da su mi stupci na ekranu numerirani od mis[0].skok do mis[n-1].skok i tako "crtam". Cool Probaj skicirati na papiru sto ovo radi i bit ce ti jasno (bar je bilo na vjezbama i konzultacijama kad sam to radio). 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
Lafiel
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 09. 2007. (09:56:59)
Postovi: (153)16
Spol: žensko
Sarma = la pohva - posuda
27 = 51 - 24

PostPostano: 1:08 ned, 21. 6. 2009    Naslov: Citirajte i odgovorite

Hvala, vsego! Imala sam takvošto u glavi, ali nisam znala kako to oblikovati u nešto konkretno. :oops: Merci!
Hvala, vsego! Imala sam takvošto u glavi, ali nisam znala kako to oblikovati u nešto konkretno. Embarassed Merci!



_________________
Weit von hier fällt Gold von den Sternen
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Lafiel
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 09. 2007. (09:56:59)
Postovi: (153)16
Spol: žensko
Sarma = la pohva - posuda
27 = 51 - 24

PostPostano: 13:25 ned, 21. 6. 2009    Naslov: Citirajte i odgovorite

Zadatak sa strukturama iz prošlogodišnjeg kolokvija, trebalo je napisati tip dužina pa neke funkcije s njim i na kraju primjer poziva tih funkcija. Jel' nam dovoljno napisati samo npr. [b]sort_niza_duzina(niz, n);[/b] (pa reći npr. da je n duljina niza) ili moramo baš neki programčić smisliti u kojeg ćemo implementirati te funkcije koje smo napisali? Pitam jer je u rješenjima cijeli program, a očito pokušavam dobiti na vremenu tj. što manje pisati. :P :)
Zadatak sa strukturama iz prošlogodišnjeg kolokvija, trebalo je napisati tip dužina pa neke funkcije s njim i na kraju primjer poziva tih funkcija. Jel' nam dovoljno napisati samo npr. sort_niza_duzina(niz, n); (pa reći npr. da je n duljina niza) ili moramo baš neki programčić smisliti u kojeg ćemo implementirati te funkcije koje smo napisali? Pitam jer je u rješenjima cijeli program, a očito pokušavam dobiti na vremenu tj. što manje pisati. Razz Smile



_________________
Weit von hier fällt Gold von den Sternen
[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: 13:40 ned, 21. 6. 2009    Naslov: Citirajte i odgovorite

U rjesenjima su uvijek cijeli programi (cak i kad se trazi samo neka funkcija), da biste to mogli isprobati. 8) "Primjer poziva" je tocno ovo sto si prvo navela; ovo drugo se zove "napisite program koji poziva tu funkciju" ili tako nekako. :)
U rjesenjima su uvijek cijeli programi (cak i kad se trazi samo neka funkcija), da biste to mogli isprobati. Cool "Primjer poziva" je tocno ovo sto si prvo navela; ovo drugo se zove "napisite program koji poziva tu funkciju" ili tako nekako. 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
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