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

  • 9.

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


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

    8. Составьте функцию, определяющую значение индекса элемента
    вектора, значение которого отрицательно и расположенного ближе к началу
    массива, если он не единственный. Используя эту функцию, рассчитайте среднее
    арифметическое значение элементов того из двух заданных векторов С и Т, в
    котором отрицательный элемент расположен ближе к началу вектора. В случае
    равенства индексов таких элементов рассчитайте среднее арифметическое для
    каждого из этих двух векторов. Если же хотя бы у одного из двух заданных
    векторов нет отрицательных элементов, то выведите сообщение: «Нет
    отрицательных элементов».


    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim C() As Single, T() As Single
    Dim i, ma, mb, inda, indb As Integer
    Dim sr, sr1 As Single

    TextBox1.Clear()
    ma = InputBox("Введите размер вектора С")
    ReDim C(ma)
    For i = 1 To ma
    C(i) = InputBox("С(" & i & ")=?")
    Next
    mb = InputBox("Введите размер вектора Т")
    ReDim T(mb)
    For i = 1 To mb
    T(i) = InputBox("T(" & i & ")=?")
    Next

    inda = Ind(C, ma)
    indb = Ind(T, mb)
    sr = 0
    sr1 = 0
    If (inda <> 0 And indb <> 0) Then
    If inda < indb Then
    For i = 1 To ma
    sr = sr + C(i)
    Next
    sr = sr / ma
    TextBox1.AppendText("В векторе C нужный элемент ближе к началу. Среднее арифм. = " + Str(sr))
    Else
    If inda > indb Then
    For i = 1 To mb
    sr = sr + T(i)
    Next
    sr = sr / mb
    TextBox1.AppendText("В векторе T нужный элемент ближе к началу. Среднее арифм. = " + Str(sr))
    Else
    For i = 1 To ma
    sr = sr + C(i)
    Next
    sr = sr / ma
    For i = 1 To mb
    sr1 = sr1 + T(i)
    Next
    sr1 = sr1 / mb
    TextBox1.AppendText("Позиция одинакова. Среднее арифм. С = " + Str(sr) + " Среднее арифм. T = " + Str(sr1))
    End If
    End If
    Else
    TextBox1.AppendText("Нет отрицательных элементов")
    End If

    End Sub
    Private Function Ind(ByRef M() As Single, ByVal mm As Integer) As Integer
    Dim j, ii As Integer
    Dim fl As Boolean

    ii = 0
    j = 1
    fl = True
    Do While fl And j <= mm
    If M(j) < 0 Then
    ii = j
    fl = False
    End If
    j = j + 1
    Loop
    Ind = ii
    Return Ind
    End Function

    End Class
    9. Составьте функцию для определения количества нулевых элементов в
    векторе. Используя эту функцию, установите, в каком из этих двух заданных
    векторов IC и IE количество нулевых элементов меньше, и выведите сумму
    элементов этого массива. В случае равенства количества нулевых элементов,
    выведите лишь это значение

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim IC() As Single, IE() As Single
    Dim i, ma, mb, inda, indb As Integer
    Dim sr As Single

    TextBox1.Clear()
    ma = InputBox("Введите размер вектора IC")
    ReDim IC(ma)
    For i = 1 To ma
    IC(i) = InputBox("IC(" & i & ")=?")
    Next
    mb = InputBox("Введите размер вектора IE")
    ReDim IE(mb)
    For i = 1 To mb
    IE(i) = InputBox("IE(" & i & ")=?")
    Next

    inda = Ind(IC, ma)
    indb = Ind(IE, mb)
    sr = 0
    If inda < indb Then
    For i = 1 To ma
    sr = sr + IC(i)
    Next
    TextBox1.AppendText("В векторе IC количество нулевых элементов меньше. Сумма элем. = " + Str(sr))

    Else
    If inda > indb Then
    For i = 1 To mb
    sr = sr + IE(i)
    Next

    TextBox1.AppendText("В векторе IE количество нулевых элементов меньше. Сумма элем. = " + Str(sr))
    Else
    TextBox1.AppendText("Количество нулевых элементов = " + Str(inda))

    End If
    End If
    End Sub
    Private Function Ind(ByRef M() As Single, ByVal mm As Integer) As Integer
    Dim j, ii As Integer

    ii = 0
    For j = 1 To mm
    If M(j) = 0 Then
    ii = ii + 1
    End If
    Next
    Ind = ii
    Return Ind
    End Function

    End Class


    11. Составьте функцию, принимающую значение True, если количество
    положительных элементов исходного вектора больше количества его
    отрицательных элементов, и значение False – в противном случае. Для каждого
    из двух заданных векторов А и В получите сумму положительных элементов, если
    положительных элементов в векторе больше, чем отрицательных, иначе –
    определить сумму отрицательных элементов.

    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, ma, mb As Integer
    Dim sr As Single
    Dim ina, inb As Boolean

    TextBox1.Clear()
    ma = InputBox("Введите размер вектора A")
    ReDim A(ma)
    For i = 1 To ma
    A(i) = InputBox("A(" & i & ")=?")
    Next
    mb = InputBox("Введите размер вектора B")
    ReDim B(mb)
    For i = 1 To mb
    B(i) = InputBox("B(" & i & ")=?")
    Next

    ina = Kol(A, ma)
    inb = Kol(B, mb)

    If ina Then
    sr = 0
    For i = 1 To ma
    If A(i) > 0 Then
    sr = sr + A(i)
    End If
    Next
    TextBox1.AppendText("Сумма положительных элементов в А = " + Str(sr))
    Else
    sr = 0
    For i = 1 To ma
    If A(i) < 0 Then
    sr = sr + A(i)
    End If
    Next
    TextBox1.AppendText("Сумма отрицательных элементов в А = " + Str(sr))
    End If

    If inb Then
    sr = 0
    For i = 1 To mb
    If B(i) > 0 Then
    sr = sr + B(i)
    End If
    Next
    TextBox1.AppendText(" Сумма положительных элементов в B = " + Str(sr))
    Else
    sr = 0
    For i = 1 To ma
    If B(i) < 0 Then
    sr = sr + B(i)
    End If
    Next
    TextBox1.AppendText(" Сумма отрицательных элементов в B = " + Str(sr))
    End If

    End Sub
    Private Function Kol(ByRef M() As Single, ByVal mm As Integer) As Boolean
    Dim j, pol, otr As Integer

    pol = 0
    otr = 0
    For j = 1 To mm
    If M(j) > 0 Then
    pol = pol + 1
    Else
    If M(j) < 0 Then
    otr = otr + 1
    End If
    End If
    Next
    Kol = False
    If pol > otr Then
    Kol = True
    End If
    Return Kol
    End Function

    End Class

    12. Составьте функцию, принимающую значение True, если количество
    отрицательных элементов вектора больше количества его нулевых элементов, и
    значение False – в противном случае. Применяя эту функцию, выполните
    следующие вычисления для каждого из двух заданных векторов А и В. Если
    отрицательных элементов массиве больше, чем нулевых, вычислите произведение
    отрицательных элементов, иначе – определите сумму индексов нулевых
    элементов.


    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, ma, mb, k As Integer
    Dim sr As Single
    Dim ina, inb As Boolean

    TextBox1.Clear()
    ma = InputBox("Введите размер вектора A")
    ReDim A(ma)
    For i = 1 To ma
    A(i) = InputBox("A(" & i & ")=?")
    Next
    mb = InputBox("Введите размер вектора B")
    ReDim B(mb)
    For i = 1 To mb
    B(i) = InputBox("B(" & i & ")=?")
    Next

    ina = Kol(A, ma)
    inb = Kol(B, mb)

    If ina Then
    sr = 1
    For i = 1 To ma
    If A(i) < 0 Then
    sr = sr * A(i)
    End If
    Next
    TextBox1.AppendText("Произведение отрицательных элементов в А = " + Str(sr))
    Else
    k = 0
    For i = 1 To ma
    If A(i) = 0 Then
    k = k + i
    End If
    Next
    TextBox1.AppendText("Сумма индексов нулевых элементов в А = " + Str(k))
    End If

    If inb Then
    sr = 1
    For i = 1 To mb
    If B(i) < 0 Then
    sr = sr * B(i)
    End If
    Next
    TextBox1.AppendText(" Произведение отрицательных элементов в B = " + Str(sr))
    Else
    k = 0
    For i = 1 To mb
    If B(i) = 0 Then
    k = k + i
    End If
    Next
    TextBox1.AppendText(" Сумма индексов нулевых элементов в B = " + Str(k))
    End If
    End Sub

    Private Function Kol(ByRef M() As Single, ByVal mm As Integer) As Boolean
    Dim j, nol, otr As Integer

    nol = 0
    otr = 0
    For j = 1 To mm
    If M(j) = 0 Then
    nol = nol + 1
    Else
    If M(j) < 0 Then
    otr = otr + 1
    End If
    End If
    Next
    Kol = False
    If otr > nol Then
    Kol = True
    End If
    Return Kol
    End Function

    End Class


    13. Составьте подпрограмму, определяющую среднее арифметическое
    значение тех элементов заданного одномерного массива, квадрат значений
    которых больше некоторой заданной величины. Если среднее арифметическое
    значение элементов вектора А, квадрат которых больше Н, меньше среднего
    арифметического значения аналогичных элементов вектора В, то выведите
    сообщение: «Среднее А меньше нормы». В противном случае выведите
    сообщение: «Среднее А в норме». Если же хотя бы в одном из векторов А или В не
    окажется элемента, значение которого больше Н, то выведите сообщение: «Нет
    запаса».

    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, ma, mb As Integer
    Dim H, sr As Single
    Dim fla As Boolean

    TextBox1.Clear()
    ma = InputBox("Введите размер вектора A")
    ReDim A(ma)
    For i = 1 To ma
    A(i) = InputBox("A(" & i & ")=?")
    Next
    mb = InputBox("Введите размер вектора B")
    ReDim B(mb)
    For i = 1 To mb
    B(i) = InputBox("B(" & i & ")=?")
    Next
    H = InputBox("Введите заданную величину")

    Kol(A, ma, H, sr, fla)
    If fla Then
    TextBox1.AppendText("Элементы А: ")
    For i = 1 To ma
    If A(i) > sr Then
    TextBox1.AppendText(Str(A(i)) + " , ")
    End If
    Next
    Else
    TextBox1.AppendText("В А среднего не существует!")
    End If

    Kol(B, mb, H, sr, fla)
    If fla Then
    TextBox1.AppendText(" Элементы B: ")
    For i = 1 To mb
    If B(i) > sr Then
    TextBox1.AppendText(Str(sr) + " ")
    End If
    Next
    Else
    TextBox1.AppendText(" В B среднего не существует!")
    End If


    End Sub

    Private Sub Kol(ByRef M() As Single, ByVal mm As Integer, ByVal HH As Single, ByRef ss As Single, ByRef fl As Boolean)
    Dim j, kk As Integer
    Dim sr As Single

    sr = 0
    kk = 0
    fl = True

    For j = 1 To mm
    If Math.Abs(M(j)) < HH Then
    sr = sr + M(j)
    kk = kk + 1
    End If
    Next
    If kk <> 0 Then
    sr = sr / kk
    Else
    fl = False
    End If

    ss = sr

    End Sub

    End Class

    1   2   3   4


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