Комментарии в Vb6.5

Тема в разделе "Другие", создана пользователем Karder, 19 дек 2005.

Статус темы:
Закрыта.
  1. Karder

    Karder Гость

    Пожалуйста помогите с комментариями в VB6.5 Ниже представлена программа с комментариями, пожалуйста и справьте там где не верно и допишите там где нет. Мне надо написать ДЛЯ ЧЕГО СЛУЖИТ каждая строчка кода

    Option Explicit ' объявление переменных
    Dim y() As Double 'массив значения функции
    Dim N As Long ' конечное значение функции
    Dim x1 As Double ' начальный аргумент
    Dim x2 As Double ' конечный аргумент
    Dim dx As Double ' шаг приращения аргумента

    Private Sub Command1_Click()
    Dim s As String '
    Dim i As Long ' номер шага вычисления функции
    Dim x As Double ' текущее значение x
    Const f = " #.##e+##" ' объявление числовой константы
    If dx = 0 Then Exit Sub ' Если dx = 0 тогда действие действие не выполняется
    N = (x2 - x1) / dx '
    ReDim Preserve y(N - 1) ' переопределение динамического массива
    For i = 0 To N - 1 ' текущий номер аргумента
    x = x1 + dx * i ' вычисление текущего значения x
    Debug.Print x ' вывод текущего значения x
    y(i) = Sin(x) * Cos(2 * x) ' вычисление массива
    s = s & Format(x, f) & " " & Format(y(i), f) & vbCrLf
    Next ' окончание арифметического цикла
    Text1 = s ' присвоение Text1 значение s
    End Sub

    Private Sub Command2_Click()
    Dim i As Long '
    If dx = 0 Then Exit Sub ' Если dx = 0 тогда действие действие не выполняется
    N = (x2 - x1) / dx '
    ReDim Preserve y(N - 1) ' переопределение динамического массива
    Me.Picture1.Scale (0, 1)-(N, -1)
    Me.Picture1.PSet (0, y(0)), QBColor(9)
    For i = 1 To N - 1 ' для каждого i = 1 до N - 1
    Me.Picture1.Line -(i, y(i)), QBColor(i Mod 16)
    Next
    End Sub

    Private Sub Command3_Click()
    Text1 = "" ' очищает поле таблицы
    Me.Picture1.Cls ' очищает поле графика
    End Sub

    Private Sub Command4_Click()
    Unload Me ' завершение работы программы и выход из нее
    End Sub


    Private Sub Text2_Change()
    subCheckText Me.Text2 ' подконтрольный текст Text2
    End Sub

    Public Sub subCheckText(t As TextBox)
    If IsNumeric(t) Then Exit Sub ' если оператор IsNumeric возвращает истину аргументу t, тогда завершение работы программы
    MsgBox "Введенная информация не число, исправьте!", vbExclamation ' если в любое текстовое поле ввести не число, то появится сообщение
    t.SelStart = 0 ' начальное значение t = 0
    t.SelLength = Len(t) ' определение длины
    End Sub

    Private Sub Text2_KeyPress(KeyAscii As Integer)
    If KeyAscii = 46 Then KeyAscii = 44 ' если будет нажата точка, тогда преобразовать ее в запятую
    End Sub

    Private Sub Text2_LostFocus()
    x1 = Me.Text2 ' значение введеное во 2 текстовое поле присваивается x1
    End Sub

    Private Sub Text3_Change()
    subCheckText Me.Text3
    End Sub

    Private Sub Text3_KeyPress(KeyAscii As Integer)
    If KeyAscii = 46 Then KeyAscii = 44 ' если будет нажата точка, тогда преобразовать ее в запятую
    End Sub

    Private Sub Text3_LostFocus()
    x2 = Me.Text3 ' значение введеное в 3 текстовое поле присваивается x2
    End Sub

    Private Sub Text4_Change()
    subCheckText Me.Text4
    End Sub

    Private Sub Text4_KeyPress(KeyAscii As Integer)
    If KeyAscii = 46 Then KeyAscii = 44 ' если будет нажата точка, тогда преобразовать ее в запятую
    End Sub

    Private Sub Text4_LostFocus()
    dx = Me.Text4 ' значение введеное в 4 текстовое поле присваивается dx
    End Sub
     
  2. Hetman

    Hetman Гость

    А где учишься? не ИУиП?

    Option Explicit ' директива говорящая о том, что требуется обязательное объявление переменных
    ' объявление переменных(ОП):
    Dim y() As Double 'динамический массив
    Dim N As Long ' переменная типа целое длинное
    Dim x1 As Double
    Dim x2 As Double
    Dim dx As Double

    Private Sub Command1_Click()
    Dim s As String ' ОП типа "строка"
    Dim i As Long ' номер шага вычисления функции
    Dim x As Double ' текущее значение x
    Const f = " #.##e+##" ' скорее маска числа явл. константой
    If dx = 0 Then Exit Sub ' Если dx = 0 тогда выход из процедуры
    N = (x2 - x1) / dx '
    ReDim Preserve y(N - 1) ' переопределение динамического массива
    For i = 0 To N - 1 ' текущий номер аргумента
    x = x1 + dx * i ' вычисление текущего значения x
    Debug.Print x ' вывод текущего значения x
    y(i) = Sin(x) * Cos(2 * x) ' вычисление i-го элемента массива
    s = s & Format(x, f) & " " & Format(y(i), f) & vbCrLf ' дополнить s числом x в формате f
    Next ' конец цикла
    Text1 = s '
    End Sub

    Private Sub Command2_Click()
    Dim i As Long '
    If dx = 0 Then Exit Sub ' Если dx = 0 тогда выход из процедуры
    N = (x2 - x1) / dx '
    ReDim Preserve y(N - 1) ' переопределение динамического массива
    Me.Picture1.Scale (0, 1)-(N, -1)
    Me.Picture1.PSet (0, y(0)), QBColor(9)
    For i = 1 To N - 1 ' для каждого i = 1 до N - 1
    Me.Picture1.Line -(i, y(i)), QBColor(i Mod 16)
    Next
    End Sub

    Private Sub Command3_Click()
    Text1 = "" ' очищает поле таблицы
    Me.Picture1.Cls ' очищает поле графика
    End Sub

    Private Sub Command4_Click()
    Unload Me ' завершение работы программы и выход из нее
    End Sub


    Private Sub Text2_Change()
    subCheckText Me.Text2 ' подконтрольный текст Text2
    End Sub

    Public Sub subCheckText(t As TextBox)
    If IsNumeric(t) Then Exit Sub ' если t число , тогда завершение работы программы (!! ЛОГИЧЕСКАЯ ОШИБКА нужно: If Not IsNumeric(t)...)
    MsgBox "Введенная информация не число, исправьте!", vbExclamation ' если в любое текстовое поле ввести не число, то появится сообщение
    t.SelStart = 0 ' установка курсора в начало текстового поля поля
    t.SelLength = Len(t) ' и выделение всего его содержимого
    End Sub
    ...


    А тебе обязательно нужно самому график рисовать? у меня есть примерчик с компонентом. А ещё на моей (пока убогой) страничке имеються help`ы по visual basic. Может пригодяться.
    даю адресс странички потаму, что каждому на мыло не накочаешся, а здесь место 1mb ограничено.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей