Пример выполнения лабораторной работы №1 по предмету "Высокоуровневые методы информатики и программирования"
Лабораторная работа №1
"Ветвление вычислительного процесса. Циклы".
Задание: Вариант 5
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX.
где а,Ь,с - действительные числа.
Словесный алгоритм программы:
1. Начало
2. Ввод исходных данных: Хнач, Хкон, dX, a,b,c.
3. Начинаем цикл по х от Хнач до Хкон с шагом dX
4. если x<0 и b не равно 0 то F=a-x/10+b, переход на 7
5. если x>0 и b=0 то F=(x-a)/(x-c), переход на 7
6. в остальных случаях F=3*x+2/c
7. прорисовка графика и если цикл не закончен, то переход на следующий элемент цикла.
8. Конец.
Блок-схема:
Реализация:
Код модуля
Public Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Public Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
Option Explicit
Public cx As Single
Public cy As Single
Private Sub Command1_Click()
Dim lngCursor As Long
Dim strPathToCursor As String
Dim Xn As Double
Dim Xk As Double
Dim dX As Double
Dim a As Double
Dim b As Double
Dim c As Double
Dim Fi As Double 'Рисуемая функция
Dim i As Double 'Её аргумент
On Error Resume Next
Picture1.Cls
Picture1.DrawWidth = UpDown1.Value
Xn = Val(Text1.Text)
Xk = Val(Text2.Text)
dX = Val(Text3.Text)
a = Val(Text4.Text)
b = Val(Text5.Text)
c = Val(Text6.Text)
For i = Xn To Xk Step dX
If i < 0 And b <> 0 Then
Fi = a - (i / (10 + b))
Picture1.PSet (i, Fi), &HFF&
ElseIf i > 0 And b = 0 Then
Fi = (i - a) / (i - c)
Picture1.PSet (i, Fi), &HFF0000
Else
Fi = 3 * i + 2 / c
Picture1.PSet (i, Fi), &HFF00&
End If
Next i
End Sub
Private Sub Form_Activate()
Picture1.Scale (-20, 20)-(20, -20)
Picture1.Line (-20, 0)-(20, 0)
Picture1.Line (0, 20)-(0, -20)
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = True
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = False
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cx = X
cy = Y
End Sub
Private Sub Timer1_Timer()
If Option1.Value = True Then
Picture1.DrawWidth = UpDown1.Value
Picture1.PSet (cx, cy), &H40&
End If
If Option2.Value = True Then
Picture1.DrawWidth = 20
Picture1.PSet (cx, cy), Form1.BackColor
End If
Debug.Print cx
End Sub
Private Sub UpDown1_Change()
Text7.Text = UpDown1.Value
Text7.Refresh
Picture1.DrawWidth = UpDown1.Value
If Check1.Value = 1 Then Command1_Click
End Sub
Private Sub Option1_Click()
Picture1.MouseIcon = Image2.Picture
End Sub
Private Sub Option2_Click()
Picture1.MouseIcon = Image1.Picture
End Sub