Главная страница
Навигация по странице:

  • 28.

  • 29.

  • 1. Составьте подпрограмму, изменяющую исходный вектор путем деления его положительных элементов на свои индексы и считающую число таких замен.


    Скачать 48.1 Kb.
    Название1. Составьте подпрограмму, изменяющую исходный вектор путем деления его положительных элементов на свои индексы и считающую число таких замен.
    АнкорPROGRAMMY_NA_EKZAmen.docx
    Дата05.02.2017
    Размер48.1 Kb.
    Формат файлаdocx
    Имя файлаPROGRAMMY_NA_EKZAmen.docx
    ТипДокументы
    #2310
    страница4 из 4
    1   2   3   4

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim X() As Single, T() As Single
    Dim ma, mb, i As Integer
    Dim ina, inb, B, sa, sb As Single

    TextBox1.Clear()
    ma = InputBox("Введите количество элементов в векторе X")
    ReDim X(ma)
    For i = 1 To ma
    X(i) = InputBox("X(" & i & ")=?")
    Next

    mb = InputBox("Введите количество элементов в векторе T")
    ReDim T(mb)
    For i = 1 To mb
    T(i) = InputBox("T(" & i & ")=?")
    Next
    B = InputBox("Введите B")

    ina = Minmod(X, ma)
    inb = Minmod(T, mb)
    sa = 0
    sb = 0
    If Math.Abs(ina - inb) < B Then
    For i = 1 To ma
    If X(i) > 0 Then
    sa = sa + X(i)
    End If
    Next
    For i = 1 To mb
    If T(i) > 0 Then
    sb = sb + T(i)
    End If
    Next
    TextBox1.AppendText("Сумма положит. элем. в X= " + Str(sa) + " Cумма положит. элем. в T=" + Str(sb))
    Else

    TextBox1.AppendText("Минимальный по модулю элем. в X= " + Str(ina) + " Минимальный по модулю элем. в T= " + Str(inb))
    End If

    End Sub
    Private Function Minmod(ByRef M() As Single, ByVal mm As Integer) As Single
    Dim k As Integer


    Minmod = Math.Abs(M(1))
    For k = 2 To mm
    If Math.Abs(M(k)) < Minmod Then
    Minmod = Math.Abs(M(k))
    End If
    Next
    Return Minmod
    End Function

    End Class
    27. Составьте процедуру для определения максимального по модулю
    элемента вектора. Если максимальные по модулю элементы двух заданных
    векторов MT и MP имеют равные значения, вычислите среднее арифметическое
    значение отрицательных элементов для каждого вектора. В противном случае
    выведите значения найденных максимальных элементов.


    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim MT() As Single, MP() As Single
    Dim ma, mb, i As Integer
    Dim ina, inb, sa, sb As Single

    TextBox1.Clear()
    ma = InputBox("Введите количество элементов в векторе MT")
    ReDim MT(ma)
    For i = 1 To ma
    MT(i) = InputBox("MT(" & i & ")=?")
    Next

    mb = InputBox("Введите количество элементов в векторе MP")
    ReDim MP(mb)
    For i = 1 To mb
    MP(i) = InputBox("MP(" & i & ")=?")
    Next

    Maxmod(MT, ma, ina)
    Maxmod(MP, mb, inb)

    If ina = inb Then
    sa = srarotr(MT, ma)
    sb = srarotr(MP, mb)
    TextBox1.AppendText("Среднее арифм. отриц. элем. в МТ= " + Str(sa) + " Среднее арифм. отриц. элем. в МР=" + Str(sb))
    Else
    TextBox1.AppendText("Максимальный по модулю элем. в МТ= " + Str(ina) + " Максимальный по модулю элем. в МР= " + Str(inb))
    End If

    End Sub
    Private Sub Maxmod(ByRef M() As Single, ByVal mm As Integer, ByRef s As Single)
    Dim k As Integer

    s = Math.Abs(M(1))

    For k = 2 To mm
    If Math.Abs(M(k)) > s Then
    s = Math.Abs(M(k))
    End If
    Next
    End Sub
    Private Function srarotr(ByRef M() As Single, ByVal mm As Integer) As Single
    Dim k, l As Integer

    l = 0
    srarotr = 0
    For k = 1 To mm
    If M(k) < 0 Then
    srarotr = srarotr + M(k)
    l = l + 1
    End If
    Next
    srarotr = srarotr / l
    Return srarotr
    End Function

    End Class


    28. Составьте подпрограмму, формирующую вектор из сумм элементов в
    столбцах заданной матрицы. Используя эту подпрограмму для двух матриц А и В,
    подсчитайте общее количество положительных сумм элементов в столбцах
    заданных матриц.





    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
    1   2   3   4


    написать администратору сайта