Ввести масив означає отримати від користувача (або з файлу) підчас роботи програми значення елементів масиву. Найпростіше вирішити питання вводу елементів масиву для кожного елемента масиву можна шляхом утворення поля вводу (компоненти Edit1, ListBox1). Але якщо необхідно ввести досить великий масив, то таке вирішення неприпустиме.
Послідовність чисел зручно вводити у поле або у таблицю, де кожне число розміщується на окремому рядку або числа розташовуються нa одному рядку, відокремлені один від одного пропусками.
Розглянемо ввід одновимірного масиву з використанням компонента форми Edit (поле редагування). Діалогове вікно під час вводу елементів масиву з використанням компонента Edit маэ такий вигляд.
При натисканні на кнопку «Ввід» програма повинна виділити з вікна вводу (компонент Edit1)перший елемент (0.1), перетворити йото на число та присвоїти отримане значення першому елементу масиву. Потім виділити другий елемент (2.3), перетворити його на число та присвоїти отримане значення другому елементу масиву, а потім, аналогічно,- длякожного з елементів масиву (48,5.6,11.4,6.619,1.73).
Головний цикл процедури вводу одновимірного масиву має вигляд:
fori:=1 to 7 do
k[i]:=StrToFloat (FK(Edit1.Text, і));
Тут: k - масив;
Editl - ім'я поля вводу-редагування;
FK - ім'я функції користувача.
Функція FK виділяє з рядка перший елемент (до першого пропуску). Елемент з масиву в полі Edit1- це послідовність символів, розташована між двома пропусками.
functionFK(k:string;n:integer):string;
Var
p,і:integer;
Begin
forі:=1 ton-1do
Begin
p:=pos(' ', k);
k:=copy(k, p+1, length(k)-p);
end;
p:=pos(' ', k); //Позиція пропуску у рядку масива
ifр<>0
Then
result:=copy(k,1,p-1)
Else
result:=k
end;
Для того, щоб виділити n-ий елемент масиву, функція FK спочатку вилучає (у циклі for)попередні п-1 елементи, потім знаходить пропуск, який позначає кінець елемента, виділяє елемент та повертає його як значення функції.
Функція copy виділяє фрагмент рядка: copy (k,1,р-1). 1 - номер першого символу; р-1 - довжина елементу. Наприклад:
k:='студент групи';
m:=copy(k,9,5);
Значенням m буде рядок ' групи'.
Функція length обчислює довжину рядка.
t: =length ('студент'); (значення t-7).
Функція pos (' ', k) обчислює позицію пропуску в символьному рядку k. Наприклад: