initial
This commit is contained in:
commit
734d79b6d8
47
README.md
Normal file
47
README.md
Normal file
@ -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
|
||||
|
55
program.c
Normal file
55
program.c
Normal file
@ -0,0 +1,55 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
#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);
|
||||
}
|
24
rules.txt
Normal file
24
rules.txt
Normal file
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user