1 2 3 4 5 6 7 8 9 ... 24 Міністерство освіти і науки України Національний університет водного господарства і природокористування Технічний коледж Курсова робота з дисципліни: «Алгоритмічні мови та програмування» на тему: «Розробка прикладної програми для комплексного обрахунку математичних матриць» Оцінка Члени комісії
________________________________ ________________________________ Виконав: Студент 2-го курсу Групи ПМ-2 Зімбаев П.А. Перевірив: Шатний С.В. Рівне 2020 «Затверджую» Голова циклової комісії «Математики, інформатики, фізики» _____________ С.М. Андрійчук протокол № __ від „___”_______ 202__р. Завдання на курсову роботу з дисципліни «Алгоритмічні мови та програмування» П.І.П студента _________________________________________________ _______________________________________________________________ Тема курсового проекту__________________________________________ _________________________________________________________________ _________________________________________________________________ _________________________________________________________________ Вихідні дані до курсового проекту_________________________________ _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ Зміст пояснювальної записки (перелік питань, що підлягають розробленню)__________________________________________________ _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ _______________________________________________________________ Перелік графічних матеріалів_____________________________________ _________________________________________________________________ _________________________________________________________________ _________________________________________________________________ Дата видачі завдання ” ____ ”_________202___ р. Термін захисту курсової роботи “____ ” ________202__ р. Графік виконання завдання курсової роботи
Студент___________________________ Керівник: Шатний С.В._______________ Зміст Огляд першоджерел по поставленій задачі………………………………..5 Складання та опис алгоритму……………………………………………..10 Вибір та обґрунтування мови і середовища програмування…........……13 Розробка інтерфейсу користувача………………………………………...18 Розробка методів та коду програмування для вирішення задач………...20 Література…………………………………………………………………240 1.Огляд першоджерел по поставленій задачі Завдання Розробка прикладної програми для комплексного обрахунку математичних матриць. Матрицею розміру m на n називають прямокутну таблицю чисел, що складається з m рядків та n стовбців. Матриці позначаються великими латинськими літерами, їх елементи відповідно малими латинськими літерами: Де аij – елемент матриці; i – номер рядка; j – номер стовпця. Горизонтальні лінії в матриці звуть рядками, вертикальні — стовпцями. Види матриць Матриця рядок — це матриця яка складається лише з одного рядка: Матриця стовбець — це матриця яка складається лише з одного стовбця: Нульова матриця — це матриця всі елементи якої дорівнюють нулю: Квадратна матриця — це матриця в якій кількість рядків дорівнює кількості стовбців. Головною характеристикою квадратної матриці є її порядок. Порядок матриці позначається n. Порядок матриці дорівнює кількості її стовбців або рядків: — матриця 2-го порядку; Діагональна матриця — це квадратна матриця в якої всі елементи що не розміщені на головній діагоналі, дорівнюють нулю: Одинична матриця — це така діагональна матриця в якій всі елементи головної діагоналі дорівнюють одиниці, позначають літерою Е: Верхня (нижня) трикутна матриця — це матриця в якій всі елементи що знаходяться під (над) головною діагоналлю дорівнюють нулю: — верхня трикутна матриця; — нижня трикутна матриця. Операції над матрицями Сумою двох матриць А і В називають матрицю С яка визначається шляхом додавання відповідних елементів матриці А і В: Cij=aij+bij. Наприклад: Різницею двох матриць А і В називають матрицю С яка визначається шляхом віднімання відповідних елементів матриці А і В: Cij=aij-bij. Наприклад: Добутком матриці А на дійсне число α називають матрицю В, елементи якої визначаються ріністю bij=α*aij. Наприклад: Дії додавання, віднімання та множення матриці на число називають лінійними операціями над матрицями. Властивості лінійних операцій над матрицями: A+B=B+A; (A+B)+C=A+(B+C)=B+(A+C); A+0=A; 1*A=A; α*(B*A)=(α*B)*A=(α*A)*B; α*(A+B)=α*A+α*B; (α+β)*A=α*A+β*A. Добутком двох матриць А і В називають матрицю С елементи якої визначаються рівністю cij=ai1*b1j+ai2*b2j+…+ain*bnj. Отже щоб дістати елемент сij матриці С, треба знайти суму добутків елементів і-го рядка матриці А на відповідні елементи j-го стовпця матриці В. Наприклад: Властивості операції множення матриць: A*E=E*A=A; A*0=0*A=0; (A*B)*C=A*(B*C)=(A*C)*B; A*(B+C)=A*B+A*C; (A+B)*C=A*C+B*C; α*(A*B)=(α*A)*B=A*(α*B). Операція піднесення матриці до степені Цілим додатним степенем Аn(n>1) квадратної матриці А називають добуток n матриць рівних А, тобто потрібно помножити матрицю А саму на себе n разів. Операція піднесення матриць до степені визначена тільки для квадратних матриць. Властивості операції піднесення матриці до степені: А0=Е; A1=A; An*Am=An+m,(An)m=Anm. Операція транспонування матриці Транспонованою матрицею до матриці А називають матрицю в якої рядки і стовпці поміняні місцями. Транспоновані матриці позначають АТ. Наприклад: Властивості операцій транспонування матриці: (AT)T=AT; (A+B)T=AT+BT; (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 |