Prikazi cijelu temu 14.12.2013 21:31
dex Van mreze
Super Moderator
Registrovan od:23.02.2012
Lokacija:Knjazevac


Predmet:Re: C Zadaci za ispit - pomoc
Ne poznajem naredbe C-a, ali bih da primetim da je kod 5 zadatka poenta u tome da se kao uslov ne uzme

pow(x, 0.3333) = round(pow(x, 0.3333))

vec

abs(pow(x,0.3333) - round(pow(x, 0.3333)) < 0.00001

Naime racunari kod izracunavanja vrse zaokruzivanje. Tako da je moguce da se razkuju u 17-toj decimali. Uostalom, kubni koren je pow(x, 0.33333333333...)

Probajte da provrtite kroz petlju, na primer od 1 do 100

If (pow(sqrt(x), 2) == x // da li je kvadrat korena nekog broja jednak tom broju
cout << "Isti su " << endl;
else
cout << "Nisu isti" << endl;

Iznenadicete se rezultatom!

Pravilo koje vazi uopste u programiranju:

Ako imamo

a = neko izracunavanje;
b = neko drugo izracunavanje ili neki broj;

nepravilno je

if (a == b)

vec treba

if ( abs(a - b) < 0.00001)

jer je moguce da se zbog zaokruzivanja pri racunanju razlika javi na ko zna kojoj decimali

ps. radi se o pseudo – kodu, ne poznajem sintaksu C-a