mozok.click » Інформатика » Відображення даних у табличній формі
Інформація про новину
  • Переглядів: 6518
  • Автор: admin
  • Дата: 14-09-2017, 06:37
14-09-2017, 06:37

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

Категорія: Інформатика

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

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

Компонент StringGrid

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

Таблиця StringGrid може складатися із зафіксованих клітинок-заголовків FixedCols і FixedRows, виділених сірим кольором, і звичайних клітинок білого кольору (рис. 35.1). Звернення до клітинки таблиці, що знаходиться на перетині стовпця з номером col і рядка з номером row, має вигляд StringGrid1.Cells[col, row]

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

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

Властивість

Призначення

RowCount

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

ColCount

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

FixedRows

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

FixedCols

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

Cells

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

DefaultColWidth

Визначає ширину стовпця таблиці в пікселях

DefaultRowHeight

Визначає висоту рядка таблиці в пікселях



Розглянемо приклад налаштування вигляду елемента StringGrid1 для відображення одновимірного масиву (рис. 35.2).

 

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

var i: Integer;

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

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

end;

Заповнити масив випадковими числами в діапазоні від 0 до 19 (рис. 35.3): 

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

begin Randomize;

For i := 1 to 6 do begin

a[i] := Random(20);

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

end;

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

StringGrid1.Rows[1].Clear;


Редагування вмісту клітинок таблиці StringGrid

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

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

Властивість

Призначення

goEditing

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

goAlwaysShowEditor

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

goTabs

Переміщує фокус на сусідню клітинку при натисканні клавіші Tab

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

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

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

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

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

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

For i := 1 to 6 do

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

Then a[i] := StrToInt(StringGrid1.Cells[i – 1, 1]) Else a[i] := 0;

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

sum := 0;

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

sr := sum / 6;

Label2.Caption := ꞋСума елементів: Ꞌ + IntToStr(sum) + LineEnding +

ꞋСереднє арифметичне: Ꞌ + FloatToStr(sr); { LineEnding — константа,

що позначає кінець рядка }

end;


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

1. Поясніть порядок налаштування вигляду елемента StringGrid1 для відображення одновимірного масиву.

2. Яка властивість компонента StringGrid відповідає за можливість редагування вмісту клітинок таблиці StringGrid?

3. Складіть програму для заміни найбільшого елемента послідовності з 10 чисел нулем.

4. Складіть програму, яка міняє місцями перший і найбільший елементи послідовності з 10 чисел.

5. Дано 20 дійсних чисел. Складіть програму для визначення, скільки з них більші за своїх «сусідів», тобто за попереднє та наступне числа.

6. У фігурному катанні загальна оцінка якості виконання елемента обчислюється за такими правилами: відкидаються найвища і найнижча оцінки, а з решти обчислюється середнє арифметичне. Складіть програму для визначення оцінки за цими правилами.

Вправа 35

У масиві А[1..10] переставити місцями елементи, що стоять на парних і непарних місцях: A[1] -о- A[2], ..., A[9] -о- А[10].

1) Створіть новий проект. Змініть значення властивості Caption форми і додайте на форму кнопку Виконати перестановку (див. рисунок).

2) Розмістіть на формі компонент StringGrid і налаштуйте його властивості таким чином:

3) У процедурі обробки події OnCreate для форми запрограмуйте виведення індексів елементів масиву в зафіксований рядок заголовків стовпців.

4) У процедурі обробки події onclick для кнопки Виконати перестановку запрограмуйте: а) заповнення масиву значеннями клітинок таблиці StringGridl; б) попарну перестановку елементів; в) виведення значень елементів масиву до таблиці StringGrid1.

var a: array[1..10] of Integer; i, c: Integer;

begin

For i := 1 to 10 do // заповнення масиву

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

Then a[i] := StrToInt(StringGrid1.Cells[i – 1, 1]) Else a[i] := 0;

i := 1; // перестановка елементів

While i <= 9 do begin c := a[i]; a[i] := a[i + 1]; a[i + 1] := c; i := i + 2 end;

{ виведення масиву }

For i := 1 to 10 do StringGrid1.Cells[i – 1, 1] := IntToStr(a[i]);

end;

5) Додайте на форму кнопку Обнулити елементи з парними індексами. У процедурі обробки події onclick для цієї кнопки запрограмуйте реалізацію таких дій: а) заповнення масиву значеннями клітинок таблиці StringGrid1; б) заміну нулями елементів, що мають парні індекси; в) виведення значень елементів масиву до таблиці StringGrid1.

6) Перевірте роботу програми. Збережіть проект у папці Вправа 35. Завершіть роботу за комп’ютером.

Комп'ютерне тестування

Виконайте тестове завдання 35 із автоматичною перевіркою на сайті «Інтерактивне навчання».

 

Це матеріал з підручника Інформатика 9 клас Бондаренко

 






^