Лабораторна робота №___
Тема: Створення програм з використання масивів
Мета: Набути практичних навичок створення програм, що містять одновимірні масиви даних; засвоїти синтаксис оголошення та ініціалізації масивів; навчитись використовувати в програмах базові операції при роботі з масивами.
Теоретичні відомості
1. Поняття одновимірного масиву
Для розв’язування задач, у яких опрацьовуються значення великої кількості змінних, можна піти таким шляхом: розглядати всі ці змінні як елементи деякого впорядкованого набору змінних. Цей набір змінних має ім’я, а ім’я кожної змінної набору складається з імені набору та порядкового номера цієї змінної в наборі. Такому набору даних можна надати загальне ім’я, а кожна окрема змінна визначатиметься наданим загальним іменем і своїм порядковим номером у цьому наборі.
Впорядкований набір змінних одного типу називається масивом. Кожна змінна, що входить до масиву, називається елементом масиву.
Масив, у якому кожний елемент визначається тільки одним порядковим номером, називається одновимірним.
Ім’я кожного елемента одновимірного масиву складається з імені масиву й узятого у квадратні дужки порядкового номера цього елемента в масиві.
Так, наприклад, замість 100 окремих змінних одного типу варто розглядати масив, що складається зі 100 елементів. Якщо надати ім’я масиву a, то імена змінних – елементів цього масиву будуть такі: a[1], a[2], a[3], ..., a[100].
Тоді, щоб знайти суму значень усіх цих 100 змінних, достатньо записати такі команди:
suma := 0;
for i := 1 to 100 do suma := suma + a[i];
Звертаємо вашу увагу, що номер елемента масиву може задаватися як числом, так і значенням виразу, що набуває цілочисельного значення.
У тексті програми мовою Delphi у рядку var змінна a типу одновимірний масив оголошується так:
var a: array [1..100] of Real;
(англ. array – масив). У квадратних дужках указується діапазон номерів елементів масиву: від 1 до 100. За цим записом компілятор виділяє в пам’яті комп’ютера 100 ділянок під кожну зі 100 змінних – елементів масиву. Розмір кожної ділянки залежить від типу елементів масиву.
Звертаємо вашу увагу, що інколи зручно нумерувати елементи масиву, починаючи не з першого номера. Так, наприклад, для змінних, значення яких – кількість населення України в період з 1990 по 2011 роки можна використати масив a: array [1990..2011] of Integer. Взагалі, номери елементів одновимірного масиву можуть буди елементами довільного діапазону цілих чисел.
2. Введення та виведення значень елементів одновимірного масиву
Для введення і виведення значень елементів одновимірного масиву можна скористатися багаторядковим полем (компонент типу TMemo).
Задача. Сформувати одновимірний масив з десяти дійсних чисел, які вводяться в рядки багаторядкового поля, піднести ці числа до квадрата і вивести ці квадрати в інше багаторядкове поле.
Розмістимо на формі два багаторядкових поля з іменами Memo1 і Memo2, розташуємо їх на формі одне поруч з іншим та встановимо для них значення властивостей: Height = 150, ScrollBars = ssVertical, ReadOnly = False. Розмістимо на формі також кнопку, встановимо для неї Caption = 'До квадрата' і створимо процедуру, пов’язану з подією OnClick для цієї кнопки.
Текст процедури:
procedure TForm1.Button1Click(Sender: TObject);
var
a:array[1..10] of Real;
i:Integer;
begin
for i:=1 to 10 do
a[i]:=StrToFloat(Memo1.Lines[i-1]); {Дані з рядка перевести в число і присвоїти елементу масиву}
for i:=1 to 10 do
a[i]:=a[i]*a[i];
Memo2.Lines.Clear; {Очистити усі рядки багаторядкового поля}
for i:=1 to 10 do
Memo2.Lines.Append(FloatToStr(a[i])); {Додати рядок і вивести в нього елемент масиву, переведений у текст}
end;
У тексті процедури використано два стандартні методи, що пов’язані з багаторядковим полем: процедура Clear (англ. clear – очищувати), що очищує всі рядки цього компонента, і процедура Append (англ. append – додавати), що додає до багаторядкового поля новий рядок і виводить у нього значення параметра, вказаного в дужках.
На рисунку 1 наведено вікно виконання програми.
Звертаємо вашу увагу: в наведеному прикладі процедури розв’язування задачі 1 уведення значень елементів, піднесення їх до квадрата і виведення нових значень елементів масиву організовано трьома окремими циклами лише для кращого розуміння. Очевидно, що усі ці операції можна було б організувати в одному циклі.
Після запуску проекту на виконання у вікні, що відкрилося, у першому багаторядковому полі (на рис. 1 зліва) потрібно видалити текст Memo1, який знаходився там за замовчуванням, і ввести в кожний рядок по одному числу, які й будуть значеннями відповідних елементів масиву. Після цього потрібно вибрати кнопку і в результаті виконання процедури з чисел у рядках першого багаторядкового поля буде сформований одновимірний масив, потім значення елементів цього масиву будуть піднесені до квадрата і нові значення будуть виведені в рядки другого багаторядкового поля.
Можна ввести числа у багаторядкове поле до запуску проекту, змінюючи значення властивості Lines цього поля. Це зручно робити, наприклад, на етапі налагодження програми. Для цього потрібно:
Вибрати багаторядкове поле.
Вибрати кнопку в кінці рядка Lines вікна Object Inspector.
У вікні String List Editor, що відкрилося, видалити текст першого рядка і ввести дані десяти чисел, натискуючи після кожного клавішу Enter.
Вибрати кнопку OK.
Тоді при збережені проекту ці значення також будуть збережені й автоматично з’являться в цьому полі після запуску проекту на виконання.