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

(2013) 3. zadaca Trokut
WWW:
Idite na Prethodno  1, 2, 3  Sljedeće
Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Računarski praktikum 1
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 21:32 pon, 29. 4. 2013    Naslov: Citirajte i odgovorite

[quote="dalmatinčica"]Trokut t(0.9999, 1.0001, 1);
[/quote]

Takav se primjer nece pojaviti. Svi ce primjeri biti lijepi ;)

[quote]
Što treba vratiti t.tipTrokuta()?
što treba vratiti t.kutovi() ako su kutevi 60, 60.01, 59.99?[/quote]

jednakostranican. Uvijek radite s uzim tipom. Znaci, ako nesto moze biti jednakostranican (do na 0.01) onda je jednakostranican
dalmatinčica (napisa):
Trokut t(0.9999, 1.0001, 1);


Takav se primjer nece pojaviti. Svi ce primjeri biti lijepi Wink

Citat:

Što treba vratiti t.tipTrokuta()?
što treba vratiti t.kutovi() ako su kutevi 60, 60.01, 59.99?


jednakostranican. Uvijek radite s uzim tipom. Znaci, ako nesto moze biti jednakostranican (do na 0.01) onda je jednakostranican



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Loo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 06. 2012. (16:02:07)
Postovi: (D0)16
Spol: žensko
Sarma = la pohva - posuda
84 = 85 - 1

PostPostano: 11:10 uto, 30. 4. 2013    Naslov: Citirajte i odgovorite

a je li Trokut(1.01, 1.02, 1.03) lijep primjer? :wink:
ne znam pod što bi ga svrstala, odnosno čini mi se da je za ovakve primjere nezgodno odlučiti na što ćemo "zaokružiti" koju stranicu.
treba li zapravo uopće zaokruživati stranice i kuteve? ili se ona primjedba da je dopuštena greška 0.01 odnosila više na ispis, odnosno da nije problem ako nam umjesto 59.01 ispiše 59 i slično.

zanimalo me i treba li funkcija za površinu računati površinu ako npr pozovemo JednakostranicanTrokut t(2,2,3)?
a je li Trokut(1.01, 1.02, 1.03) lijep primjer? Wink
ne znam pod što bi ga svrstala, odnosno čini mi se da je za ovakve primjere nezgodno odlučiti na što ćemo "zaokružiti" koju stranicu.
treba li zapravo uopće zaokruživati stranice i kuteve? ili se ona primjedba da je dopuštena greška 0.01 odnosila više na ispis, odnosno da nije problem ako nam umjesto 59.01 ispiše 59 i slično.

zanimalo me i treba li funkcija za površinu računati površinu ako npr pozovemo JednakostranicanTrokut t(2,2,3)?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 15:40 uto, 30. 4. 2013    Naslov: Citirajte i odgovorite

[quote="Loo"]a je li Trokut(1.01, 1.02, 1.03) lijep primjer? :wink:
ne znam pod što bi ga svrstala, odnosno čini mi se da je za ovakve primjere nezgodno odlučiti na što ćemo "zaokružiti" koju stranicu.
treba li zapravo uopće zaokruživati stranice i kuteve? ili se ona primjedba da je dopuštena greška 0.01 odnosila više na ispis, odnosno da nije problem ako nam umjesto 59.01 ispiše 59 i slično.[/quote]

ne treba zaokruzivati ulazne podatke. Da, primjedba se odnosi na rezultate
[quote]
zanimalo me i treba li funkcija za površinu računati površinu ako npr pozovemo JednakostranicanTrokut t(2,2,3)?[/quote]

jednakostranican ne bi trebao imati takav konstruktor
Loo (napisa):
a je li Trokut(1.01, 1.02, 1.03) lijep primjer? Wink
ne znam pod što bi ga svrstala, odnosno čini mi se da je za ovakve primjere nezgodno odlučiti na što ćemo "zaokružiti" koju stranicu.
treba li zapravo uopće zaokruživati stranice i kuteve? ili se ona primjedba da je dopuštena greška 0.01 odnosila više na ispis, odnosno da nije problem ako nam umjesto 59.01 ispiše 59 i slično.


