Використання компоненту StringGrid

Поняття про масиви

Масив — це структура даних, що є набором змінних однакового типу, що мають загальне ім'я. Масиви зручно використовувати для зберігання однорідної по своїй природі інформації, наприклад, таблиць і списків.

Масиви є одновимірні(лінійні таблиці), двовимірні(прямокутні таблиці) та багатовимірні.

Одновимірний масив, який має вісім елементів.

Двовимірний масив.

Оголошення масиву

Масив, як і будь-яка змінна програми, перед використовуванням повинен бути оголошений в розділі оголошення змінних.

В загальному вигляді інструкція оголошення масиву виглядає таким чином:

Ім'я: array [нижній_індекс. .верхній_індекс] тип

де: ім'я — ім'я масиву;

array — зарезервоване слово мови Delphi, що позначає, що оголошуване ім'я є ім'ям масиву;

нижній_індекс і верхній_індекс — цілі константи, що визначають діапазон зміни індексу елементів масиву і, неявно, кількість елементів (розмір) масиву;

тип — тип елементів масиву.

3. Приклади оголошення масивів

temper:array[1..31] of real;

коеf: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];

4. Операції з масивами

Типовими операціями при роботі з масивами є:

• виведення масиву;

• введення масиву;

• пошук максимального або мінімального елемента масиву;

• пошук заданого елемента масиву;

• сортування масиву.

Введення масиву

Під введенням масиву розуміється процес отримання від користувача (або з файлу) під час роботи програми значень елементів масиву. Елементи масиву можна вводити в Delphi різними способами. Часто використовують компоненти Memo та StringGrid.

Використання компоненту StringGrid

Для введення масиву зручно використовувати компонент StringGrid. Значок компоненту StringGrid знаходиться на вкладці Additional .

Компонент StringGrid є таблицею, комірки якої містять рядки символів.

В таблиці перераховані деякі властивості компоненту StringGrid.

Властивість Визначає
Name Ім'я компоненту. Використовується в програмі для доступу до властивостей компоненту
ColCount Кількість колонок таблиці
RowCount Кількість рядків таблиці
Cells[i,j]); Відповідний таблиці двовимірний масив. Елемент таблиці, що знаходиться на перетині стовпця номер col і рядки номер row визначається елементом сеlls [col, row]
FixedCols Кількість зафіксованих зліва колонок таблиці. Зафіксовані колонки виділяються кольором і при горизонтальній прокрутці таблиці залишаються на місці

Проект 1.

Розробити проект для знаходження суми додатніх елементів масиву А[1..N], де N=7.Для введення елементів масиву використати компонент StringGrid. Для виводу результату компонент Label.

На форму встановити компоненти: StringGrid, Button1, Button2, Label.

Властивості StringGrid:

Властивість Значення
ColCount
RowCount
Options/goEditing True
FixedCols

Код процедури:

procedure TForm1.Button1Click(Sender: TObject);

const n=6;

var a:array[1..n] of integer;

i,s:integer;

Begin

for i:=1 to n do

begin

a[i]:=StrToInT(StringGrid1.Cells[i-1,0]);

end;

s:=0;

for i:=1 to n do

if a[i]>0 then s:=s+a[i];

label1.Caption:='S='+IntToStr(s);

End;

Нехай дано таблицю здійснення рейсів N автобусами протягом M днів. Рейси, що відбулися, позначаються в таблиці цифрою 1, а ті, що з деяких причин не відбулися, - цифрою 0. Треба скласти програму, яка підраховує кількість рейсів, що не відбулися.

Приклад програми

program voyage;
var R :array[1..30,1..100] of byte;

і, j, n, m, count : integer;
begin
write ('Задайте кількість автобусів: ');
repeatreadIn(n) until (n > 0) and (n <= 30);
write ('Задайте кількість днів: ');
repeatreadln (m) until (m > 0) and (m <= 100);
writeln ('Задайте інформацію про здійснення рейсів: ');
for i := 1 to n do for j := 1 to m do beginwrite (i, ' автобус, ', j, ' день: ');
repeatreadln(R[i,j]) until (R[i, j] = 0) or (R[i, j] = 1) end;count := 0;
for і := 1 to n do
for j := 1 to m do
if R[i. j] = 0 then count := inc (count);
writeln ('Кількість нездійснених рейсів: ', count:5);
repeat
until
Key
Pressed

end.

Наши рекомендации