Зміст p>
1 Завдання 3 p>
2 Угода про вимоги до програми 3 p>
2.1 Опис призначення програми 3
2.2 Визначення подання вхідних та вихідних даних 3
2.3 Дія програми. 5 p>
3. Опис програми 5 p>
3.1 Мова програмування 5 p>
3.2.1 Опис структури програми 5 p>
3.2.2 Описи входять процедур 6 p>
3.3 Специфікація інтерфейсів програми 6 p>
4 Текст програми 7 p>
5 Результати тестування 10 p>
6 Список літератури 11 p>
Завдання p>
Розробити найпростішу експертну систему. P>
Кілька визначень:
Під експертною системою розуміється система, що поєднує можливостікомп'ютера із знаннями і досвідом експерта в такій формі, що система можезапропонувати РАЗУМНИЙ РАДА або здійснити Розумне рішення поставленоїзавдання.
Експертна система - програма, яка емулює взаємодіякористувача з експертом-чоловіком при вирішенні певної проблеми. p>
Угода про вимоги до програми p>
1 Опис призначення програми p>
У підключеній базі знань "Тваринний світ "користувачеві пропонується вжартівливій формі визначити, до якого виду живих істот він відноситься. Данабаза знань є жартівливій. p>
2 Визначення подання вхідних та вихідних даних p>
За замовчуванням вхідними даними є файл bd.txt, Файл містить даніпро представників тваринного світу. Файл *. txt має строгопевну структуру: p>
Номер питання p>
Питання p>
Кількість відповідей p>
Відповіді p>
Номер питання p>
. P>
. p>
. p>
Як приклад: p>
1 p>
До якого виду живих істот Ви себе відносите? p> < p> 3 p>
Тварина p>
Рослина p>
Не знаю p>
11 p>
До якого виду? p >
4 p>
Комаха p>
Птах p>
ссавець p>
Не знаю p>
12 p>
Яке сімейство? p>
4 p>
Дерево p>
Трава p>
Водорості p>
Не знаю p >
13 p>
У вас є коріння? p>
2 p>
Так p>
Ні p>
111
Ви п'єте кров? p>
2 p>
Так p>
Ні p>
Переваги запропонованою архітектури бази знань:
1. Простота побудови. P>
2. Кількість запитань та відповідей у системі не обмежено.
3. Фраза не обмежена. P>
Висновок експертної системи відображається на екрані. P>
3 Дія програми. P>
Програма задає потрібну кількість питань, отримуючи на кожен з нихвідповідь. Якщо отриманих відповідей достатньо для визначення об'єкта, системавидає відповідь на екран (Вид тварини). p>
3. Опис програми p>
3.1 Мова програмування p>
При написанні цієї програми використовувався мову Object Pascal ісистема програмування Borland (Delphi (5.0. p>
3.2.1 Опис структури програми p>
Діаграма модульної структури p>
p>
3.2.2 Описи вхідних процедур p>
procedure ExitClick (Sender: TObject); - здійснює вихід зпрограми. p>
Procedure Button1Click (Sender: TObject); - змінює глобальнузмінну select (множить її на 10 і додає 1), потім оновлює форму. procedure Button2Click (Sender: TObject); procedure Button3Click (Sender: TObject); procedure Button4Click (Sender: TObject); procedure BackClick (Sender: TObject); - перевіряє select. Якщо вонабільше 10, то привласнює їй цілу частину при діленні на 10. Потім викликаєпроцедуру відновлення форми. procedure Button5Click (Sender: TObject); - візуалізує форму пропрограмі. procedure FormCreate (Sender: TObject); - оновлює основну формупри запуску програми. procedure ReLoad (Sender: TObject); - оновлення форми. Зв'язуєфайл з файловою змінною «namebd», відкриває файл для читання, шукає вфайлі рядок, значення якої відповідає значенню в «select» і післяцього виходить з циклу. Потім читає наступний рядок і привласнює їїзначення властивості «caption» (заголовок) рядка «label1». Далі читаєнаступний рядок і привласнює її значення змінної «i» (це кількістькнопок). Потім заходить в цикл на 4 кнопки, в якому визначаєтьсякількість активних кнопок. Під кожну кнопку програма читаєвідповідний рядок, яка присвоюється властивості caption (длявідповідної кнопки). Потім кнопка активізується. p>
Якщо номер циклу більше кількості активних кнопок, то деактивуєтьсязайві кнопки. p>
Далі відбувається закриття файлу. p>
3.3 Специфікація інтерфейсів програми p>
По порядку задаються питання, і програма видає меню, що міститькнопки з варіантами відповідей. Користувач натискає на потрібну клавішу звідповіддю, і після чого задається наступне питання і т.д. p>
Коли програма готова дати відповідь, в рядку питань з'явитьсярезультат. p>
Головне меню містить три важливі команди. p>
«Exit» - здійснюється вихід в оболонку Windows. p>
«Back» - здійснюється перехід на попередній рівень ( питання) p>
«Про програму» - виводить інформацію про дату, місце створення і творцяпрограми. p>
Текст програми p>
unit Unit1; p>
interface p>
uses p>
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, p>
Dialogs, p>
StdCtrls; p>
type p>
TForm1 = class (TForm) p >
Button1: TButton; p>
Button2: TButton; p>
Button3: TButton; p>
Button4: TButton; p>
Back: TButton; p>
Exit: TButton; p>
Label1: TLabel; p>
GroupBox1: TGroupBox; p>
Button5: TButton; procedure ExitClick (Sender : TObject);// вихід із програми procedure Button1Click (Sender: TObject);// кнопки відповідей procedure Button2Click (Sender: TObject); procedure Button3Click (Sender: TObject); procedure Button4Click (Sender: TObject); procedure BackClick (Sender: TObject);// повернення на попередній рівень procedure Button5Click (Sender: TObject);// виклик форми про програму procedure FormCreate (Sender: TObject);// створення форми програмі private p>
(Private declarations) public
(Public declarations) end; p>
var p>
Form1: TForm1; p>
Select: integer = 1; p>
Namebzd: text; p>
implementation// блок виконання p>
uses Unit2; p>
($ R *. DFM) p>
Procedure ReLoad (Sender: TObject);// оновлює зовнішній вигляд форми, нові питання і т.д. var str: string; i, n: integer; begin assignfile (Namebzd, 'bzd.txt'); reset (Namebzd);// відкриває для читання str: =''; while str inttostr (Select) do readln (Namebzd, str);// шукає місце зчитування readln (Namebzd, str); p>
Form1.Label1.Caption: = str; readln (Namebzd, str); i: = strtoint (str); for n: = 1 to 4 do// активізується потрібну кількість кнопок з відповідями begin if n
1: begin p>
Form1. Button1.Visible: = true; p>
Form1.Button1.Caption: = str; end; p>
2: begin p>
Form1.Button2.Visible: = true ; p>
Form1.Button2.Caption: = str; end; p>
3: begin p>
Form1.Button3.Visible: = true; p> < p> Form1.Button3.Caption: = str; end; p>
4: begin p>
Form1.Button4.Visible: = true; p>
Form1.Button4. Caption: = str; end; end; end else case n of p>
1: Form1.Button1.Visible: = false; p>
2: Form1.Button2.Visible: = false; p>
3: Form1.Button3.Visible: = false; p>
4: Form1.Button4.Visible: = false; end; end; closefile (Namebzd); p> < p> end; p>
procedure TForm1.ExitClick (Sender: TObject); begin p>
Halt (0); end; p>
procedure TForm1.Button1Click (Sender: TObject); begin p>
Select: = Select * 10 1; p>
ReLoad (form1); end; p>
procedure TForm1.Button2Click (Sender: TObject) ; begin p>
Select: = Select * 10 +2; p>
ReLoad (form1); end; p>
procedure TForm1.Button3Click (Sender: TObject); begin p>
Select: = Select * 10 3; p>
ReLoad (form1); end; p>
procedure TForm1.Button4Click (Sender: TObject); begin p>
Select: = Select * 10 4; p>
ReLoad (form1); end; p>
procedure TForm1.BackClick (Sender: TObject); begin if Select> 10 then Select: = Select div 10; p>
ReLoad (form1); end; p>
procedure TForm1.Button5Click (Sender: TObject); begin help.visible: = true; end;
procedure TForm1.FormCreate (Sender: TObject); begin
Reload (Form1); end; p>
end. p>
Результати тестування p> < p> | Запитання | Відповідь 1 | Відповідь | Відповідь 3 | Відповідь | Бажаний | Дійсний |
| | | 2 | | 4 | результат | результат |
| До якого | Комаха | | | | Ви п'єте | Ви п'єте |
| увазі? | є | | | | кров? | кров? |
| | | Птиця | | | Ви | Ви домашня? |
| | | | | | Домашня? | |
| | | | Ссавці | | Ви | Ви стрибаєте с |
| | | | Тане | | стрибаєте | гілки на |
| | | | | | З гілки | гілку? |
| | | | | | На гілку? | |
| | | | | Не | Ви | Ви дзижчить? |
| | | | | Знаю | дзижчить? | |
| Яке | Дерево | | | | У вас | У вас є? |
| сімейств | | | | | є? | |
| о? | | | | | | |
| | | Трава | | | Ви | Ви заборонені |
| | | | | | Заборонені | законом? |
| | | | | | Законом? | |
| | | | Водорос | | У вас | У вас багато |
| | | | Ль | | багато | йоду і вас |
| | | | | | Йоду й | їдять? |
| | | | | | Вас їдять? | |
| | | | | Не | У вас | У вас є |
| | | | | Знаю | є | кора? |
| | | | | | Кора? | | P>
Список літератури p>
1. Фаронов В. В., Основи Турбо-Паскаля, «МВТУ-ФЕСТО дидактика», М., 1992. P>
2. Макніцкій М. І., Delphi 5.0 для професіоналів, 2000. P>
p>