Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

AlgStr / Практические занятия / Матрица / Практическая №1_1

.doc
Скачиваний:
32
Добавлен:
23.03.2015
Размер:
81.41 Кб
Скачать

Практична робота №1

Матриці.

Послідовна структура даних - це структура, в якій обробка і розташування елементів виконується послідовно. До даної структури відносяться двовимірні масиви (матриці) (1), доступ до елементів якого обчислюваний (по індексах).

, , (1)

У пам'яті машини масиви мають суцільне подання, у вигляді лінійного способу (послідовно). Для визначення місце розташування в лінійному вигляді використовують формули приведеного індексу.

Визначення: Приведений індекс - порядковий номер елементу від початку масиву подання вектора пам'яті.

Лінійне подання матриці можливе

  • По стовпцях;

(2)

Формула приведеного індексу має вигляд:

(3)

Таким чином, адреса , де

Існує зворотне завдання: як по приведеному індексу отримати індекси . Для знаходження приведений індекс ділимо без остачі на і до результату додаємо 1.

  • По рядках;

(4)

Формула приведеного індексу має вигляд:

(5)

Аналогічно лінійному уявленню по стовпцях визначаємо індекси .

Подання розріджених матриць.

Визначення: Розріджена матриця - матриця, в якій кількість ненульових елементів меньше нульових.

Всі подання, у тому числі і подання розріджених матриць складається з дескриптора і тіла (рис.1).

Рис.1 Подання об’єкту.

Дескриптор містить загальні властивості і додаткові відомості для оптимальної реалізації об'єкту.

Наприклад: необхідно описати об'єкт - група студентів. В якості дескриптора може виступати: шифр групи, куратор. Зазвичай дескриптор - це запис, який зазвичай містить явний або неявний зв'язок з тілом.

Існує два способи подання тіла:

· Обмежене (на базі масиву);

· Необмежене (на базі списку).

Розглянемо подання даних.

Існує два способи подання даних:

  • За допомогою масиву;

  • За допомогою списку.

Виды представления разреженных матриц:

А) Нижняя треугольная матрица

Для подання нижньої треугольної матриці необхідно представити її у лінійному вигляді. Нехай тіло – вектор ненульових елементів нижче головної діагоналі.

Тоді подання матриці має вигляд:

a11

a21 a22

A: rep  a31 a32 a33

. . .

an1 an2 an3 . . . ann

Функція абстракції є:

Наступним кроком реалізації є необхідність системи типів. Наприклад: за допомогою Turbo Pascal реалізація має вигляд:

Type

Intarray = array[1..65520 div SizeOf(integer)] of integer;

TMatr = record

n: word;

tbody: Intarray;

end;

PMatr = TMatr;

Наступним кроком є опис інтерфейсу типу. Запишемо операції для роботи з матрицею.

Function Create (n:word):PMATR; // створення матриці

Function GetEl (M:PMATR;i,j:word):integer; // отримання елементу матриці

Procedure Destroy (var M: PMATR); //знищення матриці

Зауваження: функція Create повинна працювати за максимумом тобто 65520 div sizeof(integer).

Всі ці пункти повинні бути відображені в окремому модулі роботи з матрицею.

Соседние файлы в папке Матрица