Æîáà áîéûíøà, ýêðàíғà øûққàí ñàíäû, ïåðíåòàқòà àðқûëû қàéòàëàï åíã³çó êåðåê. Қàíøà ñàíäû äұðûñ қàéòàëà àëäûңûç ñîë òóðàëû, ìәë³ìåò øûғàäû.
unit memory_;
interface
uses
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Edit1: TEdit;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject;
var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
const
KC = 5;
// ñàííûң ðàçðÿäû
LT = 10;
var
numb: integer; // áåð³ëãåí ñàí
right: integer; // äұðûñ
қàéòàëàíғàí ñàíäàðäûң ìөëøåð³
n: integer;
{$R *.dfm}
function GetNumb(k:
integer) : integer;
var
n: integer;
i: integer;
begin // æàңà
ñàí қàëûïòàñòûðó
n:= Random(9)+1;
for i := 1 to (k-1) do
n := n*10 + Random(10);
GetNumb := n;
end; // ôîðìà құðó
procedure
TForm1.FormCreate(Sender: TObject);
begin
Edit1.Visible := False;
Edit1.MaxLength := KC;
Label1.WordWrap := True;
Label1.Caption :=
'Ñåé÷àñ íà ýêðàíå áóäóò ïîÿâëÿòüñÿ ÷èñëà. ' +
'Âû äîëæíû çàïîìíèòü ÷èñëî, íàáðàòü åãî íà
êëàâèàòóðå è íàæàòü <Enter>';
Button1.Caption := 'Íà÷àòü';
Timer1.Enabled := False; // óàқûò òîқòàëäû
Timer1.Interval := 1000;
right := 0;
// äұðûñ ñàí
n := 0;
Randomize;
end;
procedure
TForm1.Button1Click(Sender: TObject);
begin
if Button1.Caption = 'Çàâåðøèòü' then
Form1.Close; // ïðîãðàììàäàí øûғó
if Button1.Caption = 'Íà÷àòü' then
begin
Button1.Caption := 'Çàâåðøèòü';
Button1.Visible := False;
Label1.Caption := '';
Label1.Font.Size := 24;
Edit1.Font.Size := 24;
numb := GetNumb(KC);
Label1.Caption := IntToStr(numb);
Timer1.Enabled := True; // óàқûò қîñó
end;
end;
procedure
TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
Label1.Visible := False;
Edit1.Visible := True;
Edit1.SetFocus;
end;
procedure
TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
igrok: integer;
begin
case Key of
'0'..'9',#8: ; // êëàâèøè
"0"-"9",<Backspace>
#13: // êëàâèøà <Enter>
begin
igrok := StrToInt(Edit1.Text);
if (igrok = numb)
then right := right + 1;
n := n + 1;
Edit1.Text := '';
Edit1.Visible := False;
if n < LT then
begin
numb := GetNumb(KC);
Label1.Caption := IntToStr(numb);
Label1.Visible := True;
Timer1.Enabled := True;
end
else begin
Label1.Font.Size := 10;
Label1.Caption := 'Ðåçóëüòàò:' + #13
+
'Ïîêàçàíî ÷èñåë: ' + IntToStr(LT) + #13 +
'Ïðàâèëüíûõ: ' + IntToStr(right);
Label1.Visible := True;
Button1.Visible := True;
end;
end;
else Key := Chr(0);
end; end; end.