ne treba zaokruzivati ulazne podatke. Da, primjedba se odnosi na rezultate
Citat:

zanimalo me i treba li funkcija za površinu računati površinu ako npr pozovemo JednakostranicanTrokut t(2,2,3)?


jednakostranican ne bi trebao imati takav konstruktor



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Bole13
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 11. 2008. (00:33:50)
Postovi: (5A)16
Spol: muško
Sarma = la pohva - posuda
= 5 - 0

PostPostano: 15:57 uto, 30. 4. 2013    Naslov: Citirajte i odgovorite

Je li onda dovoljno recimo u metodi ispravanTip u klasi Trokut provjeriti standardnu nejednakost trokuta ili moramo uzimati u obzir kod takvih provjera tu dozvoljenu razliku od 0.01?
Mislim dosta je razlike hoću li u tipTrokuta imati samo provjeru je li str1==str2 i str2==str3 za jednakostranican ili ću gledati upada li stranica str1 npr. u interval [str2-0.01, str2+0.01].
Je li onda dovoljno recimo u metodi ispravanTip u klasi Trokut provjeriti standardnu nejednakost trokuta ili moramo uzimati u obzir kod takvih provjera tu dozvoljenu razliku od 0.01?
Mislim dosta je razlike hoću li u tipTrokuta imati samo provjeru je li str1==str2 i str2==str3 za jednakostranican ili ću gledati upada li stranica str1 npr. u interval [str2-0.01, str2+0.01].


[Vrh]
Korisnički profil Pošaljite privatnu poruku
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 16:15 uto, 30. 4. 2013    Naslov: Citirajte i odgovorite

[quote="Bole13"]Je li onda dovoljno recimo u metodi ispravanTip u klasi Trokut provjeriti standardnu nejednakost trokuta ili moramo uzimati u obzir kod takvih provjera tu dozvoljenu razliku od 0.01?
Mislim dosta je razlike hoću li u tipTrokuta imati samo provjeru je li str1==str2 i str2==str3 za jednakostranican ili ću gledati upada li stranica str1 npr. u interval [str2-0.01, str2+0.01].[/quote]


ne treba provjeravati dozvoljenu razliku u tom slucaju
Bole13 (napisa):
Je li onda dovoljno recimo u metodi ispravanTip u klasi Trokut provjeriti standardnu nejednakost trokuta ili moramo uzimati u obzir kod takvih provjera tu dozvoljenu razliku od 0.01?
Mislim dosta je razlike hoću li u tipTrokuta imati samo provjeru je li str1==str2 i str2==str3 za jednakostranican ili ću gledati upada li stranica str1 npr. u interval [str2-0.01, str2+0.01].



ne treba provjeravati dozvoljenu razliku u tom slucaju



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
rom
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2010. (11:10:35)
Postovi: (2D)16
Sarma = la pohva - posuda
= 8 - 4

PostPostano: 19:00 uto, 30. 4. 2013    Naslov: Citirajte i odgovorite

ne razumijem , sada ste rekli
[quote="GauSs_"]ne treba provjeravati dozvoljenu razliku u tom slucaju[/quote]
a par postova gore
[quote="GauSs_"]jednakostranican. Uvijek radite s uzim tipom. Znaci, ako nesto moze biti jednakostranican (do na 0.01) onda je jednakostranican[/quote]

ako svom programu posaljem tocke (1,2) (4,2) (2.5,4.59808) konstruktoru za Trokut meni ce ispisati za kuteve da su 59.9999 i 60, a za tipTrokuta() ce mi ispisati da je jednakokracan jer provjeravam samo jednakost stranica bez dopustene greske

a ako te tocke posaljem konstruktoru za JednakostranicanTrokut past ce mi funkcija ispravanTip() jer mi je jedna stranica 3 a druge dvije 3.000001.

