Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 1-5 (1 чт. СА-10).doc
Скачиваний:
3
Добавлен:
03.11.2018
Размер:
443.39 Кб
Скачать

Лабораторна робота №5

Тема: Програмування масивів та матриць.

8.1. Мета роботи: Набути практичних навичок по програмуванню масивів та матриць та дій з ними.

8.2. Загальні відомості.

Масив це впорядкований набір однотипних даних.

8.2.1. Масиви використовуються в програмах в тому випадку, коли треба працювати з сукупністю даних, які є однорідними по типу і відрізняються тільки значенням і своїм номером в сукупності. Їх прикладами можуть бути:

  • вік студентів групи;

  • стать студентів групи;

  • зріст студентів групи.

Дані в середині цих сукупностей мають однаковий тип. Так для визначення віку студентів групи (в цілих роках) може бути використаний тип byte, а для їх статі - тип boolean (true- жінка, false- чоловік);зріст визначається як real- коли він виміряний в метрах з точністю до другого знаку.

В той же час, кожний елемент даних у цих сукупностях має своє місце. Ми можемо говорити про вік третього студента зі списку групи, стать п’ятого та зріст вісімнадцятого.

8.2.2. Використання масивів.

Є тільки одна операція, яку можна проводити з масивами в цілому, це операція присвоєння між двома однотипними масивами. Наприклад,

Type Vec1 = array [1..10] of real;

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

var a,b:Vec1;

c:Vec2;

d: array [1..10] of real;

begin

a:=b

end

В усіх інших випадках робота з масивами це робота з елементами масивів. При цьому, з елементами масивів можна виконувати всі ті операції, які виконуються з даними відповідних типів. Щоб звернутись до елемента масиву необхідно вказати ім’я масиву, а потім в квадратних дужках індекси елемента, розділені комами, якщо їх більше одного.

Наприклад,

x[1]:=18;

a[i]:=18;

b[3,y+5]:=sin(x);

sum[a,b]:=sum[1,1]+a div b;

8.2.3. Ввід - вивід масивів

При виконанні більшості операцій з масивами (ввід-вивід, пошук та інші) використовуються цикли. При цьому зважаючи на те, що кількість елементів в масиві у більшості випадків визначена, то, як правило, використовується циклічна конструкція for...to(downto)...do.

Фрагмент програми, в якій є цикл вводу даних в одномірний масив з клавіатури:

Program Zrist;

Const N=10;

type data = array |l...N| of real;

Var :data;

I:byte;

Begin

....

....

  1. for i =1 to N do {цикл зчитування даних}

begin

Write('≈│',i,'|=');

ReadLn(≈│і│);

End;

....

....

end.

Фрагмент програми, в якій є цикл виводу даних із двомірного масиву на дисплей у вигляді таблиці:

Program Out Table;

Const N=4;

M=5;

Type Matrix = array|1..N,1..M|of real;

Var x:Matrix;

I,j:byte;

Begin

....

....

For i: =1 to N do {Здвоєний порядковий цикл виводу}

Begin

For j: =1 to M do Write (Х|i, j|:6:2,' ');

WriteLn;

End;

....

end.

8.2.4. Пошук елементів в масиві

Щоб знайти якийсь елемент в масиві слід визначити яке його значення так і місцезнаходження – індекс або індекси.

Фрагмент програми для знаходження найменшого елементу в матриці 3х4.

Program FindMin;

Const N=3;

M = 4;

Type Matrix = array|1..N,1..M|of real;

Var i, j: byte;

Min:real;

Imin, jmin: byte;

X: Matrix;

Begin

....

min:= x|1,1|; {Вважаємо мінімальним елемент 1-рядка і1стовбця }

imin: =1; { і запам’ятовуємо його величину та індекси}

jmin: =1;

for i: =1 to N do {Порівнюємо елемент, що ми вважаємо мінімальним }

for j :=1 to M do {з усіма іншими елементами матриці, і якщо}

if min >x|i,j|then {знаходимо серед них ще менший, то вважаємо}

begin {його мінімальним і запам’ятовуємо величину }

min: =x|i,j|; {та індекси нового мінімуму}

imin:=i;

jmin: =j;

end;

WriteLn(' Мінімальний елемент Х |',imin,','jmin,'|=',X|imin,jmin|:6:2);end

8.3. Завдання

8.3.1. Розробки блок схему для розробки дійних даних довільної квадратної матриці заданого варіанту.

8.3.2. Розробити програму по блок-схемі, яка включає ввід-вивід матриці та будь якого масиву даних матриці.

8.4. Варіанти завдань.

Варіант

Завдання

1.

В матриці 4х4 замінити елементи третього стовпчика на їх синуси.

2.

В матриці 4х4 замінити елементи головної діагоналі на їх квадрати.

3.

В матриці 4х4 підрахувати суму елементів другого порядку.

4.

В матриці 4х4 замінити всі нулі на одиниці.

5.

З матриці 4х4 вивести на дисплей другий стовпчик.

6.

Найти мінімальний елемент матриці 4х4.

7.

Вивести на екран вектор (4) побудований з сум рядків матриці 4х4

8.

Побудувати матрицю 4х4, елементи якої дорівнюють сумі своїх

індексів.

9.

Із вектора (4) побудувати матрицю 4х4 першим та останнім

рядком, якого буде заданий вектор, другою та третьою- квадрати

та куби його відповідних елементів.

10.

На базі матриці 4х4 побудувати іншу матрицю, елементи якої будуть дорівнювати квадратам елементів заданої матриці.

11.

В матриці 4х4 обчислити суму максимального та мінімального елементів.

12.

Із матриці 4х4 поміняти місцями першу строку та перший стовпчик.

13.

Обчислити суму елементів матриці 4х4.

14.

Транспонувати матрицю 4х4. (Поміняти місцями її рядки та стовпчики).

15.

Знайти мінімальний елемент в першому стовпчику матриці 4х4

16.

З матриці 4х4 винести на екран елементи розташовані вище головної діагоналі.

17.

В матриці 4х4 знайти середнє арифметичне елементів її головної діагоналі.

18.

В матриці 4х4 замінити максимальний елемент на нуль.

19.

В матриці 4х4 замінити всі елементи менші 4 на нулі.

20.

Підрахувати в матриці 4х4 суму всіх елементів більших ніж 2.

21.

Підрахувати скільки елементів матриці 4х4 більші за 2.

22.

Обчислити середнє арифметичне першого рядка матриці 4х4

23.

Побудувати матрицю 4х4, елементи якої дорівнюють квадрату

Різниці їх індексів.

24.

Замінити в матриці 4х4 всі елементи розташовані на головній діагоналі на нулі.

25.

Замінити на нулі елементи матриці розташовані нижче головної діагоналі.

8.5. Контрольні питання.

1.Що таке масив?

2.Як визначається тип елементів масиву?

3.Що таке діапазон масиву? Як він визначається?

4. Які типи даних відносять до перелічуваних?

5. Якого типу можуть бути елементи масивів?

6. Що таке індекс масиву?

7.Якого типу можуть бути індекси масивів?

8.Чим відрізняється ім’я елементу масиву?

9.Які операції можна виконати з масивами в цілому?

10. Які операції можна виконувати з окремими елементами

масивів?

11.Який оператор циклу здебільшого виконується при роботі з масивами? Чому?

12.Чому при описі розмірів масивів їх краще задавати у вигляді константи?

13.Які масиви часто називають в програмуванні “векторами”, а які “матрицями”?

14.Які масиви називають багатомірними?