Одновимірні та двовимірні масиви (таблиці)

Інформація - Комп'ютери, програмування

Інші матеріали по предмету Комп'ютери, програмування

Одномірні та двовимірні масиви (таблиці)

Масив це пронумерована послідовність величин однакового типу, що позначається одним ім'ям. Елементи масиву розташовуються у послідовних осередках пам'яті, позначаються ім'ям масиву та індексом. Кожне із значень, що становлять масив, називається його компонентом (або елементом масиву).

Масив даних у програмі сприймається як змінна структурованого типу. Масиву присвоюється ім'я, з якого можна посилатися як у масив даних загалом, і будь-яку з його компонент.

Змінні, що представляють компоненти масивів, називаються змінними з індексами на відміну простих змінних, які у програмі елементарні дані. Індекс у позначенні компонентів масивів може бути константою, змінною або виразом порядкового типу.

Якщо за кожним елементом масиву закріплений лише один його порядковий номер, такий масив називається лінійним. Взагалі, кількість індексів елементів масиву визначає розмірність масиву. За цією ознакою масиви поділяються на одновимірні (лінійні), двовимірні, тривимірні і т.д.

Приклад: числова послідовність парних натуральних чисел 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) за допомогою оператора присвоєння. Цей спосіб заповнення елементів масиву особливо зручний, коли між елементами існує якась залежність, наприклад, арифметична чи геометрична прогресії, або елементи пов'язані між собою реккурентним співвідношенням.

Завдання 1. Заповнити одновимірний масив елементами, що відповідають наступному співвідношенню:

a1=1; a2=1; ai = ai-2 + ai-1 (i = 3, 4, . n).

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 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])

Над елементами масивами найчастіше виконуються такі дії, як

а) пошук значень;

б) сортування елементів у порядку зростання чи спадання;

в) підрахунок елементів у масиві, що задовольняють задану умову.

Суму елементів масиву можна підрахувати за формулою S=S+A[I] спочатку поставивши S=0. Кількість елементів масиву можна підрахувати за формулою К=К+1 спочатку задавши К=0. Добуток елементів масиву можна підрахувати за формулою P = P * A [I], спочатку поставивши P = 1.

Завдання 3. Даний лінійний масив цілих чисел. Підрахувати, скільки у ньому різних чисел.

ІДЕЯ РІШЕННЯ: заводимо допоміжний масив, елементами

якого є логічні величини (False - якщо елемент

вже зустрічався раніше, True - інакше)>

Var I, N, K, Kol: Integer;

A: Array [1..50] Of Integer;

Lo: Array [1..50] Of Boolean;

Write(Введіть кількість елементів масиву: ); ReadLn(N);

FOR I := 1 TO N DO

Write(A[, I, ]=); ReadLn (A[I]);

FOR I := 1 TO N DO

FOR K := I TO N DO

якщо число вже зустрічалося раніше, чи збігається з поточним елементом A[I]>

Lo[K] := (A[K] <> A[I]) And Lo[K];

WriteLn(Кількість різних чисел: , Kol)

Тест: N = 10; елементи масиву – 1, 2, 2, 2, -1, 1, 0, 34, 3, 3. Відповідь: 6.

Завдання 4. Даний лінійний масив. Впорядкувати його елементи у порядку зростання.

Ідеярішення: нехай частина масиву (по K-й елемент включно)