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

  • таких замен. Используя эту подпрограмму, определите, в каком из двух заданных векторов А или В будет больше измененных элементов.

  • 4. Составьте подпрограмму, заменяющую все элементы вектора

  • таких замен. Используя эту подпрограмму, измените каждый из двух векторов Р и С и выведите тот вектор, в котором оказалось большее число замен. Если же эти

  • 5. Составьте функцию, принимающую значение True, если в двух

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


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

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

    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, kola, kolb As Integer
    TextBox1.Clear()
    ma = InputBox("Введите размер вектора А")
    ReDim A(ma)
    For i = 1 To ma
    A(i) = InputBox("A(" & i & ")=?")
    Next
    mb = InputBox("Введите размер вектора В")
    ReDim B(mb)
    For i = 1 To mb
    B(i) = InputBox("B(" & i & ")=?")
    Next

    k = 0
    Kolzamen(A, ma, k)
    kola = k
    Kolzamen(B, mb, k)
    kolb = k

    If kola > kolb Then
    TextBox1.AppendText("В векторе А больше положительных элементов")
    Else
    If kola < kolb Then
    TextBox1.AppendText("В векторе B больше положительных элементов")
    Else
    TextBox1.AppendText("Одинаковое количество положительных элементов")
    End If

    End If
    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
    End Class


    2. Составьте функцию, принимающую значение True, если все
    элементы вектора упорядочены по убыванию, и False – в противном случае.
    Применяя эту функцию к двум заданным векторам ТА и ТВ, выведите вектор,
    если его элементы не упорядочены в порядке убывания их значений. В противном
    случае выведите сообщение: «ТА упорядочен» или «ТВ упорядочен»


    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim TA() As Single, TB() As Single
    Dim ma, mb, i As Integer
    Dim fla, flb As Boolean

    TextBox1.Clear()
    ma = 0
    mb = 0

    ma = InputBox("Введите размер вектора TА")
    ReDim TA(ma)
    For i = 1 To ma
    TA(i) = InputBox("TA(" & i & ")=?")
    Next
    mb = InputBox("Введите размер вектора TВ")
    ReDim TB(mb)
    For i = 1 To mb
    TB(i) = InputBox("TB(" & i & ")=?")
    Next

    fla = Por(TA, ma)
    flb = Por(TB, mb)

    If fla Then
    TextBox1.AppendText("ТА упорядочен ")
    Else
    TextBox1.AppendText("TA: ")
    For i = 1 To ma
    TextBox1.AppendText(Str(TA(i)) + " ")
    Next
    End If
    If flb Then
    TextBox1.AppendText("ТВ упорядочен ")
    Else
    TextBox1.AppendText("TB: ")
    For i = 1 To mb
    TextBox1.AppendText(Str(TB(i)) + " ")
    Next
    End If

    End Sub
    Private Function Por(ByRef A() As Single, ByVal m As Integer) As Boolean
    Dim i As Integer
    Dim flag As Boolean

    flag = True
    For i = 2 To m
    If A(i) >= A(i - 1) Then flag = False
    Next
    Por = flag
    Return Por

    End Function

    End Class



    14

    3. Составьте функцию, принимающую значение True, если все
    элементы вектора имеют значения больше некоторой заданной величины, или
    значение False – в противном случае. Применяя эту функцию для каждого из
    двух заданных векторов СТ и DT, измените значение каждого элемента вектора на
    обратное, если окажется, что все элементы вектора имеют исходное значение
    больше H. В противном случае выведите сообщение: «Условие для CT не
    выполнено», или «Условие для DT не выполнено».



    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim CT() As Single, DT() As Single
    Dim i, mc, md As Integer
    Dim H As Single
    Dim flc, fld As Boolean

    TextBox1.Clear()
    mc = InputBox("Введите размер вектора CT")
    ReDim CT(mc)

    For i = 1 To mc
    CT(i) = InputBox("СТ(" & i & ")=?")
    Next
    md = InputBox("Введите размер вектора DT")
    ReDim DT(md)
    For i = 1 To md
    DT(i) = InputBox("DT(" & i & ")=?")
    Next
    H = InputBox("Введите величину Н")
    flc = obr(CT, mc, H)
    fld = obr(DT, md, H)

    If flc Then
    TextBox1.AppendText("CT: ")
    For i = 1 To mc
    CT(i) = -CT(i)
    TextBox1.AppendText(Str(CT(i)) + " ")
    Next
    Else
    TextBox1.AppendText("Условие для CT не выполнено. ")
    End If

    If fld Then
    TextBox1.AppendText("DT: ")
    For i = 1 To mc
    DT(i) = -DT(i)
    TextBox1.AppendText(Str(DT(i)) + " ")
    Next
    Else
    TextBox1.AppendText("Условие для DT не выполнено. ")
    End If

    End Sub
    Private Function obr(ByRef A() As Single, ByVal m As Integer, ByVal hh As Single) As Boolean
    Dim i As Integer
    Dim flag As Boolean

    flag = True
    For i = 1 To m
    If A(i) < hh Then
    flag = False
    End If
    Next
    obr = flag
    Return obr
    End Function
    End Class
    4. Составьте подпрограмму, заменяющую все элементы вектора,
    меньшие заданной величины на значение этой величины и считающую число
    таких замен. Используя эту подпрограмму, измените каждый из двух векторов Р и
    С и выведите тот вектор, в котором оказалось большее число замен. Если же эти
    числа замен будут равны, выведите число замен



    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim P() As Single, C() As Single
    Dim i, mp, mc, kp, kc As Integer
    Dim H As Single

    TextBox1.Clear()
    mp = InputBox("Введите размер вектора P")
    ReDim P(mp)
    For i = 1 To mp
    P(i) = InputBox("P(" & i & ")=?")
    Next
    mc = InputBox("Введите размер вектора C")
    ReDim C(mc)
    For i = 1 To mc
    C(i) = InputBox("C(" & i & ")=?")
    Next
    H = InputBox("Введите значение величины")
    kp = 0
    zamena(P, mp, H, kp)
    kc = 0
    zamena(C, mc, H, kc)
    If kp > kc Then
    TextBox1.AppendText("P: ")
    For i = 1 To mp
    TextBox1.AppendText(Str(P(i)) + " ")
    Next
    Else
    If kp < kc Then
    TextBox1.AppendText("C: ")
    For i = 1 To mc
    TextBox1.AppendText(Str(C(i)) + " ")
    Next
    Else
    TextBox1.AppendText("Число замен = " + Str(kp))
    End If
    End If

    End Sub
    Private Sub zamena(ByRef A() As Single, ByVal m As Integer, ByVal hh As Single, ByRef kolzam As Integer)
    Dim i As Integer
    kolzam = 0

    For i = 1 To m
    If A(i) < hh Then
    kolzam = kolzam + 1
    A(i) = hh
    End If

    Next
    End Sub
    End Class

    5. Составьте функцию, принимающую значение True, если в двух
    векторах нет равных элементов, и значение False – в противном случае.
    Используя эту функцию для трех векторов R, S и T, в зависимости от результатов
    проверок выведите сообщение: «Равных элементов нет» или «Равные элементы
    есть».
    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim R() As Single, S() As Single, T() As Single
    Dim mr, ms, mt, i As Integer
    Dim frs, fst, frt As Boolean

    TextBox1.Clear()
    mr = InputBox("Введите размер вектора R")
    ReDim R(mr)
    For i = 1 To mr
    R(i) = InputBox("R(" & i & ")=?")
    Next
    ms = InputBox("Введите размер вектора S")
    ReDim S(ms)
    For i = 1 To ms
    S(i) = InputBox("S(" & i & ")=?")
    Next
    mt = InputBox("Введите размер вектора T")
    ReDim T(mt)
    For i = 1 To mt
    T(i) = InputBox("T(" & i & ")=?")
    Next
    frs = rav(R, mr, S, ms)
    fst = rav(S, ms, T, mt)
    frt = rav(R, mr, T, mt)
    If (frs And fst And frt) Then
    TextBox1.AppendText("Равных элементов нет")
    Else
    TextBox1.AppendText("Равные элементы есть")

    End If
    End Sub
    Private Function rav(ByRef A() As Single, ByVal ma As Integer, ByRef B() As Single, ByVal mb As Integer) As Boolean
    Dim i, j As Integer

    rav = True
    For i = 1 To ma
    For j = 1 To mb
    If A(i) = B(j) Then
    rav = False
    End If
    Next
    Next
    Return rav
    End Function
    End Class


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

    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, kola, kolb As Integer
    Dim flag As Boolean

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

    flag = bol(A, ma, B, mb, kola, kolb)
    If flag Then
    TextBox1.AppendText("В векторе А больше отриц. элем")
    For i = 1 To ma
    A(i) = -A(i)
    Next
    Else
    If kola < kolb Then
    TextBox1.AppendText("В векторе B больше отриц. элем.")
    For i = 1 To mb
    B(i) = -B(i)
    Next
    Else
    TextBox1.AppendText("Одинаковое количество отриц. элем.")

    End If

    End If

    End Sub
    Private Function bol(ByRef M() As Single, ByVal mm As Integer, ByRef P() As Single, ByVal pp As Integer, ByRef km As Integer, ByRef kp As Integer)
    Dim i As Integer

    km = 0
    For i = 1 To mm
    If M(i) < 0 Then
    km = km + 1
    End If
    Next
    kp = 0
    For i = 1 To pp
    If P(i) < 0 Then
    kp = kp + 1
    End If
    Next
    If km > kp Then
    bol = True
    Else
    bol = False
    End If
    Return bol
    End Function
    End Class


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


    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, inda, indb As Integer
    Dim K As Single

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

    inda = Ind(A, ma, K)
    indb = Ind(B, mb, K)
    If (inda <> 0 And indb <> 0) Then
    If inda < indb Then
    TextBox1.AppendText("В векторе A нужный элемент ближе к началу")
    Else
    If inda > indb Then
    TextBox1.AppendText("В векторе B нужный элемент ближе к началу")
    Else
    TextBox1.AppendText("Позиция одинакова")
    End If
    End If
    Else
    TextBox1.AppendText("Равный К элемент не обнаружен")
    End If
    End Sub
    Private Function Ind(ByRef M() As Single, ByVal mm As Integer, ByVal KK As Single) 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) = KK Then
    ii = j
    fl = False
    End If
    j = j + 1
    Loop
    Ind = ii
    Return Ind
    End Function
    End Class

      1   2   3   4


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