Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2сем.1РК.Все варианты

.docx
Скачиваний:
9
Добавлен:
09.02.2015
Размер:
64.28 Кб
Скачать

Вариант 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

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