ПОЗНАВАТЕЛЬНОЕ Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Подпрограммы для массива А находит сумму квадратов его значений и для массива В сумму кубов его значений. БИЛЕТ 1 Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a() As Single, b() As Single Dim n, h As Integer Dim ret1, ret2 As Integer n = InputBox("Введите n") h = InputBox("Введите значение h") ReDim a(n), b(n) InputVector(a, "a") InputVector(b, "b") Myau(a, ret1, h) Myau(b, ret2, h) If ret1 > ret2 Then MsgBox("Индекс больше в массиве A") If ret1 < ret2 Then MsgBox("Индекс больше в массиве B") If ret1 = ret2 Then MsgBox("Индексы равны") End Sub Private Sub Myau(ByRef y() As Single, ByRef ind As Single, ByRef r As Single) Dim i As Integer Dim min, razn As Integer min = 99999 For i = 1 To y.GetUpperBound(0) razn = Math.Abs(r - y(i)) If razn < min Then min = razn ind = i End If Next End Sub Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub End Class БИЛЕТ 3 Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click Dim myau1, myau2, n, m, k As Integer Dim a(,), b(,), c(,) As Single txtЖурнал.Clear() n = InputBox(" Введите кол-во столбцов матриц ") txtЖурнал.AppendText(" n = " & n & vbCrLf) m = InputBox(" Введите кол-во строк матриц ") txtЖурнал.AppendText(" m = " & m & vbCrLf) ReDim a(n, m), b(n, m), c(n, m) InputMatrix(a, "a") InputMatrix(b, "b") InputMatrix(c, "c") myau1 = Myau(a, b, n, m, k) myau2 = Myau(b, c, n, m, k) If myau1 = True And myau2 = True Then txtЖурнал.AppendText("Объекты эквивалентны " & vbCrLf) ElseIf myau1 = False Or myau2 = False Then txtЖурнал.AppendText("Объекты не эквивалентны " & vbCrLf) End If End Sub Private Function Myau(ByRef x(,) As Single, ByRef y(,) As Single, ByVal n As Integer, ByVal m As Integer, ByVal k As Integer) Dim i, j As Integer For i = 1 To n For j = 1 To m If x(i, j) = y(i, j) Then k = True ElseIf x(i, j) <> y(i, j) Then k = False End If Next Next Myau = k Return Myau End Function Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & _ "(" & i & "," & j & ") =?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class БИЛЕТ 5 Сост. ф-цию, вычисляющую кол-во элементов матрицы, значение которых больше З.В. h1,но в то же время меньше З.В. h2. Используя эту ф-цию, для матрицы А и В определите матрицу, у которой кол-во таких элементов окажется больше. При равенстве кол-ва таких элементов выведите соответствующее сообщение. Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click 1: Dim ma, mb, na, nb, t, r As Integer Dim a(,) As Single, b(,) As Single Dim Fa, Fb As Single 5: txtЖурнал.Clear() ma = InputBox("Задайте количество строк матрицы а") na = InputBox("Задайте количество столбцов матрицы а") mb = InputBox("Задайте количество строк матрицы b") nb = InputBox("Задайте количество столбцов матрицы b") txtЖурнал.AppendText("Количество строк в матрице А = " & ma & vbCrLf) txtЖурнал.AppendText("Количество строк в матрице Б = " & mb & vbCrLf) txtЖурнал.AppendText("Количество столбцов в матрице А = " & na & vbCrLf) txtЖурнал.AppendText("Количество cтолбцов в матрице Б = " & nb & vbCrLf) t = InputBox("введите заданную велечину Т") r = InputBox("Введите заданную величину R") txtЖурнал.AppendText("Заданная величина Т = " & t & vbCrLf) txtЖурнал.AppendText("Заданная величина R = " & r & vbCrLf) ReDim a(ma, na) 15: ReDim b(mb, nb) InputMatrix(a, "a") txtЖурнал.AppendText("Матрица a" & vbCrLf) OutputMatrix(a, txtЖурнал) InputMatrix(b, "b") 20: txtЖурнал.AppendText("Матрица b" & vbCrLf) OutputMatrix(b, txtЖурнал) Fa = pog(a, ma, na, t, r) Fb = pog(b, mb, na, t, r) If Fa > Fb Then txtЖурнал.AppendText("Больше элементов в матрице А = " & Fa & vbCrLf) ElseIf Fb > Fa Then txtЖурнал.AppendText("Больше элементов в матрице В = " & Fb & vbCrLf) ElseIf Fb = Fa Then txtЖурнал.AppendText("Количество таких элементов одинакого = " & Fb & vbCrLf) End If End Sub Private Function pog(ByRef a(,) As Single, ByVal mm As Integer, ByVal nn As Integer, ByVal t As Integer, ByVal r As Integer) As Integer Dim k As Single Dim i, j As Integer For j = 1 To nn For i = 1 To mm If a(i, j) > t And a(i, j) < r Then k = k + 1 End If Next Next pog = k Return pog End Function Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & _ "(" & i & "," & j _ & ") = ?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, _ ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class БИЛЕТ 6 Составьте подпрограмму для определения индексов элемента матрицы, значение которого наименее отличается от Зад.Вел. Используя эту подпр., установите в какой из матриц А или В сумма индексов элемента наименее отличающегося от Ср.Знач. соответствующей матрицы, имеет наибольшее значение Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnПуск.Click 1: Dim m, zva, zvb, sra, srb, n As Integer Dim a(,), b(,) As Single txtЖурнал.Clear() m = InputBox(" Введите размерность массива а = ?") txtЖурнал.AppendText(" а = " & m & vbCrLf) n = InputBox(" Введите размерность массива b = ?") txtЖурнал.AppendText(" b = " & n & vbCrLf) ReDim a(m, m), b(n, n) InputMatrix(a, "a") txtЖурнал.AppendText("Вектор a" & vbCrLf) OutputMatrix(a, txtЖурнал) InputMatrix(b, "b") 10: txtЖурнал.AppendText("Вектор b" & vbCrLf) OutputMatrix(b, txtЖурнал) sr(a, m, sra) sr(b, n, srb) zv(a, m, sra, zva) zv(b, n, srb, zvb) txtЖурнал.AppendText("сумма А = " & zva & vbCrLf) txtЖурнал.AppendText("сумма d = " & zvb & vbCrLf) If zva > zvb Then txtЖурнал.AppendText("сумма индексов наимение отличающаяся от матрицы А = " & zva & vbCrLf) ElseIf zvb > zva Then txtЖурнал.AppendText("сумма индексов наимение отличающаяся от матрицы В = " & zvb & vbCrLf) ElseIf zva = zvb Then txtЖурнал.AppendText("сумма индексов одинакова = " & zva & vbCrLf) End If End Sub Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Sub zv(ByRef M(,) As Single, ByVal mm As Integer, ByRef tt As Integer, ByRef pp As Integer) Dim k, N, F As Integer Dim i, j As Integer k = Abs(M(1, 1) - tt) N = 1 F = 1 For j = 1 To mm For i = 1 To mm If Abs(M(i, j) - tt) <= k Then k = Abs(M(i, j) - tt) F = i N = j End If Next Next pp = N + F End Sub Private Sub sr(ByRef M(,) As Single, ByVal mm As Integer, ByRef srr As Single) Dim k, N As Integer Dim i, j As Integer For j = 1 To mm For i = 1 To mm N = M(i, j) + N k = k + 1 Next Next srr = N / k End Sub Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & _ "(" & i & "," & j _ & ") = ?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, _ ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class БИЛЕТ 7 Сост. подпр., проверяющую что в двух одномер. массивов нет равных элементов. Имеющие равное кол-во элементов массивы эквивалентны, если их соответствующие элементы имеют одинаковые значения. Используя эту подпр., сравните три зад. одномер. массивов А, В и С и виведите соответст. сообщение. Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click Dim m, kolab, kolac, kolcb As Integer Dim a(), b(), c() As Single txtЖурнал.Clear() m = InputBox(" Введите размерность трех векторов = ?") TxtЖурнал.AppendText("Pазмерность трех векторов = " & m & vbCrLf) ReDim a(m), b(m), c(m) InputVector(a, "a") txtЖурнал.AppendText("Вектор a" & vbCrLf) OutputVector(a, txtЖурнал) InputVector(b, "b") txtЖурнал.AppendText("Вектор b" & vbCrLf) OutputVector(b, TxtЖурнал) InputVector(c, "c") TxtЖурнал.AppendText("Вектор c" & vbCrLf) OutputVector(c, TxtЖурнал) Kol(a, b, m, kolab) Kol(a, c, m, kolac) Kol(c, b, m, kolcb) If kolab > kolac And kolab > kolcb Then TxtЖурнал.AppendText("В Векторах А и В больше эквивалентных = " & kolab & vbCrLf) ElseIf kolac > kolab And kolac > kolcb Then TxtЖурнал.AppendText("В Векторах А и С больше эквивалентных = " & kolac & vbCrLf) ElseIf kolcb > kolac And kolcb > kolab Then TxtЖурнал.AppendText("В Векторах C и В больше эквивалентных = " & kolcb & vbCrLf) End If End Sub Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Sub Kol(ByRef A() As Single, ByRef l() As Single, ByVal m As Integer, ByRef k As Integer) Dim i As Integer For i = 1 To m If A(i) = l(i) Then k = k + 1 End If Next End Sub Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub Private Sub OutputVector(ByRef x() As Single, ByVal txtBx As TextBox) Dim i As Integer For i = 1 To x.GetUpperBound(0) txtBx.AppendText(" " & x(i)) Next txtBx.AppendText(vbCrLf) End Sub End Class БИЛЕТ 8 Составьте функцию для определения кол-ва элементов одномерного массива, значение которых меньше значения заданного элемента этого массива. Использую эту функцию, определите, у какого из двух заданных одномерных массивов А и В больше элементов, значение которых меньше значения третьего элемента соответствующего массива. Выведите результат сравнения массивов. Public Class Form1 ' В новом проекте два раза щелкни по пустой форме ' Появится окно кода ' Просто удали оттуда все и вставь этот код Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a() As Single, b() As Single Dim n, m As Integer Dim ret1, ret2 As Boolean n = InputBox(“Введите N”) ReDim a(n), b(n) «переопределим массив на N элементов» InputVector(a, "a") «вводим» InputVector(b, "b") «два массива» ret1 = DoSomething(a, 3) «работаем с массивами» ret2 = DoSomething(b, 3) «и возвращаем» If ret1 > ret2 Then MsgBox("В а больше, чем b") If ret1 < ret2 Then MsgBox("В b больше, чем в а") If ret1 = ret2 Then MsgBox("В а и b одинаково") End End Sub Function DoSomething(ByRef y() As Single, ByRef num As Single) DoSomething = 0 Dim n = 0 For i = 1 To y.GetUpperBound(0) - 1 If y(i) < y(num) Then DoSomething = DoSomething + 1 Next End Function «процедура для ввода массива» Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub End Class БИЛЕТ 10 Сост. ф-цию для опред. индекса элемента одном. массива, знач. Кот. наименее отличается от З.В. Используя эту ф-цию, установите, в каком из друх зад. Одномер. массивов А и В индекс элемента, наиболее отличающегося от знач. З.В. h, имеет наибольшее знач. Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnПуск.Click 1: Dim m, zva, zvb, n, H As Integer Dim a(), b() As Single txtЖурнал.Clear() m = InputBox(" Введите размерность массива а = ?") txtЖурнал.AppendText(" а = " & m & vbCrLf) n = InputBox(" Введите размерность массива b = ?") txtЖурнал.AppendText(" b = " & n & vbCrLf) H = InputBox(" Введите заданую величину H = ?") txtЖурнал.AppendText(" H = " & H & vbCrLf) ReDim a(m), b(n) InputVector(a, "a") txtЖурнал.AppendText("Вектор a" & vbCrLf) OutputVector(a, txtЖурнал) InputVector(b, "b") 10: txtЖурнал.AppendText("Вектор b" & vbCrLf) OutputVector(b, txtЖурнал) zva = zv(a, m, H) zvb = zv(b, n, H) If zva > zvb Then txtЖурнал.AppendText("наибольший индекс вектора А = " & zva & vbCrLf) ElseIf zva < zvb Then txtЖурнал.AppendText("наибольший индекс вектора B = " & zvb & vbCrLf) ElseIf zva = zvb Then txtЖурнал.AppendText(" индексы равны = " & zva & vbCrLf) End If End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Function zv(ByRef M() As Single, ByVal mm As Integer, ByVal tt As Integer) As Integer Dim k, p As Integer k = Abs(tt - M(1)) p = 1 For i = 1 To mm If Abs(tt - M(i)) < k Then k = Abs(M(i) - tt) p = i End If Next zv = p Return zv End Function Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub Private Sub OutputVector(ByRef x() As Single, ByVal txtBx As TextBox) Dim i As Integer For i = 1 To x.GetUpperBound(0) txtBx.AppendText(" " & x(i)) Next txtBx.AppendText(vbCrLf) End Sub End Class БИЛЕТ 11 Сост. подпр., заменяющую знач. Отриц. Эементов части двумер. Массива на ноль и определяющую число таких замен. Используя эту подпр., опред., в какой из двух заданных частей двумерных массивов А (с 2 по 4 строки) или В (с 1 по 2 строки) больше измененных элементов, а также выведите измененные массивы А и В. Если же число измененных элементов одинаково, то выведите соответствующее сообщение. Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click Dim ma, mb, na, nb, t, r, g, u, poga, pogb As Integer Dim a(,) As Single, b(,) As Single 5: txtЖурнал.Clear() ma = InputBox("Задайте количество строк матрицы а") na = InputBox("Задайте количество столбцов матрицы а") mb = InputBox("Задайте количество строк матрицы b") nb = InputBox("Задайте количество столбцов матрицы b") txtЖурнал.AppendText("Количество строк в матрице А = " & ma & vbCrLf) txtЖурнал.AppendText("Количество строк в матрице Б = " & mb & vbCrLf) txtЖурнал.AppendText("Количество столбцов в матрице А = " & na & vbCrLf) txtЖурнал.AppendText("Количество cтолбцов в матрице Б = " & nb & vbCrLf) t = InputBox("С какой строчки масиива А считать изменения") r = InputBox("По какую строчку масиива А считать изменения") g = InputBox("С какой строчки масиива В считать изменения") u = InputBox("По какую строчку масиива В считать изменения") ReDim a(ma, na) 15: ReDim b(mb, nb) InputMatrix(a, "a") txtЖурнал.AppendText("Матрица a" & vbCrLf) OutputMatrix(a, txtЖурнал) InputMatrix(b, "b") 20: txtЖурнал.AppendText("Матрица b" & vbCrLf) OutputMatrix(b, txtЖурнал) pog(a, t, r, na, poga) pog(b, g, u, nb, pogb) If poga > pogb Then txtЖурнал.AppendText("количество замен в А = " & poga & vbCrLf) ElseIf pogb > poga Then txtЖурнал.AppendText("количество замен в В= " & pogb & vbCrLf) ElseIf pogb = poga Then txtЖурнал.AppendText("количество замен равно= " & pogb & vbCrLf) End If txtЖурнал.AppendText("измененная Матрица a" & vbCrLf) OutputMatrix(a, txtЖурнал) txtЖурнал.AppendText("измененная Матрица b" & vbCrLf) OutputMatrix(b, txtЖурнал) End Sub Private Sub pog(ByRef a(,) As Single, ByVal mm As Integer, ByVal nn As Integer, ByVal rr As Integer, ByRef yy As Integer) Dim k As Single Dim i, j As Integer For i = 1 To nn For j = mm To nn If a(i, j) < 0 Then a(i, j) = 0 k = k + 1 End If Next yy = k Next End Sub Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & _ "(" & i & "," & j _ & ") = ?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, _ ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class БИЛЕТ 12 Public Class Form1 ' В новом проекте два раза щелкни по пустой форме ' Появится окно кода ' Просто удали оттуда все и вставь этот код Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a() As Single, b() As Single Dim n As Integer Dim h1, h2 As Integer Dim ret1, ret2 As Integer n = InputBox("Vvedite N") h1 = InputBox("Vvedite H1") h2 = InputBox("Vvedite H2") ReDim a(n), b(n) 'pereopredelim massivi na N elementov InputVector(a, "a") ' vvodim InputVector(b, "b") ' dva massiva ret1 = DoSomething(a, h1, h2) ' rabotaem s massivami ret2 = DoSomething(b, h1, h2) ' i vozvrashayem If ret1 < ret2 Then MsgBox("B") If ret1 > ret2 Then MsgBox("A") If ret1 = ret2 Then MsgBox("Odinakovo") End Sub ' delaem chto-to s massivom Function DoSomething (ByRef y() As Single, ByVal m1 As Integer, ByVal m2 As Integer) as Single DoSomething = 0 For i = 1 To y.GetUpperBound(0) If y(i) > m1 And y(i) < m2 Then DoSomething = DoSomething + 1 Next End Function ' procedura dlya vvoda massiva Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub End Class БИЛЕТ 13 Составьте функцию для определения числа элементов заданного столбца двумерного массива, каждый из которых, кроме первого и последнего, меньше полусуммы соседних элементов. Используя эту функцию, для каждого из двух заданных двумерных массивов А(2-й столбец) и В(1-й столбец) определите, в котором из них больше таких элементов. Если же таких элементов в 2-х заданных массивах одинаковое число, то выведите соответствующее сообщение. Public Class Form1 ' В новом проекте два раза щелкни по пустой форме ' Появится окно кода ' Просто удали оттуда все и вставь этот код
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a(,) As Single, b(,) As Single Dim n, m As Integer Dim ret1, ret2 As Boolean n = InputBox("Vvedite N") m = InputBox("Vvedite M") ReDim a(n, m), b(n, m) 'pereopredelim massivi na N elementov InputVector(a, "a") ' vvodim InputVector(b, "b") ' tri massiva ret1 = DoSomething(a, 2) ret2 = DoSomething(b, 1) If ret1 > ret2 Then MsgBox("Bolshe v A") If ret1 < ret2 Then MsgBox("Bolshe v B") If ret1 = ret2 Then MsgBox("Ravno") End Sub ' delaem chto-to s massivom Function DoSomething(ByRef y(,) As Single, ByRef st As Single) As Integer DoSomething = 0 For i = 2 To y.GetUpperBound(0) - 1 If y(i, st) < 0 And y(i, st) < (y(i - 1, st) + y(i + 1, st)) \ 2 Then DoSomething = DoSomething + 1 Next End Function ' procedura dlya vvoda massiva Private Sub InputVector(ByRef x(,) As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & "(" & i & "," & j & ") = ?") Next Next End Sub End Class БИЛЕТ 14 Составьте функцию, проверяющую, что все элементы одномерного массива чисел упорядочены по убыванию их значений с заданным шагом. Используя эту функцию, для двух заданных одномерных массивов А и В определите, сколько из них упорядочены по убыванию значений их элементов с шагом 3. Public Class Form1 ' В новом проекте два раза щелкни по пустой форме ' Появится окно кода ' Просто удали оттуда все и вставь этот код
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a() As Single, b() As Single Dim n As Integer Dim st As Integer Dim ret1, ret2 As Boolean n = InputBox("Vvedite N") ReDim a(n), b(n) 'pereopredelim massivi na N elementov InputVector(a, "a") ' vvodim InputVector(b, "b") ' dva massiva ret1 = DoSomething(a, st) ' rabotaem s massivami ret2 = DoSomething(b, st) ' i vozvrashayem If ret1 And ret2 Then MsgBox("2") If ret1 And Not ret2 Then MsgBox("1") If ret2 And Not ret1 Then MsgBox("1") If Not ret1 And Not ret2 Then MsgBox("0") End End Sub ' delaem chto-to s massivom Private Function DoSomething(ByRef y() As Single, ByVal st As Single) As Boolean DoSomething = True For i = 2 To y.GetUpperBound(0) If y(i) >= y(i - 1) Or y(i) - y(i - 1) <> st Then DoSomething = False Next End Function ' procedura dlya vvoda massiva Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub End Class БИЛЕТ 15 Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click Dim n, m, max1, max2 As Integer Dim a(,), b(,) As Single txtЖурнал.Clear() n = InputBox(" Введите размерность матрицы А ") txtЖурнал.AppendText(" n = " & n & vbCrLf) m = InputBox(" Введите размерность матрицы В ") txtЖурнал.AppendText(" m = " & m & vbCrLf) ReDim a(n, n), b(m, m) InputMatrix(a, "a") InputMatrix(b, "b") Myau(a, n, max1) Myau(b, m, max2) If max1 > max2 Then txtЖурнал.AppendText("А больше " & vbCrLf) If max1 < max2 Then txtЖурнал.AppendText("В больше " & vbCrLf) If max1 = max2 Then txtЖурнал.AppendText("Одинаково " & vbCrLf) End Sub Private Sub Myau(ByVal x(,) As Single, ByVal n As Integer, ByRef k As Integer) Dim i, j, imax, jmax As Integer k = x(i, j) imax = 1 jmax = 1 For i = 1 To n For j = 1 To n If x(i, j) > k Then k = x(i, j) imax = i jmax = j End If Next Next End Sub Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & _ "(" & i & "," & j & ") =?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, _ ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class БИЛЕТ 16 Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnПуск.Click Dim zva, zvb, zvc, h1, h2, n As Integer Dim a(,), b(,), c(,) As Single txtЖурнал.Clear() n = InputBox(" Введите размерность матриц ") txtЖурнал.AppendText(" n = " & n & vbCrLf) h1 = InputBox(" Введите нижнюю границу h1 ") txtЖурнал.AppendText(" h1 = " & h1 & vbCrLf) h2 = InputBox(" Введите верхнюю границу h2 ") txtЖурнал.AppendText(" h2 = " & h2 & vbCrLf) ReDim a(n, n), b(n, n), c(n, n) InputMatrix(a, "a") InputMatrix(b, "b") InputMatrix(c, "c") zva = zv(a, h1, h2, n) zvb = zv(b, h1, h2, n) zvc = zv(c, h1, h2, n) txtЖурнал.AppendText("количество удовлетворяющих элементов матрицы А = " & zva & vbCrLf) txtЖурнал.AppendText("количество удовлетворяющих элементов матрицы B = " & zvb & vbCrLf) txtЖурнал.AppendText("количество удовлетворяющих элементов матрицы C = " & zvc & vbCrLf) End Sub Private Function zv(ByRef x(,) As Single, ByVal h1 As Integer, ByVal h2 As Integer, ByVal n As Integer) Dim k, i, j As Integer For i = 1 To n For j = 1 To n If x(i, j) > h1 And x(i, j) <> h2 Then k = k + 1 End If Next Next zv = k Return zv End Function Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & "(" & i & "," & j & ") =?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class БИЛЕТ 18 Public Class Form1 ' В новом проекте два раза щелкни по пустой форме ' Появится окно кода ' Просто удали оттуда все и вставь этот код Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a() As Single, b() As Single Dim n As Integer Dim h1, h2 As Integer Dim ret1, ret2 As Integer n = InputBox("Vvedite N") h1 = InputBox("Vvedite H1") h2 = InputBox("Vvedite H2") ReDim a(n), b(n) 'pereopredelim massivi na N elementov InputVector(a, "a") ' vvodim InputVector(b, "b") ' dva massiva DoSomething(a, ret1, h1, h2) ' rabotaem s massivami DoSomething(b, ret2, h1, h2) ' i vozvrashayem If ret1 < ret2 Then MsgBox("B") If ret1 > ret2 Then MsgBox("A") If ret1 = ret2 Then MsgBox("Chislo iskomih odinakovo") End End Sub ' delaem chto-to s massivom Private Sub DoSomething(ByRef y() As Single, ByRef sum As Integer, ByVal m1 As Integer, ByVal m2 As Integer) sum = 0 For i = 1 To y.GetUpperBound(0) If y(i) > m1 And y(i) < m2 Then sum = sum + 1 Next End Sub ' procedura dlya vvoda massiva Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub End Class ДОП. ЗАДАЧА Подпрограммы для массива А находит сумму квадратов его значений и для массива В сумму кубов его значений. Sub Summ(ByRef y() As Single, ByRef pow As Single, ByRef ret As Single) For i = 1 To y.GetUpperBound(0) - 1 ret = ret + Math.Pow(y(i), pow) Next End Sub это сама подпрограмма вызов Summ(a,2) Summ(b,3) БИЛЕТ 19 Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnПуск.Click Dim i, j, n, m, k1, k2, l As Integer Dim a(,), b(,) As Single txtЖурнал.Clear() n = InputBox(" Введите размерность матрицы ") txtЖурнал.AppendText(" n = " & n & vbCrLf) ReDim a(n, n), b(n, n) InputMatrix(a, "a") InputMatrix(b, "b") m = InputBox(" Введите номер строки ") txtЖурнал.AppendText(" m = " & m & vbCrLf) Myau(a, n, m, k1) Myau(b, n, m, k2) If k1 = True And k2 = True Then txtЖурнал.AppendText("Упорядочен " & vbCrLf) ElseIf k1 = False Or k2 = False Then txtЖурнал.AppendText("2 строка матрицы А " & vbCrLf) i = 2 For j = 1 To n txtЖурнал.AppendText( a(i, j) & vbTab) Next txtЖурнал.AppendText(" " & vbCrLf) txtЖурнал.AppendText("1 строка матрицы B " & vbCrLf ) l = 1 For j = 1 To n txtЖурнал.AppendText(b(l, j) & vbTab) Next End If End Sub Private Function Myau(ByRef x(,) As Single, ByVal n As Integer, ByVal m As Integer, ByRef k As Integer) Dim i, j As Integer i = m For j = 1 To n - 1 If x(i, j) > x(i, j + 1) Then k = True Else : k = False End If Next End Function Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & "(" & i & "," & j & ") =?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class БИЛЕТ 22 Public Class Form1 ' В новом проекте два раза щелкни по пустой форме ' Появится окно кода ' Просто удали оттуда все и вставь этот код Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a(,) As Single, b(,) As Single Dim n, m As Integer Dim ret1, ret2 As Integer n = InputBox("Vvedite N") m = InputBox("Vvedite M") ReDim a(n, m), b(n, m) 'pereopredelim massivi na N elementov InputVector(a, "a") ' vvodim InputVector(b, "b") ' dva massiva ret1 = DoSomething(a) ' rabotaem s massivami ret2 = DoSomething(b) ' i vozvrashayem If ret1 > 0 And ret2 > 0 Then MsgBox("Pokazateli v norme") If ret1 <= 0 And ret2 > 0 Then MsgBox("Obratite vnimanie na A") If ret1 > 0 And ret2 <= 0 Then MsgBox("Obratite vnimanie na B") If ret1 <= 0 And ret2 <= 0 Then MsgBox("Obratite vnimanie na A i B") End Sub ' delaem chto-to s massivom Function DoSomething(ByRef y(,) As Single) as Single Dim i As Integer Dim pos, neg As Integer pos = 0 neg = 0 For i = 1 To y.GetUpperBound(0) For j = 1 To y.GetUpperBound(1) If y(i, j) > 0 Then pos = pos + 1 If y(i, j) <= 0 Then neg = neg + 1 Next Next DoSomething = pos - neg End Sub ' procedura dlya vvoda massiva Private Sub InputVector(ByRef x(,) As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(0) x(i, j) = InputBox(ArrayName & "(" & i & "," & j & ") = ?") Next Next End Sub End Class БИЛЕТ 24 Составьте функцию для определения инфекса минимального по модулю элемента одномерного массива. Используя эту функцию, для двух заданных одномерных массивов А и В, установите наибольшее значение среди их минимальных по модулю элементов. Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnПуск.Click 1: Dim m, zva, zvb, n As Integer Dim a(), b() As Single txtЖурнал.Clear() m = InputBox(" Введите размерность массива а = ?") txtЖурнал.AppendText(" а = " & m & vbCrLf) n = InputBox(" Введите размерность массива b = ?") txtЖурнал.AppendText(" b = " & n & vbCrLf) ReDim a(m), b(n) InputVector(a, "a") txtЖурнал.AppendText("Вектор a" & vbCrLf) OutputVector(a, txtЖурнал) InputVector(b, "b") 10: txtЖурнал.AppendText("Вектор b" & vbCrLf) OutputVector(b, txtЖурнал) zva = zv(a, m) zvb = zv(b, n) If a(zva) > b(zvb) Then txtЖурнал.AppendText("наибольшое значение среди минимальных элементов в матрицы А = " & a(zva) & vbCrLf) ElseIf a(zva) < b(zvb) Then txtЖурнал.AppendText("наибольшое значение среди минимальных элементов в матрицы B = " & b(zvb) & vbCrLf) ElseIf a(zva) = b(zvb) Then txtЖурнал.AppendText(" Минимальные элементы массива А и В равны = " & a(zva) & vbCrLf) End If End Sub Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Function zv(ByRef M() As Single, ByVal mm As Integer) As Integer Dim k, p As Integer k = M(1) p = 1 For i = 1 To mm If Abs(M(i)) < k Then k = Abs(M(i)) p = i End If Next zv = p Return zv End Function Private Sub InputVector(ByRef x() As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub Private Sub OutputVector(ByRef x() As Single, ByVal _ txtBx As TextBox) Dim i As Integer For i = 1 To x.GetUpperBound(0) txtBx.AppendText(" " & x(i)) Next txtBx.AppendText(vbCrLf) End Sub End Class БИЛЕТ 25 Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click Dim n, m, k1, k2, k3 As Integer Dim a(), b(), c() As Single txtЖурнал.Clear() n = InputBox(" Введите размерность векторов ") txtЖурнал.AppendText(" n = " & n & vbCrLf) ReDim a(n), b(n), c(n) InputVector(a, "a") InputVector(b, "b") InputVector(c, "c") m = InputBox(" Введите число кратности ") txtЖурнал.AppendText(" m = " & m & vbCrLf) Myau(a, k1, m, n) Myau(b, k2, m, n) Myau(c, k3, m, n) txtЖурнал.AppendText(" количество кратных векторов = " & (-1 * (k1 + k2 + k3)) & vbCrLf) End Sub Private Sub Myau(ByRef x() As Single, ByRef k As Boolean, ByRef m As Single, ByVal n As Integer) k = True For i = 1 To n If x(i) \ m <> x(i) / m Then k = False Next End Sub Private Sub InputVector(ByRef x() As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub Private Sub OutputVector(ByRef x() As Single, ByVal _ txtBx As TextBox) Dim i As Integer For i = 1 To x.GetUpperBound(0) txtBx.AppendText(" " & x(i)) Next txtBx.AppendText(vbCrLf) End Sub Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub End Class БИЛЕТ 26 Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click 1: Dim ma, mb As Integer Dim a(,), c(,) As Single, b(,) As Single Dim pogab, pogac, pogcb As Single 5: txtЖурнал.Clear() ma = InputBox("Задайте количество строк и столбцов матрицы а") txtЖурнал.AppendText("Количество строк и столбцов = " & ma & vbCrLf) ReDim a(ma, ma) ReDim b(ma, ma) ReDim c(ma, ma) InputMatrix(a, "a") txtЖурнал.AppendText("Матрица a" & vbCrLf) OutputMatrix(a, txtЖурнал) InputMatrix(b, "b") 20: txtЖурнал.AppendText("Матрица b" & vbCrLf) OutputMatrix(b, txtЖурнал) InputMatrix(c, "c") txtЖурнал.AppendText("Матрица c" & vbCrLf) OutputMatrix(c, txtЖурнал) pogab = pog(a, b, ma) pogac = pog(a, c, mb) pogcb = pog(C, b, ma) If pogab = pogcb = pogac Then txtЖурнал.AppendText(" матрицы эквивалентны") Else txtЖурнал.AppendText(" Объекты не эквивалентны ") End If End Sub Private Function pog(ByRef a(,) As Single, ByRef l(,) As Single, ByVal mm As Integer) As Integer Dim k As Single Dim i As Integer For j = 1 To mm For i = 1 To mm If a(i, j) = l(i, j) Then k = k + 1 End If Next Next pog = k Return pog End Function Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & _ "(" & i & "," & j _ & ") = ?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, _ ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class БИЛЕТ 27 Составьте подпрограмму, определяющую среднее арифметическое значение элементов(С.А.З.) одномерного массива. Если С.А.З. элементов массива А отличается от С.А.З. элементов массива В менее чем на заданную величину Е, то выведите сообщение «А и В равнозначны». В противном случае выведите С.А.З., полученное для каждого массива. Public Class Form1 ' В новом проекте два раза щелкни по пустой форме ' Появится окно кода ' Просто удали оттуда все и вставь этот код Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a() As Single, b() As Single Dim n As Integer Dim r As Integer 'mi ne mozhem nazvat' peremennuju E Dim ret1, ret2 As Boolean n = InputBox("Vvedite N") r = InputBox("Vvedite E") ReDim a(n), b(n) 'pereopredelim massivi na N elementov InputVector(a, "a") ' vvodim InputVector(b, "b") ' dva massiva DoSomething(a, ret1) ' rabotaem s massivami DoSomething(b, ret2) ' i vozvrashayem If Math.Abs(ret1 - ret2) > r Then MsgBox(ret1) : MsgBox(ret2) If Math.Abs(ret1 - ret2) <= r Then MsgBox("Massivi ravnoznachni") End End Sub Private Sub DoSomething(ByRef y() As Single, ByRef ind As Single) ' podprogramma dlya raboti s massivom ind = 0 Dim n = 0 For i = 1 To y.GetUpperBound(0) ind = ind + y(i) n = n + 1 Next ind = ind \ n End Sub ' podprogramma dlya vvoda massiva Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub End Class БИЛЕТ 28 Составьте функцию, проверяющую, что все элементы заданной строки матрицы имеют значения, больше заданной величины. Используя эту функцию, определите для заданных матриц А, В и С у скольких из них значение всех элементов первой строки больше заданной величины h. Public Class Form1 ' В новом проекте два раза щелкни по пустой форме ' Появится окно кода ' Просто удали оттуда все и вставь этот код Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a(,) As Single, b(,) As Single, c(,) As Single Dim n, m, k, L As Integer Dim ret1, ret2, ret3 As Integer n = InputBox("Vvedite chislo elementov N") m = InputBox("Vvedite chislo elementov M") k = InputBox("Vvedite znacnenie K") L = InputBox("Vvedite nomer stroki") ReDim a(n, m), b(n, m), c(n, m) 'pereopredelim massivi na N elementov InputVector(a, "a") ' vvodim InputVector(b, "b") ' dva massiva InputVector(c, "c") ret1 = DoSomething(a, k, L) ' rabotaem s massivami ret2 = DoSomething(b, k, L) ' i vozvrashayem ret3 = DoSomething(c, k, L) ' i vozvrashayem MsgBox(-1 * (ret1 + ret2 + ret3)) End End Sub Function DoSomething(ByRef x(,) As Single, ByRef r As Single, ByVal L As Integer) DoSomething = True For i = 1 To x.GetUpperBound(0) If x(i, L) > r Then DoSomething = False Next End Function ' procedura dlya vvoda massiva Private Sub InputVector(ByRef x(,) As Single, Optional ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & "(" & i & "," & j & ") = ?") Next Next End Sub End Class БИЛЕТ 29 Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click 1: Dim m, kola, kolb, n As Integer Dim a(), b() As Single txtЖурнал.Clear() m = InputBox(" Введите размерность вектора а = ?") n = InputBox(" Введите размерность вектора b = ?") 5: txtЖурнал.AppendText(" Pазмерность вектора а = " & m & vbCrLf) txtЖурнал.AppendText(" Размерность вектора b = " & n & vbCrLf) ReDim a(m), b(n) InputVector(a, "a") txtЖурнал.AppendText("Вектор a" & vbCrLf) OutputVector(a, txtЖурнал) InputVector(b, "b") txtЖурнал.AppendText("Вектор b" & vbCrLf) OutputVector(b, txtЖурнал) Kolzamen(a, m, kola) Kolzamen(b, n, kolb) If kola > kolb Then txtЖурнал.AppendText("В векторе А больше положительных элементов" & vbCrLf) Else If kola < kolb Then txtЖурнал.AppendText("В векторе B больше положительных элементов" & vbCrLf) Else txtЖурнал.AppendText("Одинаковое количество положительных элементов" & vbCrLf) End If End If txtЖурнал.AppendText("Измененный вектор a" & vbCrLf) OutputVector(a, txtЖурнал) txtЖурнал.AppendText("Измененный вектор b" & vbCrLf) OutputVector(b, txtЖурнал) txtЖурнал.AppendText("Количество замен в векторе а = " & kola & vbCrLf) txtЖурнал.AppendText("Kоличество замен в векторе b = " & kolb & vbCrLf) End Sub Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Sub Kolzamen(ByRef A() As Single, ByVal m As Integer, ByRef k As Integer) Dim i As Integer k = 0 For i = 1 To m If A(i) > 0 Then k = k + 1 A(i) = A(i) / i End If Next End Sub Private Sub InputVector(ByRef x() As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub Private Sub OutputVector(ByRef x() As Single, ByVal _ txtBx As TextBox) Dim i As Integer For i = 1 To x.GetUpperBound(0) txtBx.AppendText(" " & x(i)) Next txtBx.AppendText(vbCrLf) End Sub End Class БИЛЕТ 30 Сост. подпр.,проверяющую, что кол-во положит. элементов одномерного массива больше кол-ва его отриц. элементов. Если положит. элементов в каждом из двух зад. Массивах А и В больше чем отриц., выведите сообщение «Показатели в норме», иначе выведите сообщение «Обратите внимание» и выведите имена тех массивов, для которых не выполнено условие, что кол-во положит. Элементов больше кол-ва его отриц. Элементов. Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click 1: Dim m, kolap, kolao, kolbp, kolbo, n As Integer Dim a(), b() As Single txtЖурнал.Clear() m = InputBox(" Введите размерность вектора а = ?") n = InputBox(" Введите размерность вектора b = ?") 5: txtЖурнал.AppendText(" Pазмерность вектора а = " & m & vbCrLf) txtЖурнал.AppendText(" Размерность вектора b = " & n & vbCrLf) ReDim a(m), b(n) InputVector(a, "a") txtЖурнал.AppendText("Вектор a" & vbCrLf) OutputVector(a, txtЖурнал) InputVector(b, "b") txtЖурнал.AppendText("Вектор b" & vbCrLf) OutputVector(b, txtЖурнал) Kolzamen(a, m, kolap, kolao) Kolzamen(b, n, kolbp, kolbo) If kolap > kolao And kolbp > kolbo Then TxtЖурнал.AppendText("Показатель в норме" & vbCrLf) ElseIf kolap < kolao And kolbp > kolbo Then TxtЖурнал.AppendText("Обратите внимание массив а " & vbCrLf) ElseIf kolbp < kolbo And kolap > kolao Then TxtЖурнал.AppendText("Обратите внимание массив В " & vbCrLf) ElseIf kolap < kolao And kolbp < kolbo Then TxtЖурнал.AppendText("Обратите внимание массив а и В " & vbCrLf) End If End Sub Private Sub Label1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Label1.Click End End Sub Private Sub Kolzamen(ByRef A() As Single, ByVal m As Integer, ByRef k As Integer, ByRef p As Integer) Dim i As Integer p = 0 k = 0 For i = 1 To m If A(i) > 0 Then k = k + 1 ElseIf A(i) < 0 Then p = p + 1 End If Next End Sub Private Sub InputVector(ByRef x() As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub Private Sub OutputVector(ByRef x() As Single, ByVal _ txtBx As TextBox) Dim i As Integer For i = 1 To x.GetUpperBound(0) txtBx.AppendText(" " & x(i)) Next txtBx.AppendText(vbCrLf) End Sub End Class НЕИЗВЕСТНЫЙ Imports System.Math Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnПуск.Click 1: Dim ma, mb As Integer Dim a(,), c(,) As Single, b(,) As Single Dim pogab, pogac, pogcb As Single 5: txtЖурнал.Clear() ma = InputBox("Задайте количество строк и столбцов матрицы а") txtЖурнал.AppendText("Количество строк и столбцов = " & ma & vbCrLf) ReDim a(ma, ma) ReDim b(ma, ma) ReDim c(ma, ma) InputMatrix(a, "a") txtЖурнал.AppendText("Матрица a" & vbCrLf) OutputMatrix(a, txtЖурнал) InputMatrix(b, "b") 20: txtЖурнал.AppendText("Матрица b" & vbCrLf) OutputMatrix(b, txtЖурнал) InputMatrix(c, "c") txtЖурнал.AppendText("Матрица c" & vbCrLf) OutputMatrix(c, txtЖурнал) pogab = pog(a, b, ma) pogac = pog(a, c, mb) pogcb = pog(C, b, ma) If pogab = pogcb = pogac Then txtЖурнал.AppendText(" матрицы эквивалентны") Else txtЖурнал.AppendText(" Объекты не эквивалентны ") End If End Sub Private Function pog(ByRef a(,) As Single, ByRef l(,) As Single, ByVal mm As Integer) As Integer Dim k As Single Dim i As Integer For j = 1 To mm For i = 1 To mm If a(i, j) = l(i, j) Then k = k + 1 End If Next Next pog = k Return pog End Function Private Sub InputMatrix(ByRef x(,) As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) x(i, j) = InputBox(ArrayName & _ "(" & i & "," & j _ & ") = ?") Next Next End Sub Private Sub OutputMatrix(ByVal x(,) As Single, _ ByVal y As TextBox) Dim i, j As Integer For i = 1 To x.GetUpperBound(0) For j = 1 To x.GetUpperBound(1) y.AppendText(x(i, j) & vbTab) Next y.AppendText(vbCrLf) Next End Sub End Class Билет 12 1)) Инструкция множественного выбора Select Case. Еще одной инструкцией VB, предназначенной для программирования разветвлений, является Select Case (выбрать в случае), которая позволяет выполнить одну из нескольких групп операторов в зависимости от значения некоторого выражения. Инструкция Select Case имеет следующий синтаксис: Select Case Проверочное_выражение [Case Значение1 [Инструкции1]] [Case Значение2 [Инструкции2]] [Case Else [ИнструкцииЗ]] End Select Пример: Select Case V Case 1 MsgBox(\"Равно 1\") Case 2, 3 MsgBox(\"Равно 2 или 3\") Case 4 То 6 MsgBox(\"Больше или равно 4 и меньше или равно 6\") Case Is >= 9 MsgBox(\"Больше или равно 9\") Case Else MsgBox(\"Ни одно из предшествующих\") End Select В качестве значения для блока Case можно указывать не только одно значение (4), но и несколько, разделенных запятой (2, 3). Можно определять также области сравнения (4 То 6) или воспользоваться относительным сравнением (Is >= 9). Вместо непосредственного значения проверочного выражения можно использовать ключевое слово Is. Блок Case Else выполняется, если ни одно из предыдущих условий не является истинным. Если условию Select Case соответствует несколько блоков Case, то выполняется первый из них. 2)Public Class Form1 \' В новом проекте два раза щелкни по пустой форме \' Появится окно кода \' Просто удали оттуда все и вставь этот код Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim a() As Single, b() As Single Dim n, h As Integer Dim ret1, ret2 As Integer n = InputBox(\"Vvedite chislo elementov\") h = InputBox(\"Vvedite znacnenie H\") ReDim a(n), b(n) \'pereopredelim massivi na N elementov InputVector(a, \"a\") \' vvodim InputVector(b, \"b\") \' dva massiva DoSomething(a, ret1, h) \' rabotaem s massivami DoSomething(b, ret2, h) \' i vozvrashayem If ret1 > ret2 Then MsgBox(\"menshe v massive B\") If ret1 < ret2 Then MsgBox(\"menshe v massive A\") If ret1 = ret2 Then MsgBox(\"indeksi ravni\") End Sub \' delaem chto-to s massivom Private Sub DoSomething(ByRef y() As Single, ByRef ind As Single, ByRef r As Single) Dim i As Integer Dim max, razn As Integer max = 0 For i = 1 To y.GetUpperBound(0) razn = Math.Abs(r - y(i)) \' schitaem raznicu mezhdu H i y(i) po modulyu If razn > max Then \'esli razniza = novomu Maximumu to perepishem ee max = razn ind = i End If Next End Sub \' procedura dlya vvoda massiva Private Sub InputVector(ByRef x() As Single, Optional ByVal ArrayName As String = \"элемент\") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & \"(\" & i & \") = ?\") Next End Sub End Class Билет 9 1)Стандартные математические функции. Математические функции (углы выражаются в радианах): Функция Visual Basic .NET Описание Abs(x) Возвращает абсолютное значение заданного числа x Atan(x) Возвращает значение arctg x типа Double Cos(x) Возвращает значение cos x типа Double Exp(x) Возвращает значение типа Double, равное числу е(основание натуральных логарифмов) в заданной степени x Log(x) Возвращает значение типа Double, равное натуральному логарифму заданного числа x. Может возвращать и логарифм числа x по заданному основанию Round(x) Возвращает значение типа Double, равное ближайшему к заданному числу x целому значению Sign(x) Возвращает значение (1, 0, -1)типа Integer, указывающее знак числа Sin(x) Возвращает значение типа Double, равное sin x Sqrt(x) Возвращает значение типа Double, равное квадратному корню числа x Tan(x) Возвращает значение типа Double, равное tg x Int(x) Целая часть Fix(x) Целая часть Rnd Случайное число Чтобы воспользоваться этими функциями, не указывая их полное наименование, в проекте необходимо выполнить импорт пространства имен System.Math, добавив в начало исходного кода строку Imports System.Math. Обе функции Int и Fix отбрасывают дробную часть числа и возвращают значение типа, совпадающего с типом аргумента. Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix ближайшее отрицательное целое число, большее либо равное указанному. Например, функция Int преобразует -8.4 в -9, а функция Fix преобразует -8.4 в -8. Функция Rnd возвращает значение типа Single, содержащее случайное число, меньшее 1 и большее или равное нулю. Перед первым вызовом функции Rnd надо использовать инструкцию Randomize без аргумента для инициализации генератора случайных чисел. Для получения случайных целых чисел в заданном диапазоне используйте следующую формулу: К оглавлению CInt(Int((ВерхнееЗначение - НижнееЗначение _+ 1) * Rnd() + НижнееЗначение)) 2)Public Class Form1 Private Sub btnПуск_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnПуск.Click Dim an, bn As Integer Dim a(), b(), h As Single txtЖурнал.Clear() an = InputBox(\"Задайте размерность вектора A, an = \") txtЖурнал.AppendText(\"an = \" & an & vbCrLf) bn = InputBox(\"Задайте размерность вектора B, bn = \") txtЖурнал.AppendText(\"bn = \" & bn & vbCrLf) ReDim a(an), b(bn) InputVector(a, \"A\") txtЖурнал.AppendText(\"Вектор A: \" & vbCrLf) OutputVector(a, txtЖурнал) InputVector(b, \"B\") txtЖурнал.AppendText(\"Вектор B: \" & vbCrLf) OutputVector(b, txtЖурнал) h = InputBox(\"Введите H\") txtЖурнал.AppendText(\"H = \" & h & vbCrLf) If Проверка(a, h) = False Then txtЖурнал.AppendText(\"Вектор A: \" & vbCrLf) OutputVector(a, txtЖурнал) Else txtЖурнал.AppendText(\"Массив А упорядочен\" & vbCrLf) End If If Проверка(b, h) = False Then txtЖурнал.AppendText(\"Вектор B: \" & vbCrLf) OutputVector(b, txtЖурнал) Else txtЖурнал.AppendText(\"Массив В упорядочен\" & vbCrLf) End If End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End End Sub Private Function Проверка(ByVal x() As Single, ByVal h As Single) As Boolean Dim i, n As Integer Dim f As Boolean < |