2. ТАБЛИЧНІ ВЕЛИЧИНИ.
МАСИВИ.
Одновимірні та двовимірні масиви.
Алгоритми впорядкування табличних
величин.
Практична робота №6.
3. ЗАГАЛЬНІ ПОНЯТТЯ
Масив – це структурний тип даних, який складається з
фіксованого числа елементів одного і того ж типу.
Масиви поділяються на одновимірні (лінійні) та багатовимірні.
МАСИВ
Одновимірний
(лінійний) Багатовимірний
Усі елементи масиву мають порядковий номер (індекс). Завдяки цій
нумерації можна виділити будь-який елемент масиву і виконати з ним
операції, як із простим значенням базового типу. Елементи масиву
ще називають індексованими змінними, на відміну від простих
змінних.
4. Одновимірний масив
Одновимірний масив – це лінійно впорядкована сукупність
елементів одного і того ж типу.
Приклад одновимірного масиву: х1, х2, ..., хn.
Місце елемента у масиві визначається індексом, наприклад х5 означає
п’ятий елемент масиву.
Характерні властивості
масиву
Тип елементів масиву повинен
Число елементів масиву
бути конкретно описаний. До
визначається під час його
кожного елемента масиву існує
опису і надалі не змінюється.
прямий доступ.
5. Способи описання масиву
Способи описання масиву
Перший спосіб. Другий спосіб.
type ім’я типу=array[тип індексу] of var ідентифікатор масиву: array[m..n] of тип
тип компонент масиву; елементів масиву;
var ідентифікатор масиву: ім’я типу; де m, n – константи цілого типу.
Приклад 1. Приклад 2.
type MAS=array[1..5] of integer; A:array[1..5] of integer;
var A: MAS;
Один і той самий масив А в наведених вище прикладах описаний двома
різними способами.
6. При зверненні до масиву необхідно вказати ідентифікатор змінної-
масиву, а також ще й індекс, який вказує на місцезнаходження
необхідного значення в масиві.
Індекс записується біля ідентифікатора змінної-масиву в
квадратних дужках.
Тип індексу повинен належати до будь-якого скалярного типу, крім
дійсного.
Наприклад. A[1], A[5], B[2].
Паскаль не має засобів одночасного введення-виведення всіх
елементів масиву, тому введення і виведення значень
здійснюється поелементно.
Під час роботи з масивами програма записується для роботи
лише з однією величиною-елементом масиву, а потім
охоплюється циклом, який почергово перебирає всі елементи
масиву.
7. В обчислювальних задачах елементами масиву є числа (цілі, дійсні та
ін.). Тому такі масиви називають числовими. Організація чисел у вигляді
масиву дає змогу проводити обробку цих чисел циклічно.
Розглянемо приклади побудови алгоритмів обробки масивів.
Приклад. Задано одновимірний масив дійсних чисел а 1, а2, ...,аn. Необхідно скласти блок-схему
алгоритму і програму обчисленняі частинних сум із виведенням кожної суми на екран монітора.
Розв’язання. Частинні суми набувають таких значень: s1=a1; s2=a1+a2; s3=a1+a2+a3;
…, sn=a1+a2+…+an-1+an.
Обчислення частинних сум можна здійснювати рекурентно за такою формулою:
si=si-1+ai при s0=0; i=1,2,…,n.
Індекс при змінній s визначає номер кроку обчислення частинних сум.
При зображенні блок-схем алгоритмів цей індекс опускається. При
елементі масиву а індекс визначає номер цього елемента в масиві. Цей
індекс у блок-схемі зберігається, але дужки опускаються.
8. Блок-схема та програма до
задачі
початок
Program A;
Введення n
const n=5; {іменована константа} масиву а
var s:real; i:integer; a:array[1..n] of real;
begin S:=0
for i:=1 to n do begin {початок зовнішнього циклу} i:=1
writeln(‘уведіть a(‘,I,’)=‘); {оператор тіла циклу}
readln(a[i]) end; {оператор тіла циклу}
S:=s+ai
S:=0; {початкове значення суми}
for i:=1 to n do begin
S:=s+a[i]; writeln(‘s=‘,s) end; {обчислення і виведення частинних сум} Виведення s
end.
так
i<=n
ні
кінець
Програма працюватиме слідуючим чином:
10. Приклад 1. Скласти програму сортування по неспаданню масиву цілих чисел з п’яти елементів
методом вибору.
Розв’язання. Спочатку шляхом порівняння двох сусідніх елементів відшукується
максимальний елемент і переставляється в кінець масиву, після чого цей метод
застосовується для всіх елементів масиву, крім останнього (він вже стоїть на своєму місці) і
т.д.
Program A1; {Заголовок}
const N=5; {Визначення кількості елементів масиву}
var I, K, M, R: Integer;
X: array [1..N] of integer; {Оголошення масиву}
begin {Початок розділу операторів}
Writeln(‘Введіть елементи масиву’); {Виведення повідомлення}
for I:=1 to N do {Цикл за кількістю елементів}
begin {Початок складеного оператора}
Write(‘X[‘,I,’]=‘); Readln(X[I]); {Введення елементів масиву}
end; {Кінець складеного оператора}
for K:=N downto 1 do {Цикл від останнього елемента до першого}
begin {Початок складеного оператора}
M:=1; {Пошук M – номера MAX}
for I:=2 to K do if X[I]>X[M] then M:=I; {Елемент масиву}
R:=X[K]; X[K]:=X[M]; X[M]:=R; {Перестановкак MAX}
for I:=1 to N do Write(‘X[‘,I,’]=‘,X[I],’’); { На останнє місце}
Readln; {І виведення елементів частково упорядкованого масиву при натисканні <ENTER>
для уточнення процесу упорядкування}
end; {Кінець складеного оператора}
end. { Кінець розділу операторів і всієї програми}
Програма працює слідуючим чином.
12. Знаходження суми елементів
таблиці
Задача 1. Знайти суму елементів одновимірного масиву.
Program A2;
var A:array[1..5] of integer;
i:integer;
S:integer;
begin
for i:=1 to 5 do
begin
write(‘A[‘,I,’]=‘);
readln(A[i]);
end;
S:=0;
for i:=1 to 5 do S:=S+A[i];
writeln(‘Масив A:’);
writeln;
for i:=1 to 5 do write(A[i]:5);
writeln;
writeln(‘S=‘ ,S);
end. Дана програма працює слідуючим
чином.
14. Задача 2. Скласти програму знаходження добутку всіх елементів
одновимірного масиву.
Program A3;
Const N=5;
var M:array[1..N] of integer;
i,D:integer;
begin
for i:=1 to N do
begin
write(‘m[‘,I,’]=‘);
readln(M[i]);
end;
D:=1;
for i:=1 to N do D:=D*M[i];
writeln(‘Масив m:’);
for i:=1 to N do write(M[i]:5);
writeln;
writeln(‘D=‘,D)
end. Дана програма працює
слідуючим чином
16. Задача 3. Знайти мінімальний елемент в одновимірному масиві.
Program A4;
Const N=4;
Var M:array[1..N] of integer;
i, MIN:integer;
begin
for i:=1 to N do
begin
write(‘m[‘,I,’]=‘);
readln(M[i]);
end;
MIN:=M[1];
for i:=1 to N do
If M[i]<MIN then MIN:=M[i];
writeln(‘Масив m:’);
writeln;
for i:=1 to N do write(M[i]:5);
writeln;
Дана програма працює слідуючим чином
writeln;