Сортировка с учетом регистра.
Dim s As String
Dim i As Integer
Dim slova() As String
Dim n As Integer
Dim sort As Boolean
Dim z 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)
Do
sort = True
For i = 0 To n - 1
If slova(i) > slova(i + 1) Then
sort = False
z = slova(i)
slova(i) = slova(i + 1)
slova(i + 1) = z
End If
Next
Loop Until sort
s = Strings.Join(slova, " ")
lstText.Items.Add("------------------------------------")
lstText.Items.Add(s)
Сортировка без учета регистра.
Dim s As String
Dim i As Integer
Dim slova() As String
Dim n As Integer
Dim sort As Boolean
Dim z 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)
Do
sort = True
For i = 0 To n - 1
If Strings.UCase(slova(i)) > _
Strings.UCase(slova(i + 1)) Then
sort = False
z = slova(i)
slova(i) = slova(i + 1)
slova(i + 1) = z
End If
Next
Loop Until sort
s = Strings.Join(slova, " ")
lstText.Items.Add("------------------------------------")
lstText.Items.Add(s)
Дан текст, состоящий из нескольких строк. В каждой строке слова разделены произвольным количеством пробелов. Пробелы могут стоять перед первым словом и за последним. В каждой строке текста записать слова в обратном порядке. Исходный и преобразованный тексты вывести в окно списка.
Dim Tekst() As String
Dim n As Integer
Dim slova() As String
Dim k As Integer
Dim i, j As Integer
Dim s As String
lstText.Items.Clear()
Do
n = Val(InputBox("Введите количество строк в тексте"))
Loop Until n > 0
n -= 1
ReDim Tekst(n)
For i = 0 To n
Tekst(i) = InputBox("Введите " + Str(i) + _
"-ю строку текста")
Next
For i = 0 To n
lstText.Items.Add(Tekst(i))
Next
For i = 0 To n
s = Strings.Trim(Tekst(i))
Do Until Strings.InStr(s, " ") = 0
s = Strings.Replace(s, " ", " ")
Loop
slova = Strings.Split(s)
k = UBound(slova)
s = ""
For j = 0 To k
s = slova(j) + " " + s
Next
Tekst(i) = Strings.Trim(s)
Next
lstText.Items.Add("------------------------------------")
For i = 0 To n
lstText.Items.Add(Tekst(i))
Next
Дана строка текста, в которой слова разделены произвольным количеством пробелов. Пробелы могут стоять перед первым словом и за последним. Сформировать массив слов строки. Исходную строку и полученный массив вывести в окно списка. Решить задачу тремя разными способами.
Dim s As String Dim i As Integer Dim slova() As String Dim tek As String
Dim n As Integer
lstText.Items.Clear()
s = InputBox("Введите строку")
lstText.Items.Add(s)
n = -1
tek = ""
s += " "
For i = 1 To Len(s) - 1
If Mid(s, i, 1) <> " " Then
tek += Mid(s, i, 1)
End If
If Mid(s, i, 1) <> " " And _
Mid(s, i + 1, 1) = " " Then
n += 1
ReDim Preserve slova(n)
slova(n) = tek
tek = ""
End If
Next
lstText.Items.Add("Слова строки")
For i = 0 To n
lstText.Items.Add(slova(i))
Next
Дана строка текста. Заменить каждый символ, стоящий после буквы «а» на символ звездочка (*).
Dim s As String
Dim i As Integer
lstText.Items.Clear()
s = InputBox("Введите строку")
lstText.Items.Add(s)
For i = 1 To Len(s) - 1
If Strings.Mid(s, i, 1) = "а" Or _
Strings.Mid(s, i, 1) = "А" Then
Mid(s, i + 1, 1) = "*"
End If
Next
lstText.Items.Add(s)
подсчитывает кол четных выше нлав диаг
Dim i, j, k As Integer
k=o
for i=0 to n-2
for j=0 to n-1
If A(i,j)mod 2=0 then k=k+1
Next
Next
kol=k
Все гранич элементы матрицы заменить на заданные значения
Dim i, j, k As Integer
k=o
for i=0 to n-2
for j=0 to n-1
If A(i,j)mod 2=0 then k=k+1
Next
Next
kol=k
For i-0 to n-1
A(i,0)=x
A(i,m-1)=x
Next
For j=0 to m-1
A(0,j)=x
A(n-1,j)=x
Next
Нахождение средне арифм отрицPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim A(,), B(,), otvet As Single Dim ma, na, mb, nb As Integer Vvod(A, ma, na) Vyvod(A, ma, na, ListBox1) Vvod(B, mb, nb) Vyvod(B, mb, nb, ListBox2) otvet = sr_ar(A, ma, na) ListBox3.Items.Add(otvet) End Sub Private Sub Vvod(ByRef A(,) As Single, ByRef m As Integer, ByRef n As Integer) Dim i, j As Integer ' ввод матрицы Do m = Val(InputBox("Введите количество строк в матрице")) Loop Until m > 0 Do n = Val(InputBox("Введите количество столбцов в матрице")) Loop Until n > 0 n = n - 1 m = m - 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 End Sub Private Sub Vyvod(ByVal A(,) As Single, ByVal m As Integer, ByVal n As Integer, ByVal list As ListBox) 'вывод матрицы Dim i, j As Integer Dim s1 As String For i = 0 To m s1 = "" For j = 0 To n s1 = s1 + Str(A(i, j)) + vbTab Next list.Items.Add(s1) Next End Sub Private Function sr_ar(ByVal A(,) As Single, ByVal m As Integer, ByVal n As Integer) As Single Dim i, j As Integer Dim otvet, sum_otr, k_otr As Single otvet = 0 sum_otr = 0 k_otr = 0 For i = 0 To m - 1 For j = 0 To n - 1 If A(i, j) < 0 Then sum_otr = sum_otr + A(i, j) k_otr = k_otr + 1 End If Next Next If k_otr <> 0 Then otvet = sum_otr / k_otr sr_ar = otvet ' ListBox3.Items.Add(sr_ar) Else sr_ar = 0 'ListBox3.Items.Add("нет отрицательных") переставляет с макс и мин кол-вом отр эл
Dim A(,), n, m, i, B(), j As Integer
Dim max, min, n_max, n_min, x As Integer
ReDim A(n, m)
ReDim B(n)
Vvod(n, m, A)
ListBox1.Items.Clear()
ListBox2.Items.Clear()
Vivod(n, m, A, ListBox1)
If Proverka(A, n, m) = True Then
MsgBox("Все элементы одинаковы")
Else
Kol_otr(A, n, m, B)
n_max = 0
n_min = 0
max = B(0)
min = B(0)
For i = 0 To n - 1
If B(i) < min Then
min = B(i)
n_min = i
End If
If B(i) > max Then
max = B(i)
n_max = i
End If
Next
For j = 0 To m - 1
x = A(n_min, j)
A(n_min, j) = A(n_max, j)
A(n_max, j) = x
Next
Vivod(n, m, A, ListBox2)
End If
End Sub
Private Sub Vvod(ByRef n As Integer, ByRef m As Integer, ByRef A(,) As Integer)
Dim i, j As Integer
Do
n = Val(InputBox("Введите размер матрицы"))
Loop Until n > 0
Do
m = Val(InputBox("Введите размер матрицы"))
Loop Until n > 0
ReDim A(n, m)
For i = 0 To n - 1
For j = 0 To m - 1
A(i, j) = Val(InputBox("Введите элемент (" + _
Str(i) + "," + Str(j) + ")"))
Next
Next
End Sub
Private Sub Vivod(ByVal n As Integer, ByVal m 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 m - 1
st = st + Str(A(i, j))
Next
ListBox.Items.Add(st)
Next
End Sub
Private Sub Kol_otr(ByVal A(,) As Integer, ByVal n As Integer, ByVal m As Integer, ByRef B() As Integer)
Dim i, j, k As Integer
ReDim B(n - 1)
For i = 0 To n - 1
k = 0
For J = 0 To m - 1
If A(i, j) < 0 Then
k = k + 1
End If
Next
B(i) = k
Next
End Sub
Private Function Proverka(ByVal A(,) As Integer, ByVal n As Integer, ByVal m As Integer) As Boolean
Dim flag As Boolean
Dim i, j As Integer
flag = True
For i = 0 To n - 1
For j = 0 To m - 1
If A(i, j) <> A(0, 0) Then
flag = False
End If
Next
Next
Return flag
End Function
Дан целочисленный массив. Количество элементов и их значения вводятся с клавиатуры. Отсортировать элементы массива по возрастанию методом пузырька. Массив до и после преобразования вывести в окно списка.
Dim a() As Integer
Dim n, i As Integer
Dim sort As Boolean
Dim z As Integer
lstA.Items.Clear()
Do
n = Val(InputBox("Введите количество элементов"))
Loop Until n > 0
n -= 1
ReDim a(n)
For i = 0 To n
a(i) = Val(InputBox("Введите " + Str(i) + _
"-й элемент массива"))
Next
lstA.Items.Add("Исходный массив")
lstA.Items.Add("Номер" + vbTab + "Значение")
For i = 0 To n
lstA.Items.Add(Str(i) + vbTab + Str(a(i)))
Next
Do
sort = True
For i = 0 To n - 1
If a(i) > a(i + 1) Then
z = a(i)
a(i) = a(i + 1)
a(i + 1) = z
sort = False
End If
Next
Loop Until sort
lstA.Items.Add("-------------------------------")
lstA.Items.Add("Массив после сортировки")
For i = 0 To n
lstA.Items.Add(Str(i) + vbTab + Str(a(i)))
Next
Дан целочисленный массив. Количество элементов и их значения вводятся с клавиатуры. Упорядочить элементы массива по возрастанию методом линейной сортировки (методом поиска минимума). Массив до и после преобразования вывести в окно списка.
Dim a() As Integer
Dim n, i As Integer
Dim start As Integer
Dim imin, min As Integer
Dim z As Integer
lstA.Items.Clear()
Do
n = Val(InputBox("Введите количество элементов"))
Loop Until n > 0
n -= 1
ReDim a(n)
For i = 0 To n
a(i) = Val(InputBox("Введите " + Str(i) + _
"-й элемент массива"))
Next
lstA.Items.Add("Исходный массив")
lstA.Items.Add("Номер" + vbTab + "Значение")
For i = 0 To n
lstA.Items.Add(Str(i) + vbTab + Str(a(i)))
Next
For start = 0 To n - 1
min = a(start)
imin = start
For i = start + 1 To n
If a(i) < min Then
min = a(i)
imin = i
End If
Next
a(imin) = a(start)
a(start) = min
Next
lstA.Items.Add("-------------------------------")
lstA.Items.Add("Массив после сортировки")
For i = 0 To n
lstA.Items.Add(Str(i) + vbTab + Str(a(i)))
Next