1 of 21

Відображення даних у табличній формі

Урок 48

teach-inf.at.ua

9

2 of 21

Відображення даних�у табличній формі

Розділ 9 § 35

Ви вже ознайомилися з прийомами введення і виведення значень елементів одновимірного масиву з використанням компонента Memo.

Але, оскільки алгоритми опрацювання масивів призначені для роботи з таблицями даних, для більшої наочності роботи програми бажано відображати зміст масиву у вигляді таблиці.

9

© Вивчаємо інформатику teach-inf.at.ua

3 of 21

Властивості компонента StringGrid

Розділ 9 § 35

Компонент StringGrid (вкладка Additional на Палітрі компонентів) призначений для відображення різних даних у табличній формі. Як випливає з назви, комірки компонента StringGrid можуть містити дані типу String, а також відображати графічні об'єкти.

9

© Вивчаємо інформатику teach-inf.at.ua

4 of 21

Властивості компонента StringGrid

Розділ 9 § 35

Таблиця StringGrid складається із зафіксованих комірок-заголовків:

FixedCols

FixedRows

Виділених сірим кольором, і звичайних комірок білого кольору. Звернення до комірки таблиці, що знаходиться на перетині стовпця з номером col і рядка з номером row, має вигляд

StringGrid1.Cells[col, row]

9

© Вивчаємо інформатику teach-inf.at.ua

5 of 21

Властивості компонента StringGrid

Розділ 9 § 35

Нумерація стовпців (col) і рядків (row) починається з нуля.

Розглянемо основні компоненти StringGrid, за допомогою яких можна визначити структуру та зовнішній вигляд таблиці.

FixedRows

FixedCols

9

© Вивчаємо інформатику teach-inf.at.ua

6 of 21

Властивості компонента StringGrid

Розділ 9 § 35

Основні властивості компонента StringGrid

Призначення

Властивість

Визначає кількість рядків

RowCount

Визначає кількість стовпців

ColCount

Визначає кількість зафіксованих (сірих) рядків

FixedRows

Визначає кількість зафіксованих (сірих) стовпців

FixedCols

Містить таблицю значень

Cells

9

© Вивчаємо інформатику teach-inf.at.ua

7 of 21

Властивості компонента StringGrid

Розділ 9 § 35

Одновимірний масив — це таблиця, що складається з одного рядка, тому розглянемо приклад налаштування вигляду об'єкта StringGrid для відображення одновимірного масиву.

Властивість

Значення

ColCount

6

FixedCols

0

FixedRows

1

RowCount

2

Defau itColWidth

40

9

© Вивчаємо інформатику teach-inf.at.ua

8 of 21

Властивості компонента StringGrid

Розділ 9 § 35

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

var і: Integer;

Begin // нумерація стовпців і рядків починається з нуля

For і := 1 to 6 do StringGrid1.Cells[i-1, 0] := IntToStr(i);

end;

9

© Вивчаємо інформатику teach-inf.at.ua

9 of 21

Властивості компонента StringGrid

Розділ 9 § 35

Заповнити масив випадковими числами.

var a: array[1..6] of Integer;

і: Integer; // індекс

begin

Randomize;

For і := 1 to 6 do begin

a[i] := Random(20);

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

end;

end;

9

© Вивчаємо інформатику teach-inf.at.ua

10 of 21

Властивості компонента StringGrid

Розділ 9 § 35

Очистити вміст таблиці:

StringGrid1.Rows[1].Clear;

9

© Вивчаємо інформатику teach-inf.at.ua

11 of 21

Можливість редагування комірок таблиці StringGrid

Розділ 9 § 35

За можливість редагування звичайних комірок відповідає одне зі значень властивості Options. У вікні Інспектор об'єктів список Options містить 15 елементів, які можуть набувати значень:

True

False

або

9

© Вивчаємо інформатику teach-inf.at.ua

12 of 21

Можливість редагування комірок таблиці StringGrid

Розділ 9 § 35

Щоб в активному вікні програми можна було редагувати вміст комірок, необхідно надати значення True таким елементам списку Options:

можливість редагувати вміст комірок;

goEditing

у разі натискання клавіші Tab фокус переміщається на сусідню комірку таблиці;

goTabs

під час отримання коміркою фокуса текст у ній стає доступним для редагування (при goEditing = True).

goAlwaysShowEditor

9

© Вивчаємо інформатику teach-inf.at.ua

13 of 21

Можливість редагування комірок таблиці StringGrid

Розділ 9 § 35

Заповнити таблицю з клавіатури і знайти середнє арифметичне елементів масиву.

9

© Вивчаємо інформатику teach-inf.at.ua

14 of 21

Можливість редагування комірок таблиці StringGrid

Розділ 9 § 35

Текст відповідної процедури:

var a: array[1..6] of Integer;

sum: Integer; // сума елементів

sr: Real; // середнє арифметичне

і: Integer; // індекс

begin

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

{ Функція Length() повертає довжину рядка. Вважаємо, що якщо комірка порожня, то відповідний елемент масиву дорівнює нулю }

9

© Вивчаємо інформатику teach-inf.at.ua

15 of 21

Можливість редагування комірок таблиці StringGrid

Розділ 9 § 35

Продовження…

For і := 1 to 6 do

If Length(StringGrid1.Cells[i-1, 1]) <> 0

Then a[i] := StrTolnt(StringGrid1.Cells[i-1, 1])

else a[i] := 0;

// опрацювання масиву

sum := 0;

For і := 1 to 6 do sum := sum + a[i];

sr := sum / 6:

Label1.Caption := 'Сума елементів: ' + IntToStr(sum) + #13#10 + 'Середнє арифметичне:' + FloatToStr(sr); { #73#/0 — службові символи повернення каретки і перенесення рядка відповідно }

end;

9

© Вивчаємо інформатику teach-inf.at.ua

16 of 21

Розгадайте ребус

Середнє

Розділ 9 § 35

9

© Вивчаємо інформатику teach-inf.at.ua

17 of 21

Питання для самоперевірки

Розділ 9 § 35

  1. Поясніть схему налаштування вигляду об'єкта StringGrid для відображення одновимірного масиву.
  1. Яка властивість об'єкта StringGrid відповідає за можливість редагування комірок таблиці StringGrid?
  1. Складіть блок-схему: Найбільший елемент послідовності з 10 чисел замінити нулем.
  1. Запишіть програмний код для того, щоб поміняти місцями перший і найбільший елементи послідовності з 10 чисел.

9

© Вивчаємо інформатику teach-inf.at.ua

18 of 21

Питання для самоперевірки

Розділ 9 § 35

  1. Дано 20 дійсних чисел. Складіть програму для визначення, скільки з них більші за своїх «сусідів», тобто за попереднє та наступне числа.
  1. У фігурному катанні загальна оцінка якості виконання елемента обчислюється як усічене середнє оцінок, даних 9 суддями. Для цього відкидаються найвища і найнижча оцінки, а з решти обчислюється середнє арифметичне. Складіть програму для визначення оцінки за цими правилами.

9

© Вивчаємо інформатику teach-inf.at.ua

19 of 21

Домашнє завдання

Проаналізувати

§ 35, ст. 194-197

Розділ 9 § 35

9

© Вивчаємо інформатику teach-inf.at.ua

20 of 21

Працюємо за комп’ютером

Розділ 9 § 35

Сторінка

196-197

Вправа 35

9

© Вивчаємо інформатику teach-inf.at.ua

21 of 21

Дякую за увагу!

teach-inf.at.ua

9