Nevím jistě, jestli jde o chybu programu, nebo jen nápovědy. Ale česká nápověda je přesným opisem té anglické. Přes to asi o chybu nápovědy nepůjde. Začnu ale nápovědou - respektive makrem, které je tam uvedeno :
Sub ExampleMod
Print 10 Mod 2.5 ' vrátí 0
Print 10 / 2.5 ' vrátí 4
Print 10 Mod 5 ' vrátí 0
Print 10 / 5 ' vrátí 2
Print 5 Mod 10 ' vrátí 5
Print 5 / 10 ' vrátí 0.5
End Sub
Totéž je v LibreOffice stejně jako v Apache OpenOffice - obě nejnovější verze. Je to zase asi typ chyby, která už má letitou tradici z doby kdy existovalo jen samotné OpenOffice.
Výše uvedené makro má chybu hned v prvním příkladu. Ačkoliv je uvedeno Print 10 Mod 2.5 ' vrátí 0. Tak ve skutečnosti vrací jedničku. teoreticky jsou možné 2 typy chyby.
Buď se v operátoru Mod[Runtime] využívá array - pak dle příkladu array(0,1,2,3,4,5,6,7,8,9,10) = 11 prvků. Pak je logické že zbytek dělení je roven 1. proti této možnosti hovoří výsledek 10 Mod 5 ' vrátí 0 který je správně.
Zbývá jediná možnost : Operátor Mod (Modulo) umí pracovat jen s čísly oboru čísel N - tedy celá čísla. Prakticky to znamená, že desetinné číslo zaokrouhlí. Konkrétně pak počítá uvedený příklad 10 Mod 3(místo 2,5) ' a správně vrátí 1.
Vlastní zaokrouhlení může mít původ v anglické notaci desetinného čísla - tedy místo čárky - tečka. To ovšem platí pro vzorce sešitu. V Basicu platí tečka. Přes to jsem přepnul vše do angličtiny a odzkoušel se stejným výsledkem.
Paradoxně Modulo ve vzorci (trošku jiná notace MOD(x;y) funguje bez tohoto problému. Zápis v Basicu (x Mod y) ale zaokrouhluje. Modulo je pojem z matematiky a neměl by mít 'více verzí' a když už tak to musí nápověda vysvětlit (obsahovat).
Právě vzhledem k tomu se přikláním k názoru, že jde o chybu programu a ne nápovědy. Původně zřejmě operátor uměl pracovat s necelými čísly a bylo to správně. Mate mne to, že stejná chyba je také v ApacheOffice. Takže je to tradice zřejmě ještě z dob StarOffice - předchůdce OpenOffice.
Udělal jsem to jako makro pro případ, že potvrdíte tuto chybu i na jiných OS a bylo by potřeba to postnout na BugZilu. Chyba Mod[Runtime]
Editoval neutr (22. 8. 2014 11:02:01)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