pretpostavljam da ce takvih primjera biti, a to znaci da ipak trebamo provjeravati i uz odstupanje od 0.01?
ne razumijem , sada ste rekli
GauSs_ (napisa):
ne treba provjeravati dozvoljenu razliku u tom slucaju

a par postova gore
GauSs_ (napisa):
jednakostranican. Uvijek radite s uzim tipom. Znaci, ako nesto moze biti jednakostranican (do na 0.01) onda je jednakostranican


ako svom programu posaljem tocke (1,2) (4,2) (2.5,4.59808) konstruktoru za Trokut meni ce ispisati za kuteve da su 59.9999 i 60, a za tipTrokuta() ce mi ispisati da je jednakokracan jer provjeravam samo jednakost stranica bez dopustene greske

a ako te tocke posaljem konstruktoru za JednakostranicanTrokut past ce mi funkcija ispravanTip() jer mi je jedna stranica 3 a druge dvije 3.000001.

pretpostavljam da ce takvih primjera biti, a to znaci da ipak trebamo provjeravati i uz odstupanje od 0.01?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 19:58 uto, 30. 4. 2013    Naslov: Citirajte i odgovorite

[quote="rom"]ne razumijem , sada ste rekli
[quote="GauSs_"]ne treba provjeravati dozvoljenu razliku u tom slucaju[/quote]
a par postova gore
[quote="GauSs_"]jednakostranican. Uvijek radite s uzim tipom. Znaci, ako nesto moze biti jednakostranican (do na 0.01) onda je jednakostranican[/quote]
[/quote]

To se odnosilo na kutove. Stvari koje vi racunate (vase rezultate mozete gledati do tocnosti 0.01).

[quote]
ako svom programu posaljem tocke (1,2) (4,2) (2.5,4.59808) konstruktoru za Trokut meni ce ispisati za kuteve da su 59.9999 i 60, a za tipTrokuta() ce mi ispisati da je jednakokracan jer provjeravam samo jednakost stranica bez dopustene greske

a ako te tocke posaljem konstruktoru za JednakostranicanTrokut past ce mi funkcija ispravanTip() jer mi je jedna stranica 3 a druge dvije 3.000001.

pretpostavljam da ce takvih primjera biti, a to znaci da ipak trebamo provjeravati i uz odstupanje od 0.01?[/quote]

Nece biti takvih primjera!!!
rom (napisa):
ne razumijem , sada ste rekli
GauSs_ (napisa):
ne treba provjeravati dozvoljenu razliku u tom slucaju

a par postova gore
GauSs_ (napisa):
jednakostranican. Uvijek radite s uzim tipom. Znaci, ako nesto moze biti jednakostranican (do na 0.01) onda je jednakostranican



To se odnosilo na kutove. Stvari koje vi racunate (vase rezultate mozete gledati do tocnosti 0.01).

Citat:

ako svom programu posaljem tocke (1,2) (4,2) (2.5,4.59808) konstruktoru za Trokut meni ce ispisati za kuteve da su 59.9999 i 60, a za tipTrokuta() ce mi ispisati da je jednakokracan jer provjeravam samo jednakost stranica bez dopustene greske

a ako te tocke posaljem konstruktoru za JednakostranicanTrokut past ce mi funkcija ispravanTip() jer mi je jedna stranica 3 a druge dvije 3.000001.

pretpostavljam da ce takvih primjera biti, a to znaci da ipak trebamo provjeravati i uz odstupanje od 0.01?


Nece biti takvih primjera!!!



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Loo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 11. 06. 2012. (16:02:07)
Postovi: (D0)16
Spol: žensko
Sarma = la pohva - posuda
84 = 85 - 1

PostPostano: 21:25 sri, 1. 5. 2013    Naslov: Citirajte i odgovorite

[quote="GauSs_"]
[quote]
zanimalo me i treba li funkcija za površinu računati površinu ako npr pozovemo JednakostranicanTrokut t(2,2,3)?[/quote]

jednakostranican ne bi trebao imati takav konstruktor[/quote]

