1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
| unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,DateUtils, ExtCtrls;
type
TFormTest = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
RadioGroup1: TRadioGroup;
Button2: TButton;
Memo1: TMemo;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure GenerateNewQ;
procedure GenerateResult;
end;
type
TQ = record
que,v1,v2,v3,v4: String;
r: Integer;
ball: Integer;
end;
const
Q = 'Âîïðîñ ';
O_k = 'Ïðàâèëüíî';
No_ = 'Íåâåðíî';
_of = ' èç ';
win2 = 'Ðåçóëüòàòû';
win1 = 'Ïðàâèëüíûõ îòâåòîâ ';
win3 = 'Âàøà îöåíêà ';
win4 = '×òî ñîñòàâèëî ';
lost2 = 'Íåâåðíî';
lost1 = 'Âû íå ïðîøëè òåñò';
oc5 ='5';
oc4 ='4';
oc3 ='3';
oc2='2';
xd = 25;
test: array [0..xd-1] of TQ = (
(que:' Îñíîâíûå âèäû ìîäåëåé â ñèñòåìå ïðåäñòàâëåíèÿ çíàíèé'; v1:'ñèñòåìà ïðîäóêöèé'; v2:'äîìåííàÿ ñèñòåìà'; v3:' ôðåéìû'; v4:' ñåìàíòè÷åñêèå ñåòè'; r: 2; ball: 1),
(que:'Ïîä ôðåéìîì â ñèñòåìå ïðåäñòàâëåíèÿ çíàíèé ïîíèìàþò'; v1:'åäèíèöà ïðåäñòàâëåíèÿ çíàíèé'; v2:'íàáîð ïðàâèë'; v3:'íàáîð ôàêòîâ'; v4:'íàáîð óñëîâèé'; r: 0; ball: 1),
(que:'Ñèñòåìû ïðîäóêöèé â ñèñòåìå ïðåäñòàâëåíèÿ çíàíèé ýòî'; v1:'ñâîéñòâà îáúåêòîâ ïðåäìåòíîé îáëàñòè'; v2:'ëîãè÷åñêàÿ ñòðóêòóðà áàçû çíàíèé'; v3:' íàáîð ïðàâèë, èñïîëüçóåìûõ êàê áàçà çíàíèé '; v4:' çàòðóäíÿþñü îòâåòèòü'; r: 2; ball: 1),
(que:'Ñåìàíòè÷åñêèå ñåòè â ñèñòåìå ïðåäñòàâëåíèÿ çíàíèé ýòî'; v1:'ãðàô, äóãè êîòîðîãî – îòíîøåíèÿ ìåæäó çíà÷åíèÿìè'; v2:'òàáëèöà ïðàâèë'; v3:'òîïîëîãèÿ ñåòè ÑÏÇ'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 0; ball: 1),
(que:'Ýêñïåðòíàÿ ñèñòåìà ýòî'; v1:'áàçà äàííûõ ïî îïðåäåëåííîé ïðåäìåòíîé îáëàñòè'; v2:' ïðîãðàììà, êîòîðàÿ èñïîëüçóÿ çíàíèÿ ýêñïåðòîâ ïî íåêîòîðîé ïðåäìåòíîé îáëàñòè, ñïîñîáíà ïðèíèìàòü ðåøåíèÿ'; v3:'îáó÷àþùàÿ ñèñòåìà ïî îïðåäåëåííîé ïðåäìåòíîé îáëàñòè'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 1; ball: 1),
(que:'Ñòðóêòóðà ýêñïåðòíîé ñèñòåìû íå âêëþ÷àåò'; v1:' èíòåðôåéñ ïîëüçîâàòåëÿ'; v2:'ëîêàëüíàÿ ñåòü'; v3:'áàçà çíàíèé'; v4:'ïîäñèñòåìà ëîêàëüíîãî âûâîäà'; r: 1; ball: 1),
(que:'Íå ñïîñîá êëàññèôèêàöèè ýêñïåðòíûõ ñèñòåì'; v1:'ïî íàçíà÷åíèþ'; v2:'ïî òèïó èñïîëüçîâàíèÿ'; v3:'ïî ñëîæíîñòè ðåøàåìûõ çàäà÷'; v4:'ïî âèäó îáó÷åíèÿ'; r: 3; ball: 1),
(que:'Ïî ñòåïåíè çàâèñèìîñòè îò âíåøíåé ñðåäû âûäåëÿþò ýêñïåðòíûå ñèñòåìû'; v1:'íåäèíàìè÷åñêèå'; v2:'ëîãè÷åñêèå'; v3:'ñòàòè÷åñêèå'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 2; ball: 1),
(que:'Êàêèì ñïîñîáîì ìîæåò áûòü îïèñàíà ñòðóêòóðà ëîãè÷åñêîãî âûâîäà?'; v1:'â âèäå îðèåíòèðîâàííîãî ãðàôà'; v2:'â âèäå ìîäåëè íåòî÷íîãî âûâîäà'; v3:'â âèäå ñåìàíòè÷åñêîé êîíñòðóêöèè'; v4:'â âèäå íàáîðà ïðàâèë'; r: 2; ball: 1),
(que:'Êàêàÿ ìîäåëü ïðåäñòàâëåíèÿ çíàíèé îñíîâàíà íà òåîðèè Ì.Ìèíñêîãî?'; v1:'ëîãè÷åñêàÿ'; v2:'ýêñïåðòíàÿ'; v3:'ôðåéìîâàÿ'; v4:'ôèçè÷åñêàÿ'; r: 2; ball: 1),
(que:'Êàêàÿ ïåðåìåííàÿ íå îòíîñèòñÿ ê íå÷¸òíûì?'; v1:'èìÿ '; v2:'ìíîæåñòâî'; v3:'îáëàñòü îïðåäåëåíèÿ'; v4:'ôóíêöèÿ'; r: 3; ball: 1),
(que:'Êàêàÿ ïåðåìåííàÿ íå îòíîñèòñÿ ê ëîãè÷åñêèì'; v1:'èìÿ'; v2:'ìíîæåñòâî èìåí'; v3:'íàáîð ôàêòîâ'; v4:'ìíîæåñòâî ôóíêöèé'; r: 2; ball: 1),
(que:'Íå âõîäèò â òèïè÷íûå ìîäåëè ïðåäñòàâëåíèÿ çíàíèé êîãíèòèâíîãî íàïðàâëåíèÿ'; v1:'ïðîäóêöèîííàÿ ìîäåëü'; v2:'ñåìàíòè÷åñêàÿ ñåòü'; v3:'ôðåéìîâàÿ ìîäåäü'; v4:'ëîãè÷åñêàÿ ìîäåëü'; r: 3; ball: 1),
(que:'ßçûê ëîãè÷åñêîãî ïðîãðàììèðîâàíèÿ?'; v1:'Prolog'; v2:'Delphi'; v3:'Lisp'; v4:'Java'; r: 0; ball: 1),
(que:'Íà êàêîé ìîäåëè ÑÏÇ îñíîâàíà Áàéåñîâñêàÿ ñèñòåìà ëîãè÷åñêîãî âûâîäà?'; v1:'ñèñòåìà ãðàôîâ'; v2:'ìîäåëü íåòî÷íîãî âûâîäà'; v3:'íàáîð ïðàâèë è ôàêòîâ'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 1; ball: 1),
(que:'Êàê Prolog ðàçëè÷àåò èìåíà ïåðåìåííûõ è êîíñòàíò?'; v1:'èìåíà ïåðåìåííûõ äîëæíû íà÷èíàòüñÿ ñ ïðîïèñíîé áóêâû, à èìåíà êîíñòàíò - ñî ñòðî÷íîé'; v2:'èìåíà êîíñòàíò íà÷èíàþòñÿ ñî çíàêà _'; v3:'èìåíà ïåðåìåííûõ ñ çàãëàâíîé áóêâû'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 0; ball: 1),
(que:'Ïðîãðàììà íà ÿçûêå Prolog íå âêëþ÷àåò ðàçäåë:'; v1:'constants'; v2:'domains'; v3:'tipe'; v4:'predicates'; r: 2; ball: 1),
(que:'Äëÿ ÷åãî èñïîëüçóåòñÿ ðàçäåë Goal?'; v1:'îïèñàíèå ïðàâèë'; v2:'îïðåäåëåíèå öåëåé'; v3:'çàäàíèÿ òèïîâ äàííûõ'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 1; ball: 1),
(que:'Äîìåíû íå áûâàþò:'; v1:'ïðîñòûå'; v2:'ëîãè÷åñêèå'; v3:'ñòðóêòóðèðîâàííûå'; v4:'ñòàíäàðòíûå'; r: 1; ball: 1),
(que:'Ñðåäñòâîì óïðàâëåíèÿ ïðîöåññîì âû÷èñëåíèÿ â Prolog íå ÿâëÿåòñÿ:'; v1:'fail'; v2:'goto'; v3:'!'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 1; ball: 1),
(que:'Êàêèå âèäû ðåêóðñèé íå èñïîëüçóþòñÿ â Prolog?'; v1:'ëåâàÿ'; v2:' ïðîñòàÿ'; v3:'îáîáùåííàÿ'; v4:'ïðàâàÿ'; r: 1; ball: 1),
(que:'Ýëåìåíòû ñïèñêà â Prolog:'; v1:'äîëæíû ïðèíàäëåæàòü îäíîìó äîìåííîìó òèïó'; v2:' äîëæíû ñîäåðæàòü îïðåäåëåííîå ðàíåå ÷èñëî ýëåìåíòîâ ñïèñêà'; v3:'äîëæíû ðàçäåëÿòüñÿ çàïÿòîé'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 0; ball: 1),
(que:'Äëÿ ÷åãî ñëóæèò è ÷òî ñîäåðæèò ñåêöèÿ Database?'; v1:'äëÿ îïèñàíèÿ äèíàìè÷åñêèõ áàç äàííûõ'; v2:' äëÿ îðãàíèçàöèè ñâÿçè ñ áàçîé äàííûõ'; v3:'äëÿ îïðåäåëåíèÿ áàçû äàííûõ'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 0; ball: 1),
(que:'Êàêîé ïðåäèêàò èñïîëüçóåòñÿ äëÿ çàïèñè áàçû äàííûõ íà äèñê?'; v1:'write'; v2:' close'; v3:'save'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 2; ball: 1),
(que:'Êàêîé ïðåäèêàò èñïîëüçóåòñÿ äëÿ ñ÷èòûâàíèÿ áàçû äàííûõ èç ôàéëà?'; v1:'read'; v2:' consult'; v3:'open'; v4:'çàòðóäíÿþñü îòâåòèòü'; r: 1; ball: 1));
var
FormTest: TFormTest;
N : Integer;
num : Integer;
ri : Integer;
balls: Integer;
proc: Integer;
otvets: array [0..xd-1] of boolean;
implementation
{$R *.dfm}
procedure TFormTest.GenerateNewQ;
procedure zero;
begin
RadioGroup1.Buttons[0].Checked:= false;
RadioGroup1.Buttons[1].Checked:= false;
RadioGroup1.Buttons[2].Checked:= false;
RadioGroup1.Buttons[3].Checked:= false;
end;
begin
begin
inc(num);
label1.Caption:= Q+inttostr(num)+_of+inttostr(N);
label2.Caption:= test[num-1].que;
RadioGroup1.Items.Strings[0]:= '1) '+test[num-1].v1;
RadioGroup1.Items.Strings[1]:= '2) '+test[num-1].v2;
RadioGroup1.Items.Strings[2]:= '3) '+test[num-1].v3;
RadioGroup1.Items.Strings[3]:= '4) '+test[num-1].v4;
zero;
ri:= test[num-1].r;
end
end;
procedure TFormTest.GenerateResult;
var i: Integer;
function equalbool(V: Boolean): String;
begin
result:= No_;
if V then result:= O_k
end;
begin
label1.Caption:= win2;
label2.Caption:= win1+inttostr(balls);
if int(proc) > 85 then
begin
label3.Caption:= win3+oc5;
end;
if (int(proc) >67) and (int(proc) <85) then
begin
label3.Caption:= win3+oc4;
end;
if (int(proc) >49) and (int(proc) <67) then
begin
label3.Caption:= win3+oc3;
end;
if (int(proc) <49) then
begin
label3.Caption:= win3+oc2+' Âû íå ñäàëè òåñò';
end;
label4.Caption:= win4+inttostr(proc)+'%';
memo1.Visible:= true;
memo1.Enabled:= true;
for i:= 1 to xd do
memo1.Lines.Add(Q+inttostr(i)+' - '+equalbool(otvets[i-1]));
button1.Visible:= false;
radiogroup1.Visible:= false;
end;
procedure TFormTest.FormCreate(Sender: TObject);
var
i: Integer;
begin
label5.Caption:='Äàòà ïðîõîæäåíèÿ'+#13+DateTostr(Date);
memo1.Visible:= false;
memo1.Enabled:= false;
ri:=0;
num:= 0;
balls:= 0;
for i:= 1 to xd-1 do
otvets[i-1]:= false;
N:= xd;
if (N>0) then
GenerateNewQ
else
FormTest.Close
end;
procedure TFormTest.Button1Click(Sender: TObject);
begin
If ((RadioGroup1.Buttons[ri].Checked) and (num<N)) then
begin
balls:= balls+test[num-1].ball;
otvets[num-1]:= true;
GenerateNewQ;
exit;
end
else
if ((num=N) and (RadioGroup1.Buttons[ri].Checked)) then
begin
balls:= balls+test[num-1].ball;
proc:= round(balls*100/25);
otvets[num-1]:= true;
GenerateResult;
exit;
end
else
if ((not RadioGroup1.Buttons[ri].Checked) and (num<N)) then
begin
GenerateNewQ;
exit;
end
else
if ((not RadioGroup1.Buttons[ri].Checked) and (num=N)) then
begin
proc:= round(balls*100/25);
GenerateResult;
end
end;
procedure TFormTest.Button2Click(Sender: TObject);
begin
FormTest.Close;
end;
end."] |