Windows | Matematika | Tipy

Pozor na kalkulačku ve Windows, nebo propadnete z matematiky

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.

a6fecd63-b51a-4615-a26c-bac07ef2007bfbd8ba88-136e-4c29-9f74-a6ed8ded37bb91bffee9-b40a-4ff0-aa83-e9c2cbe509b933462e49-946a-4f96-a8bc-ef9a41c89e05
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!

c1ad08e8-2b8d-48cd-95f1-d387829b63650f6d39e2-04e0-446b-82b9-3e7a81107e8a
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ý.

c3965f0d-c305-48bb-9ee0-f9b781211ec7595e0f69-8418-4e99-9a43-71ff12c3146c565f1657-a82b-46f1-b6f2-ed59225563cf
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.

8ce78b66-62be-4933-ab26-faac17f35be9
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

Diskuze (131) Další článek: Británie vymýšlí způsob, jak dostat Zuckerberga k výslechu. Už delší dobu se mu nechce

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,