Používáte kalkulačku ve Windows? Jeden z vás nám do redakčního e-mailu napsal stížnost, že nepočítá zcela korektně podle elementárních matematických zásad. Máme na mysli samozřejmě prioritu početních operací, tedy učivo ze základní školy.
Jedná se o starý problém, který si však zaslouží připomenutí. Zvláště pak v případě, pokud byste potřebovali spočítat něco důležitého (Přeci jen by bylo nepříjemné vyhladit špatným výpočtem třeba v Temelíně polovinu Česka :-).
Když na kalkulačce budete chtít spočítat příklad 4 + 2 * 5, namísto správného výsledku 14 se zobrazí 30. Kalkulačka totiž ignoruje přednost násobení před sčítáním a příklad počítá sekvenčně tak, jak vyťukáváte číslice za sebou, tedy:
4 + 2 = 6 a dále 6 * 5 = 30
Správně by ale po klepnutí na tlačítko = měla zobrazit 14, neboť výraz 4 + 2 * 5 lze rozepsat jako 4 + 5 + 5. Právě proto má násobení přednost před sčítáním.




Po klepnutí na tlačítko = se bohužel zobrazí 30, což je samozřejmě špatně. Nutno podotknout, že se nejedná o nikterak nový problém. Stejným chováním trpí i starší kalkulačky Windows.
Kalkulačka ve Windows se začne korektně chovat leda v případě, že ji přepnete do vědeckého režimu!


Ve vědeckém režimu kalkulačky už posloupnost operací funguje dle pravidel a výsledkem je 14. Pokud si tohoto rozdílného chování nebude uživatel vědom, spočítá naprostý nesmysl.
Možná je toto nekorektní chování způsobeno jen tím, že Microsoft kopíruje primitivně-sekvenční chování starých levných plastových kalkulaček a vědecký režim už napodobuje ty lepší, na které si pamatujeme třeba ze středoškolských a vysokoškolských studií. Má to jeden háček, Microsoft je v tomto přístupu široko daleko jediný.



Kalkulačka z čistého Androidu 8.1, macOS a ta webová v Googlu. Všechny dodržují posloupnost, takže výsledkem je 14 a nikoliv 30 jako v případě Windows.
Když stejný výpočet bez uvedení závorek vyzkoušíte v kalkulačce na Androidu (přinejmenším na tom čistém), na webu, anebo na macOS, všichni dodržují i v základním režimu korektní posloupnost a výsledkem tedy bude číslo 14.
Rozpaky budí i programátorský režim kalkulačky
Nutno podotknout, že se nejedná o jediné zvláštní chování kalkulačky z Windows 10, které budí rozpaky. Jisté problémy má i programátorský režim. Pokud v něm výpočty omezíme na bajty (BYTE), bere v potaz pouze signed bajty, tedy bajty se znaménkem. Takový bajt může nabývat hodnot -127 až 127.

Bajt s šestnáctkovou hodnotou FF má tu desítkovou 255. To často znají i neprogramátoři díky hexadecimálnímu vyjádření RGB barvy (FFFFFF = plný bílý odstín RGB). V případě programátorského režimu kalkulačky ve Windows 10 však šestnáctková hodnota FF odpovídá desítkové hodnotě -1, protože kalkulačka počítá se signed bajty, tedy s bajty se znaménkem.
Základní unsigned bajt bez znaménka má ale přeci rozsah 0 až 255! Bohužel, kalkulačka Windows jej z nějakých těžko pochopitelných příčin nepodporuje, a tak se pro podobné počty se základními bajty naprosto nehodí, což je velká škoda.
Co udělat s novým počítačem s Windows, než ho začnete používat