da, isprike, napisala sam to napamet. mislila sam pitati treba li funkcija računati površinu ako stvorimo JednakostranicanTrokut tako da pošaljemo koordinate nečega što je trokut, ali nije jednakostraničan. ili neće biti takvih situacija?
GauSs_ (napisa):

Citat:

zanimalo me i treba li funkcija za površinu računati površinu ako npr pozovemo JednakostranicanTrokut t(2,2,3)?


jednakostranican ne bi trebao imati takav konstruktor


da, isprike, napisala sam to napamet. mislila sam pitati treba li funkcija računati površinu ako stvorimo JednakostranicanTrokut tako da pošaljemo koordinate nečega što je trokut, ali nije jednakostraničan. ili neće biti takvih situacija?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 22:45 sri, 1. 5. 2013    Naslov: Citirajte i odgovorite

[quote="Loo"][quote="GauSs_"]
[quote]
zanimalo me i treba li funkcija za površinu računati površinu ako npr pozovemo JednakostranicanTrokut t(2,2,3)?[/quote]

jednakostranican ne bi trebao imati takav konstruktor[/quote]

da, isprike, napisala sam to napamet. mislila sam pitati treba li funkcija računati površinu ako stvorimo JednakostranicanTrokut tako da pošaljemo koordinate nečega što je trokut, ali nije jednakostraničan. ili neće biti takvih situacija?[/quote]

nece biti takvih situacija
Loo (napisa):
GauSs_ (napisa):

Citat:

zanimalo me i treba li funkcija za površinu računati površinu ako npr pozovemo JednakostranicanTrokut t(2,2,3)?


jednakostranican ne bi trebao imati takav konstruktor


da, isprike, napisala sam to napamet. mislila sam pitati treba li funkcija računati površinu ako stvorimo JednakostranicanTrokut tako da pošaljemo koordinate nečega što je trokut, ali nije jednakostraničan. ili neće biti takvih situacija?


nece biti takvih situacija



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
moni_poni
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 25. 01. 2010. (19:48:19)
Postovi: (49)16
Sarma = la pohva - posuda
= 3 - 1

PostPostano: 12:43 čet, 2. 5. 2013    Naslov: Citirajte i odgovorite

Moraju li se u testnom primjeru kutevi 120 i 30 ispisivati tim redoslijedom ili redoslijed nije bitan?
Moraju li se u testnom primjeru kutevi 120 i 30 ispisivati tim redoslijedom ili redoslijed nije bitan?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 13:20 čet, 2. 5. 2013    Naslov: Citirajte i odgovorite

[quote="moni_poni"]Moraju li se u testnom primjeru kutevi 120 i 30 ispisivati tim redoslijedom ili redoslijed nije bitan?[/quote]

Ispisivat ce se kao 30 i 120 jer je set sortiran uzlazno za double-ove
moni_poni (napisa):
Moraju li se u testnom primjeru kutevi 120 i 30 ispisivati tim redoslijedom ili redoslijed nije bitan?


Ispisivat ce se kao 30 i 120 jer je set sortiran uzlazno za double-ove



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Pavlek
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2011. (21:05:53)
Postovi: (E)16
Spol: muško
Sarma = la pohva - posuda
= 8 - 1

PostPostano: 21:10 čet, 2. 5. 2013    Naslov: Citirajte i odgovorite

Što treba vratiti funkcija tipTrokuta() za Trokut A(2,2,5) tj. ako nije trokut?
Što treba vratiti funkcija tipTrokuta() za Trokut A(2,2,5) tj. ako nije trokut?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 21:58 čet, 2. 5. 2013    Naslov: Citirajte i odgovorite

[quote="Pavlek"]Što treba vratiti funkcija tipTrokuta() za Trokut A(2,2,5) tj. ako nije trokut?[/quote]

Nista jer ju necu ni pozivati u tom slucaju. funkcije cu pozivati samo ako je ispravanTip() true
Pavlek (napisa):
Što treba vratiti funkcija tipTrokuta() za Trokut A(2,2,5) tj. ako nije trokut?


