САЙТ УЧИТЕЛЯ ИНФОРМАТИКИ |
|||||||||||||||
МОУ СОШ №3 г. Осташков Тверская обл. | |||||||||||||||
|
Мини-проекты в Delphi Проект «Арифметика»
Const n=10; //число примеров procedure TForm1.FormActivate(Sender: TObject); var st:string; begin LbUslov.Caption:='Как тебя зовут?'; Randomize; i:=0; st:= InputBox('Input Box', 'Введи свое имя', 'Bill Gats'); name:=st; LbUslov.Caption:='Привет! '+Name+#10+'Реши '+IntToStr(n)+' примеров.'; BItEnter.Caption:='Начать'; end;
procedure TForm1.numb0Click(Sender: TObject);
Var s:string;
begin
S:='';
uslov:=IntTOStr(a)+znak+IntTOStr(b)+'=';
if TSpeedButton(Sender).Tag<10 then
begin
s:=IntToStr(TSpeedButton(Sender).Tag);
otv:=otv+s;
end;
if (Sender=BackSpace) And (Length(otv)>0) then
Delete(otv,Length(otv),1);
Prim.Caption := uslov+otv;
end;
Она служит ввода числовых значений вместе с условием и удаления неверных чисел. Для всех остальных кнопок «перекидываем мостик», т. е. выбираем для OnClick - numb0Click. В разделе uses, выше private объявляем процедуры:
procedure TForm1.Uslovie;
begin
inc(i);
a:=Random(40)+10;b:=Random(40)+10;
d:=Random(4); {выбор действия}
Case d of
0:Begin protw:=a+b; znak:='+'end;
1:begin protw:=round(a+b); a:=protw; protw:=round(a-b);znak:='-'end;
2:begin a:=Random(20)+2;b:=Random(20)+2;protw:=round(a*b);znak:='·' end;
3:begin a:=Random(20)+2;b:=Random(20)+2;protw:=round(a*b);a:=protw;protw:=round(a/b); znak:=':'end;
end;
LbUslov.Caption:=IntTOStr(i)+'-й пример:'+#10+'Сколько будет:';
Prim.Caption:=IntTOStr(a)+znak+IntTOStr(b)+'=';
otv:='';
end;
procedure TForm1.Proverka;
var Code:integer;
begin
Val(otv,otw,Code);{преобразование текста в число}
If otw=protw {Проверка правильности ответов}
Then
Begin
ball:=ball+1;
LbUslov.Caption:='Правильно!';
End
Else
LbUslov.Caption:='Не правильно! '+IntTOStr(a)+znak+IntTOStr(b)+'='+IntToStr(protw);
BItEnter.Tag:=0;
BItEnter.Caption:='Следующий';
if i=n then
begin
BItEnter.Caption:='Результат';
BItEnter.Tag:=2;
end;
end;
procedure TForm1.result;
var text:String;
begin
ocenka:=trunc(ball*5/n+0.5);
If ocenka<2
Then ocenka:=2;
If ocenka=2
Then text:='Очень плохо! Учи как следует.';
If ocenka=3
Then text:='Удовлетворительно! Не мешает поучить.';
If ocenka=4
Then text:='Хорошо! Но на этом не стоит останавливаться.';
If ocenka=5
Then text:='Отлично! Так держать.';
lbUslov.Caption :=Name+', '+ 'Твоя оценка-' + IntToStr(ocenka) + #10 + text;
end;
procedure TForm1.BitEnterClick(Sender: TObject);
begin
if BItEnter.Tag=0 then
begin
BItEnter.Tag:=1;
BItEnter.Caption:='Ответ';
Uslovie;
exit;
end;
if BItEnter.Tag=2 then
begin
BItEnter.Tag:=0;
BItEnter.Caption:='Начнем?';
i:=0;
result;
exit;
end;
proverka;
end;
|
||||||||||||||