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;