Nista jer ju necu ni pozivati u tom slucaju. funkcije cu pozivati samo ako je ispravanTip() true



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Phoenix
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 05. 2010. (18:46:07)
Postovi: (164)16
Sarma: -

PostPostano: 17:33 pet, 3. 5. 2013    Naslov: Citirajte i odgovorite

Povezano s onim što je vsego napisao [url=http://degiorgi.math.hr/forum/viewtopic.php?p=181794#181794]u ovom postu[/url], imam potrebu nadodati malu napomenu...

Dobio sam nekoliko upita na mail oko zadaće i do sada se svi upiti zasnivaju na to zašto izračuna dva identična broja, a uvjet jednakosti padne.
Dakle, vi napišete ovakav dio koda:

[code:1]double i, j;
// ovdje ide neko računanje i pohranjivanje rezultata u varijable i i j
cout << i << " " << j << endl;
if( i==j )
cout << "jednaki su";
else
cout << "nisu jednaki";[/code:1]

Ali, iz nekog razloga, program ispiše, recimo, sljedeće:

[code:1]8 8
nisu jednaki[/code:1]

I kako ovo popraviti?
Nekako je jasno prihvatiti činjenicu da ono što ispisuje na ekran nije baš identično kao i stanje zapisano u memoriji (inače bi [tt]if[/tt] uvjet prošao). No, razlikuju se u nekoj dovoljno malenoj znamenci zbog koje gornji uvjet pada.
Jedan način je da napišete uvjet kakav je vsego napisao. Nekim kolegama sam već napisao identičan uvjet, no u nešto drugačijem zapisu (a sada ga pišem s manje nula jer vidim da nije potrebna tolika točnost koliku sam na mail pisao):

[code:1]
if( i+0.001 >= j && j+0.001 >= i)
[/code:1]

Kada umjesto uvjeta jednakosti napišete gornji vsegin ili ovaj moj uvjet, dobit ćete ispis:

[code:1]8 8
jednaki su[/code:1]

Ako navedete neki manji broj u zbrajanju, recimo [tex]0.00001[/tex], dobit ćete veću preciznost i bolje računanje u zadatku, no ako stavite previše nula program će se ponašati kao da varijablama pribraja broj [tex]0[/tex], tako da niste ništa novo dobili.

Slične probleme imat ćete i na drugim mjestima u programu. Primjerice: događa li vam se da u zadatku imate jednakokračan trokut, a pri ispisivanju kuteva trokuta dvaput ili čak triput ispiše kut [tex]60°[/tex] umjesto jedan put? Pripazite koje vrijednosti zapravo ubacujete u dani set!

Ovo je inače koristan trik u praksi u slučaju da vam program ne računa najbolje neke vrijednosti. Meni osobno je pomogao u prošlogodišnjoj prvoj zadaći u zadatku Petshop (kada je trebalo pretvarati kupovnu cijenu u prodajnu, pa smo morali množiti dva doublea; nešto slično tome). :)
Povezano s onim što je vsego napisao u ovom postu, imam potrebu nadodati malu napomenu...

Dobio sam nekoliko upita na mail oko zadaće i do sada se svi upiti zasnivaju na to zašto izračuna dva identična broja, a uvjet jednakosti padne.
Dakle, vi napišete ovakav dio koda:

Kod:
double i, j;
// ovdje ide neko računanje i pohranjivanje rezultata u varijable i i j
cout << i << " " << j << endl;
if( i==j )
   cout << "jednaki su";
else
   cout << "nisu jednaki";


Ali, iz nekog razloga, program ispiše, recimo, sljedeće:

Kod:
8 8
nisu jednaki


