readme format fix

This commit is contained in:
hladu357 2024-03-08 15:33:15 +01:00
parent 9d90fa79b0
commit 9d9a768bdd
1 changed files with 47 additions and 0 deletions

47
README Normal file
View File

@ -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 |
| +------------+
.
.
.