Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabRab_3_4_ukr_KONETs_var7-2.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.38 Mб
Скачать

4.2. Дії над елементами масиву

Після визначення масиву, кожний його елемент можна обробити, вказавши ідентифікатор (ім'я) масиву і індекс в квадратних дужках. Наприклад, запис mas2[2], mas3[10], mas4[3,4] дозволяє звернутися до другого елемента масиву mas2, до десятого елемента масиву mas3 і до елемента, що знаходиться в третьому рядку четвертого стовпця масиву mas4.

Елементи масиву називаються індексованими змінними і можуть бути використані так само, як і прості змінні.

Розглянемо типові ситуації, що виникають при роботі з даними типу array. Для цього опишемо три масиви і чотири допоміжні змінні:

var A, B : array [1..4] of real;

C : array [1..10, 1..15] of integer;

i, j , k : integer;

s : real;

Ініціалізація масиву полягає в присвоєні кожному елементу масиву одного і того ж значення, відповідного базовому типу. Найбільш ефективно ця операція виконується за допомогою оператора for: for i :=1 to 4 do A[i]:=0;

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

for i := 1 to 10 do

for j := 1 to 15 do

C[i,j]:= 0;

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

Інформація має бути занесена в масив з клавіатури з використанням звернення до підпрограм

read(список вводу);

readln(список вводу);

де список вводу включає імена змінних (елементів масиву) через кому.

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

write();

або

writeln();

При цьому треба зазначити, що список вводу може включати в себе окрім імен зміннх константи (числові та текстові) і вирази

for i:=1 to 4 do

begin

write(‘A[‘, i , ‘]=‘); { підказка }

readln (A[i]);

end;

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

for i := 1 to 10 do

for j := 1 to 15 do

begin

write(‘C[‘, i , ‘,‘, j , ‘]=‘); { підказка }

readln (C[i,j]);

end;

Вивод значень елементів масиву виконується аналогічним чином, але використовуються підпрограми write або writeln.

for i:=1 to 4 do writeln(‘A[‘,i, ‘]=‘,A[i]); {для одномірного масиву}

або

for i := 1 to 10 do {для двомірного масиву}

for j := 1 to 15 do

write(‘C[‘, i , ‘,‘, j , ‘]=‘, C[i,j]);

Копіюванням масивів називається присвоєння значень всіх елементів одного масиву відповідним елементам іншого масиву. Копіювання можна виконати одним оператором присвоєння, наприклад A := B; або за допомогою оператора for: for i := 1 to 4 do A[i]:= B[i];

Слід зауважити, що у першому випадку змінні А і В повинні бути задекларовані за допомогою одного і тогож імені типу.

Приклад:

Const n =10;

Type

Vect = array[1..n] of real;

Var

A, B: Vect

C = array[1..n] of real;

Begin

A:=B;{присвоєння виконано корректно коректно}

C:=B{помилка виконання}

У другому випадкузмінні А і В можуть визначатись окремо, але мати однакові базові типи і ідеентичні типи індексів.

Приклад:

Const

n=10;

M=7;

Var

A:array [1..n] of real;

B:array [1..m] of real;

I:integer;

Begin

For i:=1 to m do

A[i]:=B[i];

End.

У цьому прикладі перші m елементівмасиву А будуть мати значення, які зберігаються в масиві В.

Останні n-m значень масиву будуть не визначені.

Іноді вимагається здійснити пошук в масиві елементів, що задоволь-няють деяким відомим умовам. Хай, наприклад, треба з'ясувати, скільки елементів масиву A мають нульове значення, а також знайти максимальний елемент масиву (його значення і індекс). Для відповіді на це питання введемо додаткові змінні k, max, imax і скористаємося операторами for і if:

k := 0;

max := A[1];imax := 1;

for i := 1 to 4 do

begin

if A[i] = 0 then k := k + 1;

if max < A[i]

then begin max := A[i]; imax:=i; end;

end;

Після виконання циклу змінна k міститиме кількість елементів масиву A з нульовим значенням, а змінні max і imax містять відповідно максимальне значення елемента масиву і його індекс.

Перестановка значень елементів масиву здійснюється за допомогою додаткової змінної того ж типу, що і базовий тип масиву. Наприклад, вимагається поміняти значення першого і четвертого елементів масиву А:

rab := A[1]; { rab - допоміжна змінна)

A[1] := A[4];

A[4] := rab;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]