- •1. Метод Крамера
- •Пояснение метода
- •2. Создание приложения
- •2.1 Создание титульной формы
- •2.2 Форма ввода размерности системы
- •2.3 Основная форма
- •2.4 Форма графика системы линейного уравнения 2 ряда
- •2.5 Информационные формы
- •3. Создание программ
- •3.1 Ввод данных
- •3.2 Основная программа
- •3.3 Программа построения графика
- •3.4 Программа завершения работы приложения
- •3.5 Программы перехода между формами
- •Заключение
- •Список литературы
2.4 Форма графика системы линейного уравнения 2 ряда
Кнопка «Решить» на рамке «Графическое решение» основной формы открывает форму График (Form4) системы и запускает программу построения графика решения, если размерность системы равна 2, иначе данная кнопка не отображается.
На данную форму помещены PictureBox1, Label1, Label2, TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6.
С помощью TextBox и Label отображаются уравнения прямых. В PictureBox1 выводится график данных уравнений.
Меню данной формы состоит из раздела меню Файл и Справка. Раздел Файл имеет подменю: На главное, Решить СЛАУ и Выход. Раздел Справка имеет одно подменю – О создателе.
2.5 Информационные формы
Form4 и Form6 несут собой только информационный смысл: в Form6 (Информация о создателе) находится информация о создателе приложения, в Form5 (Метод Крамера) вкратце написано о методе Крамера.
Каждый из данных формы имеет только один объект – OLE1, в которую включен файл MS Word.
Меню формы Form6 (Информация о создателе) состоит из раздела меню Файл(подменю На главное, Решить СЛАУ и Выход) и Справка(подменю О методе). При нажатие на кнопку «На главное» откроется титульная форма, а использованная информационная форма закроется, при нажатие на кнопку «Решить СЛАУ» - форма ввода размерности системы.
Вызвать данные формы возможно из меню Справка любой формы, кроме формы ввода размерности системы:
Справка → О создателе.
Меню формы Form5 (Метод Крамера) состоит из раздела меню Файл, имеющий подменю На главное, Решить СЛАУ и Выход, которые выполняют процессы, соответствующие форме информации о создателе.
3. Создание программ
3.1 Ввод данных
Данная программа запускаться при нажатии кнопки «ENTER» на клавиатуре, при котором будет вводиться данные из TextBox1, расположенной на основной форме (Form3). При активации Form3 переменным i и j присваиваются значение 1.
Блок-схема программы:
Текст программы:
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If (i <= n) And (j <= n + 1) Then
If j = n + 1 Then
b(i) = Val(Text1.Text)
Picture2.Print Format(b(i), " ##0")
Picture1.Print
Else
a(i, j) = Val(Text1.Text)
Picture1.Print Format(a(i, j), " ##0 ");
End If
Text1.Text = " "
If j = n + 1 Then
j = 0
i = i + 1
End If
j = j + 1
End If
End If
End Sub
3.2 Основная программа
Данная программа запускаться при нажатии кнопки «Решить», расположенной на основной форме (Form3). Программа имеет входные данные (матрица с неизвестными переменными и матрица, не имеющий неизвестные переменные), промежуточные и конечное выходные данные. При активации Form3 переменной n присваивается значение от 2 до 10.
Блок-схема программы:
Текст программы:
Private Sub Command1_Click()
Picture3.Cls
For k = 1 To n
d(k) = 1
For i = 1 To n
For j = 1 To n
If j = k Then
c(i, j) = b(i)
Else
c(i, j) = a(i, j)
End If
'Picture2.Print Format(c(i, j), "##0.0##"),
Next
'Picture2.Print
Next
m1 = c(n - 1, n - 1) * c(n, n) - c(n - 1, n) * c(n, n - 1)
Do
If m1 = 0 Then
For j = 1 To n
t = a(n, j)
c(n, j) = c(i, j)
c(i, j) = t
Next
End If
Loop While m1 = 0
For j = 1 To n - 2
z = j + 1
If c(j, j) = 0 Then
If c(z, j) <> 0 Then
For z1 = j To n
w = c(j, z1)
c(j, z1) = c(z, z1)
c(z, z1) = w
Next
End If
End If
For i = j + 1 To n
h1 = c(i, j) / c(j, j)
For r = j To n
'Picture2.Print h1
c(i, r) = c(i, r) - c(j, r) * h1
Next
Next
d(k) = (-1)*d(k) * c(j, j)
Next
m1 = c(n - 1, n - 1) * c(n, n) - c(n - 1, n) * c(n, n - 1)
d(k) = d(k) * m1
'Picture2.Print d(k)
Next
'----------------------------
m = 1
m1 = a(n - 1, n - 1) * a(n, n) - a(n - 1, n) * a(n, n - 1)
Do
If m1 = 0 Then
For j = 1 To n
t = a(n, j)
a(n, j) = a(i, j)
a(i, j) = t
Next
End If
Loop While m1 = 0
For j = 1 To n - 2
z = j + 1
If a(j, j) = 0 Then
If a(z, j) <> 0 Then
For z1 = j To n
w = a(j, z1)
a(j, z1) = a(z, z1)
a(z, z1) = w
Next
End If
End If
For i = j + 1 To n
h = a(i, j) / a(j, j)
For k = j To n
'Picture1.Print h
a(i, k) = a(i, k) - a(j, k) * h
Next
Next
m = m * a(j, j)
Next
m1 = a(n - 1, n - 1) * a(n, n) - a(n - 1, n) * a(n, n - 1)
m = m * m1
'Picture4.Print m
For x = 1 To n
d(x) = d(x) / m
Picture3.Print Format(d(x), "#0.0##")
Next
End Sub