Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_1_05_ВНУ.doc
Скачиваний:
2
Добавлен:
08.09.2019
Размер:
1.71 Mб
Скачать

Одномірні масиви

Впорядкування одномірних масивів

Поняття масиву. Одномірний масив та його опис в програмі. Ввід та вивід значень елементів одномірного масиву. Задачі обчислювального характеру: табулювання функції, аргумент якої заданий масивом; обчислення скалярного добутку двох векторів; знаходження найбільшого (найменшого) значень серед елементів масиву; обчислення суми та добутку елементів одномірного масиву. Перетворення одномірного масиву за певним законом. Впорядкування одномірного масиву шляхом вибору мінімального елемента, обмінами, вставками. Постановка задачі та принцип методу. Програма злиття одномірних масивів

Поняття масиву. Одномірний масив та його опис в програмі

Потреба в масивах виникає тоді, коли є велика кількість однотипних упорядкованих даних. У цьому випадку можна було б ці дані розглядати як сукупність непов'язаних величин, надавши кожній з них своє ім'я. Однак такий підхід неефек­тивний. Зручніше ці дані вважати масивом, надаючи їм одне ім'я, а окремим компонентам поставити у відповідність кон­кретні номери, за аналогією з вектором, кожна компонента яко­го позначена іменем, праворуч від якого в нижній позиції за­значено номер компонента.

Масив - це впорядкований набір даних однакового типу. Приклади масивів: рядок тексту, компонентами якого є окремі символи; вектор, що є масивом дійсних чисел; матриця, як масив векторів.

Кожному простому значенню, що є в масиві, тобто кожному компонентові відповідає сукупність номерів, які визначають місце його в загальній послідовності. Ці номери називають індексами. Головні характеристики сукупності значень, що утворюють масив, такі: ім'я, розмірність (тобто кількість ком­понентів), тип компонентів і тип індексів, ім'я - це повна змінна типу масив, її значенням є весь масив. Загальна форма опису масиву така:

type

<ім'я>=аrrау [<тип_індексів>] of <тип_елементів>;

Тип індексів може бути довільним простим типом, крім real. Найчастіше це діапазон і перелічуваний тип. (У Турбо Паскалі - крім longint і діапазону від нього). Тип integer теж не використовують, бо тоді компонентів буде забагато. Тип ком­понентів може бути довільний. Важливо, що час доступу до будь-якого компонента масиву не залежить від значення індексу. Тому масив вважають структурою прямого доступу.

Приклад опису масиву:

type

vector=array[1..10] of real;

Тоді деякі змінні можна описати так:

var

х,у,v:vector;

Можна також об'єднати ці описи й обійтися без опису типу:

var

х,у,v:array[1..10] of real;

Можливий і такий опис:

s:array[1147.. 1999] of integer;

r:array[-754..-1] of integer;

тобто від'ємні числа обмежують діапазон.

Приклад випадку, коли індексом є перелічуваний тип, такий:

type

day=(pn, vt, sr, ct, pt, sb, nd);

b=array[day] of boolean;

var z,c:b;

або

var z,c:array[day] of boolean;

У другому випадку описані вже змінні с і z, що мають такий самий тип, як b, однак без імені (так зване неявне задання типу).

Як тип індексу, крім діапазону integer і перелічуваного типу, можна використовувати типи boolean і char, як упорядко­вані.

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

і:=5; j:=2;

c[sr]:=false;

z[pred(nd)]:=c[sb];

Ім'я з індексами в квадратних дужках - це часткова змінна, оскільки її значенням є не весь масив, а його окремий компо­нент.

Приклади часткових змінних (компонентів) з постійними значеннями індексів такі: k[true]; k[false];

Розглянемо типові приклади програм роботи з масивами.

Ввід та вивід значень елементів одномірного масиву

Програма вводу значень елементів одномірного масиву

Program VvOdnMas;

Uses Crt;

Var

A:array[1..20] of real;

i,n:integer;

Begin

Writeln(‘Введіть довжину N масиву А:’);

Readln(n);

Writeln(‘Введіть елементи масиву А:’);

For i:=1 to n do read(A[i]);

Readln

End.

Програма виводу значень елементів одномірного масиву

Program VuOdnMas;

Uses Crt;

Var

A:array[1..20] of real;

i,n:integer;

Begin

{..........................}

Writeln(‘Одномірний масив А:’);

For i:=1 to n do Writeln(A[i]);

Writeln;

{..........................}

End.

Задачі обчислювального характеру

Табулювання функції, аргумент якої заданий масивом

Обчислити всі значення функції , аргумент якої набуває значень {-2; 3; 12.2; 5.4; 6.7; 1.4; 2.8; 7.5; 3.14; 2.85}. Розв’язати задачу для випадку, коли масив містить не 10, а N значень.

Програма табулювання даної функції матиме такий вигляд.

program TabFunc;

uses

Crt;

var

x,y:array[1..20] of real;

N,i:integer;

begin

ClrScr;

Writeln('Введіть кількість елементів масиву N<=20');

Readln(n);

Writeln('Введіть поелементно масив x:');

For i:=1 to N do Read(x[i]);

Readln;

Writeln('Аргумент функції x Значення функції y');

For i:=1 to N do

Begin

y[i]:=Sqr(sin(3*x[i]));

Writeln(x[i]:9:2,' ',y[i]:9:2);

end;

Readln;

end.