From 9d9a768bdd7284f444ccda7cbc7529a29342be10 Mon Sep 17 00:00:00 2001 From: hladu357 Date: Fri, 8 Mar 2024 15:33:15 +0100 Subject: [PATCH] readme format fix --- README | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..b439db9 --- /dev/null +++ b/README @@ -0,0 +1,47 @@ +Kalkulačka racionálních čísel + +Struktura programu: +Instance třídy CParser zpracovává algebraické výrazy v LL1 gramatice +(viz. doc/dor/grammar.dot) +Pamatuje si proměnné a řídí dodaný saver. + +Ze zadaných výrazů složí strom na jehož vrchol zavolá rekurzivní eval() + +Abstraktní třída CPrintable zastřešuje veškeré výstupy z parseru, +tedy čísla a operace. Její potomci imlepentují metodu eval() kterou +se rekurzivně vyhodnotí celý strom operací. Polymorfismus zajištěje +že operandy můžou být jak čísla tak jiné operace. + +Kalkulačcka implementuje exaktní operace pro racionální čísla, +celočíselné modulo, a proximaxi logaritmů a exponenciel. + ++-------------------------+ +---------------------------+ +| CPrintable *abstract* | | CParser | +|-input from parser | | parses input into | +|-output to UI |--+ | tree of CPrintables | +| SPrintableValue *eval() | | | | ++-------------------------+ | +---------------------------+ + | + | + | ++-------------------------+ | +---------------------------+ +| COperator *abstarct* |<-+->| CRational | +| CPrintable *operandB | | CBigInt *deniminator | +| CPrintable *operandA | | CBigInt *numerator | +| | | | ++-------------------------+ +---------------------------+ + | + | +-----------+ +---------------------------+ + +-->| CAdittion | | CBigInt | + | +-----------+ | CBigInt *add( CBigint *) | + | | CBigInt *sub( CBigint *) | + | +----------------+ | CBigInt *mul( CBigint *) | + +-->| CMultipication | +---------------------------+ + | +----------------+ + | + | +------------+ + +-->| CFactorial | + | +------------+ + . + . + . \ No newline at end of file