1. Составьте подпрограмму, изменяющую исходный вектор путем деления его положительных элементов на свои индексы и считающую число таких замен.
Скачать 48.1 Kb.
|
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim A(,) As Single, B(,) As Single Dim i, j, ma, na, mb, nb As Integer Dim CA() As Single, CB() As Single Dim sca, scb As Integer TextBox1.Clear() ma = InputBox("Введите количество строк в матрице A") na = InputBox("Введите количество столбцов в матрице A") ReDim A(ma, na) For i = 1 To ma For j = 1 To na A(i, j) = InputBox("A(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите количество строк в матрице B") nb = InputBox("Введите количество столбцов в матрице B") ReDim B(mb, nb) For i = 1 To mb For j = 1 To nb B(i, j) = InputBox("B(" & i & "," & j & ")=?") Next Next ReDim CA(na) ReDim CB(nb) sumel(A, ma, na, CA) sumel(B, mb, nb, CB) sca = polsum(CA, na) scb = polsum(CB, nb) TextBox1.AppendText("Общее кол-во положит. сумм в А= " + Str(sca) + " Общее кол-во положит. сумм в В= " + Str(scb)) End Sub Private Sub sumel(ByRef M(,) As Single, ByVal mm As Integer, ByVal nn As Integer, ByRef CC() As Single) Dim k, l As Integer Dim s As Single For l = 1 To nn s = 0 For k = 1 To mm s = s + M(k, l) Next CC(l) = s Next End Sub Private Function polsum(ByRef CC() As Single, ByVal nn As Integer) Dim k As Integer polsum = 0 For k = 1 To nn If CC(k) > 0 Then polsum = polsum + 1 End If Next Return polsum End Function End Class 29. Составьте подпрограмму, формирующую вектор из произведений элементов в столбцах заданной матрицы. Используя эту подпрограмму для двух матриц А и В, получите количество отрицательных произведений элементов в столбцах каждой из заданных матриц. Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim A(,) As Single, B(,) As Single Dim i, j, ma, na, mb, nb As Integer Dim CA() As Single, CB() As Single Dim sca, scb As Integer TextBox1.Clear() ma = InputBox("Введите количество строк в матрице A") na = InputBox("Введите количество столбцов в матрице A") ReDim A(ma, na) For i = 1 To ma For j = 1 To na A(i, j) = InputBox("A(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите количество строк в матрице B") nb = InputBox("Введите количество столбцов в матрице B") ReDim B(mb, nb) For i = 1 To mb For j = 1 To nb B(i, j) = InputBox("B(" & i & "," & j & ")=?") Next Next ReDim CA(na) ReDim CB(nb) sumel(A, ma, na, CA) sumel(B, mb, nb, CB) sca = polsum(CA, na) scb = polsum(CB, nb) TextBox1.AppendText("Kол-во отриц. произв. в столбцах А= " + Str(sca) + " Кол-во отриц. произв. в В= " + Str(scb)) End Sub Private Sub sumel(ByRef M(,) As Single, ByVal mm As Integer, ByVal nn As Integer, ByRef CC() As Single) Dim k, l As Integer Dim s As Single For l = 1 To nn s = 1 For k = 1 To mm s = s * M(k, l) Next CC(l) = s Next End Sub Private Function polsum(ByRef CC() As Single, ByVal nn As Integer) Dim k As Integer polsum = 0 For k = 1 To nn If CC(k) < 0 Then polsum = polsum + 1 End If Next Return polsum End Function End Class 30. Составьте функцию для определения среднего арифметического значения элементов матрицы. Используя эту функцию, рассчитайте средний балл в сессию для каждой из двух групп студентов, сдававших k экзаменов. Если окажется, что средний балл группы меньше 4, то подсчитайте для этой группы количество неудовлетворительных оценок. Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim A(,) As Integer, B(,) As Integer Dim i, j, ma, mb, k As Integer Dim sca, scb As Single Dim neuda, neudb As Integer TextBox1.Clear() k = InputBox("Введите количество сданных экзаменов") ma = InputBox("Введите количество студентов в группе 1") ReDim A(ma, K) For i = 1 To ma For j = 1 To k A(i, j) = InputBox(i & " -й студент в группе 1 за " & j & " -й экзамен получил оценку=?") Next Next mb = InputBox("Введите количество студентов в группе 2") ReDim B(mb, k) For i = 1 To mb For j = 1 To k B(i, j) = InputBox(i & " -й студент в группе 2 за " & j & " -й экзамен получил оценку=?") Next Next sca = usp(A, ma, k) TextBox1.AppendText("Успеваемость группы 1 = " & sca) If sca < 4 Then neuda = kolneud(A, ma, k) TextBox1.AppendText(" Количество неудов в группе 1= " & neuda) End If scb = usp(B, mb, k) TextBox1.AppendText(" Успеваемость группы 2 = " & scb) If scb < 4 Then neudb = kolneud(B, mb, k) TextBox1.AppendText(" Количество неудов в группе 2 = " & neudb) End If End Sub Private Function usp(ByRef M(,) As Integer, ByVal mm As Integer, ByVal nn As Integer) As Single Dim k, l As Integer usp = 0 For k = 1 To mm For l = 1 To nn usp = usp + M(k, l) Next Next usp = usp / (mm * nn) Return usp End Function Private Function kolneud(ByRef M(,) As Integer, ByVal mm As Integer, ByVal nn As Integer) As Integer Dim k, l As Integer kolneud = 0 For k = 1 To mm For l = 1 To nn If M(k, l) <= 2 Then kolneud = kolneud + 1 End If Next Next Return kolneud End Function End Class |