Зміст
Введення
1 Постановка завдання
1.1 Логічна модель
1.2 Вхідні дані
1.3 Вихідні дані
1.4 Обробка помилок
2 Проектування програмного модуля
2.1 Структурна діаграма програмного модуля
2.2 Розробка програмного модуля та її опис
2.3 Розробка користувальницького інтерфейсу
3 Реалізація програмного модуля
3.1 Код програми
3.2 Опис використовуваних операторів і функцій
4 Тестування програмного модуля
Висновок
Список використаних джерел
Введення
У курсовому проекті розроблена програма, що дозволяє користувачеві вводити квадратну матрицю, і замінювати значення ненульових елементів А (i, j) на А (i, j) * N і значення елементів головної діагоналі на i + N. Введення вихідних даних повинен здійснюватися з використанням користувальницької форми.
Дана програма дозволяє швидко проводити такі операції з матрицями:
заміна значень ненульових елементів A (i, j) на A (i, j) * N;
заміна значень елементів головної діагоналі на i + N.
При розробці даного програмного модуля використовуються програмні модулі, з використанням мови проектування програм Visual Basic for Application.
У розділі 1 розглядається математична модель задачі, описуються вхідні і вихідні дані, а також можливі помилки та методи їх обробки.
У розділі 2 наводиться структурна діаграма, яка відображає взаємозв'язок модулів програмного комплексу, зображується схема алгоритму, а також представлена користувальницька форма.
Розділ 3 включає в себе код програми і опис використаних операторів і функцій.
У розділі 4 проводиться тестування програмного модуля.
1 Постановка завдання
1.1 Математична модель задачі
Матрицею називається прямокутна таблиця чисел, яка містить m рядків однакової довжини (або n стовпців однакової довжини). Матриця записується у вигляді
або, скорочено А = , Де i = 1, m (тобто i = 1,2,3, ..., m) - номер рядка, j = 1, n (тобто j = 1,2,3, ..., n) - номер стовпця. Матрицю А називають матрицею розміру m x n b і пишуть . Числа , Складові матрицю, називають її елементами. Елементи, що стоять на діагоналі, що йде з верхнього кута, утворюють головну діагональ. Матриця, у якої число рядків дорівнює числу стовпців, називається квадратною
1.2 Вхідні дані
Вхідні дані: розмірність матриці.
Вимоги до вхідних даних:
Введення вихідних даних здійснюється у відповідні клітинки поля для користувача форми.
Передбачається перевірка на допустимість вихідних даних і повторення введення при помилкових даних.
1.3 Вихідні дані
Виводяться перетворені матриці.
Вимоги до вихідних даних:
Всі вихідні дані виводяться на форми та лист Excel.
До всіх вихідних даних заборонений доступ з боку користувача, здійснений за допомогою функції Enabled.
1.4 Обробка помилок
У результаті неправильного введення вхідних даних, тобто: дробових, негативних чисел, символів, і інших елементів, з'являється вікно, показане на малюнку 1.
Малюнок 1 - Вікно попередження користувача
2 Проектування програмного модуля
2.1 Структурна діаграма програмного модуля
На малюнку 2 наведена структурна діаграма програмного модуля.
Рисунок 2 - Структурна діаграма програмного модуля
Тут CommandButton 1_ Click () - процедура, що спрацьовує при натисканні кнопки «Розрахунок», яка зчитує вихідні дані і виводить результат роботи програми.
CommandButton 2_ Click () - процедура, що спрацьовує при натисканні кнопки «Вивести результат на лист Excel», використовується для виведення результату на аркуш Excel.
CommandButton 3_ Click () - процедура, що спрацьовує при натисканні кнопки «Заполнить матрицю», використовується для введення вихідної матриці.
CommandButton 4_ Click () - процедура, що спрацьовує при натисканні кнопки «Обнулити матрицю», використовується для обнулення матриці.
CommandButton 5_ Click () - процедура, що спрацьовує при натисканні кнопки «Вихід», використовується для виходу з програми.
2.1 Розробка схеми програмного модуля та її опис
На малюнку 3 показана блок-схема програми
Малюнок 3 - Сема програмного модуля
2.3 Розробка користувальницького інтерфейсу
На малюнку 4 розроблений для користувача інтерфейс.
Малюнок 4-Інтерфейс
Поле для введення розмірності матриці.
Кнопка для заповнення матриці
Кнопка для обнуління матриці.
Кнопка розрахунку програми.
Поле виведення правильного результату.
Перемикачі для вибору умови завдання.
Кнопка виведення результату на аркуш Excel.
Кнопка для виходу з програми.
3 Реалізація програмного модуля
3.1 Код програми
3Public N_correct As Boolean
Private Sub CommandButton1_Click ()
If Not N_correct Then
MsgBox ("Невірно вказано розмір матриці")
TextBox1.SetFocus
Exit Sub
End If
N = Val (TextBox1.Value)
For i = 1 To N
For j = 1 To N
A (i, j) = Raschet (A (i, j), OptionButton1.Value, i, j, N)
Next j
Next i
ListBox1.List = A
End Sub
Private Sub CommandButton2_Click ()
If Not N_correct Then
MsgBox ("Невірно вказано розмір матриці")
TextBox1.SetFocus
Exit Sub
End If
МатріцаФорма. Hide
Cells.Clear
N = Val (TextBox1.Value)
For i = 1 To N
For j = 1 To N
Cells (i, j) = Raschet (A (i, j), OptionButton1.Value, i, j, N)
Next j
Next i
МатріЛіст. Show
Application.Visible = True
Rem Cells.Select
Rem Selection.ClearContents
End Sub
Private Sub CommandButton3_Click ()
If Not N_correct Then
MsgBox ("Невірно вказано розмір матриці")
TextBox1.SetFocus
Exit Sub
End If
N = Val (TextBox1.Value)
For i = 1 To N
For j = 1 To N
A (i, j) = 0
Next j
Next i
ListBox1.List = A
End Sub
Private Sub CommandButton4_Click ()
If Not N_correct Then
MsgBox ("Невірно вказано розмір матриці")
TextBox1.SetFocus
Exit Sub
End If
N = Val (TextBox1.Value)
For i = 1 To N
For j = 1 To N
A (i, j) = Abs (i - j)
Next j
Next i
ListBox1.List = A
End Sub
Private Sub CommandButton5_Click ()
ThisWorkbook.Close
End Sub
Private Sub TextBox1_Exit (ByVal Cancel As MSForms.ReturnBoolean)
N = Val (TextBox1.Value)
If Not IsNumeric (N) Or N <1 Or N <> Int (N) Then
MsgBox ("Помилка. Необхідно ввести натуральне число")
N_correct = False
Else
ReDim A (1 To N, 1 To N)
With МатріцаФорма. ListBox1
. ColumnCount = N
. List = A
End With
N_correct = True
End If
End Sub
Private Sub UserForm_Initialize ()
Application.Visible = False
TextBox1.SetFocus
End Sub
Private Sub UserForm_Terminate ()
Application.Visible = True
N_correct = False
End Sub.
3.2 Опис використаних операторів
При розробці програми використовувалися різні стандартні оператори та функції мови програмування VBA.
Оператор умовного переходу If Then Else. Синтаксис:
If Умова Then [Інструкції] [Else Інструкції else]
Якщо умова приймає значення True, то виконується інструкція (або інструкції) після Then, якщо False, то виконується інструкція (або інструкції) після Else. Гілка Else є необов'язковою. Допускається також використання форми синтаксису у вигляді блоку:
If Умова Then
[Інструкції]
[ElseIf Умова-n Then
[Інструкції elseif] ...
[Else
[Інструкції else]]
End If
Оператор циклу For ... Next дозволяє повторювати групу операторів задане число разів.
Інструкція Dim призначена для опису типу даних змінної на рівні модуля або процедури, а також для опису об'єктного типу змінних, синтаксис:
Dim Ім'я змінної А s Тип змінної [Ім'я змінної А s Тип змінної]
Типи змінних: Integer, Double.
Double-числовий тип подвійної точності. Якщо змінна не була оголошена, то вона отримує тип Variant.
У курсовій роботі матриці задавалися за допомогою масивів. Масив-сукупність однотипних даних об'єднаних спільним ім'ям. Синтаксис:
Dim Ім'я масиву (Індекси [А s тип])
Іноді в процесі виконання програми потрібно змінювати розмір масиву. У цьому випадку спочатку масив оголошують як динамічний
як динамічний, при оголошенні масиву не треба вказувати розмірність.
Функція IsNumeric (x) перевіряє, чи є змінна числовим значенням.
Функція CDbl повертає числа, що містяться в рядку, як числове значення відповідного типу
Цикл з передумовою While ... Wend дозволяє повторювати групу операторів до тих пір поки умова буде приймати значення істина.
Функція Exit For надає можливість дострокового виходу з циклу.
>, <, =,> =, <=, <> - Оператори порівняння.
*, /, *, -, + - Математичні оператори
Функція Fix (x) округлює число до найближчого меншого цілого
Unload Me - здійснює вихід з процедури.
4 Тестування програмного модуля
Тестування програми наведено на рисунках 5,6,7.
Малюнок 5 - Заповнення матриці
Малюнок 6 - Результат отриманий програмою при виконанні наступної операції: замінити значення ненульових елементів A (i, j) на A (i, j) * N.
Рисунок 7 - Результат отриманий програмою при виконанні заміни елементів головної діагоналі на i + N.
Як бачимо, якщо порівняти первісну матрицю (Малюнок 5) і отримані дані, наведені на малюнках 6 і 7, можна сказати що програма працює правильно.
Висновок
Під час тестування програми ніяких відхилень не виявлено, кожна функція правильно виконує всі операції, передбачена обробка помилок, що дозволяє запобігати аварійну зупинку програми.
Таким чином, можна зробити висновок про те, що поставлене завдання виконано:
- Мовою програмування VBA створена програма, за допомогою якої можна перетворити матриці.
- Введення вихідних даних здійснюється з використанням вікна діалогу користувача форми.
Програмний модуль дозволяє:
- Вводити значення в призначену для користувача форму в ручному режимі;
- Дозволяє швидко визначити вірну відповідь і перевірити себе.
- Результат виводиться як у вікно користувацької форми, так і на аркуш Excel.
Список використаних джерел
1 Гарнаєв А.Ю Самовчитель V ВА. - СПБ.: БХВ-Санкт-Петербург, 1999.-512 с.: Іл.
2 Додж М., Стінсон До Д60 Ефективна робота з М i з rosoft Excel.
3 Браун С. Б87 Visual Basic 6: навчальний курс-СПб: ЗАТ Видавництво "Пітер", 1999.-576 с.: Іл.
4 Мантуров О.В. Курс вищої математики, навч. Для вузів .- М.: Вищ. шк., 1991 .- 448с.: іл.
5 А.Д. Мишкін Лекції з вищої математики .- М. 1969-640с.