Diskuze: Otazka
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Jakub, kde tam vidis zaokruhlenie na cele cislo? Ak je v matematickej
operacii aspon jedno cislo desatinne, vysledok je desatinne cislo, navyse v kode
sa pracuje ako so zakladom s double a.
A ano, ak je splnena podmienka if(), vykona sa kod v jej tele, v tomto pripade
prikaz break, ktory sposobi vyskocenie z cyklu for() a tym ho ukonci.
Obávám se že nikoliv. Desetinná by musela být ta 1, kterou dělí.
např. výraz double a = 1/3*5.6 bude vždy a rovno 0.
Stačí když napíšes a= 1.0/3*a popř a = (double)1/3*a a vyjde to podle
očekávání.
Radek Chalupa
Prečo a hlavne kedy sa píše (double) pred operaciu 1/3*a ? A inak ide to takže super . Dakujem
To se musíš podívat na pořadí, v jakém bude překladač vyhodnocovat (případně generovat vyhodnocení) výrazu 1/3*a. Vzhledem k shodné prioritě operátorů dělení a násobení bude výraz vyhodnocován zleva doprava.
Nejprve přijde na řadu 1/3, kde dělenec i dělitel jsou celá čísla, a tak bude výsledkem opět celé číslo – v tomto případě nula. Následně je tato nula vynásobena činitelem a, jehož datový typ již nic nezmění na výsledku celé operace – nule.
V tomto případě je nejjednodušší ten výraz zapsat jako a / 3.
Je somarina sa tu pytat na otazky, ktore su zodpovedane v miestnych
tutorialoch.
Takze najprv studuj a az potom sa pytaj.
Zobrazeno 7 zpráv z 7.