mozok.click » Інформатика » Одновимірний масив даних
Інформація про новину
  • Переглядів: 5984
  • Автор: admin
  • Дата: 14-09-2017, 06:29
14-09-2017, 06:29

Одновимірний масив даних

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

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

Поняття одновимірного масиву

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

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

Одновимірний масив — це масив, доступ до елементів якого визначається за допомогою одного індекса.

Для зберігання значень середньодобової температури повітря, отриманих протягом року, замість створення окремих змінних ґ1, t2, ..., t365 можна створити один масив з іменем t. Спільне ім’я t означає, що ці дані належать до одного масиву, а розрізнити їх можна за індексом (номером): ї[1], ї[2], ..., ї[365] (див. таблицю).

Середньодобова температура повітря протягом року

У таблиці значень середньодобової температури ї[1] = -10, ї[365] = -9.6.



Опис змінних типу одновимірний масив

Описати змінну типу одновимірний масив можна двома способами:

1) описати змінну типу масив, не вводячи нового типу:

var <список змінних>: аггау[діапазон індексів] of <тип елементів>;

2) у розділі type програмного коду описати новий тип даних, і в розділі var описати змінну цього типу:

type <ім'я типу> = аггау[діапазон індексів] of <тип елементів>; var <список змінних>: <ім'я типу>;

Кількість елементів описаного таким чином масиву визначається під час його опису й надалі в програмі не змінюється.

Описати масив Numbers із 10 цілих чисел: type mas = array[1..10] of Integer; var Numbers: mas;

або

var Numbers: array[1..10] of Integer;

Нумерація елементів масиву не обов’язково повинна починатися з одиниці.

Описати масив Numbers із 10 символів, нумерація яких починається з -5: var Numbers: array[-5..4] of Char;

Звернення до елемента масиву за індексом, що виходить за межі діапазону, зазначеного в описі, є неприпустимим.

Проаналізувати зміст повідомлення (рис. 32.1), отриманого під час компіляції програми, в якій робиться спроба виведення значення елемента масиву з неіснуючим індексом. var Numbers: array[1..10] of Integer; begin Edit1.Text := IntToStr(Numbers[20]);


Задавання значень елементів масиву

Розглянемо різні способи заповнення масиву. У середовищі програмування Lazarus можна безпосередньо присвоїти один масив іншому.

Присвоїти масиву Numbersl значення масиву Numbers2 того самого типу:

var Numbersl, Numbers2: array[1..3] of Integer; begin Numbersl := Numbers2;

Після виконання такої операції одразу всі елементи масиву Numbersl отримають значення відповідних їм за індексами елементів масиву Numbers2.

Присвоїти масиву Numbers значення масиву CNumbers того самого типу: type mas = array[1..5] of Integer; const CNumbers: mas = (2, 5, 1, 4, 2); var Numbers: mas; begin

Numbers := CNumbers;

Звернення до окремого елемента масиву здійснюється за його індексом. Присвоїти значення певним елементам масиву.

Нехай масив А: array[1..4] of Integer заповнено числами (1, 2, 3, 4), а масив В: array[1..3] of Integer — числами (5, 6, 7). Після виконання операторів присвоєння

A[3] := 5; B[2] := A[1] + B[3];

масив А містить елементи (1, 2, 5, 4), а масив В — елементи (5, 8, 7).

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

Блок-схему опрацювання елементів масиву з використанням циклу For наведено на рис. 32.2.

Заповнити масив А[1..5] випадковими цілими числами з проміжку [0; 99]:

Randomize;

For і := 1 to 5 do А[і] := Random(100);

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

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

^ Увести чи вивести масив як єдине ціле не можна.

Увести значення елементів масиву цілих чисел із клавіатури за допомогою функції InputBox (рис. 32.3): var i: Integer;

Numbers: array[1..10] of Integer; begin

For i := 1 to 10 do

Numbers[i] := Б^ТоІп^Іпр^Вох('Уведіть значення елемента', 'Numbers[' + IntToStr(i) + ']:', '0'));

end;

Виведення значень елементів масиву

Одним зі способів виведення елементів одновимірного масиву є додавання значень у поле списку ListBox. Список ListBox є масивом рядків типу String, доступ до яких надає властивість Items цього компонента.

Вивести в поле списку ListBox1 значення елементів масиву дійсних чисел із 4 знаками після коми (рис. 32.4): var i: Integer;

Numbers: array[1..5] of Real; begin

For i := 1 to 5 do

ListBox1 .Items. Add(FormatFloat('#.####', Numbers[i])); end;


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

1. Дайте означення масиву як структурованого типу даних.

2. Опишіть масиви: а) А з трьох дійсних чисел; б) В з десяти символів.

3. Як організувати заповнення масиву випадковими числами?

4. Запишіть оператор присвоєння, який виконує таку дію: а) першому елементу масиву С присвоїти значення суми третього і п’ятого елементів; б) шостому елементу масиву С присвоїти значення подвоєного добутку першого і другого елементів.

5. Як увести значення елементів масиву з клавіатури?

6. Створіть програму для заповнення масиву МишЬег$[1..10] числами 1, 4, 9, ..., 100 і виведення значень елементів масиву в поле іібїВох.

Вправа 32

Дано послідовність із N цілих чисел N < 100). Визначити кількість парних чисел, які мають парні індекси.

1) Створіть новий проект. Змініть значення властивості Caption форми, розмістіть на формі компоненти Edit, Button, Label, ListBox і налаштуйте їхні властивості згідно з рисунком.

2) Для зберігання елементів використаємо масив. Оскільки кількість елементів послідовності N < 100, опишіть масив:

Posl: array[1..100] of Integer;

Опишіть глобальні змінні: N — кількість елементів послідовності; K — шукана кількість парних чисел, що мають парні індекси; і — індекс поточного елемента масиву.

3) Створіть процедуру обробки події onclick для кнопки Заповнити масив. Запишіть оператори для введення значення N і заповнення масиву випадковими числами:

N := StrTolnt(Editl.Text);

Randomize;

ListBoxl.Clear; // очищення поля списку

For і := 1 to N do begin Posl[i] := Random(20);

ListBoxl.Items. Add(IntToStr(Posl[i])); end;

4) Створіть процедуру обробки події onclick для кнопки Обчислити К. У циклі перебираємо елементи масиву Posl; якщо Posl[i] відповідає умові, збільшуємо значення K на 1:

K := 0;

For i := 1 to N do

If (Posl[i] Mod 2 = 0) and (i Mod 2 = 0) Then K := K + 1;

Edit2.Text := IntToStr(K);

Перевірте роботу програми для різних значень N. Поясніть результати роботи програми, наведені на рисунку.

5) Змініть програмний код так, щоб після клацання командної кнопки Обчислити К до списку ListBox1 виводилися значення тих елементів масиву, які мають непарні індекси (Posl[1], Posl[3], Posl[5], ...).

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

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

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

 

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

 






^