1   2   3   4   5   6   7   8   9   ...   24
Ім'я файлу: Курсова робота.docx
Розширення: docx
Розмір: 1665кб.
Дата: 26.05.2020
скачати


Міністерство освіти і науки України

Національний університет водного господарства і природокористування

Технічний коледж

Курсова робота

з дисципліни: «Алгоритмічні мови та програмування»

на тему: «Розробка прикладної програми для комплексного обрахунку математичних матриць»

Оцінка Члени комісії


До захисту




Захист




Сума



________________________________

________________________________

________________________________

Виконав:

Студент 2-го курсу

Групи ПМ-2

Зімбаев П.А.

Перевірив:

Шатний С.В.
Рівне 2020

«Затверджую»

Голова циклової комісії

«Математики, інформатики, фізики»

_____________ С.М. Андрійчук

протокол № __ від „___”_______ 202__р.

Завдання на курсову роботу

з дисципліни

«Алгоритмічні мови та програмування»


  1. П.І.П студента _________________________________________________

_______________________________________________________________


  1. Тема курсового проекту__________________________________________

_________________________________________________________________

_________________________________________________________________

_________________________________________________________________


  1. Вихідні дані до курсового проекту_________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________


  1. Зміст пояснювальної записки (перелік питань, що підлягають розробленню)__________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________


  1. Перелік графічних матеріалів_____________________________________

_________________________________________________________________

_________________________________________________________________

_________________________________________________________________


  1. Дата видачі завдання ” ____ ”_________202___ р.




  1. Термін захисту курсової роботи “____ ” ________202__ р.

Графік виконання завдання курсової роботи




п/п


Назва виконаної роботи


Термін виконання

Відмітка про виконання

Кількість балів

Підпис

1.

Огляд першоджерел по поставленій задачі (5 балів)

21.03.20







2.

Складання та опис алгоритму (15 балів)

04.04.20







3.

Вибір та обґрунтування мови і середовища програмування (10 балів )

11.04.20







4.

Розробка інтерфейсу користувача (10 балів)

25.04.20







5.

Розробка методів та коду програми вирішення задачі (15 балів)

02.05.20







6.

Підготовка звіту та презентації (5 балів)

10.05.20







Студент___________________________

Керівник: Шатний С.В._______________

Зміст

  1. Огляд першоджерел по поставленій задачі………………………………..5

  2. Складання та опис алгоритму……………………………………………..10

  3. Вибір та обґрунтування мови і середовища програмування…........……13

  4. Розробка інтерфейсу користувача………………………………………...18

  5. Розробка методів та коду програмування для вирішення задач………...20

  6. Література…………………………………………………………………240


1.Огляд першоджерел по поставленій задачі

Завдання

Розробка прикладної програми для комплексного обрахунку математичних матриць.

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

 

Де аij – елемент матриці; i – номер рядка; j – номер стовпця.

Горизонтальні лінії в матриці звуть рядками, вертикальні — стовпцями.

Види матриць

  1. Матриця рядок — це матриця яка складається лише з одного рядка:



  1. Матриця стовбець — це матриця яка складається лише з одного стовбця:



  1. Нульова матриця — це матриця всі елементи якої дорівнюють нулю:



  1. Квадратна матриця — це матриця в якій кількість рядків дорівнює кількості стовбців. Головною характеристикою квадратної матриці є її порядок. Порядок матриці позначається n. Порядок матриці дорівнює кількості її стовбців або рядків:

— матриця 2-го порядку;

  1. Діагональна матриця — це квадратна матриця в якої всі елементи що не розміщені на головній діагоналі, дорівнюють нулю:



  1. Одинична матриця — це така діагональна матриця в якій всі елементи головної діагоналі дорівнюють одиниці, позначають літерою Е:



  1. Верхня (нижня) трикутна матриця — це матриця в якій всі елементи що знаходяться під (над) головною діагоналлю дорівнюють нулю:

верхня трикутна матриця;

— нижня трикутна матриця.

Операції над матрицями

Сумою двох матриць А і В називають матрицю С яка визначається шляхом додавання відповідних елементів матриці А і В: Cij=aij+bij.

Наприклад:



Різницею двох матриць А і В називають матрицю С яка визначається шляхом віднімання відповідних елементів матриці А і В: Cij=aij-bij.

Наприклад:



Добутком матриці А на дійсне число α називають матрицю В, елементи якої визначаються ріністю bij=α*aij.

Наприклад:



Дії додавання, віднімання та множення матриці на число називають лінійними операціями над матрицями.

Властивості лінійних операцій над матрицями:

  1. A+B=B+A;

  2. (A+B)+C=A+(B+C)=B+(A+C);

  3. A+0=A;

  4. 1*A=A;

  5. α*(B*A)=(α*B)*A=(α*A)*B;

  6. α*(A+B)=α*A+α*B;

  7. (α+β)*A=α*A+β*A.

Добутком двох матриць А і В називають матрицю С елементи якої визначаються рівністю cij=ai1*b1j+ai2*b2j+…+ain*bnj.

