Масиви у мові PASCAL
§Масив – це обмежена впорядкована сукупність однотипних пронумерованих величин. §Кожну окрему величину називають компонентою (елементом) масиву. §Номери елементів називають індексами. §Тип компонентів, який називають базовим типом, може бути будь-яким із допустимих у мові Pascal, окрім файлового типу.
Масив – це структурована змінна, утворена послідовністю простих змінних. Pascal, завдяки індексам, забезпечує прямий доступ до кожного елемента масиву
Ім’я масиву Будь-яке допустиме у Pascal ім’я
Опис масивів Var : Array [<діапазон зміни індексів>] of <тип елементів>;
Опис масивів Const N = 20; Var Vect : Array [0. . N] of Real ; Подібним чином, проте, не можна описати змінні у заголовку процедури або функції. Наприклад, оголошення процедури Procedure P (y: array [0. . 15] of real); є неправильним і викличе помилку
Інший метод опису для багатомірних масивів Type Vector = array [1. . 5] of integer; Matrix= array [1. . 10, 1. . 10] of real; Var m: matrix; Procedure P (y: vector);
Звертання до елемента масиву B: array[1. . 10] of integer; C: array[1. . 100, 1. . 100] of real; B[5]: =15; C[7, 29]: =33. 67;
Індексування двомірних масивів
Яким може бути найбільший розмір масива? Сегмент пам’яті для даних – 64 к. Б Елементів масива типу Integer може бути близько 32 тисячі… Real = 10922
Ввід елементів масиву Type Vec = Array [1. . 10] of Real; Const Yе: Vec = (0, 2. 1, 4, 5. 65, 6. 1, 6. 7, 7. 2, 8, 8. 7, 9. 3); Type Matr = Array [1. . 3, 1. . 2] of Integer; Const A: Matr = ((1, 2) (3, 4) (5, 6));
Ввід елементів масиву Другий спосіб ініціалізації – використання різновиду процедури Fill. Char: Fill. Char ( Var V; NBytes: Word; B: Byte ); Ця процедура заповнює ділянку пам’яті однобайтовим значенням. Наприклад, для занулення масиву: A : Array [1. . 10] of Real; Fill. Char ( A, 10, 0); або Fill. Char ( A, Size. Of (A), 0);
Ввід елементів масиву type vector = array [0. . 15] of real; var a, b: vector; a : = b; не можна b : = 0; if a = b then. . .
Ввід елементів масиву з клавіатури For i : = 1 to Nе do Readln ( Xe[i] ); For i : = 1 to N do Ввід елементів масиву по рядках For j : = 1 to M do Readln( A[i, j] );
Ввід елементів масиву з клавіатури Program Arrays; Type matrix = array [1. . 5, 1. . 5] of integer; Var m: matrix; Procedure Read. Matrix (var m: matrix); Var i, j: byte; begin for i : = 1 to 5 do for j : = 1 to 5 do begin write('m[', i, ', ', j, '] = '); read(m[i, j]) end;
Вивід елементів масиву Procedure Write. Matrix (m: matrix); var i, j: byte; begin for i : = 1 to 5 do begin for j : = 1 to 5 do write(' m[', i, ', ', j, '] =', m[i, j]: 3); writeln; end;
Пошук найбільшого значення масиву Procedure Max. Element(m: matrix); Var i, j: byte; max: integer; begin max : = m[1, 1]; for i : = 1 to 5 do for j : = 1 to 5 do if m[i, j] > max then max : = m[i, j];
Пошук найбільшого значення масиву writeln('Макс. елементи матриці M: '); for i : = 1 to 5 do for j : = 1 to 5 do if m[i, j] = max then writeln(' m[', i, ', ', j, '] =', m[i, j]: 3) end;
Методи сортування одномірних масивів Бульбашковий метод Метод пошуку найбільшого значення Метод вставки
Cортування масиву бульбашковим методом
Програма сортування масиву бульбашковим методом Program Sort. Matr 1; type vect= array [1. . 20] of integer; var A: vect; N, i, j: integer; Procedure Swap(i, j: integer; var D: vect); var c: integer; Begin c: =D[ i ]; D[ i ]: =D[ j ]; D[ j ]: =c; End;
BEGIN N: =10; randomize; for i: =1 to N do Begin A[i]: =round(random(100)); Writeln('A[', i, ']=', A[i]) End; for j: =1 to N-1 do Begin for i: =1 to N-1 do if A[i]>A[i+1] then Swap(i, i+1, A); End;
Writeln('=== Vidsortovana matrycya ==='); for i: =1 to N do Begin Writeln('A[', i, ']=', A[i]) End; readln; END. Програма сортування масиву бульбашковим методом
Program Sort. Matr 1; uses crt; type vect=array[1. . 20] of integer; var A: vect; N, i, j, Max, Im: integer; Procedure Swap(i, j: integer; var D: vect); var c: integer; Програма сортування Begin масиву c: =D[i]; D[i]: =D[j]; через пошук D[j]: =c; найбільшого значення End;
Програма сортування масиву через пошук найбільшого значення BEGIN N: =10; randomize; for i: =1 to N do Begin A[i]: =round(random(100)); Writeln('A[', i, ']=', A[i]) End;
for j: =1 to N-1 do Begin Max: =A[j]; Im: =j; for i: =j+1 to N do if A[i]>Max then begin Max: =A[i]; Im: =i; end; Swap(j, Im, A); End; Програма сортування масива через пошук найбільшого значення
Writeln('=== Vidsortovana matrycya ==='); for i: =1 to N do Begin Writeln('A[', i, ']=', A[i]) End; readln; END. Програма сортування масива через пошук найбільшого значення
Сортування включенням
const n=1000; type Ar. Type=array[1. . n] of integer; procedure insertsort(var a: artype); var i, j, x: integer; begin for i: =2 to n do begin x: =a[i]; j: =i-1; while (j>0) and (x