VERSION 5.00 Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX" Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX" Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "COMCTL32.OCX" Begin VB.Form frmChart BorderStyle = 1 'Fixed Single Caption = "Построение графика" ClientHeight = 6390 ClientLeft = 45 ClientTop = 330 ClientWidth = 6765 Icon = "Uravnenie_Chart.frx":0000 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 6390 ScaleWidth = 6765 StartUpPosition = 2 'CenterScreen Begin MSComDlg.CommonDialog CommonDialog1 Left = 6360 Top = 4800 _ExtentX = 847 _ExtentY = 847 _Version = 393216 End Begin ComctlLib.ProgressBar ProgressBar1 Height = 225 Left = 4680 TabIndex = 15 ToolTipText = "Построение графика" Top = 6150 Width = 1965 _ExtentX = 3466 _ExtentY = 397 _Version = 327682 Appearance = 1 End Begin VB.Timer Timer2 Left = 6360 Top = 5760 End Begin VB.CommandButton Command2 Caption = "&Сохранить" Height = 375 Left = 5040 MouseIcon = "Uravnenie_Chart.frx":69C2 MousePointer = 99 'Custom TabIndex = 5 ToolTipText = "Для сохранения полученных результатов нажмите кнопку ""Сохранить""" Top = 5280 Width = 1335 End Begin VB.TextBox Text2 Height = 285 Left = 6240 Locked = -1 'True TabIndex = 10 ToolTipText = "Число приближений/итераций" Top = 4080 Width = 375 End Begin VB.TextBox Text1 Height = 285 Left = 4680 Locked = -1 'True TabIndex = 9 ToolTipText = "Окончательное значение корня уравнения с заданной точностью вычисления (если он есть)" Top = 3720 Width = 1935 End Begin VB.PictureBox Picture1 AutoRedraw = -1 'True BackColor = &H80000001& Height = 4455 Left = 120 ScaleHeight = 4395 ScaleWidth = 4395 TabIndex = 7 ToolTipText = "Изображение графика" Top = 120 Width = 4455 End Begin ComctlLib.StatusBar StatusBar1 Align = 2 'Align Bottom Height = 255 Left = 0 TabIndex = 16 Top = 6135 Width = 6765 _ExtentX = 11933 _ExtentY = 450 SimpleText = "" _Version = 327682 BeginProperty Panels {0713E89E-850A-101B-AFC0-4210102A8DA7} NumPanels = 3 BeginProperty Panel1 {0713E89F-850A-101B-AFC0-4210102A8DA7} Alignment = 1 AutoSize = 2 Object.Width = 2990 MinWidth = 2990 Text = "Построение графика" TextSave = "Построение графика" Key = "" Object.Tag = "" Object.ToolTipText = "Состояние" EndProperty BeginProperty Panel2 {0713E89F-850A-101B-AFC0-4210102A8DA7} Style = 6 Alignment = 1 AutoSize = 2 Object.Width = 1323 MinWidth = 1323 TextSave = "10.10.06" Key = "" Object.Tag = "" Object.ToolTipText = "Дата" EndProperty BeginProperty Panel3 {0713E89F-850A-101B-AFC0-4210102A8DA7} Style = 5 Alignment = 1 AutoSize = 2 Object.Width = 873 MinWidth = 873 TextSave = "0:07" Key = "" Object.Tag = "" Object.ToolTipText = "Время" EndProperty EndProperty End Begin RichTextLib.RichTextBox RichTextBox1 Height = 1455 Left = 120 TabIndex = 8 ToolTipText = "Вывод всей информации о последовательных приближенных значениях корня" Top = 4680 Width = 4455 _ExtentX = 7858 _ExtentY = 2566 _Version = 393217 Enabled = -1 'True ReadOnly = -1 'True ScrollBars = 3 TextRTF = $"Uravnenie_Chart.frx":6B14 BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} Name = "MS Sans Serif" Size = 8.25 Charset = 204 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty End Begin VB.Frame Frame1 Height = 1695 Left = 4680 TabIndex = 4 Top = 1200 Width = 1935 Begin VB.OptionButton Option1 Caption = "По шагам" Height = 195 Left = 360 TabIndex = 1 TabStop = 0 'False Top = 720 Width = 1095 End Begin VB.CheckBox Check1 Caption = "Использовать задержку" Height = 375 Left = 240 TabIndex = 3 Top = 1200 Value = 1 'Checked Width = 1455 End Begin VB.OptionButton Option2 Caption = "Всё сразу" Height = 255 Left = 360 TabIndex = 2 Top = 960 Value = -1 'True Width = 1095 End Begin VB.CommandButton Command1 Caption = "Н&ачертить" Default = -1 'True Height = 375 Left = 360 MouseIcon = "Uravnenie_Chart.frx":6C48 MousePointer = 99 'Custom TabIndex = 0 ToolTipText = "Для построения графика исследуемой функции и нахождения её решения нажмите кнопку ""Начертить""" Top = 240 Width = 1215 End End Begin VB.Timer Timer1 Left = 6360 Top = 5280 End Begin VB.CommandButton Command3 Cancel = -1 'True Caption = "Отм&ена" Height = 375 Left = 5040 MouseIcon = "Uravnenie_Chart.frx":6D9A MousePointer = 99 'Custom TabIndex = 6 ToolTipText = "Для отмены построения графика нажмите кнопку ""Отмена""" Top = 5760 Width = 1335 End Begin VB.Label Label4 Caption = "Для сохранения полу- ченных результатов нажмите кнопку ""&Сохранить""." BeginProperty Font Name = "Arial" Size = 8.25 Charset = 204 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 855 Left = 4680 TabIndex = 14 Top = 4320 Width = 1935 End Begin VB.Label Label3 Caption = "Число приближений:" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 204 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 210 Left = 4680 TabIndex = 13 Top = 4080 Width = 1560 End Begin VB.Label Label2 Caption = "Окончательное значение корня уравнения с за- данной точностью вы- числения (если он есть):" BeginProperty Font Name = "Arial" Size = 8.25 Charset = 204 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 855 Left = 4680 TabIndex = 12 Top = 2880 Width = 1935 End Begin VB.Label Label1 Caption = "Для построения графика исследуемой функции и нахождения её решения нажмите кнопку ""Н&ачертить""." BeginProperty Font Name = "Arial" Size = 8.25 Charset = 204 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 1095 Left = 4680 TabIndex = 11 Top = 120 Width = 1935 End End Attribute VB_Name = "frmChart" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Const Step_Speed As Double = 100 'шаг/частота построения графика (=100) Dim i As Double 'переменная, необходимая для выполнения действий в цикле Dim k As Integer 'переменная, необходимая для выполнения действий в цикле Dim n As Integer 'переменная, необходимая для выполнения действий в цикле Dim t As Double 'переменная задания шага построения графика Dim ta As Double 'переменная задания текущего аргумента при построении Dim q1 As Integer, q2 As Integer 'переменные для ответа на вопрос MsgBox Dim mashtab_x As Double, mashtab_y As Double 'переменные задания масштаба Dim shag_x As Double, shag_y As Double 'переменные задания шага Dim gpole As Double, vpole As Double 'переменные задания оступа Dim dzsx As Double, dzsy As Double 'переменные задания высоты/ширины засечек Dim xcnt As Double, ycnt As Double 'переменные для выражения определённого шага (или координаты) Dim yn As Double, yk As Double Private Function Chart() Picture1.ForeColor = RGB(0, 0, 0) 'задание чёрнрго цвета линий Rem "устанавливаем масштаб" mashtab_x = 2.5: mashtab_y = 2.5 'задание размера отображамой области '[PictureBox делится сеткой 3*3 на 9 квадратных единиц {со сдвигами по ширине на 0,25 и по высоте на 0,75}] shag_x = mashtab_x / 5: shag_y = mashtab_y / 5 'цена деления отображаемых значений координат (=0,5) gpole = 0.1 * mashtab_x: vpole = 0.1 * mashtab_y 'задание единиц (координат) горизонтального и вертикального полей (отступов) (=0,25) Picture1.ScaleWidth = mashtab_x * 1.2 'задание горизонтальных координат по масштабу (=3) Picture1.ScaleHeight = mashtab_y * 1.2 'задание вертикальных координат по масштабу (=3) dzsy = Picture1.ScaleHeight * 0.01 'высота горизонтальных засечек (по оси X) (=0,03) dzsx = Picture1.ScaleWidth * 0.01 'длина вертикальных засечек (по оси Y) (=0,03) xcnt = gpole: ycnt = vpole + mashtab_x / 5 'задание вертикального (=0,25) и горизонтального (=0,75) полей (отступов) Rem "рисуем координатные линии" Picture1.Line (0, ycnt)-(Picture1.ScaleWidth, ycnt) 'ось X (0;0,25)-(3;0,75) Picture1.Line (xcnt, 0)-(xcnt, Picture1.ScaleHeight) 'ось Y (0,25;0)-(0,25;3) Rem "печать нуля" Picture1.CurrentX = xcnt - 3 * dzsx 'возвращает горизонтальные координаты местонахождения "нуля" (=0,25-3*0,03=0,25-0,09) Picture1.CurrentY = ycnt + 1 / 3 * dzsy 'возвращает вертикальные координаты местонахождения "нуля" (=0,75+1/3*0,03=0,75+0,01) Picture1.Print "0" 'печатает "0" Rem "рисуем засечки, надписи к ним, названия осей и стрелки" 'По оси X For i = gpole To Picture1.ScaleWidth - 0.9 * gpole Step shag_x 'For i = 0,25 to (3-0,9*0,25) step 0,5 '[Для i принимающее значения от оси Y, где Х=0 до горизонтальной координаты ширины, т.е. X=2,775 с шагом 0,5; 'из-за сдвига координат на gpole=0,25 необходимо из горизонтальной координаты ширины ScaleWidth вычесть значение gpole=0,25, 'умноженное на 0,9, чтобы вычитаемое значение не было кратно шагу - значению переменной shag_x=0,5] If i <> xcnt Then 'Условие необходимо для исключения нулевой засечки Picture1.Line (i, ycnt)-(i, ycnt - dzsy) 'чертит линии засечек (i;0,25)-(i;0,25-0,03) Picture1.CurrentX = i - 7 / 3 * dzsx: Picture1.CurrentY = ycnt + 1 / 3 * dzsy 'CurrentX - возвращает горизонтальные координаты местонахождения "значений координат" горизонтальных засечек (=i-7/3*0,03=i-0,07) 'CurrentY - возвращает вертикальные координаты местонахождения "значений координат" горизонтальных засечек (=0,75+1/3*0,03=0,75+0,01) '[Выравнивание "значений координат" по центру относительно горизонтальных засечек, ниже оси X на 0,01 единиц] Picture1.Print Format(i - xcnt, "0.0") 'печатает "значение координаты" (число) каждой горизонтальной засечки с форматированием (=i-0,25) End If Next i Picture1.Line (Picture1.ScaleWidth * 0.97, ycnt + Picture1.ScaleHeight * 0.01)-(Picture1.ScaleWidth, ycnt) 'печатает нижнюю сторону стрелки (2,91;0,78)-(3;0,75) Picture1.Line (Picture1.ScaleWidth * 0.97, ycnt - Picture1.ScaleHeight * 0.01)-(Picture1.ScaleWidth, ycnt) 'печатает верхнюю сторону стрелки (2,91;0,72)-(3;0,75) Picture1.CurrentX = Picture1.ScaleWidth * 0.97 'возвращает горизонтальную координату буквы "X" (=3*0,97=2,91) Picture1.CurrentY = ycnt + Picture1.ScaleHeight * 0.01 'возвращает вертикальную координату буквы "X" (=0,75+3*0,01=0,75+0,03) Picture1.Print "X" 'печатает букву "X" 'По оси Y For i = vpole To Picture1.ScaleHeight - 0.9 * vpole Step shag_y 'For i = 0,25 to (3-0,9*0,25) step 0,5 '[Для i принимающее значения от горизонтального поля (отступа), где Y=0 до вертикальной координаты ширины, т.е. Y=2,775 с шагом 0,5; 'из-за сдвига координат на vpole=0,25 необходимо из вертикальной координаты высоты ScaleHeight вычесть значение vpole=0,25, 'умноженное на 0,9, чтобы вычитаемое значение не было кратно шагу - значению переменной shag_y=0,5] If i <> ycnt Then 'Условие необходимо для исключения нулевой засечки Picture1.Line (xcnt, i)-(xcnt + dzsx, i) 'чертит линии засечек (0,25;i)-(0,25+0,03;i) Picture1.CurrentX = xcnt - 20 / 3 * dzsx - 0.01: Picture1.CurrentY = i - 0.02 * Picture1.ScaleHeight 'CurrentX - возвращает горизонтальные координаты местонахождения "значений координат" вертикальных засечек (=0,25-20/3*0,03-0.01=0,25-0,21) 'CurrentY - возвращает вертикальные координаты местонахождения "значений координат" вертикальных засечек (=i-0,02*3=i-0,06) '[Выравнивание "значений координат" по центру относительно вертикальных засечек, левее оси Y на 0,21 единицу] If (ycnt - i) < 0 Then 'Условие необходимо для выравнивания "значений координат" (чисел) вертикальных засечек вдоль оси Y Picture1.Print Format(ycnt - i, "0.0") 'печатает "значение координаты" (число) каждой вертикальной засечки с форматированием (=0,75-i) Else Picture1.Print ycnt - i 'печатает "значение координаты" (число) каждой вертикальной засечки без форматирования (=0,75-i) End If End If Next i Picture1.Line (xcnt - Picture1.ScaleHeight * 0.01, Picture1.ScaleHeight * 0.04)-(xcnt, 0) 'печатает левую сторону стрелки (0,22;0,12)-(0,25;0) Picture1.Line (xcnt + Picture1.ScaleHeight * 0.01, Picture1.ScaleHeight * 0.04)-(xcnt, 0) 'печатает правую сторону стрелки (0,28;0,12)-(0,25;0) Picture1.CurrentX = Picture1.ScaleWidth * 0.05 'возвращает горизонтальную координату буквы "Y" (=3*0,05=0,15) Picture1.CurrentY = 0 'возвращает вертикальную координату буквы "X" (=0) Picture1.Print "Y" 'печатает букву "Y" Rem "Печать названия графика" Picture1.ForeColor = QBColor(15) Picture1.CurrentX = 0.47 / 3 * Picture1.ScaleWidth '(=0,47/3*3) Picture1.CurrentY = 0.001 * Picture1.ScaleHeight '(=0,001*3) Picture1.Print "График функции 0,1*x^2-x*Ln(x); [" & Format(xn, "0.00") & ".." & Format(xk, "0.00") & "]" Picture1.ForeColor = QBColor(0) 'Rem "Задание шага/частоты построения" t = (Abs(xk - xn)) / Step_Speed 'шаг (частота) построения равен модулю разности координат x концов отрезка, делённому на частоту построения (=100) 'Abs - возврат модуля (абсолютного значения) числа x = xcnt + xn: ta = xn 'задание текущей координаты x - при построении, текущего аргумента ta - при нахождении значения функции y от переменной x y = ycnt - Func(ta) 'задание текущий координаты y по заданному значению текущей координаты x Rem "Построение графика линиями (1)" 'Do While ta <= xk ' x0 = x + t: ta = ta + t ' If ta > xk Then Exit Do '"чтобы лишнего не строить" ' y0 = ycnt - Func(ta) ' Picture1.Line (x0, y0)-(x, y), RGB(255, 0, 0) ' x = x0: y = y0 'Loop Rem "Построение графика линиями (2)" ProgressBar1.Max = 100 If Check1.Value = 1 Then Timer1.Interval = 1 'Если указано "Использовать задержку", то Таймер вкючает отчёт интервала ElseIf Check1.Value = 0 Then Do While ta <= xk x0 = x + t: ta = ta + t If ta > xk Then ProgressBar1.Value = 0 Stock_TakingOfTheSolution Exit Do '"чтобы лишнего не строить" End If y0 = ycnt - Func(ta) ProgressBar1.Value = ProgressBar1.Value + 1 If ProgressBar1.Value = 100 Then ProgressBar1.Value = 0 Picture1.Line (x0, y0)-(x, y), RGB(255, 0, 0) 'задание простоения точек красного цвета x = x0: y = y0 Loop ProgressBar1.Value = 0 End If Rem "Построение графика точками (1)" 'Do While ta <= xk ' x = x + t: ta = ta + t ' If ta > xk Then Exit Do '"чтобы лишнего не строить" ' y = ycnt - Func(ta) ' ProgressBar1.Value = ProgressBar1.Value + 1 ' If ProgressBar1.Value = 100 Then ProgressBar1.Value = 0 ' Picture1.PSet (x, y), RGB(255, 0, 0) 'задание простоения точек красного цвета ' If Check1.Value = 1 Then ' For i = 1 To 10000 ' Next i ' ElseIf Check1.Value = 0 Then ' End If 'Loop Rem "Построение графика точками (2)" 'For k = xn To xk Step 0.00001 'x = x + t: ta = ta + t 'If ta > xk Then Exit For '"чтобы лишнего не строить" 'y = ycnt - Func(ta) 'Picture1.PSet (x, y), vbRed 'построение графика 'Next End Function Private Function Stock_TakingOfTheSolution() If Iterations > 0 Then Lines 'Если уравнение имеет решение (корень), то функция Lines чертит линии на графике Else AbsenceOfTheSolutions 'Если уравнение не имеет решение (корень), то функция AbsenceOfTheSolutions выдаёт сообщение об отсутствии решения (корня) уравнения End If Picture1.ForeColor = QBColor(0) End Function Private Function Lines() ProgressBar1.Max = Iterations Rem "Построение хорд и линий перпендикуляра и маркировка точками (1)" k = 2 Timer2.Interval = 1 'Rem "Построение хорд и линий перпендикуляра и маркировка точками (2)" 'Picture1.ForeColor = QBColor(7) 'задание тёмно-серого цвета линий 'For k = 2 To Iterations 'Picture1.Line (xcnt + MasXn1(k - 1), ycnt - Func(MasXn1(k - 1)))-(xcnt + MasXk1(k - 1), ycnt - Func(MasXk1(k - 1))) 'построение хорд ' Picture1.Line (xcnt + MasXn1(k), ycnt)-(xcnt + MasXn1(k), ycnt - Func(MasXn1(k))) 'построение линий перпендикуляра ' Picture1.ForeColor = QBColor(11) 'задание маркеровки голубого цвета ' Picture1.FillStyle = 0 'задание полного закрашивания/заливки ' Picture1.Circle (xcnt - 1 / 3 * dzsx + MasXn1(k), ycnt - 1 / 3 * dzsy), 0.015, QBColor(11) 'задание маркировки окружностями голубого цвета ' Picture1.FillStyle = 1 'задание прозрачного фона ' Picture1.ForeColor = QBColor(7) 'задание тёмно-серого цвета линий ' ProgressBar1.Value = ProgressBar1.Value + 1 ' If ProgressBar1.Value = 100 Then ProgressBar1.Value = 0 ' If Option1.Value = True Then ' For i = 1 To 5000000 ' Next i ' ElseIf Option1.Value = False Then ' End If 'Next k End Function Private Function AbsenceOfTheSolutions() Rem "Функция печати сообщения об отсутствии решения" Picture1.ForeColor = QBColor(9) 'задание синего цвета для вывода сообщения об отсутствии корня уравнения Picture1.CurrentX = 0.36 / 3 * Picture1.ScaleWidth '(=0,36/3*3) Picture1.CurrentY = 0.12 / 3 * Picture1.ScaleHeight '(=0,12/3*3=0,09) Picture1.Print "На заданном интервале корня нет! Y не равен 0!" Text1.Text = "Решений нет!" Command1.Enabled = True Command2.Enabled = True End Function Private Sub Command1_Click() 'frmChart.MousePointer = 99 'frmChart.MouseIcon = "D:\Temp\Wait.cur" 'Picture1.MousePointer = 99 'Picture1.MouseIcon = "D:\Temp\Wait.cur" Command1.Enabled = False Command2.Enabled = False Command3.Caption = "&Закрыть" Command3.ToolTipText = "Нажмите кнопку " & Chr(34) & "Закрыть" & Chr(34) & ", чтобы закрыть окно построения графика" RichTextBox1.Text = "": Text1.Text = "": Text1.Text = "": Picture1.Cls 'очистка текстовых и графического полей If CheckOfEnteredData = False Then Exit Sub 'условие выполнения функции достоверности Text1.Text = Format(Chord(xn, xk, Epsilon), "0.000 000 000 000 000") 'вычисление решения заданной функции методом хорд и печать Text2.Text = Iterations 'печать числа итераций Chart End Sub Private Sub Command2_Click() 'Установка свойства Cancel в положение True для избежания/"перехвата" ошибок CommonDialog1.CancelError = True On Error GoTo ErrHandler Rem "Сохранение результата вычислений в текстовой файл" q1 = MsgBox("Вы хотите сохранить результат?", vbYesNoCancel + vbQuestion, "Сохранение результата") If q1 = vbYes Then Dim s As String CommonDialog1.FilterIndex = 1 CommonDialog1.ShowSave File = CommonDialog1.FileName Open File For Output As #1 s = "Решение уравнения 0,1*x^2-x*ln(x) методом хорд" & vbCrLf s = s & "Точность вычислений: " & Epsilon & vbCrLf s = s & "Интервал: [" & xn & "; " & xk & "]" & vbCrLf s = s & "Число приближений (итераций): " & Iterations & vbCrLf s = s & "----------------------------------------------------------" & vbCrLf Print #1, s Print #1, RichTextBox1.Text Close #1 ElseIf q1 = vbNo Then ElseIf q1 = vbCancel Then Exit Sub End If Rem "Сохранение графика в графический файл" q2 = MsgBox("Вы хотите сохранить график?", vbYesNoCancel + vbQuestion, "Сохранение графика") If q2 = vbYes Then CommonDialog1.FilterIndex = 2 CommonDialog1.ShowSave File = CommonDialog1.FileName SavePicture frmChart.Picture1.Image, File ElseIf q2 = vbNo Then Unload frmChart ElseIf q2 = vbCancel Then Exit Sub End If 's = s & "Решение уравнения: " & x1 & vbCrLf 'Read_outcome 'Look_chart 'sf = File1.Path + "\" + Text1.Text ErrHandler: 'Пользователь нажал кнопку Cancel Exit Sub End Sub Private Sub Command3_Click() Unload frmChart End Sub Private Sub Form_Load() Check1.Value = 1 Command1.Enabled = True Command2.Enabled = False Command3.Caption = "Отм&ена" Command3.ToolTipText = "Для отмены построения графика нажмите кнопку " & Chr(34) & "Отмена" & Chr(34) 'Установка фильтров CommonDialog1.Filter = "Текст (*.txt)|*.txt|Текст в формате RTF (*.rtf)|*.rtf|Рисунок (*.bmp)|*.bmp|Все файлы (*.*)|*.*" 'Задание фильтра по умолчанию CommonDialog1.FilterIndex = 1 Option1.Enabled = True Option2.Enabled = True Option1.Value = False Option2.Value = True Picture1.BackColor = &H80000001 '(&H80000001) Picture1.ForeColor = QBColor(0) 'начальное задание линий чёрного цвета ProgressBar1.Value = 0 Timer2.Interval = 0 End Sub Private Sub Option1_Click() Option1.Value = True Option2.Value = False End Sub Private Sub Option2_Click() Option2.Value = True Option1.Value = False End Sub Private Sub Picture1_DblClick() RichTextBox1 = "": Text1.Text = "": Text2.Text = "": Picture1.Cls 'очистка текстовых и графического полей End Sub Public Sub Timer1_Timer() x0 = x + t: ta = ta + t y0 = ycnt - Func(ta) Picture1.Line (x0, y0)-(x, y), RGB(255, 0, 0) 'задание простоения точек красного цвета x = x0 y = y0 If ta > xk Then ProgressBar1.Value = 0 Stock_TakingOfTheSolution Timer1.Interval = 0 Else ProgressBar1.Value = ProgressBar1.Value + 1 End If End Sub Private Sub Timer2_Timer() Picture1.ForeColor = QBColor(7) 'задание тёмно-серого цвета линий Picture1.Line (xcnt + MasXn1(k - 1), ycnt - Func(MasXn1(k - 1)))-(xcnt + MasXk1(k - 1), ycnt - Func(MasXk1(k - 1))) 'построение хорд Picture1.Line (xcnt + MasXn1(k), ycnt)-(xcnt + MasXn1(k), ycnt - Func(MasXn1(k))) 'построение линий перпендикуляра Picture1.ForeColor = QBColor(11) 'задание маркеровки голубого цвета Picture1.FillStyle = 0 'задание полного закрашивания/заливки Picture1.Circle (xcnt - 1 / 3 * dzsx + MasXn1(k), ycnt - 1 / 3 * dzsy), 0.015, QBColor(11) 'задание маркировки окружностями голубого цвета Picture1.FillStyle = 1 'задание прозрачного фона If Option1.Value = True Then Timer2.Interval = 500 If k >= Iterations Then Rem "Печать корня уравнения" Picture1.ForeColor = QBColor(9) 'задание синего цвета для вывода корня уравнения Picture1.CurrentX = xcnt + x1 - dzsx '(=0,25+x1-0,03) Picture1.CurrentY = ycnt - 5 * dzsy '(=0,75-5*0,03=0,6) Picture1.Print Format(x1, "0.000 000") 'печать корня уравнения на графике Command1.Enabled = True Command2.Enabled = True ProgressBar1.Value = 0 Timer2.Interval = 0 Else ProgressBar1.Value = ProgressBar1.Value + 1 If ProgressBar1.Value = Iterations Then ProgressBar1.Value = 0 End If k = k + 1 End Sub