Отже щоб дістати елемент сij матриці С, треба знайти суму добутків елементів і-го рядка матриці А на відповідні елементи j-го стовпця матриці В. Наприклад:



Властивості операції множення матриць:

  1. A*E=E*A=A;

  2. A*0=0*A=0;

  3. (A*B)*C=A*(B*C)=(A*C)*B;

  4. A*(B+C)=A*B+A*C;

  5. (A+B)*C=A*C+B*C;

  6. α*(A*B)=(α*A)*B=A*(α*B).

Операція піднесення матриці до степені

Цілим додатним степенем Аn(n>1) квадратної матриці А називають добуток n матриць рівних А, тобто потрібно помножити матрицю А саму на себе n разів.

Операція піднесення матриць до степені визначена тільки для квадратних матриць.

Властивості операції піднесення матриці до степені:

  1. А0=Е;

  2. A1=A;

  3. An*Am=An+m,(An)m=Anm.

Операція транспонування матриці

Транспонованою матрицею до матриці А називають матрицю в якої рядки і стовпці поміняні місцями. Транспоновані матриці позначають АТ.

Наприклад:



Властивості операцій транспонування матриці:

  1. (AT)T=AT;

  2. (A+B)T=AT+BT;

  3. (A*B)T=AT*BT.

Визначником квадратної матриці називають число яке характеризується матрицею.

2.Складання та опис алгоритму

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

Алгоритм суми(різниці) складається з простого додавання(віднімання) відповідних елементів матриць.

Алгоритм суми:

c11=a11+b11;

c12=a12+b12;

. . .
Алгоритм різниці:

c11=a11-b11;

c12=a12-b12;

. . .
Множення матриці на число відбувається таким же чином як і додавання чи віднімання з знаком «*»:
с11=а11*A;

c12=a12*A;

. . .

де А число на яке потрібно помножити матрицю.
Для транспонування матриці виконується алгоритм в якому i та j міняються місцями:
cij=aji;
Алгоритм множення двох матриці складається за такою формулою:




,

і в моїй програмі це виглядало таким чином:

c11=a11*b11+a12*b21;

c12=a11*b12+a12*b22;

. . .

Для піднесення матриці до степені я використав той же алгоритм що і в множенні двох матриць, додавши до нього цикл якій повторює операцію множення потрібну кількість разів:

b11=a11;

for(int i=2;i<=A;i++)

с11=a11*b11+a12*b21;

a11=c11;

де А — це степінь до якого підноситься матриця;
Визначник матриці 2х2 знаходиться досить легко. Для цього необхідно знайти різницю добутків діагоналей:



Д ля знаходження визначника матриці 3х3 є декілька способів. У своїй програмі я використав схему Саррюса:

Зі схеми можна вивести формулу:



Для знаходження матриць більшого розміру я використовував розклад визначника за елементами верхнього рядка.

Д ля прикладу візьмемо визначник матриці розміру 4х4:

Спочатку потрібно розкласти визначник 4-го порядку на визначники 3 порядку:







Далі потрібно знайти 3 визначники 3-го прядку:



















Знайдені данні підставляємо у вихідний визначник:



3.Вибір та обґрунтування мови і середовища програмування

Для своєї програми я вибрав мову програмування С++, тому що вона є одною з базових мов програмування та одною з найпростіших. Середовищем програмування я вибрав CodeBlocks, тому що знайомий тільки з ним.

Технічний огляд

В 1998 році мова С++ була стандартизована Міжнародною організацією стандартизації під номером 14882:1998 — Мова Програмування С++. В даний час робоча група МОС працює над новою версією стандарту під кодовою назвою C++09 (раніше відомий як C++0X), який має вийти в 2009 році.

Стандарт С++ на 1998 рік складається з двох основних частин: ядра мови і стандартної бібліотеки. Стандартна бібліотека С++ увібрала в себе бібліотеку шаблонів STL, що розроблялася одночасно із стандартом. Зараз назва STL офіційно не вживається, проте в кругах програмістів на С++ ця назва використовується для позначення частини стандартної бібліотеки, що містить визначення шаблонів контейнерів, ітераторів, алгоритмів і функторів.

Стандарт С++ містить нормативне посилання на стандарт С від 1990 року і не визначає самостійно ті функції стандартної бібліотеки, які запозичуються із стандартної бібліотеки Сі

Поза тим, існує величезна кількість бібліотек С++, котрі не входять в стандарт. У програмах на С++ можна використовувати багато бібліотек С.

Стандартизація визначила мову програмування С++, проте за цією назвою можуть ховатися також неповні, обмежені достандартні варіанти мови. Спочатку мова розвивалася поза формальними рамками, спонтанно, у міру завдань, що ставилися перед ним. Розвиткок мови супроводив розвиток кросс-компілятора Cfront. Нововведення в мові відбивалися в зміні номера версії кросс-компілятора. Ці номери версій кросс-компілятора розповсюджувалися і на саму мову, але стосовно теперішнього часу мову про версії мови С++ не ведуть.

  1   2   3   4   5   6   7   8   9   ...   24

скачати

© Усі права захищені
написати до нас