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