I kako ovo popraviti?
Nekako je jasno prihvatiti činjenicu da ono što ispisuje na ekran nije baš identično kao i stanje zapisano u memoriji (inače bi if uvjet prošao). No, razlikuju se u nekoj dovoljno malenoj znamenci zbog koje gornji uvjet pada.
Jedan način je da napišete uvjet kakav je vsego napisao. Nekim kolegama sam već napisao identičan uvjet, no u nešto drugačijem zapisu (a sada ga pišem s manje nula jer vidim da nije potrebna tolika točnost koliku sam na mail pisao):

Kod:

if( i+0.001 >= j && j+0.001 >= i)


Kada umjesto uvjeta jednakosti napišete gornji vsegin ili ovaj moj uvjet, dobit ćete ispis:

Kod:
8 8
jednaki su


Ako navedete neki manji broj u zbrajanju, recimo [tex]0.00001[/tex], dobit ćete veću preciznost i bolje računanje u zadatku, no ako stavite previše nula program će se ponašati kao da varijablama pribraja broj [tex]0[/tex], tako da niste ništa novo dobili.

Slične probleme imat ćete i na drugim mjestima u programu. Primjerice: događa li vam se da u zadatku imate jednakokračan trokut, a pri ispisivanju kuteva trokuta dvaput ili čak triput ispiše kut [tex]60°[/tex] umjesto jedan put? Pripazite koje vrijednosti zapravo ubacujete u dani set!

Ovo je inače koristan trik u praksi u slučaju da vam program ne računa najbolje neke vrijednosti. Meni osobno je pomogao u prošlogodišnjoj prvoj zadaći u zadatku Petshop (kada je trebalo pretvarati kupovnu cijenu u prodajnu, pa smo morali množiti dva doublea; nešto slično tome). Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Gost






PostPostano: 18:01 pet, 3. 5. 2013    Naslov: Citirajte i odgovorite

Jesu li jednakostranični trokuti podvrsta jednakokračnih, odnosno što bi trebala vratiti fja ispravanTip za JednakokracanTrokut a(2,2)?
Jesu li jednakostranični trokuti podvrsta jednakokračnih, odnosno što bi trebala vratiti fja ispravanTip za JednakokracanTrokut a(2,2)?


[Vrh]
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 22:35 pet, 3. 5. 2013    Naslov: Citirajte i odgovorite

[quote="Anonymous"]Jesu li jednakostranični trokuti podvrsta jednakokračnih, odnosno što bi trebala vratiti fja ispravanTip za JednakokracanTrokut a(2,2)?[/quote]

Jednakostranicni su podvrsta jednakokracnih. Vraca true
Anonymous (napisa):
Jesu li jednakostranični trokuti podvrsta jednakokračnih, odnosno što bi trebala vratiti fja ispravanTip za JednakokracanTrokut a(2,2)?


Jednakostranicni su podvrsta jednakokracnih. Vraca true



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
dalmatinčica
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 10. 2011. (18:46:54)
Postovi: (AC)16
Sarma = la pohva - posuda
= 10 - 4

PostPostano: 8:47 sub, 4. 5. 2013    Naslov: Citirajte i odgovorite

