Главная страница

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


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

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



1   2   3   4


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