Then begin 3 страница

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

Для цього потрібно:

1. Вибрати багаторядкове поле.

2. Вибрати кнопку в кінці рядка Lines вікна Object Inspector (рис. 2.64).

3. У вікні String List Editor(англ. string – рядок тексту, list – список, editor – редактор), що відкрилося, видалити текст першого рядка і ввести дані 10 чисел, натискаючи після кожного клавішу Enter.

4. Вибрати кнопку ОК.

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

 

Деякі задачі опрацювання значень елементів одновимірного масиву

Розглянемо кілька задач на опрацювання значень елементів одновимірного масиву. У всіх задачах, розглянутих нижче, будемо вводити значення елементів масиву з багаторядкового поля, а виводити результат у багаторядкове поле, якщо результатом є значення елементів одновимірного масиву, або в напис. Створюватимемо процедури, пов’язані з подією OnClick для кнопки. При необхідності, ви зможете аналогічно створити процедури, пов’язані з іншими подіями або з іншими об’єктами.

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

 

Задача 2. Визначити, скільки разів зустрічається дане дійсне число серед значень елементів даного масиву з 10 дійсних чисел.

 

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

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of Real; i, k: Integer; x: Real;

x := StrToFloat (Edit1.Text); //Уведення числа, з яким потрібно порівнюватизначення елементів масиву

k := 0;// Лічильник кількості елементів масиву, що дорівнюють даному числу х – їх поки що не зустрілося жодного

for i := 1 to 10 do

a[i] := StrToFloat (Memo1.Lines[i-1]);// Уведення значень елементів одновимірного масиву з багаторядкового поля

if a[i] = x then k := k+1;// Якщо значення чергового елемента масиву дорівнює заданому числу, то значення лічильника збільшується на 1

end;

Label1.Caption := IntToStr (k) + ' разів'// Виведення результату в напис з додаванням пояснювального тексту

end;

 

Звертаємо вашу увагу: якщо не включити перед початком другого циклу команду k := 0, то перше виконання команди k := k+1 може виявитися некоректним.

Задача 3. Визначити, чи зустрічається дане дійсне число серед значень елементів даного масиву з 10 дійсних чисел.

 

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

Для реалізації раціонального методу розв’язування цієї задачі використаємо змінну логічного типу f і присвоїмо їй початкове значення false (дане число в масиві поки ще не зустрілося). Порівнюватимемо послідовно значення елементів масиву з даним числом і якщо один з них дорівнює даному числу, то змінимо значення змінної f на true і перервемо виконання циклу командою break (англ. break – переривати). Виведення результату реалізуємо залежно від значення змінної f.

 

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of Real; i: Integer; x: Real; f: Boolean;

for i := 1 to 10 do

a[i] := StrToFloat (Memo1.Lines[i-1]);

x := StrToFloat (Edit1.Text);

f := false;// Дане число в масиві поки що не зустрілося

for i := 1 to 10 do

if a[i] = x

f := true;// Дане число в масиві зустрілося

break;// Перериваємо виконання циклу, бо число зустрілося в масиві

end;