Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
infa.docx
Скачиваний:
4
Добавлен:
28.07.2019
Размер:
47.97 Кб
Скачать

Сортировка с учетом регистра.

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

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