курсовик по КП Visual Basic часть 1
.docГосударственное образовательное учреждение
Высшего профессионального образования
«ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УПРАВЛЕНИЯ»
ЗАДАНИЕ №1
Составить программу расчета формулы A+B*6
Рис. 1
Рис.2
ПРОГРАММНЫЙ КОД:
Private Sub Command1_Click()
Dim A As Single
Dim B As Single
A = Val(Text1.Text)
B = Val(Text2.Text)
Label4.Caption = A + B * 6
End Sub
ЗАДАНИЕ № 2
Составить программу вычисления Y:
Y = x*Exp(-x) при 0<x<=5
Y = Sin(x) – Exp(x)+5 при x<=-3 или x>8
Рис. 3
Рис. 4
Рис. 5
Рис. 6
ПРОГРАММНЫЙ КОД:
Private Sub Command1_Click()
Dim x As Single, y As Single
x = Val(Text1.Text)
Label2.Caption = ""
Text2.Text = ""
Label3.Caption = ""
Label4.Caption = ""
If x > 0 And x <= 5 Then
y = x * Exp(-x)
Label2.Caption = "Функция вычисляется по формуле"
Text2.Text = " x * Exp(-x)"
Label3.Caption = "Получен результат Y ="
Label4.Caption = Format(y, "###0.0000")
ElseIf x <= -3 Or x > 8 Then
y = Sin(x) - Exp(x) + 5
Label2.Caption = "Функция вычисляется по формуле"
Text2.Text = "Sin(x) - Exp(x) + 5"
Label3.Caption = "Получен результат Y ="
Label4.Caption = Format(y, "###0.0000")
Else
Label2.Caption = "Функция не определена"
Label3.Caption = "Результата нет"
End If
End Sub
ЗАДАНИЕ № 3
Исходные данные: наименование марки стали, количество выпуска по плану, % выполнения плана. Выдать справку: наименование марки стали, выработано.
Рис. 7
Рис. 8
Рис. 9
ПРОГРАММНЫЙ КОД:
Form 1:
Private Sub Command1_Click()
Dim name As String
Dim plan, procent, itog As Single
name = Text1.Text
plan = Val(Text2.Text)
procent = Val(Text3.Text)
Load Form2 'Unload Form2
Form2.Show 'Form2.Hide
Form2.Text1 = name
Form2.Label5.Caption = Format(((procent / 100) * plan), "#####0.0###")
End Sub
Form 2:
Private Sub Command1_Click()
End
End Sub
ЗАДАНИЕ 4
Исходные данные: зарплата каждого из К арендаторов за каждый день рабочей недели. Исходные данные определяются путем обращения к датчику случайных чисел. Задание:
-
Для любого арендатора определить день, в который получена наибольшая зарплата и её значение.
-
Для любого дня определить среднее значение зарплаты арендаторов.
Рис. 10
Рис. 11
ПРОГРАММНЫЙ КОД:
Option Explicit
Dim A() As Currency
Dim N As Byte, M As Byte
Dim k1 As Byte, k2 As Byte
Dim MX1 As Currency
Private Sub Form_Load()
Randomize
End Sub
Private Sub HScroll1_Change()
Text1.Text = HScroll1.Value
VScroll1.Max = HScroll1.Value
End Sub
Private Sub HScroll2_Change()
Text2.Text = HScroll2.Value
VScroll2.Max = HScroll2.Value
End Sub
Private Sub Image3_Click()
N = CByte(Text1.Text)
M = CByte(Text2.Text)
ReDim A(1 To N, 1 To M) As Currency
Dim i As Byte, j As Byte
Form1.Picture1.Cls
For i = 1 To N
For j = 1 To M
A(i, j) = CCur(Rnd * 499 + 500)
Form1.Picture1.Print " "; Format(A(i, j), "000.00"); Tab(10 * j);
Next j
Form1.Picture1.Print
Next i
End Sub
Private Sub Image4_Click()
Dim i As Byte, S As Currency
k1 = CByte(Text3.Text): k2 = 1: MX1 = A(k1, 1)
For i = 2 To M
If A(k1, i) > MX1 Then MX1 = A(k1, i): k2 = i
Next
Form1.Picture2.Cls
Form1.Picture2.Print "Арендатор "; k1; "в день"; k2; " получает максимальную з/п = "; Format(MX1, "000.00")
End Sub
Private Sub Image5_Click()
Dim i As Byte, S As Currency
k1 = CByte(Text4.Text): S = 0
For i = 1 To N
S = S + A(i, k1)
Next
S = S / M
Form1.Picture3.Cls
Form1.Picture3.Print "В день"; k1; " средняя зарплата арендаторов равна= "; Format(S, "000.00")
End Sub
Private Sub Image6_Click()
End
End Sub
Private Sub Option1_Click()
Image3.Picture = Image2.Picture
Image4.Picture = Image1.Picture
Image5.Picture = Image1.Picture
Image6.Picture = Image1.Picture
Image3.ToolTipText = "Нажми меня"
Image4.ToolTipText = ""
Image5.ToolTipText = ""
Image6.ToolTipText = ""
End Sub
Private Sub Option2_Click()
Image3.Picture = Image1.Picture
Image4.Picture = Image2.Picture
Image5.Picture = Image1.Picture
Image6.Picture = Image1.Picture
Image3.ToolTipText = ""
Image4.ToolTipText = "Нажми меня"
Image5.ToolTipText = ""
Image6.ToolTipText = ""
End Sub
Private Sub Option3_Click()
Image3.Picture = Image1.Picture
Image4.Picture = Image1.Picture
Image5.Picture = Image2.Picture
Image6.Picture = Image1.Picture
Image3.ToolTipText = ""
Image4.ToolTipText = ""
Image5.ToolTipText = "Нажми меня"
Image6.ToolTipText = ""
End Sub
Private Sub Option4_Click()
Image3.Picture = Image1.Picture
Image4.Picture = Image1.Picture
Image5.Picture = Image1.Picture
Image6.Picture = Image2.Picture
Image3.ToolTipText = ""
Image4.ToolTipText = ""
Image5.ToolTipText = ""
Image6.ToolTipText = "Нажми меня"
End Sub
Private Sub VScroll1_Change()
Text3.Text = VScroll1.Value
End Sub
Private Sub VScroll2_Change()
Text4.Text = VScroll2.Value
End Sub
ЗАДАНИЕ №5
Составить функцию для вычисления:
Y=1+2/x+(2*3)/x^2+(2*3*2)/x^3+(2*3*2*3)/x^4+…
принимая, что модуль “x” больше 3. Вычисление продолжать, пока модуль разности между слагаемым и его предыдущим значением больше малой заданной величины (точности вычисления). Напечатать таблицу значении функции “Y” для всех значений аргумента “x” от заданного до заданного конечного с заданным шагом изменений.
Рис. 12
Рис. 13
Рис. 14
Рис. 15
Рис. 16
ПРОГРАММНЫЙ КОД:
Form 1:
Private Sub Command1_Click()
Dim x!
x! = Val(Text1.Text)
tv! = Val(Text2.Text)
Text3.Text = Str(Y(x!, tv!))
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
Load Form2
Form2.Show
End Sub
Form 2:
Private Sub Command1_Click()
Dim xn!, xk!, x!, st!, i%
xn! = Val(Text1.Text)
xk! = Val(Text2.Text)
st! = Val(Text3.Text)
x! = xn!: i% = 0
Form2.Picture1.Cls: Print tv
'Print tv!
Form2.Picture1.Print " Таблица"
Form2.Picture1.Print "------------------------------------------"
Form2.Picture1.Print " X Y"
Form2.Picture1.Print "------------------------------------------"
Do
Form2.Picture1.Print " "; Format(x, "00.00"), Format(Y(x!, tv!), "000.000")
i% = i% + 1
If i Mod 6 = 0 Then
Form2.Picture1.Print "------------------------------------------"
MsgBox "Нажми ОК", 16, "Продолжение таблицы"
Form2.Picture1.Cls: Print
Form2.Picture1.Print " Таблица"
Form2.Picture1.Print "------------------------------------------"
Form2.Picture1.Print " X Y"
Form2.Picture1.Print "------------------------------------------"
End If
x! = x! + st!
Loop Until x! > xk!
Form2.Picture1.Print "------------------------------------------"
End Sub
Модуль 1:
Public tv!
Function Y(ByVal x As Single, ByRef t As Single) As Single
Dim pr!, sl!, s!
Dim m As Byte, zn%
s = 0: pr = 0: sl = 1: m = 2: zn = 1
Do While Abs(pr - sl) > t
s = s + sl
pr = sl: sl = sl * m / x
m = m + zn: zn = -zn
Loop
Y! = s!
End Function