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

курсовик по КП Visual Basic часть 1

.doc
Скачиваний:
16
Добавлен:
16.12.2013
Размер:
1.02 Mб
Скачать

Государственное образовательное учреждение

Высшего профессионального образования

«ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УПРАВЛЕНИЯ»

ЗАДАНИЕ №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

Исходные данные: зарплата каждого из К арендаторов за каждый день рабочей недели. Исходные данные определяются путем обращения к датчику случайных чисел. Задание:

  1. Для любого арендатора определить день, в который получена наибольшая зарплата и её значение.

  2. Для любого дня определить среднее значение зарплаты арендаторов.

Рис. 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