[quote="Phoenix"]Povezano s onim što je vsego napisao [url=http://degiorgi.math.hr/forum/viewtopic.php?p=181794#181794]u ovom postu[/url], imam potrebu nadodati malu napomenu...

Dobio sam nekoliko upita na mail oko zadaće i do sada se svi upiti zasnivaju na to zašto izračuna dva identična broja, a uvjet jednakosti padne.
Dakle, vi napišete ovakav dio koda:

[code:1]double i, j;
// ovdje ide neko računanje i pohranjivanje rezultata u varijable i i j
cout << i << " " << j << endl;
if( i==j )
cout << "jednaki su";
else
cout << "nisu jednaki";[/code:1]

Ali, iz nekog razloga, program ispiše, recimo, sljedeće:

[code:1]8 8
nisu jednaki[/code:1]

I kako ovo popraviti?
Nekako je jasno prihvatiti činjenicu da ono što ispisuje na ekran nije baš identično kao i stanje zapisano u memoriji (inače bi [tt]if[/tt] uvjet prošao). No, razlikuju se u nekoj dovoljno malenoj znamenci zbog koje gornji uvjet pada.
Jedan način je da napišete uvjet kakav je vsego napisao. Nekim kolegama sam već napisao identičan uvjet, no u nešto drugačijem zapisu (a sada ga pišem s manje nula jer vidim da nije potrebna tolika točnost koliku sam na mail pisao):

[code:1]
if( i+0.001 >= j && j+0.001 >= i)
[/code:1]

Kada umjesto uvjeta jednakosti napišete gornji vsegin ili ovaj moj uvjet, dobit ćete ispis:

[code:1]8 8
jednaki su[/code:1]

Ako navedete neki manji broj u zbrajanju, recimo [tex]0.00001[/tex], dobit ćete veću preciznost i bolje računanje u zadatku, no ako stavite previše nula program će se ponašati kao da varijablama pribraja broj [tex]0[/tex], tako da niste ništa novo dobili.

Slične probleme imat ćete i na drugim mjestima u programu. Primjerice: događa li vam se da u zadatku imate jednakokračan trokut, a pri ispisivanju kuteva trokuta dvaput ili čak triput ispiše kut [tex]60°[/tex] umjesto jedan put? Pripazite koje vrijednosti zapravo ubacujete u dani set!

Ovo je inače koristan trik u praksi u slučaju da vam program ne računa najbolje neke vrijednosti. Meni osobno je pomogao u prošlogodišnjoj prvoj zadaći u zadatku Petshop (kada je trebalo pretvarati kupovnu cijenu u prodajnu, pa smo morali množiti dva doublea; nešto slično tome). :)[/quote]

znači li onda to da kad provjeravamo da li stranice čine trokut da pišemo:
abs(a+b-c)<0.01 ili 0.02
Phoenix (napisa):
Povezano s onim što je vsego napisao u ovom postu, imam potrebu nadodati malu napomenu...

Dobio sam nekoliko upita na mail oko zadaće i do sada se svi upiti zasnivaju na to zašto izračuna dva identična broja, a uvjet jednakosti padne.
Dakle, vi napišete ovakav dio koda:

Kod:
double i, j;
// ovdje ide neko računanje i pohranjivanje rezultata u varijable i i j
cout << i << " " << j << endl;
if( i==j )
   cout << "jednaki su";
else
   cout << "nisu jednaki";


Ali, iz nekog razloga, program ispiše, recimo, sljedeće:

Kod:
8 8
nisu jednaki


I kako ovo popraviti?
Nekako je jasno prihvatiti činjenicu da ono što ispisuje na ekran nije baš identično kao i stanje zapisano u memoriji (inače bi if uvjet prošao). No, razlikuju se u nekoj dovoljno malenoj znamenci zbog koje gornji uvjet pada.
Jedan način je da napišete uvjet kakav je vsego napisao. Nekim kolegama sam već napisao identičan uvjet, no u nešto drugačijem zapisu (a sada ga pišem s manje nula jer vidim da nije potrebna tolika točnost koliku sam na mail pisao):

Kod:

if( i+0.001 >= j && j+0.001 >= i)


Kada umjesto uvjeta jednakosti napišete gornji vsegin ili ovaj moj uvjet, dobit ćete ispis:

Kod:
8 8
jednaki su


Ako navedete neki manji broj u zbrajanju, recimo [tex]0.00001[/tex], dobit ćete veću preciznost i bolje računanje u zadatku, no ako stavite previše nula program će se ponašati kao da varijablama pribraja broj [tex]0[/tex], tako da niste ništa novo dobili.

Slične probleme imat ćete i na drugim mjestima u programu. Primjerice: događa li vam se da u zadatku imate jednakokračan trokut, a pri ispisivanju kuteva trokuta dvaput ili čak triput ispiše kut [tex]60°[/tex] umjesto jedan put? Pripazite koje vrijednosti zapravo ubacujete u dani set!

