Æîáà áîéûíøà, ýêðàíғà øûққàí ñàíäû, ïåðíåòàқòà àðқûëû қàéòàëàï åíã³çó êåðåê. Қàíøà ñàíäû äұðûñ қàéòàëà àëäûңûç ñîë òóðàëû, ìәë³ìåò øûғàäû.

 

 

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.