61 lines
1.8 KiB
ObjectPascal
61 lines
1.8 KiB
ObjectPascal
uses GraphWPF,Controls,Sounds;
|
||
|
||
var x, y: integer;
|
||
|
||
procedure NextQuestion;
|
||
begin
|
||
Window.Clear;
|
||
(x, y) := Random2(2, 9);
|
||
DrawText(GraphWindow.ClientRect,$'{x} × {y} = ?');
|
||
end;
|
||
|
||
function Оценка(ВерныхОтветов: integer): integer;
|
||
begin
|
||
case ВерныхОтветов of
|
||
10, 9: Оценка := 5;
|
||
8, 7: Оценка := 4;
|
||
4..6: Оценка := 3;
|
||
else Оценка := 2;
|
||
end;
|
||
end;
|
||
|
||
begin
|
||
Window.Title := 'Проверка таблицы умножения';
|
||
Font.Size := 40;
|
||
var l := LeftPanel(200);
|
||
l.FontSize := 16;
|
||
var sb := StatusBar;
|
||
NextQuestion;
|
||
|
||
var Результат := IntegerBox('Введите ответ:',0,100);
|
||
var b := Button('Ответить');
|
||
var КоличествоОтветов := IntegerBlock('Ответов:');
|
||
var ВерныхОтветов := IntegerBlock('Верных ответов:');
|
||
|
||
b.Click := procedure → begin
|
||
if x * y = Результат then
|
||
begin
|
||
sb.Text := 'Верно!';
|
||
ВерныхОтветов += 1;
|
||
end
|
||
else
|
||
begin
|
||
sb.Text := 'Неверно :(';
|
||
end;
|
||
КоличествоОтветов += 1;
|
||
Результат := 0;
|
||
if КоличествоОтветов = 10 then // Конец опроса
|
||
begin
|
||
MessageBox.Show('Тест окончен.'#10#10'Верных ответов: ' +
|
||
ВерныхОтветов.Value + #10#10 + 'Оценка: ' + Оценка(ВерныхОтветов));
|
||
// Переход к следующему тесту
|
||
ВерныхОтветов := 0;
|
||
КоличествоОтветов := 0;
|
||
end;
|
||
NextQuestion;
|
||
end;
|
||
OnResize := procedure → begin
|
||
Window.Clear;
|
||
DrawText(GraphWindow.ClientRect,$'{x} × {y} = ?');
|
||
end;
|
||
end. |