
Жұмыстың мақсаты: Delphi программалау ортасында массивтермен жұмыс істеу, оларды енгізу тәсілдерін қолдану дағдыларын қалыптастыру.
Массив дегеніміз біртекті элементтердің шектеулі жиыны. Массив өзінің атымен өлшемімен анықталады. Массивтерде табиғаты бір ақпараттарды сақтауға ыңғайлы, мысалы: кестелер мен тізімдерді.
Массивтерді жариялау
Массив басқа айнымалылар сияқты сипаттау бөлімінде қолданылмай тұрып, жариялануы керек. Массивтерді жариялаудың жалпы түрдегі инструкциясы:
Атау: array[төменгі_индекс..жоғарғы_индекс] of тип
Мұндағы:
Атау – массив атауы;
array-Delphi тілінің қордағы сөзі, яғни жарияланған атау массив атауы екендігін білдіреді.
төменгі_индекс..жоғарғы_индекс – бүтін тұрақтылар, олар массив элементтерінің индекстерінің өзгеру диапазонын анықтайды.
тип – массив элементтерінің типі
Массивтерді жариялау мысалдары:
temper:array[1..31] of real;
koef:array[0..2] of integer;
name:array[1..30] of string[25];
Массивтерді жариялауда тұрақты атауларын қолданған ыңғайлы. Мысалы: футбол командасын программада сиапаттау.
const
NT=18; //команда саны
SN=25; //команда атауының шекті ұзындығы
var
team: array[1..NT] of string[SN];
Программада массив элементін пайдалану үшін, массив атауын және элемент номерін (индексін) квадрат жақшаға алып көрсету керек.
Мысалы: team[1]:=’Семей’;
Массивтерге қолданатын операциялар
Массивтермен жұмыс істегенде қолданылатын операциялар:
массивтерді шығару;
массивтерді енгізу;
массивтің максимум және минимум элементтерін іздеу;
массивтің берілген элементін іздеу;
массивтерді сорттау.
8.1 Массивтерді шығару
Массивтерді шығару деген түсінік массив элементтерінің мәнін экранда көрсету. Егер массив элементтерінің барлығын экранда көрсету керек болса, онда for инструкциясын қолданған жөн және for инструкциясының есептегіш айнымалысын массив элементінің индексі ретінде қолдануға болады.
Төменде мысал ретінде массив элементтерінің мәнін белгі өрісіне шығару процесі келтірілген. Программа номерленген футбол командасының тізімін шығарады. Командалар тізімі тізім сияқты болуы үшін Label1.AutoSize құрылымына False мәнін меншіктеу керек (Сурет 8.1).
Сурет 8.1 Массивтерді шығару формасының үлгісі
Листинг 8.1 Массивті шығару
unit Mas_komanda;
Interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
{$R *.dfm}
const
NT=5;
var team:array[1..NT] of string[10]=
('Семей','Қайсар','Қайрат','Шахтер','Жеңіс');
procedure TForm1.Button1Click(Sender: TObject);
var
st:string; // команда тізімі
i:integer; //массив элементінің номері, индексі
begin
//формада көрсету үшін тізімді өңдеу
for i:=1 to NT do
st:=st +IntToStr(i)+' '+team[i]+#13;
//тізімді шығару
Label1.Caption:=st;
end;
end.
8.2 Массивтерді енгізу
Массивтерді енгізу - дегеніміз программаны орындау барысында қолданушыдан массив элементтерін алу процесін айтамыз.
Сандардың тізбегін кестенің қатарына енгізген ыңғайлы, яғни әрбір сан жеке ұяшықта орналасады. Төменде массивтерді компоненттердің көмегімен енгізудің екі жағдайы қарастырылған: StringGrid және Memo.
8.2.1 StringGrid КОМПОНЕНТІН ҚОЛДАНУ
Массивті StringGrid компоненттің көмегімен енгізу ыңғайлы. StringGrid компонентінің белгісі Additional астарлы бетінде орналасқан (Сурет 8.2).
С
урет
8.2 Additional
астарлы
беті
Кесте 1.StringGrid компоненттің құрылымы
Қасиеті |
Анықтайды |
Name |
Компонент атауы. Программада компонент құрылымын қолдану үшін. |
ColCount |
Кесте бағанының саны |
Count |
Кесте қатарының саны |
Cells |
Кестеге сәйкесінше екі өлшемді массив. Кесте ұяшығы, баған номері col мен қатар номері row қилысуында Cells[col,row] |
FixedCols |
Кестенің сол жағынан белгіленген бағандар саны. Белгіленген бағандар түспен ерекшеленеді және кестені көлденең айналдыру жолағында орнында қалады. |
FixedRows |
Кестенің жоғарғы жағынан белгіленген қатарлардың саны. Белгіленген қатарлар түспен ерекшеленеді және кестені тігінен айналдыру жолағында орнында қалады. |
Options.goEditing |
Кесте ұяшығын өңдеу мүмкіншілігінің мазмұны. True - өңдеуге рұқсат, False-өңдеуге болмайды. |
Options.goTab |
Өңдеуге рұқсат (True) немесе өңдеуге болмайды (False) <Tab> пернесін қолдану кестенің келесі ұяшығына көшу үшін. |
Options.GoAlways-ShowEditor |
Компоненттің өңдеу режимінде тұрғанын көрсетеді. Егер құрылым мәні False болса, онда ұяшықта курсор пайда болуы үшін текст теру керек, <F2> пернесін басу немесе тышқанды шерту. |
DefaultColWidth |
Кестенің бағанының ені |
DefaultRowHeight |
Кестенің қатарының биіктігі |
GridLineWidth |
Кесте ұяшықтарының шекарысындағы сызық ені |
Left |
Кесте өрісінің шекарасының сол жағынан форма шекарысының сол жағына дейінгі алшақтық |
Top |
Кесте өрісінің шекарасының жоғарғы жағынан форма шекарысының жоғарғы жағына дейінгі алшақтық |
Height |
Кесте өрісінің биіктігі |
Width |
Кесте өрісінің ені |
Font |
Кесте ұяшығындағы мәндерді көрсету үшін қолданылатын Шрифт |
ParentFont |
Форма шрифінің сипаттамасын жалғастыру. |
Массивтерді енгізуде StringGrid компоненттін қолдануға мысал ретінде массив элементтерінің арифметикалық ортасының мәнін есептейтін программаны қарастырамыз.
Төменде программаның сұқбат терезесі келтірілген (Сурет 8.3).
Сурет 8.3 Массивтерді енгізу және өңдеу формасының үлгісі
StringGrid компонентті массив енгізуге, Label1 және Label2 түсіндірме және есептеу нәтижесі үшін, Button1- есептеу процесін орындау үшін қолданылады. StringGrid компоненттін басқа компоненттер сияқты орнатамыз. Компонентті қосқанан кейін төмендегі кесте 2-ге сәйкес баптаймыз.
Кесте 2.
-
Қасиеті
Мәні
ColCount
5
FixedCols
0
RowCount
1
DefaultRowHeight
24
Height
24
DefaultColWidth
64
Width
328
Options.goEditing
True
Options.AlwaysShowEditing
True
Options.goTabs
True
Листинг 8.2 Арифметикалық ортасын табу программасы
unit Sum_AO;