2сем.1РК.Все варианты
.docxВариант 1
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Mas(), m() As Tochki
Dim n, k As Byte
Vvd(Mas, n)
Vivod(Mas, n, List1)
MsgBox("Точка, наиболее удаленная от начала: (" + Str(MaxDlin(Mas, n).Kord(0)) + "," + Str(MaxDlin(Mas, n).Kord(1)) + ")")
Puzir(Mas, n)
List1.Items.Add("--------------------------------------------------------------------------")
Vivod(Mas, n, List1)
per(Mas, n, m, k)
Form2.Show()
Vivod(m, k, Form2.List2)
End Sub
End Class
Module Module1
Public Structure Tochki
Public Kord() As Integer
Public Sub Vvod()
Dim i As Byte
ReDim Kord(1)
For i = 0 To 1
If i = 0 Then
Kord(i) = Val(InputBox("Введите координату по x"))
End If
If i = 1 Then
Kord(i) = Val(InputBox("Введите координату по y"))
End If
Next
End Sub
Public Function Dlin() As Integer
Dlin = ((Kord(0) ^ 2) + (Kord(1)) ^ 2) ^ (1 / 2)
End Function
Public Function s() As String
s = Str(Kord(0)) + vbTab + Str(Kord(1))
End Function
End Structure
Public Sub Vvd(ByRef Mas() As Tochki, ByRef n As Byte)
Dim i As Byte
n = Val(InputBox("Введите колличество точек"))
ReDim Mas(n - 1)
For i = 0 To n - 1
Mas(i).Vvod()
Next
End Sub
Public Sub Vivod(ByVal Mas() As Tochki, ByVal n As Byte, ByRef List As Object)
Dim i As Byte
List.Items.Add("Точки")
For i = 0 To n - 1
List.Items.Add(Mas(i).s())
Next
End Sub
Public Function MaxDlin(ByVal Mas() As Tochki, ByVal n As Byte) As Tochki
Dim i As Byte
Dim p As Integer
p = 0
For i = 0 To n - 1
If Mas(i).Dlin() > p Then
MaxDlin = Mas(i)
End If
Next
End Function
Public Sub Puzir(ByRef Mas() As Tochki, ByVal n As Byte)
Dim i, j As Byte
Dim d As Tochki
For i = 0 To n - 2
For j = 0 To n - i - 2
If Mas(j).Dlin() > Mas(j + 1).Dlin() Then
d = Mas(j)
Mas(j) = Mas(j + 1)
Mas(j + 1) = d
End If
Next
Next
End Sub
Public Sub per(ByVal Mas() As Tochki, ByVal n As Byte, ByRef M() As Tochki, ByRef k As Byte)
Dim i As Byte
k = 0
For i = 0 To n - 1
If Mas(i).Kord(0) > 0 And Mas(i).Kord(1) > 0 Then
ReDim Preserve M(k)
M(k) = Mas(i)
k = k + 1
End If
Next
End Sub
End Module
Вариант2
Module Module1
Public Structure Пассажир
Public Фам As String
Public Колмест As Integer
Public Общвес As Double
Public Средвес As Double
Public Sub Ввод()
Фам = InputBox("Фамилия")
Колмест = Val(InputBox("Количество мест багажа пассажира"))
Общвес = Val(InputBox("Общий вес багажа"))
End Sub
Public Function Среднийвес() As Double
Dim X As Double
X = Общвес / Колмест
Среднийвес = X
End Function
Public Function Строка() As String
Строка = LSet(Фам, 10) + Strings.LSet(Колмест, 5) + Strings.LSet(Общвес, 5) + Strings.LSet(Средвес, 5)
End Function
End Structure
Public Sub ВводМассива(ByRef n As Integer, ByRef Spis() As Пассажир)
Dim i As Integer
n = Val(InputBox("Кол-во пассажиров"))
n = n - 1
ReDim Spis(n)
For i = 0 To n
Spis(i).Ввод()
Spis(i).Средвес = Spis(i).Среднийвес()
Next
End Sub
Public Sub ВыводМассива(ByVal n As Integer, ByVal Spis() As Пассажир, ByRef Lst As Object)
Dim i As Integer
Dim S As String
Lst.Items.Clear()
If n >= 0 Then
For i = 0 To n
S = Spis(i).Строка
Lst.Items.Add(S)
Next
End If
End Sub
Public Function Общвесвсех(ByVal n As Integer, ByVal Spis() As Пассажир) As Integer
Dim P As Integer, i As Integer
P = 0
For i = 0 To n
P = P + Spis(i).Общвес
Next
Общвесвсех = P
End Function
Public Sub Сортировка(ByVal n As Integer, ByVal Spis() As Пассажир)
Dim i As Integer
Dim izm As Integer
Dim buf As Пассажир
Do
izm = 0
For i = 0 To n - 1
If Spis(i).Средвес > Spis(i + 1).Средвес Then
buf = Spis(i)
Spis(i) = Spis(i + 1)
Spis(i + 1) = buf
izm = 1
End If
Next
Loop Until izm = 0
End Sub
Public Sub Отбор(ByVal n As Integer, ByRef k As Integer, ByVal Spis() As Пассажир, ByRef Spis2() As Пассажир)
Dim i As Integer
Dim max As Integer
For i = 0 To n
max = Spis(0).Колмест
If Spis(i).Колмест > max Then
max = Spis(i).Колмест
End If
Next
k = -1
For i = 0 To n - 1
If Spis(i).Колмест = max Then
k = k + 1
ReDim Preserve Spis2(k)
Spis2(k) = Spis(i)
End If
Next
End Sub
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n As Integer
Dim k As SByte
Dim Spis1() As Пассажир
Dim Mas() As Пассажир
Dim Ves As Integer
ВводМассива(n, Spis1)
ВыводМассива(n, Spis1, Lst1)
Ves = Общвесвсех(n, Spis1)
MsgBox(Str(Ves))
Сортировка(n, Spis1)
ВыводМассива(n, Spis1, Lst2)
Отбор(n, k, Spis1, Mas)
ВыводМассива(k, Mas, Form2.Lst3)
Form2.Show()
End Sub
End Class
Вариант 3
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim spis1(), spis2() As seg
Dim n, n1, L As Integer
n = InputBox("введите кол-во отрезков") - 1
form(n, spis1)
output(n, spis1, ListBox1)
MsgBox("самый короткий отрезок - №" + Str(sh0rt(n, spis1) + 1))
sort(n, spis1)
output(n, spis1, ListBox2)
L = InputBox("введите минимальную длину отрезка")
Form_L(n, n1, spis1, spis2, L)
output(n1, spis2, Form2.ListBox1)
Form2.Show()
End Sub
End Class
Public Class Form2
End Class
Module Module1
Public Structure seg
Public x1 As Integer
Public y1 As Integer
Public x2 As Integer
Public y2 As Integer
Public Sub input()
x1 = InputBox("введите x1")
y1 = InputBox("введите y1")
x2 = InputBox("введите x2")
y2 = InputBox("введите y2")
End Sub
Public Function len() As Double
len = Math.Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)
End Function
Public Function strk() As String
strk = Str(x1) + vbTab + Str(y1) + vbTab + Str(x2) + vbTab + Str(y2) + vbTab + Str(len())
End Function
End Structure
Public Sub form(ByVal n As Integer, ByRef mas() As seg)
Dim i As Integer
ReDim mas(n)
For i = 0 To n
mas(i).input()
Next
End Sub
Public Sub output(ByVal n As Integer, ByVal mas() As seg, ByVal lst As Object)
Dim i As Integer
lst.items.add("x1" + vbTab + "y1" + vbTab + "x2" + vbTab + "y2" + vbTab + "len")
For i = 0 To n
Lst.items.add(mas(i).strk())
Next
End Sub
Public Sub sort(ByVal n As Integer, ByRef mas() As seg)
Dim i, j As Integer
Dim buf As seg
For i = 0 To n
For j = 0 To n - 1
If mas(j).len < mas(j + 1).len Then
buf = mas(j)
mas(j) = mas(j + 1)
mas(j + 1) = buf
End If
Next
Next
End Sub
Public Function sh0rt(ByVal n As Integer, ByVal mas() As seg) As Integer
Dim i, min, s As Integer
min = mas(0).len
For i = 0 To n
If mas(i).len() < min Then
min = mas(i).len
s = i
End If
Next
Return s
End Function
Public Sub Form_L(ByVal n As Integer, ByRef n1 As Integer, ByVal mas1() As seg, ByRef mas2() As seg, ByVal length As Integer)
Dim i As Integer
n1 = -1
ReDim mas2(n)
For i = 0 To n
If mas1(i).len > length Then
n1 += 1
mas2(n1) = mas1(i)
End If
Next
ReDim Preserve mas2(n1)
End Sub
End Module
Вариант 4
Module Module1
Public Structure student
Public fam As String
Public gruppa As Integer
Public oc1 As Integer
Public oc2 As Integer
Public oc3 As Integer
Public Sub vvod()
fam = InputBox("Введите фамилию")
gruppa = Val(InputBox("Введите группу"))
oc1 = Val(InputBox("Введите оценку1"))
oc2 = Val(InputBox("Введите оценку2"))
oc3 = Val(InputBox("Введите оценку3"))
End Sub
Public Function proverka() As Boolean
If (oc1 = "5") And (oc2 = "5") And (oc3 = "5") Then
proverka = True
Else
proverka = False
End If
End Function
Public Function stroka() As String
stroka = fam + vbTab + Str(gruppa) + vbTab + Str(oc1) + vbTab + Str(oc2) + vbTab + Str(oc3)
End Function
End Structure
Public Sub vvod(ByRef stud() As student, ByRef n As Integer)
Dim i As Byte
n = Val(InputBox("Введите количество студентов"))
n = n - 1
ReDim stud(n)
For i = 0 To n
stud(i).vvod()
Next
End Sub
Public Sub vivod(ByVal mas() As student, ByVal p As Integer, ByRef lst As Object)
Dim i As Byte
For i = 0 To p
lst.items.add(mas(i).stroka())
Next
End Sub
Public Function podschot(ByVal stud() As student, ByVal n As Integer) As Integer
Dim i As Byte
For i = 0 To n
If (stud(i).oc1 = "5") And (stud(i).oc2 = "5") And (stud(i).oc3 = "5") Then
podschot = podschot + 1
End If
Next
End Function
Public Sub sortirovka(ByRef stud() As student, ByVal n As Integer)
Dim i, j As Byte
Dim buf As student
For i = 0 To n - 1
For j = 0 To n - i - 1
If stud(j).fam > stud(j + 1).fam Then
buf = stud(j)
stud(j) = stud(j + 1)
stud(j + 1) = buf
End If
Next
Next
End Sub
Public Sub formmas(ByVal stud() As student, ByVal n As Integer, ByVal zgrup As Integer, ByRef grstud() As student, ByRef k As Integer)
Dim i As Byte
k = 0
For i = 0 To n
If stud(i).gruppa = zgrup Then
ReDim Preserve grstud(k)
grstud(k) = stud(i)
k = k + 1
End If
Next
End Sub
End Module
Public Class Form1
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
Dim stud(), grstud() As student
Dim zgrup, n, k As Integer
vvod(stud, n)
vivod(stud, n, lst1)
MsgBox("Количество отличников=" + Str(podschot(stud, n)))
sortirovka(stud, n)
vivod(stud, n, lst2)
zgrup = Val(InputBox("Введите искомую группу"))
formmas(stud, n, zgrup, grstud, k)
Form2.Show()
vivod(grstud, k - 1, Form2.lst1)
End Sub
End Class
Вариант 5
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form2.Show()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim spis() As treugolnik
Dim n As Integer
Dim P As Integer
Ввод(spis, n, P)
Вывод(spis, n, ListBox1)
sortper(spis, n)
Вывод(spis, n, ListBox2)
Form2.Lstsr.Items.Clear()
Form2.Lstsr.Items.Add(Str(Kolich(spis, n, P)))
NewMas(spis, n, P)
End Sub
End Class
Public Class Form2
End Class
Module Module1
Public Structure treugolnik
Public a As Integer
Public b As Integer
Public c As Integer
Public Sub Vvod()
a = Val(InputBox("введите 1ую сторону"))
b = Val(InputBox("введите 2ую сторону"))
c = Val(InputBox("введите 3ую сторону"))
End Sub
Public Function perimetr() As Integer
Dim P As Integer
P = a + b + c
perimetr = P
End Function
Public Function stroka() As String
stroka = Str(a) + Str(b) + Str(c) + Str(perimetr())
End Function
End Structure
End Module
Module Module2
Public Sub Ввод(ByRef Spis() As treugolnik, ByRef n As Integer, ByRef P As Integer)
Dim i As Byte
n = Val(InputBox("Введите кол-во треугольников"))
ReDim Spis(n - 1)
For i = 0 To n - 1
Spis(i).Vvod()
Next
P = Val(InputBox("Введите заданный периметр"))
End Sub
Public Sub Вывод(ByVal Spis() As treugolnik, ByVal n As Integer, ByRef lst As Object)
lst.Items.Clear()
Dim i As Integer
For i = 0 To n - 1
lst.Items.Add(Spis(i).stroka)
Next
End Sub
Public Sub sortper(ByRef spis() As treugolnik, ByRef n As Integer)
Dim i As Integer
Dim buf As treugolnik
Dim sort As Boolean
Do
sort = True
For i = 0 To n - 2
If spis(i).perimetr > spis(i + 1).perimetr Then
sort = False
buf = spis(i)
spis(i) = spis(i + 1)
spis(i + 1) = buf
End If
Next
Loop Until sort = True
End Sub
Public Function Kolich(ByVal Spis() As treugolnik, ByVal n As Integer, ByVal P As Integer) As Integer
Dim kol As Integer
Dim i As Integer
For i = 0 To n - 1
If Spis(i).perimetr() > P Then
kol = kol + 1
End If
Next
Kolich = kol
End Function
Public Sub NewMas(ByVal Spis() As treugolnik, ByVal n As Integer, ByVal P As Integer)
Dim i, k As Integer
Dim spisnew() As treugolnik
Form2.ListBox1.Items.Clear()
k = -1
For i = 0 To n - 1
If Spis(i).perimetr() > P Then
k = k + 1
ReDim Preserve spisnew(k)
spisnew(k) = Spis(i)
Form2.ListBox1.Items.Add(Spis(i).stroka())
End If
Next
If k = -1 Then
MsgBox("Таких треугольников там нет")
End If
End Sub
End Module
Вариант 6
Module Module1
Public Structure Спортсмен
Public Фамилия As String
Public Страна As String
Public Результат1 As Double
Public Результат2 As Double
Public Результат3 As Double
Public ЛучшийРезультат As Double
Public Sub Ввод()
Фамилия = InputBox("Фамилия")
Страна = InputBox("Страна")
Результат1 = Val(InputBox("Первый результат"))
Результат2 = Val(InputBox("Второй результат"))
Результат3 = Val(InputBox("Третий результат"))
End Sub
Public Function ВычислениеЛучшегоРезультата() As Double
Dim X As Double
X = Результат1
If Результат2 > X Then
X = Результат2
End If
If Результат3 > X Then
X = Результат3
End If
ВычислениеЛучшегоРезультата = X
End Function
Public Function Строка() As String
Строка = LSet(Фамилия, 15) + LSet(Страна, 15) + Strings.LSet(Результат1, 5) + Strings.LSet(Результат2, 5) + Strings.LSet(Результат3, 5) + Strings.LSet(ЛучшийРезультат, 5)
End Function
End Structure
Public Sub ВводМассиваСпортсменов(ByRef n As SByte, ByRef Spisoksportsmenov() As Спортсмен)
Dim i As Byte
Do
n = Val(InputBox("Кол-во спортменов"))
Loop Until n > 2
n = n - 1
ReDim Spisoksportsmenov(n)
For i = 0 To n
Spisoksportsmenov(i).Ввод()
Spisoksportsmenov(i).ЛучшийРезультат = Spisoksportsmenov(i).ВычислениеЛучшегоРезультата()
Next
End Sub
Public Sub ВыводМассива(ByVal n As SByte, ByVal Spisoksportsmenov() As Спортсмен, ByRef Lst As Object)
Dim i As Byte
Dim S As String
Lst.Items.Clear()
If n > 0 Then
For i = 0 To n
S = Spisoksportsmenov(i).Строка()
Lst.Items.Add(S)
Next i
End If
End Sub
Public Function ПоискПобедителя(ByVal n As SByte, ByVal Spisoksportsmenov() As Спортсмен) As String
Dim i As Byte
Dim max As Integer
Dim name As String
max = Spisoksportsmenov(0).ЛучшийРезультат
For i = 0 To n
If Spisoksportsmenov(i).ЛучшийРезультат > max Then
max = Spisoksportsmenov(i).ЛучшийРезультат
name = Spisoksportsmenov(i).Фамилия
End If
Next
ПоискПобедителя = name
End Function
Public Sub СортировкаПоАлфавиту(ByVal n As SByte, ByRef Spisoksportsmenov() As Спортсмен)
Dim i As Integer
Dim izm As Integer
Dim buf As Спортсмен
Do
izm = 0
For i = 0 To n - 1
If Strings.UCase(Spisoksportsmenov(i).Фамилия) > Strings.UCase(Spisoksportsmenov(i + 1).Фамилия) Then
buf = Spisoksportsmenov(i)
Spisoksportsmenov(i) = Spisoksportsmenov(i + 1)
Spisoksportsmenov(i + 1) = buf
izm = 1
End If
Next
Loop Until izm = 0
End Sub
Public Sub НовыйМассивСпортсменов(ByVal n As SByte, ByRef k As SByte, ByRef NovyiSpisok() As Спортсмен, ByVal Spisoksportsmenov() As Спортсмен, ByVal ZadannayaStrana As String)
Dim i As Integer
k = -1
For i = 0 To n
If Spisoksportsmenov(i).Страна = ZadannayaStrana Then
k = k + 1
ReDim Preserve NovyiSpisok(k)
NovyiSpisok(k) = Spisoksportsmenov(i)
End If
Next
End Sub
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SpisokSportsmenov() As Спортсмен
Dim NovyiMassiv() As Спортсмен
Dim k As SByte
Dim n As SByte
Dim pobeditel As String
Dim strana As String
ВводМассиваСпортсменов(n, SpisokSportsmenov)
ВыводМассива(n, SpisokSportsmenov, Lst1)
pobeditel = ПоискПобедителя(n, SpisokSportsmenov)
MsgBox(pobeditel)
СортировкаПоАлфавиту(n, SpisokSportsmenov)
ВыводМассива(n, SpisokSportsmenov, Lst2)
strana = InputBox("Введите задаваемую страну")
НовыйМассивСпортсменов(n, k, NovyiMassiv, SpisokSportsmenov, strana)
ВыводМассива(k, NovyiMassiv, Form2.Lst3)
Form2.Show()
End Sub
End Class
Вариант 7
Module Module1
Public Structure Rectangle
Public Width As Integer
Public Height As Integer
Public Function Line() As String
Line = LSet(Width, 4) + LSet(Height, 4)
End Function
Public Sub Vvodstr()
Width = Val(InputBox("Ширина"))
Height = Val(InputBox("Высота"))
End Sub
Public Function Area() As Integer
Return (Width * Height)
End Function
End Structure
Public Sub vvodmas(ByVal n1 As Integer, ByVal spis1() As Rectangle)
Dim i1 As Integer
For i1 = 0 To n1 - 1
spis1(i1).Vvodstr()
Next
End Sub
Public Sub printmas(ByVal n2 As Integer, ByVal spis2() As Rectangle, ByRef lst As Object)
Dim i2 As Integer
For i2 = 0 To n2 - 1
lst.Items.Add(spis2(i2).Line())
Next
End Sub
Public Sub sortub(ByVal n3 As Integer, ByRef spis3() As Rectangle)
Dim i3, j3 As Integer, buf As Rectangle
For i3 = 0 To n3 - 2
For j3 = i3 + 1 To n3 - 1
If spis3(i3).Area() < spis3(j3).Area() Then
buf = spis3(i3)
spis3(i3) = spis3(j3)
spis3(j3) = buf
End If
Next
Next
End Sub
Public Function rmax(ByVal n4 As Integer, ByVal spis4() As Rectangle) As Integer
Dim i4, imax, max As Integer
max = 0
For i4 = 0 To n4 - 1
If spis4(i4).Area() > max Then
max = spis4(i4).Area()
imax = i4
End If
Next
Return imax
End Function
Public Sub newspis(ByVal n5 As Integer, ByRef spis5() As Rectangle, ByRef nspis() As Rectangle, ByRef newn As Integer)
Dim i5, sum As Integer, sred As Double
sum = 0
For i5 = 0 To n5 - 1
sum += spis5(i5).Area()
Next
sred = sum / (n5 - 1)
Form2.lst3.Items.Add("Средняя площадь=" + Str(sred))
newn = -1
For i5 = 0 To n5 - 1
If spis5(i5).Area() < sred Then
newn += 1
ReDim Preserve nspis(newn)
nspis(newn) = spis5(i5)
End If
Next
End Sub
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sp1(), sp2() As Rectangle, n, t As Integer
n = Val(InputBox("Кол-во прямоугольников"))
ReDim sp1(n - 1)
vvodmas(n, sp1)
lst1.Items.Clear()
lst1.Items.Add("Исходный массив прямоугольников")
printmas(n, sp1, lst1)
lst2.Items.Clear()
lst2.Items.Add("Массив прямоугольников по убыванию")
sortub(n, sp1)
printmas(n, sp1, lst2)
lst1.Items.Add("Прямоугольник с наибольшей площадью")
sp1(rmax(n, sp1)).Line()
Form2.Show()
Form2.lst3.Items.Clear()
Form2.lst3.Items.Add("Новый массив прямоугольников с площадью, меньше средней")
newspis(n, sp1, sp2, t)
printmas(t, sp2, Form2.lst3)
End Sub
End Class
Вариант 8
Module Module1
Public Structure Товар
Public Наименование As String
Public Страна As String
Public КоличествоЭкземпляров As Integer
Public Цена1Шт As Double
Public ОбщаяСтоимостьТовара As Double
Public Sub Ввод()
Наименование = InputBox("Наименование товара")
Страна = InputBox("Страна")
КоличествоЭкземпляров = Val(InputBox("КоличествоЭкземпляров"))
Цена1Шт = Val(InputBox("Цена 1 шт"))
End Sub
Public Function ВычислениеОбщейСтоимости() As Double
Dim X As Double
X = Цена1Шт * КоличествоЭкземпляров
ВычислениеОбщейСтоимости = X
End Function
Public Function Строка() As String
Строка = LSet(Наименование, 30) + LSet(Страна, 20) + Strings.LSet(КоличествоЭкземпляров, 10) + Strings.LSet(Цена1Шт, 10) + Strings.LSet(ОбщаяСтоимостьТовара, 10)
End Function
End Structure
Public Sub ВводМассиваТоваров(ByRef n As SByte, ByRef Spisoktovarov() As Товар)
Dim i As Byte
n = Val(InputBox("Кол-во товаров"))
n = n - 1
ReDim Spisoktovarov(n)
For i = 0 To n
Spisoktovarov(i).Ввод()
Spisoktovarov(i).ОбщаяСтоимостьТовара = Spisoktovarov(i).ВычислениеОбщейСтоимости()
Next
End Sub
Public Sub ВыводМассива(ByVal n As SByte, ByVal Spisoktovarov() As Товар, ByRef Lst As Object)
Dim i As Byte
Dim S As String
Lst.Items.Clear()
If n >= 0 Then
For i = 0 To n
S = Spisoktovarov(i).Строка()
Lst.Items.Add(S)
Next i
End If
End Sub
Public Function ВычислениеОбщейСтоимостиТоваров(ByVal n As SByte, ByVal Spisoktovarov() As Товар) As Double
Dim i As Integer
Dim X As Double
X = 0
For i = 0 To n
X = X + Spisoktovarov(i).ОбщаяСтоимостьТовара
Next
ВычислениеОбщейСтоимостиТоваров = X
End Function
Public Sub НовыйМассивТоваров(ByVal n As SByte, ByRef k As SByte, ByRef NovyiSpisok() As Товар, ByVal Spisoktovarov() As Товар, ByVal ZadannoeNaimenovanie As String)
Dim i As Integer
k = -1
For i = 0 To n
If Spisoktovarov(i).Наименование = ZadannoeNaimenovanie Then
k = k + 1
ReDim Preserve NovyiSpisok(k)
NovyiSpisok(k) = Spisoktovarov(i)
End If
Next
End Sub
Public Sub СортировкаПоАлфавиту(ByVal n As SByte, ByRef Spisoktovarov() As Товар)
Dim i As Integer
Dim izm As Integer
Dim buf As Товар
Do
izm = 0
For i = 0 To n - 1
If Strings.UCase(Spisoktovarov(i).Наименование) > Strings.UCase(Spisoktovarov(i + 1).Наименование) Then
buf = Spisoktovarov(i)
Spisoktovarov(i) = Spisoktovarov(i + 1)
Spisoktovarov(i + 1) = buf
izm = 1
End If
Next
Loop Until izm = 0
End Sub
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SpisokTovarov() As Товар
Dim n As SByte
Dim k As SByte
Dim Stoimost As Double
Dim NovyiSpisok() As Товар
Dim ZadannoeNaimenovanie As String
ВводМассиваТоваров(n, SpisokTovarov)
ВыводМассива(n, SpisokTovarov, Lst1)
Stoimost = ВычислениеОбщейСтоимостиТоваров(n, SpisokTovarov)
MsgBox(Str(Stoimost) + "_Общая стоимость всех товаров на складе")
СортировкаПоАлфавиту(n, SpisokTovarov)
ВыводМассива(n, SpisokTovarov, Lst2)
ZadannoeNaimenovanie = InputBox("Введите задаваемое наименование")
НовыйМассивТоваров(n, k, NovyiSpisok, SpisokTovarov, ZadannoeNaimenovanie)
ВыводМассива(k, NovyiSpisok, Form2.Lst3)
Form2.Show()
End Sub
End Class
Вариант 9
Module Module1
Public Structure Tochki
Public Koordx As Integer
Public Koordy As Integer
Public R As Integer
Public Sub Vvod_str()
Koordx = Val(Rnd() * 10)
Koordy = Val(Rnd() * 10)
End Sub
Public Function Rasst() As Single
Dim ras As Single
ras = ((Math.Abs(Koordx)) ^ 2 + (Math.Abs(Koordy)) ^ 2) ^ 0.5
Rasst = ras
End Function
Public Function Stroka() As String
Stroka = "(" + LSet(Koordx, 5) + ", " + LSet(Koordy, 5) + ")" + vbTab + LSet(Rasst, 7)
End Function
End Structure
Public Sub Vvod_mas(ByRef Mas() As Tochki, ByRef n As Integer)
Dim i As Integer
Do
n = Val(InputBox("Введите число точек"))
Loop Until n > 0
n = n - 1
ReDim Mas(n)
For i = 0 To n
Mas(i).Vvod_str()
Next
End Sub
Public Sub Vivod_mas(ByVal Mas() As Tochki, ByVal n As Integer, ByRef lsta As Object)
Dim i As Integer
For i = 0 To n
lsta.items.add(Mas(i).Stroka)
Next
End Sub
Public Function Okrug(ByVal Mas() As Tochki, ByVal n As Integer) As Integer
Dim k As Integer
k = 0
For i = 0 To n
If Mas(i).Rasst <= Mas(i).R Then
k = k + 1
End If
Next
Okrug = k
End Function
Public Sub sort(ByVal Mas() As Tochki, ByVal n As Integer)
Dim i, j As Integer
Dim buf As Tochki
For i = 0 To n
For j = 0 To n - 1
If Mas(j).Rasst > Mas(j + 1).Rasst Then
buf = Mas(j)
Mas(j) = Mas(j + 1)
Mas(j + 1) = buf
End If
Next
Next
End Sub
Public Sub Formirovanie(ByVal Mas() As Tochki, ByVal n As Integer, ByRef Mas2() As Tochki, ByRef k As Integer)
Dim i As Integer
Dim sum As Single
Dim sred As Single
ReDim Mas2(n)
sum = 0 : sred = 0
For i = 0 To n
sum = sum + Mas(i).Rasst
Next
sred = sum / n
k = -1
For i = 0 To n
If Mas(i).Rasst < sred Then
k = k + 1
Mas2(k) = Mas(i)
End If
Next
ReDim Preserve Mas2(k)
End Sub
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim spis() As Tochki
Dim spis2() As Tochki
Dim n, k As Integer
Dim r As Integer
ReDim spis2(k)
ReDim spis(n)
lsta.Items.Clear()
Vvod_mas(spis, n)
r = Val(InputBox("Введите нужный радиус"))
lsta.Items.Add("Координаты точек")
Vivod_mas(spis, n, lsta)
Okrug(spis, n)
sort(spis, n)
Formirovanie(spis, n, spis2, k)
Form2.Show()
Form2.lstb.Items.Clear()
Form2.lstb.Items.Add("Расстояние от начала координат меньше среднего")
Vivod_mas(spis2, k, Form2.lstb)
End Sub
End Class
Вариант 10
Module Module1
Public Structure Students
Public Marks() As Integer
Public Name As String
Public Group As String
Public Sub Vvod_str()
ReDim Marks(2)
Dim i As Integer
Name = InputBox("Введите имя ученика")
Group = InputBox("Введите группу ученика")
For i = 0 To 2
Marks(i) = Val(Rnd() * 5)
Next
End Sub
Public Function Proverka() As Boolean
Proverka = False
Dim i As Integer
For i = 0 To 2
If Marks(i) <> 3 And Marks(i) <> 2 Then
Proverka = True
End If
Next
End Function
Public Function Stroka() As String
Stroka = LSet(Name, 10) + LSet(Group, 10) + LSet(Marks(0), 1) + ", " + LSet(Marks(1), 1) + ", " + LSet(Marks(2), 1)
End Function
End Structure
Public Sub Vvod_mas(ByRef Mas() As Students, ByRef n As Integer)
Dim i As Integer
Do
n = Val(InputBox("Введите число студентов"))
Loop Until n > 0
n = n - 1
ReDim Mas(n)
For i = 0 To n
Mas(i).Vvod_str()
Next
End Sub
Public Sub Vivod_mas(ByVal Mas() As Students, ByVal n As Integer, ByRef lsta As Object)
Dim i As Integer
For i = 0 To n
lsta.items.add(Mas(i).Stroka)
Next
End Sub
Public Function Bursary(ByVal Mas() As Students, ByVal n As Integer) As Integer
Dim i As Integer
Dim k As Integer
k = 0
For i = 0 To n
If Mas(i).Proverka = False Then
k = k + 1
End If
Next
Bursary = k
End Function
Public Sub sort(ByVal Mas() As Students, ByVal n As Integer)
Dim z As Students
Dim sort As Boolean
n = n - 1
Do
sort = True
For i = 0 To n
If Mas(i).Name > Mas(i + 1).Name Then
sort = False
z = Mas(i)
Mas(i) = Mas(i + 1)
Mas(i + 1) = z
End If
Next
Loop Until sort
End Sub
Public Sub Form(ByVal Mas() As Students, ByVal n As Integer, ByRef Mas2() As Students, ByRef k As Integer, ByVal Gr As String)
Dim i As Integer
k = -1
ReDim Mas2(n)
For i = 0 To n
If Mas(i).Group = Gr Then
k = k + 1
Mas2(k) = Mas(i)
End If
Next
ReDim Preserve Mas2(k)
End Sub
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim spis() As Students
Dim spis2() As Students
Dim n, k, i As Integer
Dim Gr As String
ReDim spis(n)
ReDim spis2(k)
Vvod_mas(spis, n)
Vivod_mas(spis, n, lsta)
sort(spis, n)
Gr = InputBox("Введите нужную группу")
Vivod_mas(spis, n, lstc)
For i = 0 To n
If spis(i).Proverka = True Then
lsta.Items.Add("Scolarship")
Else
lsta.Items.Add("Bad marks")
End If
Next
Bursary(spis, n)
Form(spis, n, spis2, k, Gr)
Form2.Show()
Form2.lstb.Items.Clear()
Vivod_mas(spis2, k, Form2.lstb)
End Sub
End Class
Вариант 11
Module Module1
Public Structure Треугольник
Public ДлинаA As Integer
Public ДлинаB As Integer
Public ДлинаC As Integer
Public Площадь As Integer
Public Sub Ввод()
ДлинаA = Val(InputBox("Длина стороны А"))
ДлинаB = Val(InputBox("Длина стороны B"))
ДлинаC = Val(InputBox("Длина стороны C"))
End Sub
Public Function РассчётПлощади() As Integer
Dim p As Integer
Dim s As Integer
p = ДлинаA + ДлинаB + ДлинаC
s = (p * (p - ДлинаA) * (p - ДлинаB) * (p - ДлинаC)) ^ (1 / 2)
РассчётПлощади = s
End Function
Public Function Строка() As String
Строка = Strings.LSet(ДлинаA, 5) + Strings.LSet(ДлинаB, 5) + Strings.LSet(ДлинаC, 5) + Strings.LSet(Площадь, 10)
End Function
End Structure
Public Sub ВводМассиваТруегольников(ByRef n As SByte, ByRef Spisoktreug() As Треугольник)
Dim i As Byte
n = Val(InputBox("Кол-во треугольников"))
n = n - 1
ReDim Spisoktreug(n)
For i = 0 To n
Spisoktreug(i).Ввод()
Spisoktreug(i).Площадь = Spisoktreug(i).РассчётПлощади()
Next
End Sub
Public Sub ВыводМассива(ByVal n As SByte, ByVal Spisoktreug() As Треугольник, ByRef Lst As Object)
Dim i As Byte
Dim S As String