3 Обьектілі бағдарланған программалау тілін оқыту әдістемесі


Өзіндік жұмысқа арналған тапсырмалар



бет33/39
Дата12.09.2020
өлшемі0,88 Mb.
#77904
түріПрограмма
1   ...   29   30   31   32   33   34   35   36   ...   39
Байланысты:
Delphi программалау тілін оқыту әдістемесі

Өзіндік жұмысқа арналған тапсырмалар:

  1. Форма бетіне ұшақ суретін салатын программа құрыңыз.

  2. Форма бетіне жүзіп бара жатқан кеменің және тышқанды басқанда жұлдыздар салынатын программа құрыңыз.

  3. Форманың бетінде анимацияларды көруге болатын қосымша құрыңыз.

7 Зертханалық жұмыс



Тақырыбы: «Зердені тексеру» ойынын жобалау.

Зертханалық жұмыстың мақсаты: Delphi ортасында ойынды жобалау арқылы программалауға деген қызығушылықты тудырып, қосымшалар құруды үйрену.

Төменде (2.1.25-сурет) осы қосымшаның компоненттер орналастырылған форма терезесі келтірілген.



2.1.25-сурет. Компоненттер орналастырылған форма терезесі


Тапсырманы орындау алгоритмі:

  1. Жаңа жоба ашып, пішінге Label1 (Standard беті), Edit1 (Standard беті), Button1 (Standard беті), Timer1 ( System беті) компоненттерін орналастырыңыздар.

  2. Пішіннің Caption қасиетіне «Зердені тексеру», Button1 батырмасына «Бастау» мәндерін жазыңыз. Edit1-дің Техт қаситінің мәнін және Label1-дің Caption қасиетін тазалаңыз.

  3. Edit1 компонентін Color қасиеті арқылы түсін пішіннің түсіне өзгертіп, Label1-дің үстіне орналастырыңдар.

  4. Код терезесін ашып,

var

Form1: TForm1;

Implementation жолдарының астына келесі кодты жазыңыздар:

const


KC = 5; // сандардың разрядтылығы ( цифрлар саны)

LT = 10; // сандардың жалпы саны (сынақ ұзындығы)

var

numb: integer; // сыналушының есте сақтайтын саны



right: integer; // дұрыс есте сақталған сандардың жалпы саны

n: integer; // сандар счетчигі

{$R *.dfm}

//k – разрядты санды генерациялайды

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;


5. Пішінді ерекшелеп, обьектілер инспектооры терезесінің Events бетіндегі OnCreate оқиғасының FormCreate мәнін екі рет шертіп, пайда болған процедураның дайындамасының ішіне келесі кодты жазыңыз:

// пішінді құру

procedure TForm1.FormCreate(Sender: TObject);

begin


Edit1.Visible := False; // Edit1 енгізу өрісін жасыру

Edit1.MaxLength := KC; // енгізуге болатын символдар саны

Label1.WordWrap := True; // келесі жолға сөздерді түсіруге рұқсат беру

Label1.Caption :=

'Казiр экранда сандар шыгады. ' +

'Сiздер сандарды есте сактап, оларды пернетактадан терiп,-дi басыныздар';

Button1.Caption := 'Бастау';

Timer1.Enabled := False; // таймер тоқтатылады

Timer1.Interval := 1000; // санды көрсету уақыты- 1 секунд

right := 0; // дұрыстарының саны

n := 0; // сандардың счетчигі

Randomize; // ГСЧ инициализациясы

end;

6. Button1 батырмасын екі рет шертіңіз. Пайда болған процедураның дайындамасына келесі кодты жазыңыз:



// "Бастау/Аяктау" батырмасын басу

procedure TForm1.Button1Click(Sender: TObject);

begin

if Button1.Caption = 'Аяктау' then



Form1.Close; // программа терезесін жабу

if Button1.Caption = 'Бастау' then

begin

Button1.Caption := 'Аяктау';



Button1.Visible := False; // батырманы жасыру

// Button1 батырмасы сынақ аяқталғаннан кейін қол жетімді болады

Label1.Caption := '';

Label1.Font.Size := 24; // Label1 өрісіндегі қаріптің өлшемі

Edit1.Font.Size := 24; // Edit1 өрісіндегі қаріптің өлшемі

// санды генерациялау және шығару

numb := GetNumb(KC);

Label1.Caption := IntToStr(numb);

Timer1.Enabled := True; // таймерді қосу

// сигналды таймерден өңдеу процедурасы санды өшіреді

end;

end;


7. Timer1 компонентін ерекшелеп, обьектілер инспекторы терезесінің Events бетіндегі OnTimer оқиғасының Timer1Timer мәнін екі рет шертіп, пайда болған процедураның дайындамасының ішіне келесі кодты жазыңыз:

// таймер оқиғасын өңдеу

procedure TForm1.Timer1Timer(Sender: TObject);

begin


Timer1.Enabled := False; // таймерді тоқтату

Label1.Visible := False; // санды жасыру

Edit1.Visible := True; // Edit1 өрісін көрінетін ету

Edit1.SetFocus; // Edit1 өрісіне меңзерді орнату

end;

8. Edit1 компонентін ерекшелеп, обьектілер инспекторы терезесінің Events бетіндегі OnKeyPress оқиғасының Edit1KeyPress мәнін екі рет шертіп, пайда болған процедураның дайындамасының ішіне келесі кодты жазыңыз:



// Edit1 өрісіндегі батырманы басу

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

var

igrok: integer; // сыналушы енгізген сан



begin

case Key of

'0'..'9',#8: ; // "0"-"9", батырмалары

#13: // батырмасы

begin

igrok := StrToInt(Edit1.Text);



if (igrok = numb)

then right := right + 1;

n := n + 1; // сандар счетчигі

Edit1.Text := '';

Edit1.Visible := False; // Edit1 өрісін жасыру

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 := 'Натижесi:' + #13 +

'Сандар корсетiлдi: ' + IntToStr(LT) + #13 +

'Дурысы: ' + IntToStr(right);

Label1.Visible := True;

Button1.Visible := True; // "Аяқтау" батырмасын көрсету

end;

end;


else Key := Chr(0);

end;


end;

end.


9. Жобаны орындауға жіберіп, зердеңізді тексеріп көріңіз. 2.1.26-суретте «Зердені тексеру» ойынының шыққан нәтижесінің терезесі келтірілген.

2.1.26-сурет. Қосымшаның шыққан нәтижесі




Достарыңызбен бөлісу:
1   ...   29   30   31   32   33   34   35   36   ...   39




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет