Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

PROGRAMMY_NA_EKZAmen

.docx
Скачиваний:
354
Добавлен:
31.03.2015
Размер:
49.25 Кб
Скачать

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

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

15. Составьте подпрограмму, заменяющую все отрицательные элементы исходной матрицы их модулями и подсчитывающую число таких замен. Примените эту подпрограмму для заданных матриц Т1 и Т2, выведите общее число выполненных замен, причем в случае совпадения числа замен с общим числом элементов в матрице, предусмотрите вывод соответствующего поясняющего текста.

Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim T1(,) As Single, T2(,) As Single Dim i, j, ma, na, mb, nb, zama, zamb As Integer TextBox1.Clear() ma = InputBox("Введите количество строк в матрице Т1") na = InputBox("Введите количество столбцов в матрице Т1") ReDim T1(ma, na) For i = 1 To ma For j = 1 To na T1(i, j) = InputBox("T1(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите количество строк в матрице Т2") nb = InputBox("Введите количество столбцов в матрице Т2") ReDim T2(mb, nb) For i = 1 To mb For j = 1 To nb T2(i, j) = InputBox("T2(" & i & "," & j & ")=?") Next Next Zamena(T1, ma, na, zama) Zamena(T2, mb, nb, zamb) End Sub Private Sub Zamena(ByRef M(,) As Single, ByVal mm As Integer, ByVal nn As Integer, ByRef kolzam As Integer) Dim k, l, kol As Integer kol = 0 For k = 1 To mm For l = 1 To nn If M(k, l) < 0 Then M(k, l) = Math.Abs(M(k, l)) kol = kol + 1 End If Next Next kolzam = kol End Sub End Class

16. Составьте подпрограмму для замены всех отрицательных элементов вектора их модулями и подсчета числа таких замен. Примените эту подпрограмму к каждому из двух заданных векторов А и В. Если окажется, что число замен в векторе А больше 5, выведите этот измененный вектор, иначе – выведите вектор В.

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, zama, zamb 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 Zamena(A, ma, zama) Zamena(B, mb, zamb) If zama > 5 Then TextBox1.AppendText(" Число замен в А больше 5. Вектор А: ") For i = 1 To ma TextBox1.AppendText(Str(A(i)) + " ") Next Else TextBox1.AppendText(" Вектор В: ") For i = 1 To mb TextBox1.AppendText(Str(B(i)) + " ") Next End If End Sub Private Sub Zamena(ByRef M() As Single, ByVal mm As Integer, ByRef kolzam As Integer) Dim k, kol As Integer kol = 0 For k = 1 To mm If M(k) < 0 Then M(k) = Math.Abs(M(k)) kol = kol + 1 End If Next kolzam = kol End Sub End Class

17. Составьте функцию, принимающую значение 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, j, ma, mb As Integer Dim fla, flb As Boolean Dim s As Single TextBox1.Clear() ma = InputBox("Введите размерность матрицы А") ReDim A(ma, ma) For i = 1 To ma For j = 1 To ma A(i, j) = InputBox("A(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите размерность матрицы В") ReDim B(mb, mb) For i = 1 To mb For j = 1 To mb B(i, j) = InputBox("B(" & i & "," & j & ")=?") Next Next fla = Diag(A, ma) flb = Diag(B, mb) If fla Then For i = 1 To ma s = A(i, i) For j = 1 To ma A(i, j) = A(i, j) + s Next Next TextBox1.AppendText("Для А условие выполнено. ") Else TextBox1.AppendText("Для А условие нарушено. ") End If If flb Then For i = 1 To mb s = B(i, i) For j = 1 To mb B(i, j) = B(i, j) + s Next Next TextBox1.AppendText("Для В условие выполнено. ") Else TextBox1.AppendText("Для B условие нарушено. ") End If End Sub Private Function Diag(ByRef M(,) As Single, ByVal mm As Integer) As Boolean Dim k As Integer Diag = True For k = 1 To mm - 1 If M(k, k) >= M(k + 1, k + 1) Then Diag = False End If Next Return Diag End Function End Class

