вільних комірок впамяті
ЕОМ для масиву з іменем А. p>
Якщо опис
масиву відсутній, то під одновимірний масив виділяється 10 комірок пам'яті. p>
Кожен елемент
масиву вобщем вигляді описується як А (I), де p>
А - ім'я
масиву, p>
I - номер або
індекс масиву (0 <= I <= N, але практично вживається 1 <= I <= N) p>
A (I) - значення
елемента масиву. p>
Масив в
Паскалі h2>
<ім'я
масиву>: = array <кількість елементів> of <тип змінної>; p>
Кожен елемент
масиву вобщем вигляді описується як А [I], де p>
А - ім'я
масиву, p>
I - номер або
індекс масиву (0 <= I <= N, але практично вживається 1 <= I <= N) p>
A [I] - значення
елемента масиву. p>
Дії над
масивами h2>
Для роботи з
масивом як єдиним цілим використовується ідентифікатор масиву без вказівки
індексу вквадратних дужках. Масив може брати участь тільки вопераціях
відносини "одно", "не дорівнює" і воператоре присвоєння.
Масиви, що беруть участь ветіх діях, повинні бути ідентичні за структурою, тобто
мати однакові типи індексів і однакові типи компонентів. p>
Наприклад, якщо
массівиА і Вопісани як var А, В: array [1 .. 20] of real; то застосування до них
допустимих операцій дасть такий результат: p>
Вираз
Результат p>
А = ВTrue, якщо
значення кожного елемента масиву А одно відповідному значенню елемента
масиву В p>
А <> ВTrue,
якщо хоча б одне значення елемента масиву А не дорівнює значенню
відповідного елемента масиву В p>
А: = ВВсе
значення елементів масиву Впрісваіваются відповідних елементів масиву А.
Значення елементів масиву повстати незмінні. P>
Дії над
елементами масиву h2>
Після
оголошення масиву кожен його елемент можна обробити, вказавши ідентифікатор
(ім'я) масиву та індекс елемента вквадратних дужках. Наприклад, запис Mas [2],
VectorZ [10] дозволяє звернутися до другого елементу масиву Mas і десятому
елементу масиву p>
VectorZ. p>
При роботі з
двовимірним масивом вказуються два індекси, з n-мірним масивом - n індексів.
Наприклад, запис MatrU [4,4] робить доступним для обробки значення елемента,
що знаходиться в четвертому рядку четвертого стовпця масиву MatrU. p>
Індексовані
елементи масиву називаються індексованими змінними і можуть бути
використані так само, як і прості змінні. Наприклад, вони можуть перебувати
ввираженіях в якості операндів, використовуватися воператорах for, while,
repeat, входити вкачестве параметрів воператори Read, Readln, Write, Writeln;
їм можна присвоювати будь-які значення, що відповідають їх типу. p>
Алгоритми
сортування одновимірних масивів h2>
Сортування --
один з найбільш поширених процесів сучасної обробки даних.
Сортуванням називається розподіл елементів масиву всоответствіі з
певними правилами. Наприклад, сортування масиву за зростанням або
зменшенням його елементів. p>
Обмінна
сортування (метод "бульбашки"). p>
Алгоритм
починається з порівняння 1-го і 2-го елементів масиву. p>
Якщо 2-й
елемент менше 1-го, то вони міняються місцями. Цей процес повторюється для
кожної пари сусідніх елементів масиву, поки всі N елементів не будуть
оброблені. За один "прохід" масиву найбільший елемент стане на
старше (N-е) місце. Далі алгоритм повторюється, причому на р-м
"проході" перший (Np) елементів порівнюються зі своїми правими
сусідами. Якщо на черговому "проході" перестановок не було, то
алгоритм свою роботу закінчив. Таким чином, самі "легкі" елементи
впроцессе виконання алгоритму поступово "спливають". p>
Сортування
вставками. h2>
Спочатку
упорядковуються два перших елемента масиву. Вони утворюють початкове
впорядкована множина S. Далі на кожному кроці береться наступний по порядку
елемент і вставляється вуже впорядкована множина S так, щоб ліворуч від нього
всі елементи були не більше, а справа - не менше оброблюваного. Місце для
вставки поточного елемента вупорядоченное безліч S шукається методом ділення
навпіл. Алгоритм сортування закінчує свою роботу, коли елемент, що стоїть на
N-му місці, буде оброблено. (Саме таким чином гравці вбрідж зазвичай
впорядковують свої карти). p>
Сортування
вибором. h2>
Знаходиться
найбільший елемент вмассіве з N елементів (хай він має номер р.) і змінюється
місцями з елементом, що стоїть на N-му місці, за умови, що N <> p. З
залишилися (N-1) елементів знову виділяється найбільший і міняється місцями з
елементом, що стоїть на (N-1)-му місці і т. д. Алгоритм закінчує свою роботу,
коли елементи, що стоять на 1-м і 2-му місцях в масиві, будуть упорядковані (для
цього знадобиться N-1 "прохід" алгоритму). Аналогічно даний алгоритм
можна застосовувати і до найменших елементів. p>
Двовимірні
масиви h2>
Двовимірний
називається масив, елемент якого залежить від його місця розташування встроке і
встолбце. Вобщем вигляді елемент матриці позначається як A (I, J), де А - ім'я
масиву, p>
I - індекс
(номер) рядка, J - індекс (номер) стовпця. p>
Опис
матриці на мові Бейсік p>
DIM A (I, J) --
описати матрицю (двовимірний масив) це означає надати вільні клітинки в
пам'яті ЕОМ для елементів даної матриці. У пам'яті ЕОМ елементи матриці
розташовуються по рядках, тому індекс рядка змінюється повільніше, ніж
індекс стовпця. p>
Прямокутної
називається матриця, в якій кількість рядків не дорівнює кількості стовпців. p>
Квадратний
називається матриця, вкоторой кількість рядків дорівнює кількості стовпчиків. p>
Опис
матриці на мові Паскаль p>
Матрицю можна
задати двома способами: p>
I. <ім'я
матриці>: array <кількість рядків> of array <колічествостолбцов>
of <тип змінної>; p>
II. <ім'я
матриці>: array <кількість рядків "," кількість стовп-цов> оf
<тип змінної>]. p>
Співвідношення
індексів у квадратної матриці p>
I = J елементи
матриці розташовані на головній діагоналі p>
I <над
розташовані матриці елементи>
діагоналлю p>
I> J елементи
матриці розташовані під головною діагоналлю p>
I + J = N + I
елементи матриці розташовані на побічної діагоналі (N - кількість рядків або
стовпців в квадратної матриці) p>
I + J <> діагоналлю p>
I + J> N + I
елементи матриці розташовані під побічної діагоналлю. p>
Нижче наведено
приклади завдань з масивами на мові Turbo Pascal. p>
Приклад 1. Введення
значень елементів масиву за допомогою генератора випадкових чисел і виведення їх
встрочку. p>
Примітка: p>
Для
використання випадкових чисел у TP використовуються оператори p>
random: real --
генерує випадкові числа в діапазоні 0 ... 0.99. p>
random (i: word): word
- Генерує випадкові числа вдіапазоне p>
0 ... 1. p>
randomize --
зміна бази генератора випадкових чисел. p>
program mas1; p>
var p>
a: array [1 .. 10] of integer; p>
i: integer; p>
begin p>
randomize; p>
for i: = 1 to 10 do p>
begin p>
a [i]: = random (20); p>
write ( 'a (', i,')=', a [i], '') p>
end; p>
readln p>
end. p>
Приклад 2.
Скласти програму заповнення одновимірного масиву, так щоб егоi-ий елемент був равенa [i] = (i * i +1)/sin (i). P>
program mas2; p>
var a: array [1 .. 10] of real; p>
i: integer; p>
begin p>
for i: = 1 to 10 do p>
begin p>
a [i]: = (i * i +1)/sin (i); p>
writeln ( 'a (', i,')=', a [i], ''); p>
end; p>
readln p>
end. p>
Приклад 3. Скласти програму визначення
кількості елементів одновимірного масиву, значення елементів яких менше
заданого дійсного числа t. p>
program mas3; p>
var a: array [1 .. 10] of real; p>
i, k: integer; t: real; p>
begin p>
write ( 'Введіть чіслоt ='); p>
read (t); p>
k: = 0; p>
for i: = 1 to 10 do p>
begin p>
write ( 'Введіть
значення елемента a ( ', i,')='); p>
readln (a [i ]); p>
if a [i]
end; p>
writeln ( 'Відповідь:
Кількість елементів, менших заданого числа t ,'); p>
writeln ( 'равноk =', k); p>
readln p>
end. p>
Приклад 4. Знаходження серед значень елементів,
що знаходяться на головній діагоналі матриці, найбільшого і найменшого. p>
program mas4; p>
var p>
a: array [1 .. 10,1 .. 10] of integer; p>
i, j, max, min: integer; p>
begin p>
for i: = 1 to 10 do p>
for j: = 1 to 10 do p>
begin p>
write ( 'Введіть
значення елемента матриці ='); p>
readln (a [i, j]) p>
end; p>
max: = a [1,1]; p>
min: = a [1,1]; p>
for i: = p>
1 to 10 do p>
r, q: real; p>
x: array [1 .. 20] of real; p>
begin p>
writeln ( 'Ведіть
масив, відбувся з 20 чисел :'); p>
for i: = 1 to 20 do read (x [i ]); p>
for i: = 1 to 19 do p>
for j: = i +1 to 20 do p>
if x [i]> = x [j] then p>
begin p>
r: = x [i]; x [i]: = x [j]; x [j]: = r p>
end; p>
writeln ( 'Сортування
масиву за зростанням проведена :'); p>
for i: = 1 to 20 do writeln (x [i ]); p>
writeln ( 'Для
виходу введіть будь-яке число .'); p>
readln (q); p>
end. p>
Список
літератури h2>
Львівський М.Б.
Методичний посібник «BOOK» з інформатики для 9-11 класів. p>