Замена на главн и побочн диаг 0 на1
Dim A(10, 10) As Integer
Dim n As Integer
ListBox1.Items.Clear()
ListBox2.Items.Clear()
Vvod(n, A)
Vivod(n, A, ListBox1)
If Proverka(n, A) Then
MsgBox("не все элементы главной и побочной диагонали равны 0")
Else
Zamena(n, A)
Vivod(n, a, ListBox2)
End If
End Sub
Private Sub Vvod(ByRef n As Integer, ByRef A(,) As Integer)
Dim i, j As Integer
Do
n = Val(InputBox("Введите размер матрицы"))
Loop Until n > 0 And n <= 10
For i = 0 To n - 1
For j = 0 To n - 1
A(i, j) = Val(InputBox("Введите элемент (" + _
Str(i) + "," + Str(j) + ")"))
Next
Next
End Sub
Private Sub Vivod(ByVal n As Integer, ByVal A(,) As Integer, ByRef ListBox As ListBox)
Dim i, j As Integer
Dim st As String
For i = 0 To n - 1
st = ""
For j = 0 To n - 1
st = st + Str(A(i, j))
Next
ListBox.Items.Add(st)
Next
End Sub
Private Function Proverka(ByVal n As Integer, ByVal A(,) As Integer) As Boolean
Dim pr As Boolean
Dim i As Integer
pr = False
For i = 0 To n - 1
If A(i, i) <> 0 Or A(i, n - 1 - i) <> 0 Then
pr = True
End If
Next
Return pr
End Function
Private Sub Zamena(ByVal n As Integer, ByRef A(,) As Integer)
Dim i As Integer
For i = 0 To n - 1
A(i, i) = 1
A(i, n - 1 - i) = 1
Next
Строки(идеальная,проверка на числа)сумма)
Dim s1, s As String
Dim summa As Single
ListBox1.Items.Clear()
s1 = InputBox("Введите строку")
ListBox1.Items.Clear()
ListBox1.Items.Add(s1)
s = Ideal(s1)
ListBox2.Items.Add(s)
ListBox2.Items.Clear()
If Proverka(s) Then
MsgBox("числа в строке есть.")
summa = summa_chis(s)
s = s + " " + Str(summa)
ListBox2.Items.Add(s)
Else
MsgBox("Чисел в строке нет")
End If
End Sub
Private Function Ideal(ByVal s As String) As String
Do Until Strings.InStr(s, " ") = 0
s = Strings.Replace(s, " ", " ")
Loop
s = Trim(s)
Return (s)
End Function
Private Function Proverka(ByVal s As String) As Boolean
Dim flag As Boolean
Dim i As Integer
Dim massiv() As String
flag = False
i = 0
massiv = Strings.Split(s)
Do
If Trim(Str(Val(massiv(i)))) = massiv(i) Then
flag = True
End If
i = i + 1
Loop Until flag = True Or i > UBound(massiv)
Proverka = flag
End Function
Private Function summa_chis(ByVal s As String) As Single
Dim i As Integer
Dim Sm As Single
Dim massiv() As String
massiv = Split(s)
Sm = 0
For i = 0 To UBound(massiv)
If Trim(Str(Val(massiv(i)))) = massiv(i) Then
Sm = Sm + Val(massiv(i))
End If
Next
Return Sm
End Function
Умножение чисел строки и нахождение мин элемента столбца с заменой на 0
Dim A(,), B() As Integer
Dim m, n, i, j, min, n_i As Integer
Dim st As String
Do
m = Val(InputBox("Введите количество строк"))
Loop Until m > 0
Do
n = Val(InputBox("Введите количество столбцов"))
Loop Until n > 0
m -= 1
n -= 1
ReDim A(m, n)
For i = 0 To m
For j = 0 To n
A(i, j) = Val(InputBox("Введите элемент (" + _
Str(i) + "," + Str(j) + ")"))
Next
Next
ListBox1.Items.Clear()
ListBox1.Items.Add("Исходный массив")
For i = 0 To m
st = ""
For j = 0 To n
st = st + Str(A(i, j)) + vbTab
Next
ListBox1.Items.Add(st)
Next
ReDim B(m)
ListBox1.Items.Add("Новый массив")
ListBox1.Items.Add("№стр." + vbTab + "Произведение")
For i = 0 To m
B(i) = 1
For j = 0 To n
If A(i, j) >= 2 And A(i, j) <= 5 Then
B(i) = B(i) * A(i, j)
End If
Next
If B(i) = 1 Then B(i) = 0
Next
For i = 0 To m
ListBox1.Items.Add(Str(i) + vbTab + Str(B(i)))
Next
For j = 0 To n
min = A(0, j)
n_i = 0
For i = 0 To m
If A(i, j) < min Then
min = A(i, j)
n_i = i
End If
Next
A(n_i, j) = 0
Next
ListBox1.Items.Add("-------------------------------")
ListBox1.Items.Add("Измененный массив")
For i = 0 To m
st = ""
For j = 0 To n
st = st + Str(A(i, j)) + vbTab
Next
ListBox1.Items.Add(st)
Next
End Sub
End Class
Дана прямоугольная целочисленная матрица. Размеры матрицы и значения ее элементов вводятся с клавиатуры. Найти максимальный элемент в матрице и его индексы. Исходную матрицу и полученные результаты вывести в окно списка.
Dim a(,) As Integer
Dim m, n As Integer
Dim i, j As Integer
Dim max, imax, jmax As Integer
Dim s As String
Do
m = Val(InputBox("Введите количество строк"))
Loop Until m > 0
Do
n = Val(InputBox("Введите количество столбцов"))
Loop Until n > 0
m -= 1
n -= 1
ReDim a(m, n)
For i = 0 To m
For j = 0 To n
a(i, j) = Val(InputBox("Введите элемент (" + _
Str(i) + "," + Str(j) + ")"))
Next
Next
lstMatrix.Items.Clear()
lstMatrix.Items.Add("Матрица")
For i = 0 To m
s = ""
For j = 0 To n
s += Str(a(i, j)) + vbTab
Next
lstMatrix.Items.Add(s)
Next
max = a(0, 0)
imax = 0
jmax = 0
For i = 0 To m
For j = 0 To n
If a(i, j) > max Then
max = a(i, j)
imax = i
jmax = j
End If
Next
Next
lstMatrix.Items.Add("---------------------------------")
lstMatrix.Items.Add("Максимум:" + Str(max))
lstMatrix.Items.Add("Строка:" + Str(imax))
lstMatrix.Items.Add("Столбец:" + Str(jmax))
Дана прямоугольная целочисленная матрица. Размеры матрицы и значения ее элементов вводятся с клавиатуры. В каждой строке матрицы найти среднее арифметическое четных чисел. Если в какой-нибудь строке нельзя вычислить среднее арифметическое, то вывести поясняющее сообщение. Исходную матрицу и полученные результаты вывести в окно списка.
Dim a(,) As Integer
Dim m, n As Integer
Dim i, j As Integer
Dim s As String
Dim sum, kol As Integer
Dim sred As Single
Do
m = Val(InputBox("Введите количество строк"))
Loop Until m > 0
Do
n = Val(InputBox("Введите количество столбцов"))
Loop Until n > 0
m -= 1
n -= 1
ReDim a(m, n)
For i = 0 To m
For j = 0 To n
a(i, j) = Val(InputBox("Введите элемент (" + _
Str(i) + "," + Str(j) + ")"))
Next
Next
lstMatrix.Items.Clear()
lstMatrix.Items.Add("Матрица")
For i = 0 To m
s = ""
For j = 0 To n
s += Str(a(i, j)) + vbTab
Next
lstMatrix.Items.Add(s)
Next
lstMatrix.Items.Add("---------------------------------")
lstMatrix.Items.Add("Строка" + vbTab + "Сред. арифм.")
For i = 0 To m
sum = 0
kol = 0
For j = 0 To n
If a(i, j) Mod 2 = 0 Then
sum += a(i, j)
kol += 1
End If
Next
If kol = 0 Then
lstMatrix.Items.Add(Str(i) + vbTab + _
"В строке нет четных")
Else
sred = sum / kol
lstMatrix.Items.Add(Str(i) + vbTab + Str(sred))
End If
Next
Дана прямоугольная целочисленная матрица. Размеры матрицы и значения ее элементов вводятся с клавиатуры. Найти минимальный элемент в каждом столбце матрицы. Полученные результаты записать в одномерный массив. Исходную матрицу и результирующий массив вывести в окно списка.
Dim a(,) As Integer
Dim m, n As Integer
Dim i, j As Integer
Dim s As String
Dim min As Integer
Dim b() As Integer
Do
m = Val(InputBox("Введите количество строк"))
Loop Until m > 0
Do
n = Val(InputBox("Введите количество столбцов"))
Loop Until n > 0
m -= 1
n -= 1
ReDim a(m, n)
For i = 0 To m
For j = 0 To n
a(i, j) = Val(InputBox("Введите элемент (" + _
Str(i) + "," + Str(j) + ")"))
Next
Next
lstMatrix.Items.Clear()
lstMatrix.Items.Add("Матрица")
For i = 0 To m
s = ""
For j = 0 To n
s += Str(a(i, j)) + vbTab
Next
lstMatrix.Items.Add(s)
Next
ReDim b(n)
For j = 0 To n
min = a(0, j)
For i = 1 To m
If a(i, j) < min Then
min = a(i, j)
End If
Next
b(j) = min
Next
lstMatrix.Items.Add("---------------------------------")
lstMatrix.Items.Add("Столбец" + vbTab + "Минимум")
For i = 0 To n
lstMatrix.Items.Add(Str(i) + vbTab + Str(b(i)))
Next
Дана квадратная целочисленная матрица. Размер матрицы и значения ее элементов вводятся с клавиатуры. Найти сумму элементов, стоящих на главной диагонали, и произведение элементов, стоящих на побочной диагонали. Исходную матрицу и полученные результаты вывести в окно списка.
Dim a(,) As Integer
Dim n As Integer
Dim i, j As Integer
Dim s As String
Dim sum, proiz As Integer
Do
n = Val(InputBox("Введите размер матрицы"))
Loop Until n > 0
n -= 1
ReDim a(n, n)
For i = 0 To n
For j = 0 To n
a(i, j) = Val(InputBox("Введите элемент (" + _
Str(i) + "," + Str(j) + ")"))
Next
Next
lstMatrix.Items.Clear()
lstMatrix.Items.Add("Матрица")
For i = 0 To n
s = ""
For j = 0 To n
s += Str(a(i, j)) + vbTab
Next
lstMatrix.Items.Add(s)
Next
sum = 0
proiz = 1
For i = 0 To n
sum += a(i, i)
proiz *= a(i, n - i)
Next
lstMatrix.Items.Add("---------------------------------")
lstMatrix.Items.Add("Сумма = " + Str(sum))
lstMatrix.Items.Add("Произведение = " + Str(proiz))
Дана квадратная целочисленная матрица. Размер матрицы и значения ее элементов вводятся с клавиатуры. Найти минимальный из элементов, стоящих выше главной диагонали, и его индексы. Найти максимальный из элементов, стоящих ниже побочной диагонали, и его индексы. Исходную матрицу и полученные результаты вывести в окно списка.
Dim a(,) As Integer
Dim n As Integer
Dim i, j As Integer
Dim s As String
Dim min, imin, jmin As Integer
Dim max, imax, jmax As Integer
Do
n = Val(InputBox("Введите размер матрицы"))
Loop Until n > 0
n -= 1
ReDim a(n, n)
For i = 0 To n
For j = 0 To n
a(i, j) = Val(InputBox("Введите элемент (" + _
Str(i) + "," + Str(j) + ")"))
Next
Next
lstMatrix.Items.Clear()
lstMatrix.Items.Add("Матрица")
For i = 0 To n
s = ""
For j = 0 To n
s += Str(a(i, j)) + vbTab
Next
lstMatrix.Items.Add(s)
Next
min = a(0, n)
imin = 0
jmin = n
max = a(n, n)
imax = n
jmax = n
For i = 0 To n
For j = 0 To n
If i < j And a(i, j) < min Then
min = a(i, j)
imin = i
jmin = j
End If
If i + j > n And a(i, j) > max Then
max = a(i, j)
imax = i
jmax = j
End If
Next
Next
lstMatrix.Items.Add("------------------------------------")
lstMatrix.Items.Add("Минимальный над главной диагональю")
lstMatrix.Items.Add("Значение:" + Str(min))
lstMatrix.Items.Add("Строка:" + Str(imin))
lstMatrix.Items.Add("Столбец:" + Str(jmin))
lstMatrix.Items.Add("Максимальный под побочной диагональю")
lstMatrix.Items.Add("Значение:" + Str(max))
lstMatrix.Items.Add("Строка:" + Str(imax))
lstMatrix.Items.Add("Столбец:" + Str(jmax))
Дана строка текста, в которой слова разделены произвольным количеством пробелов. Пробелы могут стоять перед первым словом и за последним. Найти самое длинное слово, являющееся палиндромом. Палиндромом называется слово, которое одинаково читается как слева направо, так и справа налево. Исходную строку и полученные результаты вывести в окно списка.
Dim s As String
Dim i As Integer
Dim slova() As String
Dim n As Integer
Dim max As String
lstText.Items.Clear()
s = InputBox("Введите строку")
lstText.Items.Add(s)
s = Strings.Trim(s)
Do Until Strings.InStr(s, " ") = 0
s = Strings.Replace(s, " ", " ")
Loop
slova = Strings.Split(s)
n = UBound(slova)
max = ""
For i = 0 To n
If slova(i) = Strings.StrReverse(slova(i)) _
And Len(slova(i)) > Len(max) Then
max = slova(i)
End If
Next
lstText.Items.Add("------------------------------------")
If max <> "" Then
lstText.Items.Add("Самое длинное слово-палиндром")
lstText.Items.Add(max)
Else
lstText.Items.Add("В строке нет слов-палиндромов")
End If
Дана строка текста, в которой слова разделены произвольным количеством пробелов. Пробелы могут стоять перед первым словом и за последним. Найти сумму всех чисел в строке. Исходную строку и полученные результаты вывести в окно списка.
Dim s As String
Dim i As Integer
Dim slova() As String
Dim n As Integer
Dim summa, kol As Integer
lstText.Items.Clear()
s = InputBox("Введите строку")
lstText.Items.Add(s)
s = Strings.Trim(s)
Do Until Strings.InStr(s, " ") = 0
s = Strings.Replace(s, " ", " ")
Loop
slova = Strings.Split(s)
n = UBound(slova)
summa = 0
kol = 0
For i = 0 To n
If Strings.Trim(Str(Val(slova(i)))) = slova(i) Then
summa += Val(slova(i))
kol += 1
End If
Next
lstText.Items.Add("------------------------------------")
If kol = 0 Then
lstText.Items.Add("В строке нет чисел")
Else
lstText.Items.Add("Сумма =" + Str(summa))
End If
Дана строка текста, в которой слова разделены произвольным количеством пробелов. Пробелы могут стоять перед первым словом и за последним. Упорядочить слова строки по алфавиту. Задачу решить в двух вариантах: с учетом регистра и без учета регистра. Исходную строку и полученные результаты вывести в окно списка.