18. Составьте функцию, принимающую значение 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, j, ma, mb As Integer Dim fla, flb As Boolean Dim s As Single TextBox1.Clear() ma = InputBox("Введите размерность матрицы А") ReDim A(ma, ma) For i = 1 To ma For j = 1 To ma A(i, j) = InputBox("A(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите размерность матрицы В") ReDim B(mb, mb) For i = 1 To mb For j = 1 To mb B(i, j) = InputBox("B(" & i & "," & j & ")=?") Next Next fla = Diag(A, ma) flb = Diag(B, mb) If fla Then For i = 1 To ma s = A(i, i) For j = 1 To ma A(i, j) = A(i, j) + s Next Next TextBox1.AppendText("Для А условие выполнено. ") Else TextBox1.AppendText("В А элементы не совпадают. ") End If If flb Then For i = 1 To mb s = B(i, i) For j = 1 To mb B(i, j) = B(i, j) + s Next Next TextBox1.AppendText("Для В условие выполнено. ") Else TextBox1.AppendText("В матрице В элементы не совпадают. ") End If End Sub Private Function Diag(ByRef M(,) As Single, ByVal mm As Integer) As Boolean Dim k As Integer Diag = True For k = 1 To mm - 1 If M(k, k) <> M(k + 1, k + 1) Then Diag = False End If Next Return Diag End Function End Class

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

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, mb As Integer Dim mina, minb As Single TextBox1.Clear() ma = InputBox("Введите размерность A") ReDim A(ma, ma) For i = 1 To ma For j = 1 To ma A(i, j) = InputBox("A(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите размерность B") ReDim B(mb, mb) For i = 1 To mb For j = 1 To mb B(i, j) = InputBox("B(" & i & "," & j & ")=?") Next Next mina = minmatr(A, ma) If mina > 0 Then For i = 1 To ma A(i, i) = A(i, i) + Math.Abs(mina) Next TextBox1.AppendText("Для А главн. диагональ увеличина на " + Str(mina)) Else TextBox1.AppendText("Для А минимальный <=0.") End If minb = minmatr(B, mb) If minb > 0 Then For i = 1 To ma B(i, i) = B(i, i) + Math.Abs(minb) Next TextBox1.AppendText(" Для B главн. диагональ увеличина на " + Str(minb)) Else TextBox1.AppendText(" Для B минимальный <=0.") End If End Sub Private Function minmatr(ByRef M(,) As Single, ByVal mm As Integer) As Single Dim k, l As Integer minmatr = M(1, 1) For k = 1 To mm For l = 1 To mm If M(k, l) < minmatr Then minmatr = M(k, l) End If Next Next Return minmatr End Function End Class 20. Составьте функцию для определения максимального элемента матрицы. Используя эту функцию, определите для каждой из заданных матриц А и В значение максимального элемента и, если оно больше заданной величины Н, извлеките квадратный корень из значения каждого элемента первой строки матрицы. В противном случае выведите сообщение: "Значение не предельно"

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, mb As Integer Dim maxa, maxb, H As Single TextBox1.Clear() ma = InputBox("Введите размерность A") ReDim A(ma, ma) For i = 1 To ma For j = 1 To ma A(i, j) = InputBox("A(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите размерность B") ReDim B(mb, mb) For i = 1 To mb For j = 1 To mb B(i, j) = InputBox("B(" & i & "," & j & ")=?") Next Next H = InputBox("Введите H") maxa = maxmatr(A, ma) If maxa > H Then For i = 1 To ma A(1, i) = Math.Sqrt(Math.Abs(A(1, i))) Next TextBox1.AppendText("Для А извлекли корни из модуля знач. элем. строки. ") Else TextBox1.AppendText("Для А значение не предельно. ") End If maxb = maxmatr(B, mb) If maxb > H Then For i = 1 To mb B(1, i) = Math.Sqrt(Math.Abs(B(1, i))) Next TextBox1.AppendText("Для B извлекли корни из модуля знач. элем. строки. ") Else TextBox1.AppendText("Для B значение не предельно. ") End If End Sub Private Function maxmatr(ByRef M(,) As Single, ByVal mm As Integer) As Single Dim k, l As Integer maxmatr = M(1, 1) For k = 1 To mm For l = 1 To mm If M(k, l) > maxmatr Then maxmatr = M(k, l) End If Next Next Return maxmatr End Function End Class.

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

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, mb As Integer Dim sra, srb As Single TextBox1.Clear() ma = InputBox("Введите размерность A") ReDim A(ma, ma) For i = 1 To ma For j = 1 To ma A(i, j) = InputBox("A(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите размерность B") ReDim B(mb, mb) For i = 1 To mb For j = 1 To mb B(i, j) = InputBox("B(" & i & "," & j & ")=?") Next Next sra = srar(A, ma) If sra > 0 Then TextBox1.AppendText("Первая строка матрицы А: ") For i = 1 To ma TextBox1.AppendText(Str(A(1, i)) + " ") Next Else TextBox1.AppendText("Для А условие не выполнено. ") End If srb = srar(B, mb) If srb > 0 Then TextBox1.AppendText(" Первая строка матрицы B: ") For i = 1 To mb TextBox1.AppendText(Str(B(1, i)) + " ") Next Else TextBox1.AppendText(" Для B условие не выполнено. ") End If End Sub Private Function srar(ByRef M(,) As Single, ByVal mm As Integer) As Single Dim k As Integer srar = 0 For k = 1 To mm srar = srar + M(k, k) Next srar = srar / mm Return srar End Function End Class

