Презентація "Основи Турбо Паскаль"
Презентація "Сортування одновимірного масиву"
У деяких випадках доводиться стикатися з ситуацією, коли потрібно використовувати відносно багато даних одного типу. Уявімо собі програму, яка дозволяє обчислити певні метеорологічні дані і в якій завжди буде не менше 365 змінних. Таким способом можна привласнювати окремим змінним інформацію про погоду по окремих днях всього року. Можна оголосити тип real у 365 змінних, використовуючи запис
Var day1, day2, day3. day365: real;
Щоб тільки записати всі дані, знадобиться сторінка, а щоб виконати над введеними дані будь-які арифметичні операції, наприклад, знайти середнє арифметичне, знадобиться ще сторінка записи програми. Погодьтеся, не зовсім зручно в плані витрати часу, паперу і т.д. Для таких випадків Pascal надає можливість введення великого числа змінних одного і того ж типу, використовуючи прості вирази. Допоміжний засіб, які мається на увазі, відомо під ім'ям array. (В перекладі з англійської - масив).
Масив - це сукупність кінцевого числа даних одного типу або впорядкована послідовність даних, що складається з фіксованого числа елементів. Дані одного типу мають одне ім'я.
Масив даних в програмі розглядається як змінна структурованого типу. Масиву присвоюється ім'я, за допомогою якого можна посилатися як на масив даних в цілому, так і на будь-яку з його компонент.
Змінні, що представляють компоненти масивів, називаються змінними з індексами в відміну від простих змінних, що представляють в програмі елементарні дані. Індекс в позначенні компонент масивів може бути константою, змінною або виразом порядкового типу.
Якщо за кожним елементом масиву закріплений лише один його порядковий номер, то такий масив називається лінійним. Взагалі кількість індексів елементів масиву визначає розмірність масиву. За це ознакою масиви поділяються на одномірні (лінійні), двовимірні, тривимірні і т.д.
Масиви можуть бути описані кількома способами:
1. ARRAY - вказує на ряд змінних одного і того ж типу, наприклад, integer або real. мають один ідентифікатор. Певна змінна з масиву представлена ім'ям масиву, наприклад, day. після якого в квадратних дужках записано число (номер). Або кажуть ІМ'Я [індекс]. Окремі змінні масиву називаються елементами масиву.
Var ім'я масиву: ARR або AY [n 1. n 10] of <тип элемента>;
Var а: ARRAY [100] of integer;
Якщо задається кілька однакових масивів, то вони описуються в такий спосіб:
а, b, c: ARRAY [1..50] of; const: = 5;
Спочатку в розділі опису типів TYPE вказується тип масиву, потім в розділі описів змінних Var перераховуються масиви, відносяться до зазначеного типу.
Введення типу масиву збільшує розділ описів, але спрощує налагодження програм. Вказівка типів в розділі описів є хорошим стилем програмування.
Type massiv: = array [n1..n2] of <тип элементов>;
Type mass: = array [1..30] of integer;
Одновимірна масив - це фіксована кількість елементів одного типу, об'єднаних одним ім'ям, де кожен елемент має свій номер (індекс). Звернення до елементів масиву здійснюється за допомогою вказівки імені масиву і номерів елементів.
Приклад: числова послідовність парних натуральних чисел 2, 4, 6. N представляє собою лінійний масив, елементи якого можна позначити А [1] = 2, А [2] = 4, А [3] = 6. А [К] = 2 * (К + 1), де К - номер елемента, а 2, 4, 6. N - значення. Індекс (порядковий номер елемента) записується в квадратних дужках після імені масиву.
Наприклад, A [7] - сьомий елемент масиву А; D [6] - шостий елемент масиву D.
Для розміщення масиву в пам'яті ЕОМ відводиться поле пам'яті, розмір якого визначається типом, довжиною і кількістю компонент масиву. У мові Pascal ця інформація задається в розділі описів. Масив описується так:
ім'я масиву. Array [початкове значення індексу значення індексу] Of базовий тип;
Var B. Array [1..5] Of Real, R. Array [1..34] Of Char;
- описується масив В. складається з 5 елементів і символьний масив R. що складається з 34 елементів. Для масиву У буде виділено 5 * 6 = 30 байт пам'яті, для масиву R - 1 * 34 = 34 байта пам'яті.
Завдання 1. Заповнити одновимірний масив елементами, які відповідають наступному співвідношенню:
FOR I: = 3 TO N DO
A [I]: = A [I - 1] + A [I - 2];
Інший варіант присвоювання значень елементам масиву - заповнення значеннями, отриманими за допомогою датчика випадкових чисел.
Завдання 2. Заповнити одновимірний масив за допомогою датчика випадкових чисел таким чином, щоб всі його елементи були різні.
Type Mas = Array [1..100] Of Integer;
Var A. Mas; I, J, N. Byte; Log. Boolean;
randomize; A [1]: = -32768 + random (65535);
For I: = 2 To N Do
A [i]: = -32768 + random (65535); J: = 1;
While Log and (j <= i - 1) Do
begin Log: = a [i] <> a [j]; j: = j + 1 End
For i: = 1 to N Do Write (a [i]: 7); writeln
2) введення значень елементів масиву з клавіатури використовується зазвичай тоді, коли між елементами не спостерігається ніякої залежності. Наприклад, послідовність чисел 1, 2, -5, 6, -111, 0 може бути введена в пам'ять наступним чином:
Var N, I. Integer;
A. Array [1..20] Of Integer;
Write ( 'Введіть кількість елементів масиву'); ReadLn (N);
FOR I: = 1 TO N DO
Write ( 'Введіть A [', I, ']'); ReadLn (A [I])
Над елементами масивами найчастіше виконуються такі дії, як
а) пошук значень;
б) сортування елементів в порядку зростання або зменшення;
в) підрахунок елементів в масиві, що задовольняють заданій умові.
Заповнити масив можна таким чином:
1) за допомогою оператора присвоювання. Цей спосіб заповнення елементів масиву особливо зручний, коли між елементами існує будь-яка залежність, наприклад, арифметична або геометрична прогресії, або елементи пов'язані між собою реккурентним співвідношенням.
a: array [1..30] of integer;