commit 734d79b6d8f0d86888d1010c67016ec60b9fe102 Author: Daniel Hladek Date: Mon Nov 18 16:25:33 2019 +0100 initial diff --git a/README.md b/README.md new file mode 100644 index 0000000..2bceb4b --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# Mudrc zo supermarketu + +Vytvorte znalostný systém, ktorý pomôže pri určení druhu ovocia alebo zeleniny. +Báza znalostí sa skladá z otázok typu áno a nie a odpovedí. + +Systém najprv načíta bázu otázok a odpovedí. Každá otázka alebo odpoveď sa nachádza na práve jednom riadku. Odpovede sú vyznačené hviezdičkou na začiatku riadka. +Po otázke na najprv nasleduje načítanie ďalšieho kroku áno a potom kroku nie. +Každý krok znalostného systému je alebo odpoveď alebo ďalšia otázka. +Báza pravidiel je ukončená prázdnym riadkom. + +Otázky a odpovede spolu tvoria binárny vyhľadávací strom zapísaný vo formáte pre-order. + +Príklad bázy pravidiel s dvoma otázkami a troma druhmi tovaru: + + Rastie to na strome? + *Jablko + Rastie to pod zemou? + *Mrkva + *Šalát + + +Po načítaní bázy pravidiel vypíšte počet tovarov v báze pravidiel. +V prípade, že sa nedá správne načítať báza pravidiel vypíšte chybové hlásenie. + +Ak sa bázu pravidiel podarilo načítať, spustite znalostný systém prvou otázkou. +Ďalšie otázky alebo odpovede zobrazujte podľa toho, či používateľ odpovedá `a` pre prvú +možnosť alebo `n` pre druhú. Ak systém nájde odpoveď, vypíšte správu a skončite program. +Ak používateľ zadá nesprávny vstup, vypíšte správu a skončite program. + +Príklad vstupu: + + Je to ovocie alebo zelenina? + *Jablko + *Mrkva + + n + + +Príklad výstupu: + + MUDrC to vie. + Pozna 2 druhov ovocia a zeleniny. + Odpovedajte 'a' alebo 'n' + Je to ovocie alebo zelenina? + *Mrkva + Koniec + diff --git a/program.c b/program.c new file mode 100644 index 0000000..31295bb --- /dev/null +++ b/program.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include + +#define SIZE 1000 + +struct node { + char question[SIZE]; + struct node* left; + struct node* right; +}; + +//https://eli.thegreenplace.net/2009/11/23/visualizing-binary-trees-with-graphviz + +void print_tree(struct node* tree,int offset){ + for (int i = 0; i < offset; i++){ + printf(" "); + } + printf("%s",tree->question); + if (tree->left){ + print_tree(tree->left,offset +3); + print_tree(tree->right,offset +3); + } +} + +struct node* read_tree(){ + return NULL; +} + +void traverse(struct node* tree){ +} + +int count_fruit(struct node* tree){ + return 0; +} + + +void delete_tree(struct node* tree){ + if (tree != NULL){ + delete_tree(tree->left); + delete_tree(tree->right); + free(tree); + } +} + +int main(){ + printf("MUDrC to vie.\n"); + struct node* tree = read_tree(); + + printf("Pozna %d druhov ovocia a zeleniny.\n",count_fruit(tree)); + printf("Odpovedajte 'a' alebo 'n'\n"); + traverse(tree); + delete_tree(tree); +} diff --git a/rules.txt b/rules.txt new file mode 100644 index 0000000..219e486 --- /dev/null +++ b/rules.txt @@ -0,0 +1,24 @@ +Je to ovocie alebo zelenina ? +Rastie to nad zemou alebo pod zemou ? +Je to červené? +* Paradajka. +Dáva sa to do polievky ? +Je to biele ? +* Kaleráb +* Karfiol +* Šalát +Dáva sa to do polievky ? +Je to biele? +* Petržlen +* Mrkva +* Arašid +Pestuje sa na Slovensku ? +Rastie na strome ? +Má pevnú šupku ? +* Jablko +* Kokos +* Moruša +Je to citrus? +* Pomaranč +* Banán +