mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-18 06:06:01 -06:00
128 lines
7.4 KiB
Text
128 lines
7.4 KiB
Text
HELP_TOPIC("AppDoc", "", "CalcNode", "CS-CZ windows-1250", "")
|
|
HELP_TEXT(
|
|
"[3 $$0,0#00000000000000000000000000000000:Default]\r\n"
|
|
"[b100;a50;*3 $$1,0#23046025415494101427921008701515:Paragraph]\r\n"
|
|
"[{0}%EN-US \r\n"
|
|
"[s0; Výrazový kalkulátor je výpočetní systém, který umožňuje počítat \r\n"
|
|
"hodnoty uživatelsky zadaných výrazů. Vstupem pro výpočet je [/ zdrojový \r\n"
|
|
"text výrazu], což je textový řetězec obsahující výraz utvořený \r\n"
|
|
"podle níže popsaných pravidel, a [/ kontext výpočtu], což je vazba \r\n"
|
|
"mezi výrazem a hostitelskou aplikací, ve které je výrazový systém \r\n"
|
|
"použit. Kontext výpočtu může podle charakteru aplikace definovat \r\n"
|
|
"například přídavné funkce a konstanty v_závislosti na aktuálním \r\n"
|
|
"nastavení a_hodnotách zpracovávaných v_hostitelské aplikaci.&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0; Syntaxe výrazů rámcově vychází z_konvencí pro výrazy v_[/ programovacím \r\n"
|
|
"jazyce C], obdobně jako Java nebo JavaScript. Základem výrazu \r\n"
|
|
"jsou [/ literály] (čísla, textové řetězce uvedené přímo ve zdrojovém \r\n"
|
|
"textu výrazu), [/ proměnné ](identifikátory odkazující se na konstanty \r\n"
|
|
"nebo funkce podle kontextu výpočtu výrazu) a [/ operátory], pomocí \r\n"
|
|
"nichž lze hodnoty různě kombinovat a_zpracovávat.&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0; Základní výrazový systém podporuje práci s_hodnotami následujících \r\n"
|
|
"datových typů:&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0;i150;O0; [* číslo] (v_plovoucí řádové čárce)&]\r\n"
|
|
"[s0;i150;O0; [* řetězec] (textová hodnota)&]\r\n"
|
|
"[s0;i150;O0;* datum/čas&]\r\n"
|
|
"[s0;i150;O0; [* pole hodnot] (jednotlivé prvky pole mohou být i různých \r\n"
|
|
"typů)&]\r\n"
|
|
"[s0;i150;O0; [* lambda-výraz] (část výpočetního výrazu, kterou lze \r\n"
|
|
"předávat do funkcí jako parametr)&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0; Kontext výrazu (hostitelská aplikace používající výrazový systém) \r\n"
|
|
"může podle svých potřeb rozšiřovat tento základní repertoár o \r\n"
|
|
"další datové typy a_funkce.&]\r\n"
|
|
"[s1; Operátory&]\r\n"
|
|
"[s0; Operátory slouží podobně jako funkce k_výpočtu hodnot z_jiných \r\n"
|
|
"zdrojových hodnot. Narozdíl od funkce, kterou lze vyvolat zápisem \r\n"
|
|
"[/ identifikátor`_funkce(parametr1, parametr2...)], se operátory \r\n"
|
|
"obvykle používají způsobem [/ výraz1 <operátor> výraz2] (tzv. [/ binární \r\n"
|
|
"operátor]), případně [/ <operátor> výraz] ([/ prefixový unární operátor]). \r\n"
|
|
"Podrobný popis operátory a_funkcí s_povolenými typy parametrů \r\n"
|
|
"naleznete v_části \r\n"
|
|
"{:LINK:dpp`:`/`/AppDoc`/`/host`/`/calc`_summary\t\t:}\r\n"
|
|
".&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0; Kromě toho výrazový systém podporuje několik speciálních operátorů \r\n"
|
|
"s_jiným způsobem zápisu. Jedná se o_následující operátory:&]\r\n"
|
|
"[s1; `[<p1>, <p2>, <p3>, ...`]: konstruktor pole&]\r\n"
|
|
"[s0; Vložením posloupnosti hodnot nebo výrazů oddělených čárkami \r\n"
|
|
"do hranatých závorek vznikne pole obsahující zadané hodnoty jako \r\n"
|
|
"své prvky.&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0;* Příklad: `[1, 2, 3 + 4`]&]\r\n"
|
|
"[s1; `[<p1> .. <p2>`]: konstruktor posloupnosti&]\r\n"
|
|
"[s0; Pokud do hranatých závorek napíšete dvě číselné hodnoty nebo \r\n"
|
|
"výrazy oddělené dvěma tečkami (dvě tečky musí následovat ihned \r\n"
|
|
"po sobě bez mezery), výsledkem takto vytvořeného výrazu je pole \r\n"
|
|
"obsahující posloupnost hodnot [/ p1, p1 + 1, p1 + 2, p1 + 3] atd. \r\n"
|
|
"až po hodnotu [/ p2]. Pokud rozdíl hodnot [/ p1] a [/ p2 ]není přesně \r\n"
|
|
"celočíselný, poslední prvek pole bude mít hodnotu v_rozsahu [/ `[p2-0.5, \r\n"
|
|
"p2+0.5)]. Pokud je [/ p2 <= p1 - 0.5], je výsledkem prázdné pole \r\n"
|
|
"(pole neobsahující žádný prvek).&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0;* Příklad: `[1..7`] = `[1,2,3,4,5,6,7`]&]\r\n"
|
|
"[s1; <p1> ? <p2> : <p3>: podmíněný výraz&]\r\n"
|
|
"[s0; Podmíněný výraz lze použít v_situaci, kdy potřebujete rozhodnout \r\n"
|
|
"pro jednu ze dvou variant na základě platnosti logické podmínky. \r\n"
|
|
"Při výpočtu výrazu se nejprve vyhodnotí [/ p1]; pokud je jeho logická \r\n"
|
|
"hodnota pravdivá (je to nenulové číslo nebo neprázdný textový \r\n"
|
|
"řetězec), vyhodnotí se dále výraz [/ p2] a jeho hodnota je výsledkem \r\n"
|
|
"celého výrazu ?:. Pokud podmínka neplatí, vyhodnotí se obdobně \r\n"
|
|
"výraz [/ p3] a výsledkem výrazu je jeho hodnota.&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0;/ [*/ Příklad][/ : ][*/ 5 % 2 == 0 ? \"sudé\" : \"liché\"] = \"liché\"&]\r\n"
|
|
"[s1; <p1>{<m1>, <v1>, <m2>, <v2>, ... }: podmíněný výraz s výběrem&]\r\n"
|
|
"[s0; Pomocí funkce lze vybrat jednu ze zadaných hodnot (výrazů) podle \r\n"
|
|
"hodnoty řídicího výrazu [/ p1]. Při výpočtu se nejprve vyhodnotí \r\n"
|
|
"tento výraz; další postup závisí na počtu parametrů v_složených \r\n"
|
|
"závorkách.&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0;i150;O0;/ [*/ 1 parametr][/ : pokud je v_závorkách jen jeden výraz \r\n"
|
|
"(]m1[/ ), otestuje se, zda je hodnota výrazu ]p1 [/ prázdná (][/ \r\n"
|
|
"{:LINK:dpp`:`/`/AppDoc`/`/`:`:`/`/Calc`$Cis`_nullV\tis`_null\t:}\r\n"
|
|
"][/ ). Pokud prázdná není, ponechá se výraz ]p1[/ beze změny a vrátí \r\n"
|
|
"se jako výsledek celého zápisu. Pokud je hodnota prázdná, vyhodnotí \r\n"
|
|
"se výraz ]m1[/ a výsledkem celého výrazu {} je pak hodnota ]m1.&]\r\n")
|
|
HELP_TEXT(
|
|
"[s0;i150;O0; [* sudý počet parametrů]: pokud je počet parametrů sudý \r\n"
|
|
"(a nenulový), program po vyhodnocení [/ p1] postupně prochází výrazy \r\n"
|
|
"v_závorkách na [/ lichých pozicích] ([/ m1, m2, m3...]). Každý tento \r\n"
|
|
"výraz vyhodnotí a porovná s hodnotou výrazu [/ p1]; pokud se hodnoty \r\n"
|
|
"shodují, program vyhodnotí a vrátí odpovídající výraz na následující \r\n"
|
|
"sudé pozici ([/ v1, v2, v3...]). Pokud ani jedna z hodnot [/ m1, \r\n"
|
|
"m2, m3]... není rovna [/ p1], je výsledkem výrazu přímo původní \r\n"
|
|
"[/ p1] beze změny.&]\r\n"
|
|
"[s0;i150;O0; [* lichý počet parametrů]: pokud je počet parametrů lichý \r\n"
|
|
"(a větší než jeden), program po vyhodnocení obdobně jako v_případě \r\n"
|
|
"sudého počtu parametrů testuje rovnost s_parametry na lichých \r\n"
|
|
"pozicích [/ m1, m2, m3...]. a_v_případě rovnosti vrátí parametr \r\n"
|
|
"na následující nulové pozici. Pokud není nalezena ani v_jednom \r\n"
|
|
"z případů shodná hodnota, program vyhodnotí a_vrátí poslední \r\n"
|
|
"(nepárovou) hodnotu v_závorkách.&]\r\n"
|
|
"[s1; #<výraz>: lambda-výraz&]\r\n"
|
|
"[s0; Lambda výraz se používá v_situacích, kdy je třeba samotný výpočetní \r\n"
|
|
"výraz poslat jako parametr do jiné funkce nebo operátoru (v_opačných \r\n"
|
|
"případech do operátoru nebo funkce přichází jako parametr až \r\n"
|
|
"[/ vypočtená hodnota] tohoto výrazu). Způsob nakládání s_matematickým \r\n"
|
|
"výrazem v_této funkci závisí na charakteru konkrétní funkce. \r\n"
|
|
"Obvykle jde o_to, že v_rámci jiné funkce je potřeba takto předaný \r\n"
|
|
"výpočetní výraz několikrát postupně vyhodnotit (vypočítat), případně \r\n"
|
|
"v_různém kontextu, a_získat tak několik výsledků, které se pak \r\n"
|
|
"dále zpracují.&]\r\n"
|
|
"[s1;*/ [*/ Příklad: ][*/ \r\n"
|
|
"{:LINK:dpp`:`/`/AppDoc`/`/`:`:`/`/Calc`$CsumASC\tsum\t:}\r\n"
|
|
"][*/ (`[1..4`], \"x\", #(x * x))] = 1 * 1 + 2 * 2 + 3 * 3 + 4 * 4 \r\n"
|
|
"= 1+4+9+16 = 30&]\r\n"
|
|
"[s1; <výraz>.<identifikátor>: objektové volání funkce&]\r\n"
|
|
"[s0; Operátor [/ tečka] umožňuje zápis některých výrazů způsobem připomínajícím \r\n"
|
|
"objektové programovací jazyky. Jedná se čistě o nástroj přehlednějšího \r\n"
|
|
"zápisu, vnitřně se všechny takovéto zápisy chápou jako volání \r\n"
|
|
"funkcí. Zápis [/ a.id] má stejný význam jako [/ id(a)], zápis a.id(b, \r\n"
|
|
"c, d) je totéž co id(a, b, c, d).&]\r\n"
|
|
"[s0; &]\r\n"
|
|
"[s0;/ [*/ Příklad: sin(pi)] = pi.sin = 0, [*/ (1/3).nls(-2)] = nls(1/3, \r\n"
|
|
"-2) = 0,33&]\r\n"
|
|
"[s0; ")
|
|
HELP_END
|