- •Зертханалық жұмыс №1
- •Зертханалық жұмыс №2
- •2. Delphi негізгі терезесі
- •4. Объектілер инспекторы терезесі
- •Зертханалық жұмыс №3
- •Өзіндік жұмыс тапсырмалары
- •Зертханалық жұмыс №4
- •Зертханалық жұмыс №5
- •Зертханалық жұмыс №6
- •Зертханалық жұмыс №8
- •Зертханалық жұмыс №9
- •Зертханалық жұмыс №10
- •Зертханалық жұмыс №11
- •Зертханалық жұмыс №12.
- •Зертханалық жұмыс №13.
- •Зертханалық жұмыс №14
- •Зертханалық жұмыс №15
- •Зертханалық жұмыс № 16
- •Зертханалық жұмыс №17
- •3.Қорғалған блок механизмі.
- •Зертханалық жұмыс №18
- •Зертханалық жұмыс №19
- •Зертханалық жұмыс № 20
- •Зертханалық жұмыс №21
- •Зертханалық жұмыс №22
- •Зертханалық жұмыс №23
- •Зертханалық жұмыс №24
- •Зертханалық жұмыс №25
- •Зертханалық жұмыс №26
- •Зертханалық жұмыс №27
- •Зертханалық жұмыс №28
- •Зертханалық жұмыс № 29
Зертханалық жұмыс №22
Тақырыбы: Бағдарлама компиляциясы және жөндеу
Техникалық жабдық: Дербес компьютер.
Бағдарламалық жабдық: Windows 98/200/XP, Borland Delphi7.
Мақсаты: Интегралданған жөндеуші ұсынатын мүмкіндіктерді оқыту.
Негізгі ұғымдар.
Программа орындалуғаRun менюінің мына командалары қолданылады:
Run (F9)- Программа әр жолда тоқтаусыз орындалады
Step Over (F8)- Программа жол бойынша орындалады
Trance Into(F7)-Ішкі программаның әр жолы орындалады
Run To Cursor(F4)-Программа Code Editor терезесіндегі курсор тұрған жолға дейін орындалады
Program Pause- Программаның орындалуы тоқталады
Program Reset(Ctrl+F12)- программа орындалуы аяқталады
Add Breakpoint-Программа орындалуында үзіліс нүктелерін көрсетуге болады
Программа жұмысын тоқтатып үзіліс және басқаруды Delphi ортасында беретін бақылаушы тоқтату нүктесін программада оператор анықтайды. Үзіліс нүктесі View/Debug/Windows/Breakpoints операциялары арқылы беріледі.Негізінде үзіліс нүктесін орнататын жолдың сол жақ бұрышына тышқанның сол кнопкасымен сырт еткізген дұрыс
Expression жолына айнымалыны енгізу керек, Modify кнопкасын басып одан кейін New Value жолында жаңа мәнді енгізу керек.
Қосымша –мысалды жүктеңіз. Қосымшада әр студенттің орта балы, қыздар мен ұлдардың орта балы, жалпы орта бал есептеледі. Бастапқы информация: фамилия, жынысы, әр студенттің бағасы. Фамилия біржолды редактор терезесінде енгізіледі. Жынысы TRadioGroup көмегімен енгізіледі. Бағалар таблицаға енгізіледі. Есептеу TRadioGroup копоненті көмегімен беріледі.
Қосымша тереземен танысыңыз.
Компоенттер |
Қасиеттер |
Меншіктелетін мән |
Form1 |
Caption |
Зертханалық жұмыс |
Panel1 |
Caption |
Тазалау |
Panel1 |
Align |
alButton |
Edit1, Edit2
|
Text |
Тазалау |
Label1 |
Caption |
Фамилия |
RadioGroup1 |
Caption |
Жынысы |
RadioGroup1 |
ItemIndex |
0 |
RadioGroup1 |
Items |
еркек, әйел |
RadioGroup2 |
Items |
Ұлдар орта балы, қыздар орта балы, жалпы орта балы |
RadioGroup2 |
Caption |
Тазарту |
BitBtn1 |
Caption |
Жазу |
BitBtn1 |
Glyph |
Images/Buttons ішкі каталогының суреті |
BitBtn1 |
Kind |
bkClose |
StringGrid1 |
Align |
alClient |
StringGrid1 |
ColCount |
6 |
StringGrid1 |
RowCount |
30 |
StringGrid1 |
Default ColWidth |
100 |
StringGrid1 |
Options I qo Editing |
True |
2.2 Программамен танысыңыз
Const nn=20; mm=5;
//оқушылар саны max=20
//емтихан саны max=5
pp: array [0..1] of string [1]=(‘m’, ‘g’);
//жынысты анықтайтын массив
Var
Form 1: Tform1; n:integer;
F: array [1..nn] of String [30];
p: array [1..nn] of String [1];
a: array [1..nn, 1..mm] of real;
ss: array [1..nn] of real;
//n – ағымдағы оқушылар номері. Оқушылар саны
//f – фамилиялар массиві
//р – жынысты анықтайтын массив
//а – бағалар массиві
//s – оқушылардың орта балын анықтайтын массив
implementation
{$ R*.DFM}
Procedure Tform1. BitBith1.Click(Senler: Tobject);
// «Жазу» батырмасының оқиғасы
// фамилиясы және жынысы енгізіледі
//фамилия таблицаның белгіленген бағанына көшіріледі
Begin
n:=n+1;
f[n]:=Edit1. Text;
p[n]:=pp[Radio Group1. Item Index];
StringGrid1. Cells[0,n]:=f[n];
Edit1. SetFocus; Edit1. Clear;
End;
Procedure Tform1. Form Activate Click(Senler: TObject);
//таблицаның белгіленген жолының мәнін енгізетін оқиға
Begin
n:=0;
Edit1. SetFocus;
With StringGrid1 Do
Begin
Cells[1.0]:=’Физика’; Cells[2,0]:=’Математика’;
Cells[3.0]:=’Тарих’; Cells[2,0]:=’Шет тілі’;
Cells[5.0]:=’Орта балл’;
End;
End;
StringGrid1.Set Edit Text оқиғасы алдыңғы қосымшада келтірілді. Осы оқиға өңдеуші текстін тағы қарастырайық.
procedure Tform1.StringGrid1SetEditText(Sender:TObject; ACol, ARow:Intejer; Const Value:String);
Var b:real; j:byte;
//b – редакциялау жолының нақты мәні
//j – а матрицасының ағымдағы баған номеріне арналған цикл параметрі
Begin
With StringGrid1 Do
Begin
If Value=’’ Then Exit; //егер ештеңе енгізілмесе, онда процедурадан шығу
// Қорғалған блок басы
try b:=strtofloat(Value)
Except ShowMessage(‘символ дұрыс емес!’); b:=0;
End; // Қорғалған блок саны
// Дұрыс енгізілмеген бағаға реакция
if (b<1) or (b>5) then Begin Cells [ACol, ARow]:=’ ‘; Exit; End;
Cells[ACol, ARow]:=Value; //Бағаны таблицаға белгілеу
a[arow, ACol]:=b; //Бағаны массивке жазу.
// төменде орта балл есептеледі
ss[aRow]:=0; For j:=1 To 4 do
ss[aRow]:= ss[aRow]+ а[aRow,j];
ss[aRow]:= ss[aRow]/4;
//Орта балды таблицаның 5-ші бағанында бейнелеу.
Cells[5, aRow]:=FormatFloat(‘##.##’,SS[Arow]);
End; end;
Орта балды есептеу:
procedure Tform1.RadioGroup2.Click(Sender:TObject);
//Оқиға есептеу белгісін ауыстырғанда пайда болады
var s:real; k,i:byte;
Begin
s:=0; k:=0;
With RadioGroup2 Do
Begin
Case ItemIndex Of
0: begin //
for i:=1 to n do
if p[i] = ‘m’ then begin s:=s+ss[i]; k:=k+1; end;
if k = 0 then s:=0 else s:=s/k; end;
1: begin //
for i:=1 to n do
if p[i] = ‘g’ then begin s:=s+ss[i]; k:=k+1; end;
if k = 0 then s:=0 else s:=s/k; end;
2: begin //
for i:=1 to n do
s:=s+ss[i];
if n = 0 then s:=0 else s:=s/n; end;
end;
//
Edit2.Text:=FormatFloat(‘##.##’,s); end;
end;
Қосымша компиляциясы және жөндеу
Қосымшаны жөндеуге дайындау
Алдымен арнайы жолмен қосымшаны компиляциядан өткізу керек. Project\Options командаларын орындаңыз және Compiler бетін таңдаңыз. Бұл бетте мына опцияларды белгіліңіз: Debug Information,Local Symbols және Reference Info. Бұдан кейін Project\Options командаларын орындаңыз. Енді қосымша жөндеуге дайын.
View\Debug Windows\Watches командаларының көмегімен бақылау терезесін шақырамыз. Бақылау терезесі жөндеу режимінде осы терезеде көрсетілген өрнек мәні өзгерісін бақылауға қолданылады. Жаңа өрнек қосу үшін терезеге тышқанның оң жақ кнопкасын сырт еткізіңіз және Add Watch опцияларын таңдаңыз. Expression жолында ACol мәнін енгізіңіз. Repeat Count терезесі мәліметтер массивіндегі көрсетілген элементтер санын анықтайды. Digits терезесі нақты мәліметтердің мәнді цифрларын көрсетеді. Enabled айырғышы өрнекті есептеуді рұқсат етеді немесе рұқсат етпейді. Қалған элементтер көрсетілген мән түрін анықтайды. Жөндеу режимінде ағымдағы кез келген айнымалының мәнін көруге болады. Курсормен көрсетсе жеткіліті.
Екі бақылау нүктесін белгілеңіз: программаның таңдалған жолының сол жағына тышқанмен сырт еткізіңіз
Программаны орындаңыз. Одан кейін программаны жол боцынша орындаңыз. Курсор қойылған айнымалы мәнін қараңыз.
Жөндеудің басқа әдістерін қараңыз, мысалы, Run To Cursor, Program Pause, Program Reset.
Қосымшада BitBtn батырмасының жаңа қасиеті қаралды. Glyph - 1-ден 4-ке дейін кнопкамен байланысқан растрлі бейнені анықтайды.
Өзіндік жұмыс
Нұсқалар |
Алғашқы мәліметтер |
|
|
Жарыс нәтижесін өңдейтін қосымша құрыңыз. Бастапқы мәліметтер: спортшы фамилиясы, старт уақыты, мәре уақыты, бақылау уақыты. Бақылау уақытына іліккен спортшылар фамилиясын шығарыңыз. Нұсқау: спортшылар фамилиясын типтік тұрақты – массив түрінде беріңіз. Старт уақыты мен мәре уақыты таблицаға енгізіледі. TMemo компонентінде көрсетіледі. |
|
|
TStringGrid таблицасы көмегімен матрица элементтеріненгіз және баған мәні квадратының қосындысын тап. Баған элементтері қосындысының үлкенін немесе жол элементтері қосындысының үлкенін есептеуді таңдау арқылы ұйымдастыр. Нәтижесін TEdit компонентінде көрсетіңіз. |
|
|
Студенттер тобының орта параметрін есепте. Бастапқы мәліметтер: студенттер фамилиясы, әр студенттің тестілеуде жинаған балы. әр студенттің салмағы және бойы. Топтағы студенттердің орта салмағы мен орта бойын есепте. |
|
|
Фирманың 4 агентінің қызмет қортындысын таблица түрінде көрсетіңіз. Бастапқы ақпарат: агент фамилиясы, квартал бойынша сату көлемі. Әр агенттің жыл бойынша сату көлемін есептеңіз және көрсеткен агент фамилиясын шығарыңыз. |
|
|
Студенттердің сабаққа қатысу мәліметтерін таблица түрінде көрсетіңіз. Бастапқы ақпарат: фамилия, топ номері, дәлелді және дәлелсіз себептермен жіберілген сағаттар саны. Дәлелсіз себептермен х сағаттан аса жіберген студенттерді таблицаның бағанына арнайы хабармен белгілеңіз. Х енгізілетін шама. |
Бақылау сұрақтары:
1. BitBtn батырмасының Glyph қасиеті нені білдіреді?
2. Run To Cursor(F4) – нені білдіреді?
3. Program Pause – нені білдіреді?
4. Program Reset(Ctrl+F12) – нені білдіреді?
5. Add Breakpoint – нені білдіреді??
Әдебиеттер:
1. А. Я. Архангельский. Delphi 7.
2. М.М. Ерекешова, Т.А.Әмірғалиева Delphi ортасында программалау негіздері
3. Ю.А.Шпак Delphi 7 на примерах
К.З.Халықова Программалау тілдерін оқыту (Delphi)