23. Составьте подпрограмму для нахождения индексов минимального элемента квадратной матрицы. Примените эту подпрограмму для каждой из двух квадратных матриц А и В и получите для каждой матрицы вектор, элементы которого равны попарным суммам элементов строки и столбца, на пересечении которых находится минимальный элемент. Если минимальный элемент матрицы А находится на пересечении k – ой сроки и m – го столбца, то i – ый элемент искомого вектора равен aki+aim (i = 1, 2, …, n).

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, mb, k, m As Integer Dim C() As Single TextBox1.Clear() ma = InputBox("Введите размерность A") ReDim A(ma, ma) For i = 1 To ma For j = 1 To ma A(i, j) = InputBox("A(" & i & "," & j & ")=?") Next Next mb = InputBox("Введите размерность B") ReDim B(mb, mb) For i = 1 To mb For j = 1 To mb B(i, j) = InputBox("B(" & i & "," & j & ")=?") Next Next k = 0 m = 0 Indmin(A, ma, k, m) ReDim C(ma) TextBox1.AppendText("Вектор для матрицы А: ") For i = 1 To ma C(i) = A(k, i) + A(i, m) TextBox1.AppendText(Str(C(i)) + " ") Next k = 0 m = 0 Indmin(B, mb, k, m) ReDim C(mb) TextBox1.AppendText(" Вектор для матрицы B: ") For i = 1 To mb C(i) = B(k, i) + B(i, m) TextBox1.AppendText(Str(C(i)) + " ") Next End Sub Private Sub Indmin(ByRef M(,) As Single, ByVal mm As Integer, ByRef kk As Integer, ByRef ll As Integer) Dim k, l As Integer Dim minmatr As Single minmatr = M(1, 1) kk = 1 ll = 1 For k = 1 To mm For l = 1 To mm If M(k, l) < minmatr Then minmatr = M(k, l) kk = k ll = l End If Next Next End Sub End Class

24. Составьте функцию для определения индекса максимального по модулю элемента вектора. Если максимальные по модулю элементы двух заданных векторов R и T имеют равные индексы, выведите вектор R, иначе – вектор 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, T() As Single Dim ma, mb, i As Integer Dim ina, inb As Integer TextBox1.Clear() ma = InputBox("Введите количество элементов в векторе R") ReDim R(ma) For i = 1 To ma R(i) = InputBox("R(" & i & ")=?") Next mb = InputBox("Введите количество элементов в векторе T") ReDim T(mb) For i = 1 To mb T(i) = InputBox("T(" & i & ")=?") Next ina = Ind(R, ma) inb = Ind(T, mb) If ina = inb Then TextBox1.AppendText("Вектор R: ") For i = 1 To ma TextBox1.AppendText(Str(R(i)) + " ") Next Else TextBox1.AppendText(" Вектор T: ") For i = 1 To mb TextBox1.AppendText(Str(T(i)) + " ") Next End If End Sub Private Function Ind(ByRef M() As Single, ByVal mm As Integer) As Integer Dim k As Integer Dim s As Single Ind = 1 s = Math.Abs(M(1)) For k = 2 To mm If Math.Abs(M(k)) > s Then s = Math.Abs(M(k)) Ind = k End If Next Return Ind End Function End Class

25. Составьте подпрограмму, заменяющую все меньшие заданной величины элементы вектора на ноль и определяющую число таких замен. Примените эту подпрограмму для двух заданных векторов Р и С и выведите тот вектор, в котором число замен оказалось большим.

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 ma, mb, i As Integer Dim ina, inb As Integer Dim H As Single TextBox1.Clear() ma = InputBox("Введите количество элементов в векторе P") ReDim P(ma) For i = 1 To ma P(i) = InputBox("P(" & i & ")=?") Next mb = InputBox("Введите количество элементов в векторе C") ReDim C(mb) For i = 1 To mb C(i) = InputBox("C(" & i & ")=?") Next H = InputBox("Введите величину") zamena(P, ma, H, ina) zamena(C, mb, H, inb) If ina = inb Then TextBox1.AppendText("Равное число замен ") Else If ina > inb Then TextBox1.AppendText("В векторе Р замен больше: ") For i = 1 To ma TextBox1.AppendText(Str(P(i)) + " ") Next Else TextBox1.AppendText("В векторе C замен больше: ") For i = 1 To mb TextBox1.AppendText(Str(C(i)) + " ") Next End If End If End Sub Private Sub zamena(ByRef M() As Single, ByVal mm As Integer, ByVal hh As Single, ByRef kolz As Integer) Dim l As Integer kolz = 0 For l = 1 To mm If M(l) < hh Then M(l) = 0 kolz = kolz + 1 End If Next End Sub End Class

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]