Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Айнур массив.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
79.97 Кб
Скачать

Жұмыстың мақсаты: 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;