Ovo je inače koristan trik u praksi u slučaju da vam program ne računa najbolje neke vrijednosti. Meni osobno je pomogao u prošlogodišnjoj prvoj zadaći u zadatku Petshop (kada je trebalo pretvarati kupovnu cijenu u prodajnu, pa smo morali množiti dva doublea; nešto slično tome). Smile


znači li onda to da kad provjeravamo da li stranice čine trokut da pišemo:
abs(a+b-c)<0.01 ili 0.02


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


Pridružen/a: 15. 05. 2010. (18:46:07)
Postovi: (164)16
Sarma: -

PostPostano: 10:52 sub, 4. 5. 2013    Naslov: Citirajte i odgovorite

Ovo prvo. Odnosno, ne smije vrijediti [tex]a+b \leq c+0.01[/tex] (oblik uvjeta kakvog bih ja napisao, ti sebi prilagodi po želji :) ).
Nije bitno gledati da je [tex]a+0.01+b+0.01 > c[/tex] jer gledaš grešku u konačnom rezultatu kojeg si dobila. Dakle, izračunaš [tex]a+b[/tex], a onda tek dodaš [tex]0.01[/tex] da popraviš eventualnu grešku. :)
Ovo prvo. Odnosno, ne smije vrijediti [tex]a+b \leq c+0.01[/tex] (oblik uvjeta kakvog bih ja napisao, ti sebi prilagodi po želji Smile ).
Nije bitno gledati da je [tex]a+0.01+b+0.01 > c[/tex] jer gledaš grešku u konačnom rezultatu kojeg si dobila. Dakle, izračunaš [tex]a+b[/tex], a onda tek dodaš [tex]0.01[/tex] da popraviš eventualnu grešku. Smile


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


Pridružen/a: 26. 10. 2010. (11:10:35)
Postovi: (2D)16
Sarma = la pohva - posuda
= 8 - 4

PostPostano: 11:26 sub, 4. 5. 2013    Naslov: Citirajte i odgovorite

mi se zapravo ne trebamo zamarati sa tim jednakostima odnosno nejednakostima, jer je asistent rekao da nece stavljati takve primjere, ovo je samo savjet za bolje programiranje, jel?
mi se zapravo ne trebamo zamarati sa tim jednakostima odnosno nejednakostima, jer je asistent rekao da nece stavljati takve primjere, ovo je samo savjet za bolje programiranje, jel?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
GauSs_
Moderator
Moderator


Pridružen/a: 28. 01. 2004. (21:01:17)
Postovi: (53C)16
Spol: muško
Sarma = la pohva - posuda
72 = 110 - 38
Lokacija: 231

PostPostano: 12:02 sub, 4. 5. 2013    Naslov: Citirajte i odgovorite

[quote="rom"]mi se zapravo ne trebamo zamarati sa tim jednakostima odnosno nejednakostima, jer je asistent rekao da nece stavljati takve primjere, ovo je samo savjet za bolje programiranje, jel?[/quote]

Ne, trebate se zamarati! Ja cu davati lijepe primjere na ulazu. Dakle, necu dati nesto poput Trokut(2,2.001,1.999). Medjutim, kutovi mogu imati pogresku pri izracunu pa cete vi morati paziti na taj dio.
rom (napisa):
mi se zapravo ne trebamo zamarati sa tim jednakostima odnosno nejednakostima, jer je asistent rekao da nece stavljati takve primjere, ovo je samo savjet za bolje programiranje, jel?


Ne, trebate se zamarati! Ja cu davati lijepe primjere na ulazu. Dakle, necu dati nesto poput Trokut(2,2.001,1.999). Medjutim, kutovi mogu imati pogresku pri izracunu pa cete vi morati paziti na taj dio.



_________________
The purpose of life is to end
Malo sam lose volje...

Prosle su godine kolokviji bili laksi, zar ne?
[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 2. godine -> Računarski praktikum 1 Vremenska zona: GMT + 01:00.
Idite na Prethodno  1, 2, 3  Sljedeće
Stranica 2 / 3.

 
Forum(o)Bir:  
Možete otvarati nove teme.
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 can 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