Программирование линейных процессов. Лабораторная работа 2 Программирование линейных вычислительных процессов
Скачать 0.7 Mb.
|
Лабораторная работа №2 Программирование линейных вычислительных процессов Вычислить функцию f(u, v) и округлить до 0,001 f(u, v), где u=u(x), v=v(x), вводя с клавиатуры различные значения аргумента х из интервала (0; 10). Блок-схема Рисунок 1 – Блок-схема алгоритма Интерфейс Рисунок 2 – Интерфейс программы Программный код Public Class Form1 Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Ex_button.Click End End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Clear.Click vvodX.Clear() vivodU.Text = "" vivodV.Text = "" vivodF.Text = "" End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles OK.Click Dim x As Double Dim f, v, u As Double If vvodX.Text = "" Or Not IsNumeric(vvodX.Text) Or Convert.ToDouble(vvodX.Text) <= 0 Then MsgBox("Ошибка в данных!!!", vbOKOnly, "Ошибка") Exit Sub End If x = Convert.ToDouble(vvodX.Text) v = x + 1 / Math.Tan(5) u = Math.Log(3 * x) + Math.Atan(2) f = 3 * Math.Sin(u) + 5 * Math.Cos(3 * v) vivodU.Text = "u(x) = " + Math.Round(u, 3).ToString() vivodV.Text = "v(x) = " + Math.Round(v, 3).ToString() vivodF.Text = "f(u,v) = " + Math.Round(f, 3).ToString() End Sub End Class Результаты работы программы Рисунок 3 – Результат выполнения программы Рисунок 4 – Результат при вводе текстовых данных Рисунок 5 – Результат при вводе чисел меньше либо равных 0 Рисунок 6 – Результат при пустом поле ввода Лабораторная работа №3. Программирование разветвляющихся процессов Вычислить функцию и округлить до 0,001. Вводя различные значения переменной х из интервала (0; 10) обеспечить вычисления по каждой из ветвей алгоритма. Блок-схема Рисунок 7 – Блок-схема Интерфейс Рисунок 8 – Интерфейс Программный код Public Class Form1 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Clear.Click vvodX.Clear() vivod_rez.Text = "" End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Ex_but.Click End End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles OK.Click Dim x, y As Single Dim k As Integer If vvodX.Text = "" Or Not IsNumeric(vvodX.Text) Then MsgBox("Ошибка в данных!!!", vbOKOnly, "Ошибка") Exit Sub End If x = Val(vvodX.Text) If x < 1.3 Or x > 7.3 Then y = 5 * Math.Sin(2 * x) k = 1 ElseIf x > 3.3 And x < 5.3 Then y = 2 * Math.Log(2 * x) + Math.Atan(5) k = 2 Else y = Math.Tan(6) - x k = 3 End If y = Math.Round(y, 3) vivod_rez.Text = vivod_rez.Text + "y(x) = " + y.ToString() + Chr(13) vivod_rez.Text = vivod_rez.Text + "Ветвь решения №" + k.ToString() End Sub End Class Результаты работы программы Рисунок 9 – Вычисление значения функции по 1 ветви Рисунок 10 – Вычисление значения функции по 2 ветви Рисунок 11 – Вычисление значения функции по 3 ветви Лабораторная работа №4 Программирование циклических процессов. Суммирование рядов На отрезке [2,7; 8,71] с шагом h=1,0 вычислить и округлить до 0,1 функцию . В процессе вычисления функции найти произведение положительных . Значение k вводить с клавиатуры из интервала (0; 10). Блок-схема Рисунок 12 – Блок-схема Интерфейс Рисунок 13 – Интерфейс программы Программный код Public Class Form1 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Clear.Click vvodK.Clear() Mult.Text = "" ListX.Items.Clear() ListY.Items.Clear() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Ex_but.Click End End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles OK.Click Dim k, x, y, h, f, p As Single If vvodK.Text = "" Or Not IsNumeric(vvodK.Text) Then MsgBox("Ошибка в данных!!!", vbOKOnly, "Ошибка") Exit Sub End If k = Convert.ToInt32(vvodK.Text) x = 2.7 h = 1 p = 1 While x < 8.71 y = 4 * Math.Cos(2 * x + k) * 2 * Math.Sin(3 * x) ListX.Items.Add(x) ListY.Items.Add(Math.Round(y, 1)) f = Math.Sin(Math.Abs(y)) If f > 0 Then p *= f End If x += h End While Mult.Text = Math.Round(p, 1) End Sub End Class Результаты работы программы Рисунок 14 – Результат работы программы Лабораторная работа №5 Работа с одномерными массивами Вычислить и округлить до 0,1 элементы массива , где . Найти среднеарифметическое . Значение параметра k вводить с клавиатуры из интервала (0; 10). Блок-схема Рисунок 15 – Блок-схема Интерфейс Рисунок 16 – Интерфейс программы Программный код Public Class Form1 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles clear.Click vvodK.Clear() ListM.Items.Clear() Rez.Text = "" End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles OK.Click Dim m(7) As Single Dim f, sr, sum, k As Single Dim i As Integer If vvodK.Text = "" Or Not IsNumeric(vvodK.Text) Then MsgBox("Ошибка в данных!!!", vbOKOnly, "Ошибка") Exit Sub End If sum = 0 k = Convert.ToSingle (vvodK.Text) For i = 1 To 7 m(i) = Math.Round(9 * Math.Cos(i + k), 1) ListM.Items.Add(m(i)) f = Math.Cos(3 * m(i)) sum = sum + f Next i sr = sum / 7 Rez.Text = Math.Round(sr, 3).ToString() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Ex_but.Click End End Sub End Class Результаты работы программы Рисунок 17 – Результат работы программы Лабораторная работа №6 Работа с двумерными массивами Вычислить матрицу A = {ai,j}, где i, j = {1, 2, …, 7} по формуле . Элементы матрицы округлить до целого значения. Найти наименьшее положительное . Отсортировать квадраты элементов 4-й строки по возрастанию. Значение параметра k вводить с клавиатуры из интервала (0; 10). Блок-схема Рисунок 18 – Блок-схема Интерфейс Рисунок 19 – Интерфейс программы Программный код Public Class Form1 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Clear.Click VivodMin.Text = "" VivodSort.Text = "" vvodK.Clear() ListM.Items.Clear() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Ex_but.Click End End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles OK.Click Dim i, j As Integer Dim a(7, 7), k, tmp, min As Single If vvodK.Text = "" Or Not IsNumeric(vvodK.Text) Then MsgBox("Ошибка в данных!!!", vbOKOnly, "Ошибка") Exit Sub End If k = Convert.ToSingle(vvodK.Text) For i = 1 To 7 For j = 1 To 7 a(i, j) = Math.Round(33 * Math.Sin(i) + 43 * Math.Cos(j) + 23 * Math.Sin(k), 0) Next j ListM.Items.Add(a(i, 1) & vbTab & a(i, 2) & vbTab & a(i, 3) & vbTab & a(i, 4) & vbTab & a(i, 5) & vbTab & a(i, 6) & vbTab & a(i, 7)) Next i min = Math.Sin(a(1, 3)) For i = 2 To 7 tmp = Math.Sin(a(i, 3)) If tmp < min Then min = tmp End If Next i VivodMin.Text = Math.Round(min, 3).ToString() For i = 1 To 7 a(4, i) = a(4, i) ^ 2 Next i For i = 1 To 6 For j = i + 1 To 7 If a(4, j) < a(4, i) Then tmp = a(4, i) a(4, i) = a(4, j) a(4, j) = tmp End If Next j Next i For j = 1 To 7 VivodSort.Text = VivodSort.Text & a(4, j).ToString() & " " Next j End Sub End Class Результаты работы программы Рисунок 20 – Результат работы программы |