Меню

Statement invalid outside type block ошибка vba

Permalink

Cannot retrieve contributors at this time

title keywords f1_keywords ms.prod ms.assetid ms.date ms.localizationpriority

Statement invalid outside Type block

vblr6.chm1040053

vblr6.chm1040053

office

287d4cf7-257a-2cc4-2e5d-42e578c8b862

06/08/2017

medium

The syntax for declaring variables outside a Type…End Type statement block is different from the syntax for declaring the elements of the user-defined type. This error has the following causes and solutions:

  • You tried to declare a variable outside a Type…End Type block or outside a statement. When declaring a variable with an As clause outside a Type…End Type block, use one of the declaration statements, Dim, ReDim, Static, Public, or Private. For example, the first declaration of MyVar in the following code generates this error; the second and third declarations of MyVar are valid:
MyVar As Double ' Invalid declaration syntax. 
 
Dim MyVar As Double 
 
Type AType 
MyVar As Double ' This is valid declaration syntax 
End Type ' because it's inside a Type block. 
  • You used an End Type statement without a corresponding Type statement. Check for an unmatched End Type, and either precede its block with a Type statement, or delete the End Type statement if it isn’t needed.

For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).

[!includeSupport and feedback]

This repository has been archived by the owner on Aug 31, 2018. It is now read-only.

Permalink

Cannot retrieve contributors at this time

title keywords f1_keywords ms.prod ms.assetid ms.date

Statement invalid outside Type block

vblr6.chm1040053

vblr6.chm1040053

office

287d4cf7-257a-2cc4-2e5d-42e578c8b862

06/08/2017

The syntax for declaring variables outside a Type…End Type statement block is different from the syntax for declaring the elements of theuser-defined type. This error has the following causes and solutions:

  • You tried to declare a variable outside a Type…End Type block or outside a statement. When declaring a variable with an As clause outside a Type…End Type block, use one of the declaration statements, Dim, ReDim, Static, Public, or Private. For example, the first declaration of MyVar in the following code generates this error; the second and third declarations of MyVar are valid:
MyVar As Double ' Invalid declaration syntax. 
 
Dim MyVar As Double 
 
Type AType 
MyVar As Double ' This is valid declaration syntax 
End Type ' because it's inside a Type block. 
  • You used an End Type statement without a corresponding Type statement. Check for an unmatched End Type, and either precede its block with a Type statement, or delete the End Type statement if it isn’t needed.

For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).

This repository has been archived by the owner on Aug 31, 2018. It is now read-only.

Permalink

Cannot retrieve contributors at this time

title keywords f1_keywords ms.prod ms.assetid ms.date

Statement invalid outside Type block

vblr6.chm1040053

vblr6.chm1040053

office

287d4cf7-257a-2cc4-2e5d-42e578c8b862

06/08/2017

The syntax for declaring variables outside a Type…End Type statement block is different from the syntax for declaring the elements of theuser-defined type. This error has the following causes and solutions:

  • You tried to declare a variable outside a Type…End Type block or outside a statement. When declaring a variable with an As clause outside a Type…End Type block, use one of the declaration statements, Dim, ReDim, Static, Public, or Private. For example, the first declaration of MyVar in the following code generates this error; the second and third declarations of MyVar are valid:
MyVar As Double ' Invalid declaration syntax. 
 
Dim MyVar As Double 
 
Type AType 
MyVar As Double ' This is valid declaration syntax 
End Type ' because it's inside a Type block. 
  • You used an End Type statement without a corresponding Type statement. Check for an unmatched End Type, and either precede its block with a Type statement, or delete the End Type statement if it isn’t needed.

For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).

  • Home
  • VBForums
  • Visual Basic
  • Visual Basic 6 and Earlier
  • Statement Invalid outside TypeBlock error

  1. Dec 20th, 2005, 05:27 PM


    #1

    VTuser is offline

    Thread Starter


    New Member


    Question Statement Invalid outside TypeBlock error

    I am getting the following error

    Compile error
    Statement Invalid outside TypeBlock

    «Function DecimalTime» is highlighted in yellow

    what does it mean?? and thoughts on how to fix it??

    code below

    Private Sub cmdIn_Click()
    TimeIn = DecimalTime
    AddToDB
    End Sub

    Function DecimalTime()

    ClockTime As Date

    If Minute(Time) >= 0 And Minute(Time) <= 7 Then
    ClockTime = DateAdd(«n», -Minute(Time), Time)
    ElseIf Minute(Time) >= 8 And Minute(Time) <= 22 Then
    ClockTime = DateAdd(«n», 15 — Minute(Time), Time)
    ElseIf Minute(Time) >= 23 And Minute(Time) <= 37 Then
    ClockTime = DateAdd(«n», 30 — Minute(Time), Time)
    ElseIf Minute(Time) >= 38 And Minute(Time) <= 52 Then
    ClockTime = DateAdd(«n», 45 — Minute(Time), Time)
    Else
    ClockTime = DateAdd(«n», 60 — Minute(Time), Time)
    End If

    DecimalTime = Format(ClockTime * 24, «0.00»)

    End Function


  2. Dec 20th, 2005, 05:36 PM


    #2

    Re: Statement Invalid outside TypeBlock error

    Shouldn’t your function be declared to return something????


  3. Dec 20th, 2005, 05:40 PM


    #3

    Re: Statement Invalid outside TypeBlock error

    Functions return Variants by default so that’s not the problem, but where do you have the function coded? Is there a Type block above it that doesn’t have an End Type?


  4. Dec 20th, 2005, 05:45 PM


    #4

    Re: Statement Invalid outside TypeBlock error

    Just change ‘ClockTime As Date’ to ‘Dim ClockTime As Date’.

    Ash Nazg durbatuluk, Ash Nazg gimbatul, Ash Nazg tharkathuluk, Agh barzum-ishi krimpatul.


  5. Dec 20th, 2005, 05:46 PM


    #5

    Re: Statement Invalid outside TypeBlock error

    ‘Dim’ is required for declaring variables whenever it’s outside a «Type» block.

    Ash Nazg durbatuluk, Ash Nazg gimbatul, Ash Nazg tharkathuluk, Agh barzum-ishi krimpatul.


  6. Dec 20th, 2005, 05:48 PM


    #6

    Re: Statement Invalid outside TypeBlock error

    Quote Originally Posted by Frodo_Baggins

    Just change ‘ClockTime As Date’ to ‘Dim ClockTime As Date’.

    Of course! I missed that because he said that the function header was the problem.


  7. Dec 20th, 2005, 06:57 PM


    #7

    VTuser is offline

    Thread Starter


    New Member


    Re: Statement Invalid outside TypeBlock error

    since I am dealing with the same app I have two more issues

    I am entering the system time, which I am converting to decimal into an access 2003 database field called IN that has data type date/time

    two issues

    1. the system time is 6:37PM the time that’s entered into the access database is 6:51PM

    as you can notice I am rounding up or down depending on the minutes in 15 minute intervals.
    Thus why am I getting that extra minute added. I think it has to do with the access database but not sure
    any ideas????

    2. How can I change in access to the field does not read 6:51PM but 6.50 (decimal format))

    any ideas

    Private Sub cmdIn_Click()
    TimeIn = DecimalTime
    AddToDB
    End Sub

    Function DecimalTime()

    Dim ClockTime As Date

    If Minute(Time) >= 0 And Minute(Time) <= 7 Then
    ClockTime = DateAdd(«n», -Minute(Time), Time)

    ElseIf Minute(Time) >= 8 And Minute(Time) <= 22 Then
    ClockTime = DateAdd(«n», 15 — Minute(Time), Time)

    ElseIf Minute(Time) >= 23 And Minute(Time) <= 37 Then
    ClockTime = DateAdd(«n», 30 — Minute(Time), Time)

    ElseIf Minute(Time) >= 38 And Minute(Time) <= 52 Then
    ClockTime = DateAdd(«n», 45 — Minute(Time), Time)

    Else
    ClockTime = DateAdd(«n», 60 — Minute(Time), Time)
    End If

    DecimalTime = Format(ClockTime * 24, «0.00»)

    Private Sub AddToDB()
    rs.AddNew
    rs.Fields(«IN») = TimeIn
    rs.Fields(«Site») = cboSites.Text
    rs.Fields(«Activity») = cboActivity.Text
    rs.Update
    End Sub


  8. Dec 20th, 2005, 07:00 PM


    #8

    Re: Statement Invalid outside TypeBlock error

    Please use vbcode tags in your post for your code. It makes it more readable.


  9. Dec 20th, 2005, 07:05 PM


    #9

    Re: Statement Invalid outside TypeBlock error

    BTW: Don’t understand what you are doing. 6:37 + 15 = 6:52… Better example please…


  10. Dec 21st, 2005, 11:04 AM


    #10

    VTuser is offline

    Thread Starter


    New Member


    Re: Statement Invalid outside TypeBlock error

    Example

    The system time is 6:37PM

    The click event for cmdIn

    Calls the decimaltime function

    The decimaltime function using if elseif statements determine the statement is applied based on the minutes of the system time. In this case 6:37PM has 37 minutes thus

    ElseIf Minute(Time) >= 23 And Minute(Time) <= 37 Then
    ClockTime = DateAdd(«n», 30 — Minute(Time), Time)

    Is applied and it convert 37 minutes to 30 minutes and the system time know is 6:30PM
    The reason for this is that I want to capture time in 15 intervals only

    From there

    DecimalTime = Format(ClockTime * 24, «0.00»)

    Takes 6:30PM and converts it to decimal format which is 6.50 then that value is placed in the variable TimeIn

    Then it�s added to the database using the following procedure

    VB Code:

    1. Private Sub AddToDB()

    2. rs.AddNew

    3. rs.Fields("IN") = TimeIn

    4. rs.Fields("Site") = cboSites.Text

    5. rs.Fields("Activity") = cboActivity.Text

    6. rs.Update

    7. End Sub

    I hope this clears things up and that you have an idea how to solve my issues. Thanks

    VB Code:

    1. Private Sub cmdIn_Click()

    2. TimeIn = DecimalTime

    3. AddToDB

    4. End Sub

    5. Function DecimalTime()

    6. Dim ClockTime As Date

    7. If Minute(Time) >= 0 And Minute(Time) <= 7 Then

    8. ClockTime = DateAdd("n", -Minute(Time), Time)

    9. ElseIf Minute(Time) >= 8 And Minute(Time) <= 22 Then

    10. ClockTime = DateAdd("n", 15 - Minute(Time), Time)

    11. ElseIf Minute(Time) >= 23 And Minute(Time) <= 37 Then

    12. ClockTime = DateAdd("n", 30 - Minute(Time), Time)

    13. ElseIf Minute(Time) >= 38 And Minute(Time) <= 52 Then

    14. ClockTime = DateAdd("n", 45 - Minute(Time), Time)

    15. Else

    16. ClockTime = DateAdd("n", 60 - Minute(Time), Time)

    17. End If

    18. DecimalTime = Format(ClockTime * 24, "0.00")

    19. Private Sub AddToDB()

    20. rs.AddNew

    21. rs.Fields("IN") = TimeIn

    22. rs.Fields("Site") = cboSites.Text

    23. rs.Fields("Activity") = cboActivity.Text

    24. rs.Update

    25. End Sub

    Edit: Fixed [vbcode][/vbcode] tags. — Hack

    Last edited by Hack; Dec 21st, 2005 at 11:07 AM.


  11. Dec 21st, 2005, 11:36 AM


    #11

    Re: Statement Invalid outside TypeBlock error

    You don’t want to do a dateadd when checking. All you want to do is take the Hour then concatenate the decimal minutes you figured out to that. You are over complicating the whole process.


  12. Dec 21st, 2005, 11:43 AM


    #12

    VTuser is offline

    Thread Starter


    New Member


    Re: Statement Invalid outside TypeBlock error

    can you if me an example

    thanks


  13. Dec 21st, 2005, 11:55 AM


    #13

    Re: Statement Invalid outside TypeBlock error

    Here’s an example:

    VB Code:

    1. Dim mTime As Time

    2. mTime = Time

    3. Select Case mTime

    4.     Case >= 8 and <= 22

    5.         decHours = decHours & ".15"

    6.     Case >= 22 and <= 37

    7.         decHours = decHours & ".30"

    8. End Select


  14. Dec 21st, 2005, 11:57 AM


    #14

    Re: Statement Invalid outside TypeBlock error

    Quote Originally Posted by randem

    Here’s an example:

    VB Code:

    1. Dim mTime As Time

    2. mTime = Time

    3. Select Case mTime

    4.     Case >= 8 and <= 22

    5.         decHours = decHours & ".15"

    6.     Case > 22 and <= 37

    7.         decHours = decHours & ".30"

    8. End Select

    Select Case isn’t going to like this. You would need to do something like

    VB Code:

    1. Case 8 To 22

    2. Case 23 To 37


  15. Dec 21st, 2005, 12:15 PM


    #15

    Re: Statement Invalid outside TypeBlock error


  • Home
  • VBForums
  • Visual Basic
  • Visual Basic 6 and Earlier
  • Statement Invalid outside TypeBlock error


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
  • BB code is On
  • Smilies are On
  • [IMG] code is On
  • [VIDEO] code is On
  • HTML code is Off

Forum Rules


Click Here to Expand Forum to Full Width

  • Установить в форме
    объект Label
    — метка, он нужен для создания надписей
    в форме, находится в наборе инструментов
    general
    (см. рис. 1 и
    3). Метка имеет свойство name
    (см. выше), а также свойство caption,
    содержащее надпись, которую видит
    пользователь. Задать для метки
    значение
    свойства caption
    введите
    число
    .

    Другие свойства
    метки (доступны в окне
    properties):

    • Alignment
      – выравнивание надписи по левому,
      правому краю или центру.

    • Font
      и
      Forecolor
      — шрифт и цвет символов метки.

    • Backcolor
      — цвет фона метки.

    • А
      utosize
      – автоматическая установка необходимого
      размера метки, определяемого надписью.

    Установить
    самостоятельно в форму метку
    результат
    (см. рис. 3).

    Метка может выводить
    числовые и символьные значения в процессе
    выполнения программы, для этого в тексте
    соответствующей процедуры ее свойству
    сaption
    должно быть присвоено нужное значение.
    Установить самостоятельно в форму
    «пустую»
    метку. Установить для этой метки: name
    result,
    caption
    – «пусто»,
    для этого удалить все содержимое этого
    свойства и нажать клавишу enter.
    (см. рис. 3)

    1. Установить в форме
      объект Textbox
      — текстовое поле (см. рис. 3). Этот объект
      предназначен для ввода с клавиатуры
      символьной информации, которая
      присваивается его свойству text.
      Оформление цвета и шрифта также, как и
      у метки.

    2. Установить в форме
      объект CommandButton
      – командная кнопка (см. рис. 3). Надпись
      на командной кнопке задается свойством
      Caption.
      Установить
      для кнопки это свойство: вычислить.
      Оформление цвета и шрифта также, как и
      у метки.

    Другие свойства
    командной кнопки (доступны в окне
    properties):

    • Appearance
      внешний
      вид (объемный или плоский), принимает
      значения true
      или
      falsе;
      (или 0
      flat

      плоский; 1
      3D

      объемный).

    • Default
      — позволяет
      сделать кнопку доступной для нажатия
      клавишей Enter,
      принимает значения true
      или
      false.

    • Cancel
      позволяет
      сделать командную кнопку доступной
      для нажатия клавишей
      Esc,
      принимает значения true
      или
      false.

    Установленный на
    форму объект может быть изменен в
    размерах, перемещен и удален после его
    активизации щелчком мыши. В каждый
    момент активным является какой-либо
    объект в форме, либо сама форма. Активный
    объект окружен маркерами. Для удаления
    объекта нужно нажать клавишу Delete,
    либо выбрать команду cut
    из контекстного меню вызванного на этом
    объекте. Для активизации самой формы
    нужно щелкнуть по ее «пустому»
    месту. Для выделения нескольких объектов
    сразу: щелкать по ним при нажатой клавише
    ctrl
    , либо выделить
    их пунктирной рамкой, растягивая ее по
    диагонали мышью, нажатие затем клавиши
    delete
    позволяет удалить сразу все выделенные
    объекты.

    1. Н
      аписание
      программного кода необходимо произвести
      для кнопки вычислить,
      т.к. этот объект будет реагировать на
      воздействие пользователя. Для вывода
      окна редактора кодов программы нужно
      2-ды щелкнуть по кнопке вычислить
      в окне формы. Появится окно редактора,
      в котором курсор будет автоматически
      установлен в нужном месте процедуры,
      а именно, после строки Private
      Sub
      Command1_Click(),
      где
      Command1
      – свойство name
      командной кнопки.
      (Можно
      также использовать кнопку viewcode
      на панели инструментов в окне project
      explorer;
      для возврата – кнопку viewobject
      ).

    Ввести следующий
    текст программного кода:

    Private
    Sub Command1_Click()

    {
    появляется
    автоматически
    }

    result.caption=Val(chislo.Text)^2

    End
    Sub
    {
    появляется
    автоматически
    }

    Каждый раздел
    программного кода для того или иного
    объекта всегда начинается строкой
    Private
    Sub
    Name
    объекта
    _
    Click(),
    где Name
    объекта
    – имя
    объекта, для которого записан программный
    код, а Click()
    – событие
    (воздействие), в данном случае одинарный
    щелчок мыши, на которое реагирует объект;
    и
    заканчивается строкой End
    Sub.
    Строка программного кода
    result.caption=Val(chislo.Text)^2
    означает,
    что свойству caption
    объекта со свойством name=result
    присваивается следующее значение: число
    (Val),
    хранящееся в свойстве text
    объекта со свойством name=chislo,
    возведенное во 2-ю степень (^2).

    1. Запуск и остановка
      программ осуществляется с помощью
      кнопок Start
      и End
      на панели инструментов, а также с помощью
      одноименных команд из меню run.
      Остановить работу проекта можно также
      кнопкой Х
      в окне приложения. Если в ходе работы
      появляется ошибка, нужно остановить
      работу приложения, исправить ошибку,
      а затем снова проверить работу приложения.

    2. Сохранить проект
      и форму с именами Example1_1
      или Lab1_1
      соответствующими командами (save
      project1
      as
      и save
      form1
      as)
      из меню file.

    При обнаружении
    ошибки в программном коде компилятор
    Visual
    Basic
    6.0
    выдает
    стандартное окно сообщения, которое
    содержит информацию о коде (Runtime
    error
    ‘438’
    ) и
    названии (Object
    doesnt
    support
    this
    property
    or
    method)
    ошибки (рис.5). Ошибки, связанные с
    процедурами и объектами, выделяются
    желтым
    «маркером»
    (рис.6). Ошибки, связанные с методами или
    свойствами самих объектов, выделяются
    синим
    «маркером»
    (рис.7). Для исправления ошибки следует
    приостановить работу проекта, ввести
    верный программный код, а затем снова
    запустить проект.

    Некоторые наиболее
    часто встречающиеся ошибки:

    1. I
      nvalid
      outside procedure

      – неверная внешняя процедура;

    2. Type
      mismatch

      несоответствие типов;

    3. Sub
      or
      Function
      not
      defined
      – процедура или функция не определена;

    4. Next/For
      without For/Next

      – Next/For без
      For/Next: неправильная
      организация
      цикла;

    5. If/EndIf
      without
      EndIf/If
      – If/EndIf
      без EndIf/If
      : неправильная запись условного
      оператора;

    6. Select
      Case / (End Select) without End Select / (Select Case) —
      Select
      Case
      /
      (End
      Select) без
      End Select / (Select Case): неверная
      запись
      оператора
      выбора;

    7. Object
      required

      требуется объект;

    8. Overflow
      – переполнение;

    9. Subscript
      out of range

      значение
      вне
      диапазона;

    10. Duplicate
      declaration in current scope

      двойное
      объявление
      в
      текущем
      диапазоне;

    11. Division
      by zero

      деление на ноль;

    12. Statements
      and Labels invalid between Select Case and First Case –
      записи
      и
      метки
      неверны
      между
      Select Case и
      First Case;

    13. Method
      or
      Data
      member
      not
      found
      – метод или часть данных не найдена;

    14. Variable
      not
      defined
      – переменная не определена;

    15. Invalid
      procedure call or argument

      – неправильный
      вызов
      процедуры
      или
      аргумент;

    16. Userdefined
      type
      not
      defined
      – пользовательский тип не определен;

    17. Object
      doesn’t support this property or method

      – объект не поддерживает это свойство
      ли метод;

    18. Ambiguous
      name
      detected:
      nameобъекта
      _событие
      – обнаружено неоднозначное имя;

    19. Only
      comments may appear after End Sub, End Function, or End Property

      только
      комментарии
      могут
      появляться
      после
      End Sub, End Function, или
      End Property;

    20. Statement
      invalid outside Type Block

      неверная
      запись
      вне
      блока.

    Практическая работа № 1.2 – вычисление куба числа

    1. Открыть проект,
      созданный в ходе выполнения работы №
      1.1.

    2. Внести необходимые
      изменения в форму:

    • Изменить заголовок
      окна формы: куб
      числа
      ;

    • Изменить свойство
      name
      формы: example1_2;

    • Изменить программный
      код: возведение в 3-ю степень – ^3;

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму с именами
      Example1_2
      или Lab1_2
      соответствующими командами из меню
      file.

    Практическая работа № 1.3 – вычисление квадратного корня числа

    1. Открыть проект,
      созданный в ходе выполнения работы №
      1.1 или № 1.2.

    2. Внести необходимые
      изменения в форму:

    • Изменить заголовок
      окна формы: корень
      квадратный числа
      ;

    • Изменить свойство
      name
      формы: example1_3;

    • Изменить программный
      код: вычисление квадратного корня –
      функция SQR;
      программный код запишется в виде:

    result.Caption=Sqr(Val(chislo.Text))

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму с именами
      Example1_3
      или Lab1_3
      соответствующими командами из меню
      file.

    П рактическая работа № 1.4 – вычисление суммы, разности, произведения и частного 2-х чисел

    1. Открыть один из
      проектов, созданных в ходе выполнения
      работ №№ 1.1 – 1.3.

    2. Внести необходимые
      изменения в форму (см. рис. 8):

    • Изменить заголовок
      окна формы: сумма,
      разность, произведение, частное 2-х
      чисел
      ;

    • Изменить свойство
      name
      формы: example1_4;

    • Добавить на форму
      объекты: текстовое поле и 8 меток; внести
      остальные изменения;

    • Задать меткам,
      отображающим результаты вычислений
      свойства name
      соответственно: results,
      resultr,
      resultp,
      resultch;

    • Задать текстовым
      полям свойства name
      chislo1
      и chislo2
      соответственно;

    • Изменить программный
      код:

    results.Caption=Val(chislo1.Text)+Val(chislo2.Text)

    resultr.Caption=Val(chislo1.Text)-Val(chislo2.Text)

    resultp.Caption=Val(chislo1.Text)*Val(chislo2.Text)

    resultch.Caption=Val(chislo1.Text)/Val(chislo2.Text)

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму с именами
      Example1_4
      или Lab1_4
      соответствующими командами из меню
      file.

    Выполните самостоятельно!

    П
    рактическая
    работа № 1.5 – вычисление значения по
    формуле

    1. Создать новый
    проект и вычислить: 8*А+(12*В)^5/С
    . Макет
    формы показан на рис. 9.

    2. Программный код
    для кнопки вычислить
    приведен на следующей странице:

    rеsult.Caption=8*Val(chislo1.Text)
    {в
    одну
    строку
    !
    }

    +(12*(Val(chislo2.Text)))^(5/Val(chislo3.Text))

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму с именами
      Example1_5
      или Lab1_5
      соответствующими командами из меню
      file.

    Практическая работа № 1.6 – вычисление длины гипотенузы

    1
    .
    Создать новый проект и вычислить длину
    гипотенузы по 2-м катетам. Макет формы
    показан на рис. 10.

    2. Программный код
    для кнопки вычислить
    приведен ниже:

    Dim
    a, b, c As Single

    a=Val(Text1.Text)

    b=Val(Text2.Text)

    c=Sqr(a^2+b^2)

    Label1.Caption=c

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму с именами
      Example1_6
      или Lab1_6
      соответствующими командами из меню
      file.

    Форма отчета:
    cd-диск,
    флэш или иной носитель с файлами форм
    и проектов работы № 1; текстовый файл с
    изображениями форм и текстами программных
    кодов.

    Тема 2. Условный оператор и кнопка выбора Практическая работа № 2.1

    1. О
      ткрыть
      новый проект. Внешний вид формы показан
      на рис. 11. Задать свойство name
      формы Example2_1.

    2. Установить на
      форме объект Frame
      – рамка (из набора инструментов
      general).
      Рамка
      Frame
      – это объект–контейнер, предназначенный
      для объединения нескольких объектов
      в группу. Он имеет свойство name,
      свойство caption
      (установить
      это свойство – фигуры),
      которое задает надпись в заголовке
      рамки, цвет и шрифт устанавливаются
      как у метки.

    3. Установить в рамке
      три объекта Option
      button
      кнопка
      выбора (см. рис. 11). Этот объект используется
      в группе не менее 2-х, иначе не будет
      выбора. Т.к. кнопки используются в
      группе, удобно для каждой из них
      устанавливать одно и тоже свойство
      Name.
      Установить
      в проекте для кнопок выбора это свойство:
      vibor.
      Положение
      кнопки относительно надписи справа
      или слева задается свойством Alignment,
      объемный или плоский вид свойством
      Appearance,
      установка шрифта и цвета как у метки.

    Будьте внимательны!
    При задании
    такого же значения свойства name
    у 2-ой кнопки, появится сообщение о
    создании контрольного
    массива объектов

    control
    array,
    на которое следует ответить – yes/да.
    Чтобы различать кнопки между собой,
    необходимо для них устанавливать
    различные значения свойства Index,
    для удобства написания текста программы.

    После установки
    всех объектов Option
    button
    следует убедиться, что свойства Index
    этих объектов
    принимают
    значения от 0
    до 2.
    Значение объекта Option
    Button
    (т.е. состояние – нажата кнопка или нет)
    сохраняется в его свойстве Value,
    которое
    принимает значения true/истина
    или false/ложь.
    К этому свойству можно обращаться в
    текстах программы. Свойства caption
    для этих кнопок: треугольник,
    прямоугольник,
    круг
    соответственно.

    1. Установить
      остальные элементы формы в соответствие
      с рис. 11, свойства name
      для объектов указаны на рисунке рядом
      с ними.

    2. Вызвать окно
      редактора для кнопки вычислить,
      ввести следующий текст программного
      кода:

    Private
    Sub
    vichislit_Click()
    {
    появляется
    автоматически}

    Dim
    h,
    w,
    r
    As
    Single
    описание
    переменных типа Single

    h=val(visota.Text)
    перем.
    h
    присваиваем знач. из текст. поля visota

    w=val(osnovanie.Text)
    w
    присваиваем знач. из текст. поля osnovsnie

    If
    vibor(0).Value
    Then
    условный
    оператор – нажата 1-ая кнопка

    r=h*w/2
    площадь
    треугольника

    ElseIf
    vibor(1).Value
    Then
    условный
    оператор – нажата 2-ая кнопка

    r=h*w
    площадь
    прямоугольника

    Else
    условный
    оператор – иначе

    r=3.14*h*h
    площадь
    круга

    End
    If
    конец
    условного оператора

    result.Caption=r
    метке
    result
    присваиваем вычисленное значение

    End
    Sub
    {
    появляется
    автоматически}

    1. Вызвать окно
      редактора для кнопки закрыть,
      ввести следующий текст процедуры:

    Private
    Sub
    Command2_Click()
    {
    появляется
    автоматически}

    End
    конец

    End
    Sub

    {
    появляется
    автоматически}

    1. При запуске
      программы необходимо, чтобы одна из
      кнопок выбора была бы «нажата»
      по умолчанию. Для этого необходимо
      свойству Value
      одной из кнопок присвоить значение
      True.
      Это необходимо задать в процедуре
      загрузки той формы, где находятся эти
      кнопки. Для этого вызвать окно редактора
      для формы 2-м щелчком по «пустому»
      месту на форме, и записать следующую
      процедуру:

    Private
    Sub
    Form_Load()
    {появляется
    автоматически}

    vibor(0).Value=True
    нажата
    1-ая
    кнопка

    End
    Sub

    {
    появляется
    автоматически}

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Практическая работа № 2.2

    1. О
      ткрыть
      проект, созданный в ходе выполнения
      работы № 2.1. Задать свойство name
      формы Example2_2.

    2. Создать проект
      для вычисления площади треугольника:
      либо по формуле ½*(h*w),
      либо по формуле Герона. Выбор способа
      вычисления должен осуществляться с
      помощью кнопок Option
      button.

    3. Изменить вид формы
      (см. рис. 12), добавив или удалив необходимые
      объекты.

    4. В программный
      код кнопки вычислить
      внести необходимые изменения:

    Dim
    a, b, c, p, s As Single ‘
    описание
    переменных
    типа
    Single

    a=Val(visota.Text)
    a
    присваиваем
    знач.
    из
    текст.
    поля
    visota

    b=Val(osnovanie.Text)
    b
    присваиваем
    знач.
    из
    текст.
    поля
    osnovsnie

    c=Val(storona3.Text)
    c
    присваиваем
    знач.
    из
    текст.
    поля
    storona3

    If
    vibor(0).Value
    Then
    условный
    оператор – нажата 1-ая кнопка

    s=a*b/2
    площадь
    треугольника

    Else
    условный
    оператор – иначе

    p=(a+b+c)/2
    полупериметр

    s=Sqr(p*(pa)*(pb)*(pc))
    площадь
    треугольника по ф-ле Герона

    End
    If ‘
    конец
    условного оператора

    result.Caption=s
    метке
    result
    присваиваем вычисленное значение

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Выполните самостоятельно! Практическая работа № 2.3

    1. Создать новый
    проект и программу для вывода на форму
    результатов умножения и деления двух
    чисел. Макет формы показан на рис. 13.

    2. Программный код
    для кнопки ОК
    приведен ниже.

    Private
    Sub command1_Click()

    If
    Option1.Value=True Then

    Text3.Text=Val(Text1.Text)*Val(Text2.Text)

    ElseIf
    Option2.Value=True Then

    Text3.Text=Val(Text1.Text)/Val(Text2.Text)

    E
    nd

    If

    End
    Sub

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить проект и форму.

    Практическая работа № 2.4

    1. Создать новый
    проект и программу для вывода на форму
    результатов сложения и вычитания двух
    чисел. Макет формы показан на рис. 13.
    Изменить значения свойств caption
    кнопок выбора на «сложение»
    и «вычитание».

    2. Программный код
    для кнопки ОК
    приведен ниже.

    If
    Option1.Value=True Then

    Text3.Text=Val(Text1.Text)+Val(Text2.Text)

    ElseIf
    Option2.Value=True Then

    Text3.Text=Val(Text1.Text)-Val(Text2.Text)

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить проект и форму.

    Форма отчета:
    cd-диск,
    флэш или иной носитель с файлами форм
    и проектов работы № 2; текстовый файл с
    изображениями форм и текстами программных
    кодов.

    Тема 3. Операторы цикла и списки Практическая работа № 3.1

    1. О
      ткрыть
      новый проект. Задать свойство name
      формы Example3_1.
      Внешний вид формы показан на рис. 14.

    2. Установить в форме
      объект ListBox
      список.
      Установить для него свойство name
      spisok.
      Объект ListBox
      изначально пуст и показывает что-либо
      только после заполнения его данными.
      Заполнить список данными можно как при
      разработке формы, так и во время работы
      программы. Все содержимое списка –
      массив строковых данных, которые
      размещены в его свойстве List.
      При заполнении
      списка через свойство List
      ввод каждой
      строки завершается нажатием клавиш
      Ctrl
      +
      Enter.
      По мере
      заполнения списка линейки прокрутки
      появляются автоматически. Выбор позиции
      из списка выполняется щелчком мыши по
      ней. Содержимое выбранной (маркированной)
      позиции списка помещается в его свойство
      Text.
      Список также
      может заполняться и при работе программы.
      Для этого используется метод заполнения
      списка ADDITEM,
      который имеет синтаксис (в общем виде):

    name
    формы.name
    списка.additem
    <строка>,
    N
    позиции

    Если номер позиции
    не указан, то новая строка добавляется
    в конец списка. Добавляемая строка может
    быть в виде строковой константы или
    переменной, а также свойства text
    текстового
    поля. Однократный вызов этого метода
    добавляет одну позицию.

    Удаление из списка
    произвольной строки выполняется методом
    REMOVEITEM,
    который имеет синтаксис (в общем виде):

    name
    формы.name
    списка.removeitem
    N
    позиции

    1. Установить
      остальные элементы формы в соответствие
      с рис. 14, свойства name
      для объектов указаны на рисунке рядом
      с ними.

    2. Записать
      процедуру описания переменных: chisarr
      (весь массив чисел)
      и kolich
      (количество вводимых чисел) в раздел
      программного кода «general
      declarations»,
      выбрав
      соответствующие позиции в левом
      (general)
      и правом
      (declarations)
      списках в окне редактора.

    Dim
    chisarr (1 To 50) As Single ‘
    массив
    чисел
    не
    более
    50 шт.

    Dim
    kolich
    As
    Integer
    кол-во чисел
    в массиве

    1. В
      процедуре для кнопки добавить
      записать следующее:
      (
      setfocus
      – метод установки «фокуса»
      на каком-либо объекте или форме)

    spisok.additem
    chislo.text
    в
    список добавить число из текст. поля

    kolich=kolich+1
    кол-во чисел
    в массиве увеличилось на 1

    chisarr(kolich)=chislo.text
    в
    массив добавить число из текст. поля

    chislo.text=””
    очистить
    текстовое поле

    chislo.setfocus
    поставить
    курсор в текстовое поле

    1. В
      процедуре для кнопки
      найти
      записать
      следующее:

    dim
    max
    as
    single
    переменная
    – максимум

    dim
    i as integer ‘
    переменная
    цикла

    max=chisarr(1)
    максимум –
    1-ый элемент

    for
    i=2
    to
    kolich
    цикл:
    начиная со 2-ого эл-та до конца массива

    if
    max<chisarr(i) then max=chisarr(i) ‘
    если
    текущий
    эл-т

    больше
    максимума тогда текущий эл-т есть
    максимум

    next
    i
    следующий
    шаг цикла

    result.caption=max

    1. Записать
      самостоятельно процедуру для кнопки
      закрыть.

    2. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Практическая работа № 3.2


    1. Открыть
      проект, созданный в ходе выполнения
      работы № 3.1. Задать свойство name
      формы Example3_2.

    2. Изменить
      форму по образцу (рис. 15). Для этого
      добавить в форму метку «буква»
      и текстовое поле со свойством name
      – “
      bukva”.
      Изменить остальные объекты формы по
      образцу.

    3. Изменить
      в кодах программы в разделе «general
      declarations»
      тип переменной
      chisarr
      с single
      на string.

    4. Исправить
      программный код для кнопки найти
      следующим образом: удалить строку
      max=chisarr(1),
      изменить
      начальное значение переменной цикла:
      i=1.

    5. Вместо
      строки
      if
      max<chisarr(i) then max=chisarr(i)

    ввести
    строку

    If
    Left$(chisarr(i),1)=bukva.Text Then max=max+1

    где
    функция Left$
    – есть
    строковая функция, возвращающая заданное
    число символов, начиная с первого символа
    строки.

    Другие строковые
    функции:

    • Right$
      – функция, возвращающая заданное число
      символов, начиная с последнего символа
      строки;

    • Mid$
      – функция, возвращающая заданное число
      символов, начиная с заданной позиции
      в строке: синтаксис функции – Mid$
      (строка,
      Nпоз,
      nсимв);

    • Len
      – функция,
      возвращающая длину строки;

    • Str
      – функция, преобразующая числовые
      данные в строковые;

    • Trim
      – функция,
      возвращающая строку без пробелов;

    • InStr
      – функция, возвращающая номер позиции,
      содержащей указанный фрагмент;

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Практическая работа № 3.3

    1. Открыть новый
      проект. Задать свойство name
      формы Example3_3.
      Создать программу для перевода любого
      целого числа в 10СС в произвольную
      систему счисления (от 2 до 9). Система
      счисления выбирается из раскрывающегося
      списка.

    2. Внешний вид формы
      показан на рис. 16. Установить на форме
      объект ComboBox
      раскрывающийся
      список (находится в наборе инструментов
      General).
      Этот объект предназначен для выбора
      какого-либо значения из заданного
      списка. Раскрывающийся список можно
      заполнить как во время работы программы,
      так и в листе свойств или в тексте
      программы. Содержимое выбранной позиции
      раскрывающегося списка хранится в его
      свойстве Text.


    3. Установить
      на форме остальные необходимые объекты,
      задать свойство Name,
      указанное
      на рисунке для «пустой»
      метки.

    4. Записать для формы
      и командной кнопки следующие программные
      коды: (перед записью кодов для формы
      следует изменить событие формы с load
      на activate
      в правом списке в окне редактора кодов,
      см. рис. 2)

    Private
    Sub Form_Activate()

    Combo1.AddItem
    («2»)

    Combo1.AddItem
    («3»)

    Combo1.AddItem
    («4»)

    Combo1.AddItem
    («5»)

    Combo1.AddItem
    («6»)

    Combo1.AddItem
    («7»)

    Combo1.AddItem
    («8»)

    Combo1.AddItem
    («9»)

    End
    Sub

    Private
    Sub Command1_Click()

    Dim
    s As String

    Dim
    l, c, r As Single

    Dim
    i As Integer

    s=»»

    c=Val(Text1.Text)
    ‘введенное
    число

    l=Val(Combo1.Text)
    ‘система
    счисления

    r=Int(c/l)
    ‘первое
    частное

    i=c-r*l
    ‘первый
    остаток

    s=s+Str(i)
    ‘результат

    Do
    While r>=1
    ‘цикл

    c=r
    ‘новое
    делимое равно последнему частному

    r=Int(c/l)

    i=c-r*l
    ‘новый
    остаток деления

    s=Str(i)+s
    ‘результат
    в обратном порядке

    Loop

    Rez.Caption=s

    End
    Sub

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Выполните самостоятельно! Практическая работа № 3.4

    1. Создать новый
      проект и программу для нахождения
      кол-ва слов, заканчивающихся на заданное
      сочетание из 2-х букв. Открыть проект,
      созданный в ходе выполнения работы №
      3.2. Макет формы на рис. 15.

    2. Изменить строковую
      функцию с Left$(chisarr(i),1)
      на
      Right$(chisarr(i),2).

    3. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Практическая работа № 3.5

    1. Создать новый
      проект и программу для нахождения
      кол-ва чисел, содержащих заданное
      сочетание из 3-х цифр начиная с 3-й
      позиции. Открыть проект, созданный в
      ходе выполнения работы № 3.2. Макет формы
      показан на рис. 15.

    2. Изменить строковую
      функцию с Left$(chisarr(i),1)
      на
      Mid$(chisarr(i),3,
      3)
      .

    3. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Практическая работа № 3.6

    1. С
      оздать
      новый проект и программу для вычисления
      факториала. Макет формы показан на рис.
      17.

    2. Программный код
      для кнопки вычислить
      приведен ниже.

    Dim
    f, n, i As Integer

    n=Val(Chislo.Text)

    f=1

    For
    i=2 To n

    f=f*i

    Next
    i

    Result.Caption=f

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Практическая работа № 3.7

    1. Создать новый
      проект и программу для сложения
      произвольного целого положительного
      числа в 10СС с числом, представленным в
      3СС. Макет формы показан на рис. 18.

    2. Программный код
      для кнопки суммировать:

    Dim
    a10, a3, i, b As Integer

    Dim
    s As String

    a10=Text1.text

    a3=Text2.text

    s=Str(a3)

    For
    i=Len(s) To 1 Step -1

    b=b+Val(Mid(s,
    i, 1))*3^(Len(s)-i)

    Next

    Text3.text=a10+b

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Практическая работа № 3.8

    1. Создать новый
      проект и программу для перевода
      положительного целого десятичного
      числа в 5СС. Макет формы показан на рис.
      19.

    2. П
      рограммный
      код для кнопки перевести:

    Dim
    a10, ost As Integer

    Dim
    s As String

    a10=Val(Text1.text)

    If
    a10>4 Then

    Do

    ost=a10
    Mod 5

    s=ost
    & s

    a10=a105

    Loop
    While a10>=5

    s=a10
    & s

    Else

    s=a10

    End
    If

    Text2.Text=s

    1. З
      апустить
      программу и убедиться в правильности
      ее работы, при необходимости исправить
      ошибки, а затем сохранить проект и
      форму.

    Практическая работа № 3.9

    1. Создать новый
    проект и программу. Программа создает
    список чисел. Заполнение списка
    осуществляется кнопкой добавить.
    При добавлении числа автоматически в
    форме отображаются максимальное и
    минимальное из чисел списка. При выделении
    числа в списке оно автоматически
    отображается меткой текущее
    число
    .
    Выделенное в списке число можно удалить
    одноименной кнопкой. Кнопка переопределить
    предназначена для отображения на форме
    новых максимального и минимального из
    чисел списка после удаления позиций
    списка. Кнопка очистить
    список

    удаляет все содержимое списка.

    2. Внешний вид формы
    показан на рис. 20. Установить на форме
    все необходимые объекты, свойства Name
    указаны на рисунке рядом с объектами.
    Записать для проекта и объектов формы
    следующие программные коды:

    Программный код
    для раздела General
    Declarations:

    Dim
    lngMaxNum
    As
    Single

    Dim
    lngMinNum As Single

    Dim
    strList(100) As Single

    Dim
    intListElem As Integer

    Программный код
    для кнопки добавить:

    Private
    Sub dobav_Click()

    If
    newchis.Text<>»» Then

    spisok.AddItem
    newchis.Text

    strList(intListElem)=newchis.Text

    intListElem=intListElem+1

    If
    lngMaxNum<=newchis.Text Then

    lngMaxNum=newchis.Text

    End
    If

    If
    lngMinNum>=newchis.Text Then

    lngMinNum=newchis.Text

    End
    If

    newchis.Text=»»

    maxnum.Caption=lngMaxNum

    minnum.Caption=lngMinNum

    End
    If

    newchis.SetFocus

    End
    Sub

    Программный код
    для кнопки удалить:

    Private
    Sub udal_Click()

    Dim
    i As Integer

    For
    i=spisok.ListIndex To 99

    strList(i)=strList(i+1)

    Next
    i

    intListElem=intListElem-1

    spisok.RemoveItem
    spisok.ListIndex

    tekchis.Caption=»»

    spisok.Refresh

    newchis.SetFocus

    End
    Sub

    Программный код
    для кнопки переопределить:

    Private
    Sub opred_Click()

    Dim
    i As Integer

    lngMaxNum=-14000000000#

    lngMinNum=14000000000#

    For
    i=0 To intListElem-1

    If
    lngMaxNum<=strList(i) Then

    lngMaxNum=strList(i)

    End
    If

    If
    lngMinNum>=strList(i) Then

    lngMinNum=strList(i)

    End
    If

    Next
    i

    maxnum.Caption=lngMaxNum

    minnum.Caption=lngMinNum

    newchis.SetFocus

    End
    Sub

    Программный код
    для кнопки очистить:

    Private
    Sub ochis_Click()

    Dim
    i As Integer

    spisok.Clear

    For
    i=1 To intListElem

    strList(i)=0

    Next
    i

    newchis.SetFocus

    maxnum.Caption=»»

    minnum.Caption=»»

    End
    Sub

    Программный код
    для формы:

    Private
    Sub Form_Activate()

    newchis.SetFocus

    lngMaxNum=-14000000000#

    lngMinNum=14000000000#

    End
    Sub

    Программный код
    для списка:

    Private
    Sub spisok_Click()

    tekchis.Caption=spisok.Text

    End
    Sub

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить проект и форму.

    Практическая работа № 3.10

    1. Создать новый
    проект и программу. Программа создает
    список строк. Заполнение списка
    осуществляется кнопкой добавить.
    При добавлении строки автоматически в
    форме отображаются максимальная и
    минимальная по длине из строк списка.
    При выделении строки в списке она
    автоматически отображается меткой
    текущая
    строка
    .
    Выделенную в списке строку можно удалить
    одноименной кнопкой. Кнопка переопределить
    предназначена для отображения на форме
    новых максимальной и минимальной из
    строк списка после удаления позиций
    списка. Все содержимое списка удаляется
    кнопкой очистить
    список
    .

    2. Внешний вид формы
    показан на рис. 21. Установить на форме
    все необходимые объекты, свойства Name
    указаны на рисунке рядом с объектами.
    Записать для проекта и объектов на форме
    следующие программные коды:

    Программный код
    для раздела General
    Declarations:

    Dim
    maxl As String

    Dim
    minl As String

    Dim
    stl(100) As String

    D

    im
    ilem As Integer

    Программный код
    для кнопки добавить:

    Private
    Sub dobav_Click()

    If
    nst.Text<>»» Then

    sp.AddItem
    nst.Text

    stl(ilem)=nst.Text

    ilem=ilem+1

    If
    Len(maxl)<=Len(nst.Text) Then

    maxl=nst.Text

    End
    If

    If
    Len(minl)>=Len(nst.Text) Then

    minl=nst.Text

    End
    If

    nst.Text=»»

    max.Caption=maxl

    min.Caption=minl

    End
    If

    nst.SetFocus

    End
    Sub

    Программный код
    для кнопки удалить:

    Private
    Sub udal_Click()

    Dim
    i As Integer

    For
    i=sp.ListIndex To 99

    stl(i)=stl(i+1)

    Next
    i

    ilem=ilem-1

    sp.RemoveItem
    sp.ListIndex

    tekstr.Caption=»»

    sp.Refresh

    End
    Sub

    Программный код
    для списка:

    Private
    Sub
    sp_Click()

    tekstr.Caption=sp.Text

    End
    Sub

    Программный код
    для кнопки очистить:

    Private
    Sub ochis_Click()

    sp.Clear

    nst.SetFocus

    End
    Sub

    Программный
    код
    для
    формы:

    Private
    Sub Form_Activate()

    nst.SetFocus

    maxl=»*»

    minl=Space(256)

    End
    Sub

    Программный код
    для кнопки переопределить:

    Private
    Sub opred_Click()

    Dim
    i As Integer

    maxl=»*»

    minl=Space(256)

    For
    i=0 To ilem-1

    If
    Len(maxl)<=Len(stl(i)) Then

    maxl=stl(i)

    End
    If

    If
    Len(minl)>=Len(stl(i)) Then

    minl=stl(i)

    End
    If

    Next
    i

    max.Caption=maxl

    min.Caption=minl

    nst.SetFocus

    End
    Sub

    Форма отчета:
    дискета или иной носитель с файлами
    форм и проектов работы № 3; текстовый
    файл с изображениями форм и текстами
    программных кодов.

    Тема 4. Метод print и стандартные окна сообщений Практическая работа № 4.1

    Visual
    Basic
    6.0
    позволяет
    вывести текстовую информацию в рабочую
    область формы или в зону объекта
    PictureBox
    методом PRINT,
    синтаксис
    которого в общем виде выглядит следующим
    образом: name
    формы или
    PictureBox.print
    <список вывода>.

    В списке вывода может быть произвольное
    количество констант, переменных и
    выражений, разделенных ,
    или ;.
    При выводе в форму каждое обращение к
    методу PRINT
    начинает вывод данных с координат,
    определяемых значениями свойств CurrentX
    и CurrentY
    формы.

    Э
    ти
    свойства недоступны при проектировании,
    начальные значения их нулевые (верхний
    левый угол
    ),
    но им можно придать нужные значения в
    тексте программы. Единица измерения
    этих свойств задается свойством ScaleMode
    формы. Метод PRINT
    выводит
    данные шрифтом и цветом, установленными
    свойствами ForeColor
    (цвет)
    и Font
    (шрифт)
    формы.
    Т.к. положение
    каждого объекта в форме определяется
    значением свойств
    top
    и left,
    то эти
    значения можно использовать для привязки
    координат вывода информации к этому
    объекту. Если часть данных при выводе
    не умещается в форму, то они пропадают
    без возможности восстановления. Для
    удаления данных из формы существует
    метод Cls,
    синтаксис
    которого
    в общем виде
    записывается следующим образом:

    name
    формы
    или
    PictureBox
    .Cls

    1. Открыть
      новый проект. Внешний вид формы показан
      на рис. 22. Установить для формы свойства:
      Scale
      mode
      = 2
      Point,
      ForeColor
      – зелёный,
      Font
      Comic
      Sans,
      12, жирный курсив,
      name
      example4_1.
      Установить
      в форме объекты согласно рис. 22, свойства
      name
      указаны рядом с объектами. Для рисования
      линий на форме воспользоваться объектом
      линия
      Line
      из набора инструментов general.

    2. Записать
      самостоятельно программный код для
      кнопки закрыть.

    3. Записать
      программный код для текстовых полей,
      обеспечивающий их очистку для ввода
      последующих данных при щелчке мыши по
      ним, для этого нужно 2-ды щелкнуть по
      текстовому полю в форме, затем изменить
      событие в правом списке в окне редактора
      кодов с change
      на click.
      Записать для текстового поля следующий
      программный код:

    nachkod.Text=””

    Аналогичным
    образом записать программный код для
    второго тестового поля.

    1. Встроенная
      функция CHR$
      позволяет
      получить (увидеть) символ по номеру его
      кода. Записать следующий программный
      код для кнопки ОК:

    Dim
    i As Integer

    example4_1.Cls

    example4_1.CurrentY=kod.Top+30

    For
    i = 1 To Val(kolkod.Text)

    example4_1.CurrentX=kod.Left

    Dim
    intvar As Integer

    intvar=Val(nachkod.Text)+i-1

    example4_1.Print
    intvar;

    example4_1.CurrentX=simvol.Left

    example4_1.Print
    Chr$(intvar)

    Next
    i

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить на дискете проект и
      форму с именами lab4_1
      или example4_1
      соответствующими командами из меню
      file.

    Практическая работа № 4.2

    Visual
    Basic
    6.0
    позволяет
    вывести стандартные окна сообщений на
    экран в нужном месте программы. Окна
    могут содержать пиктограмму, з
    аголовок
    и текст сообщения, а также кнопки: ОК
    YES
    NO
    CANCEL
    RETRY.
    Описание вывода окна сообщения на экран
    выглядит следующим образом: MsgBox
    «текст сообщения», код пиктограммы,
    «заголовок»
    или
    Msgbox
    «текст сообщения», код вида ошибки,
    «текст заголовка»
    ,
    где код
    вида ошибки

    – есть сумма значений кодов, определяемых
    набором кнопок и пиктограммой. Если
    заголовок не указан, то выводится
    стандартный системный заголовок (как
    правило, соответствующий имени проекта).
    Коды пиктограмм: см. рис. 23. Коды наборов
    кнопок указаны в таблице 1.

    Для обеспечения
    диалога с пользователем существуют
    функции, которые возвращают целое число,
    соответствующее любой нажатой из
    имеющихся в окне кнопок (см. таб. 2).

    Табл.
    1

    Набор кнопок

    OK

    OK+

    CANCEL

    YES+NO+

    CANCEL

    YES

    +NO

    Код

    0

    1

    3

    4

    Табл.
    2

    Нажатая
    кнопка

    OK

    CANCEL

    YES

    NO

    Возвращаемое
    значение

    1

    2

    6

    7

    1. Загрузить
      проект, созданный в работе № 4.1.

    2. Предусмотреть
      в программе вывод стандартного окна
      сообщения в том случае, если пользователем
      не введен начальный код. Окно сообщения
      должно содержать пиктограмму
      «перекрестье»
      и кнопки YES
      и
      NO.
      В этом случае код вида ошибки будет
      равен 20
      – сумма значений набора кнопок (4)
      и пиктограммы (16).
      Для этого в процедуре для кнопки ОК
      после строки Form1.Cls
      добавить
      следующий программный код:

    If
    Val(nachkod.text)=0 Then

    MsgBox
    «Введите начальный код!», 20, «Ошибка!»

    Exit
    Sub

    End
    If

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить на дискете проект и
      форму с именами lab4_2
      или example4_2
      соответствующими командами из меню
      file.

    Практическая работа № 4.3

    Visual
    Basic
    6.0
    позволяет
    вывести стандартное окно InputBox
    на экран для ввода исходных данных в
    нужном месте программы. Окно содержит
    заголовок, текст сообщения и текстовое
    поле для ввода данных.

    1. Загрузить
      проект, созданный в работе № 4.1 или №
      4.2. Изменить форму согласно рис. 24. Задать
      свойство
      name
      формы
      example4_3.

    2. Предусмотреть в
      программе вывод окон InputBox
      для ввода начального кода и количества
      кодов. Для этого удалить из программного
      кода для кнопки ОК
      все строки, ввести новый программный
      код:

    Dim
    i, nachkod, kolkod As Integer

    example4_3.Cls

    nachkod=InputBox(«Введите
    начальный
    код«)

    kolkod=InputBox(«Введите
    количество кодов»)

    example4_3.CurrentY=kod.Top+30

    For
    i=1 To kolkod

    example4_3.CurrentX=kod.Left

    Dim
    intvar As Integer

    intvar=nachkod+i-1

    e
    xample4_3
    .Print
    intvar;

    example4_3.CurrentX=simvol.Left

    example4_3.Print
    Chr$(intvar)

    Next
    i

    1. Предусмотреть
      в программе вывод стандартного окна
      сообщения о подтверждении завершения
      программы в том случае, если пользователь
      нажал кнопку закрыть.
      Выход из программы должен осуществляться
      только при подтверждении выхода. Для
      этого удалить прежний программный код
      для кнопки закрыть
      и записать следующий:

    Dim
    a As String

    a=MsgBox(«Выход?»,
    vbYesNo, «
    выход«)

    If
    a=vbYes
    Then
    End

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки, а
      затем сохранить на дискете проект и
      форму с именами lab4_3
      или example4_3
      соответствующими командами из меню
      file.

    Выполните самостоятельно! Практическая работа № 4.4

    1. Создать новые
    проекты для печати в верхнем левом углу
    формы последовательности чисел [1 …
    10].
    Форма
    должна
    содержать
    одну
    командную
    кнопку.
    Программный
    код для кнопки для печати:

    1. в
      строку:

    Dim
    i as Integer

    Form1.Cls

    For
    i=1 to 10

    Form1.Print
    i;

    Next
    i

    1. в
      столбец:

    Dim
    i as Integer

    Form1.Cls

    For
    i=1 to 10

    Form1.Print
    i

    Next
    i

    2. Сохранить на
    дискете проекты и формы с именами lab4_4
    или example4_4.

    Практическая работа № 4.5

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

    2. Внешний вид
    формы показан на рис. 25. Установить на
    форме все необходимые объекты, свойства
    Name
    указаны на рисунке рядом с объектами.
    Записать для проекта и объектов на
    форме следующие программные коды:

    Программный код
    для раздела General
    Declarations:

    D
    im
    sarr(1 To 100) As String

    Dim
    snm As Integer

    Dim
    sln As Single

    Dim
    lcn As Integer

    Программный код
    для кнопки добавить:

    Private
    Sub dobav_Click()

    If
    nst.Text<>»» Then

    sp.AddItem
    nst.Text

    lcn=lcn+1

    sarr(lcn)=nst.Text

    nst.Text=»»

    End
    If

    nst.SetFocus

    End
    Sub

    Программный код
    для кнопки очистить:

    Private
    Sub ochis_Click()

    Dim
    i As Integer

    sp.Clear

    For
    i=1 To lcn

    sarr(i)=»»

    Next
    i

    nst.SetFocus

    sred.Caption=»»

    fst.Caption=»»

    End
    Sub

    Программный код
    для кнопки искать:

    Private
    Sub isk_Click()

    Dim
    i As Integer

    snm=0

    sln=0

    For
    i=1 To lcn

    If
    InStr(sarr(i), fin.Text) Then

    snm=snm+1

    sln=sln+Len(sarr(i))

    End
    If

    Next
    i

    fst.Caption=snm

    If
    snm>0 Then

    sred.Caption=sln/snm

    Else

    MsgBox
    «Нет строк!», 48

    End
    If

    nst.SetFocus

    fin=»»

    End
    Sub

    1. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки,
      а затем сохранить на дискете проект и
      форму.

    Практическая работа № 4.6

      1. С
        оздать
        новый проект и программу для вывода
        на форму сведений о трех студентах:
        по запрашиваемой фамилии — курс и номер
        группы. Макет формы показан на рис.
        26.

      2. Программный код
        для кнопки пуск:

    Dim
    familia As String

    familia=InputBox(«введите
    фамилию«,
    «
    ввод
    фамилии«)

    If
    familia=»
    Иванов»
    Then

    Text1.Text=»1
    курс,
    13
    группа«

    Else

    If
    familia=»
    Петров»
    Then

    Text2.Text=»2
    курс,
    21
    группа«

    Else

    If
    familia=»
    Чёрный»
    Then

    Text3.Text=»5
    курс,
    52
    группа«

    Else

    MsgBox
    «Данной фамилии нет в списке», 64,
    «Ошибка»

    End
    If

    End
    If

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.7

    1. Создать новый
      проект и программу: даны стороны N
      кубиков. Вычислить объем каждого. Форма
      должна содержать одну кнопку пуск.

    2. Программный код
      для кнопки пуск:

    Dim
    N, X As Integer, A, V As Single

    Form1.Cls

    N=InputBox(«Введите
    число кубиков», «количество
    кубиков»)

    For
    X=1 To N Step 1

    A=InputBox(«Введите
    длину стороны кубика», «ввод длины»)

    V=A^3

    P
    rint
    «
    объем
    кубика«;
    X; «=»; V

    Next
    X

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.8

    1. Создать новый
      проект и программу: в квартире 4 комнаты.
      Известны длина и ширина каждой комнаты.
      Вычислить площадь пола всей квартиры.
      Макет формы показан на рис. 27.

    2. Программный код
      для кнопки пуск:

    Form1.Cls

    Dim
    S, A, B, C, D As Long

    Dim
    X1, X2, X3, X4 As Single

    Dim
    Y1, Y2, Y3, Y4 As Single

    X1=InputBox(«Введите
    длину 1 комнаты»)

    Y1=InputBox(«Введите
    ширину 1 комнаты»)

    X2=InputBox(«Введите
    длину 2 комнаты»)

    Y2=InputBox(«Введите
    ширину 2 комнаты»)

    X3=InputBox(«Введите
    длину 3 комнаты»)

    Y3=InputBox(«Введите
    ширину 3 комнаты»)

    X4=InputBox(«Введите
    длину 4 комнаты»)

    Y4=InputBox(«Введите
    ширину 4 комнаты»)

    A=X1*Y1:
    B=X2*Y2: C=X3*Y3: D=X4*Y4

    S=A+B+C+D

    Text1.Text=S

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.9

    1. Создать новый
      проект и программу: в классе 10 учеников.
      Вычислить средний балл учеников класса
      по физике. Макет формы показан на рис.
      28.

    2. П
      рограммный
      код для кнопки пуск:

    Dim
    X, A As Integer, B As Single

    For
    X=1 To 10 Step 1

    A=InputBox(«Введите
    балл ученика», «ввод баллов»)

    B=B+A

    Next
    X

    B=B/10

    Text1.Text=B

    3
    .
    Запустить программу и убедиться в
    правильности ее работы, при необходимости
    исправить ошибки, а затем сохранить на
    дискете проект и форму.

    Практическая работа № 4.10

    1. Создать новый
      проект и программу, которая позволить
      создать список чисел, а затем выполнить
      со списком одно из 2-х действий: поиск
      минимального числа в списке, либо
      подсчет количества отрицательных
      чисел в списке. Макет формы показан на
      рис. 29.

    2. Программный код
      для кнопки найти:

    Dim
    chismin As Single

    Dim
    i, n As Integer

    If
    vibor(0).Value Then

    chismin=chisarr(1)

    For
    i=2 To chiskol

    If
    chisarr(i)<chismin Then chismin=chisarr(i)

    Next
    i

    result.Caption=chismin

    ElseIf
    vibor(1).Value Then

    For
    i=1 To chiskol

    If
    chisarr(i)<0 Then n=n+1

    Next
    i

    result.Caption=n

    End
    If

    1. Программный код
      для кнопки добавить,
      а также описание глобальных переменных
      записать аналогично работе № 3.1, пп. 4
      и 5. Запустить программу и убедиться в
      правильности ее работы, при необходимости
      исправить ошибки, а затем сохранить
      на дискете проект и форму.

    Практическая работа № 4.11

    1. Создать новый
    проект и программу для вывода на форму
    двух списков: в первый поместить названия
    книг, рекомендуемых для чтения, а во
    второй во время работы программы
    поместить список прочитанных книг.
    Макет формы показан на рис. 30.

    2. Программный код
    для кнопки пуск:

    D
    im
    NazKn1(1 To 3) As String, NazKn2(1 To 5) As String

    NazKn1(1)=»Программирование
    на
    VB«

    NazKn1(2)=»Информатика»

    NazKn1(3)=»Основы
    программирования
    «

    Dim
    x, y As Integer

    For
    x=1 To 3

    List1.AddItem
    NazKn1(x)

    Next
    x

    For
    y=1 To 5

    NazKn2(y)=InputBox(«Введите,
    пожалуйста, название книги», «Ввод
    названий прочитанных книг»)

    List2.AddItem
    NazKn2(y)

    Next
    y

    3.
    Программные
    коды
    для
    списков:

    Private
    Sub List1_Click()

    Label1.Caption=List1.Text

    End
    Sub

    Private
    Sub List2_Click()

    Label2.Caption=List2.Text

    End
    Sub

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.12

    1. Создать новый
    проект и программу для вычисления длины
    окружности
    и
    площади круга по введенному радиусу.
    Результат напечатать оператором Print.
    Макет формы показан на рис. 31.

    2. Программный код
    для кнопки пуск:

    pi=3.14159

    Dim
    R As Single, C, S As Double

    R=Text1.Text:
    C=2*pi*R: S=pi*(R^2)

    Print
    Chr(13),
    Chr(13),
    «Длина окружности=»;
    C,
    Chr(13),
    Chr(10),
    «Площадь круга=»;
    S

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.13

    1. Создать новый
    проект и программу для решения задачи:
    в компьютер
    вводятся
    2 числа. Если первое больше второго, то
    напечатать их сумму, иначе – произведение.
    После этого компьютер должен напечатать
    текст – ЗАДАЧА
    РЕШЕНА
    .
    Макет формы показан на рис. 32.

    2. Программный код
    для кнопки пуск:

    Dim
    A, B As Long

    A=Val(Text1.Text)

    B=Val(Text2.Text)

    If
    A>B Then

    Text3.Text=A+B

    Else

    Text3.Text=A*B

    End
    If

    MsgBox
    «
    ЗАДАЧА
    РЕШЕНА
    «,
    64, «
    ПОЗДРАВЛЕНИЕ

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.14

    1. Создать новый
    проект и программу для решения задачи:

    • Бесконечно
      печатать букву А: ААААААААААА…

    • Бесконечно
      печатать 10000 9999 9998 9997 9996…

    • Б
      есконечно
      печатать 100 50 25 12.5… с восьмью десятичными
      знака

    Макет формы показан
    на рис. 33.

    2. Программный код
    для кнопки печатать
    А
    :

    Do

    Print
    «
    A«;

    Loop

    3. Программный код
    для кнопки печатать
    10000
    :

    Dim
    A As Long

    A=10000

    Do

    A=A-1

    Print
    A;

    Loop

    4. Программный код
    для кнопки печатать
    100
    :

    S#=100

    Do

    Print
    S;

    S=S/2

    Loop

    5. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.15

    1. Создать новый
    проект и программу для решения задачи:

    • Напечатать 1 2 3 4
      … 50 … 99 100

    • Напечатать 100
      99… 50 … 3 2 1

    • Напечатать 1 2 3 4
      … 50 … 99 100 99 … 50 … 3 2 1

    Макет формы показан
    на рис. 34.

    2. Программный код
    для кнопки пуск
    1
    :

    D
    im
    i, j As Integer

    Form1.Cls

    For
    a=1 To 100 Step 1

    Print
    a;

    Next
    a

    3. Программный код
    для кнопки пуск
    2
    :

    Dim
    j As Integer

    Form1.Cls

    For
    j=100 To 1 Step -1

    Print
    j;

    Next
    j

    4. Программный код
    для кнопки пуск
    3
    :

    Dim
    a, b As Integer

    Form1.Cls

    For
    a=1 To 100 Step 1

    Print
    a;

    Next
    a

    For
    b=100 To 1 Step -1

    Print
    b;

    Next
    b

    5. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.16

    1
    .
    Создать новый проект и программу для
    решения задачи: вычислить и напечатать
    с шестью десятичными знаками квадраты
    чисел 0,000; 0.001; 0.002; 0.003; … 0.999; 1.000. Макет
    формы
    показан
    на
    рис.
    35.

    2. Программный код
    для кнопки пуск
    1
    :

    A=0:
    B=A^2: Print B

    For
    A=0.001 To 1 Step 0.001

    B=A^2

    Print
    B

    Next
    A

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на диске
    проект и форму.

    Практическая работа № 4.17

    1. Создать новый
    проект и программу для решения задачи:
    для х=2700, 900, 300, 100 вычислять и печатать
    у = х/4 + 20 и z
    = 2*у + 0.23 до тех пор, пока y*z
    не станет меньше 1/х. Макет формы показан
    на рис. 35.

    2. Программный код
    для кнопки пуск
    1
    :

    Dim
    X, Y, Z As Double

    X=2700

    X=X*3

    Y=X/4+20

    Z=2*Y+0.23

    Do
    Until Y*Z<1/X

    X=X/3

    Y=X/4+20

    Z=2*Y+0.23

    Print
    «Y=»; Y, «Z=»; Z

    Loop

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.18

    1. Создать новый
    проект и программу для решения задачи:
    печатать с помощью оператора For:
    Прямой счет:
    -3 -2 -1 0 1 2 3 Обратный счет: 3 2 1 0 -1 -2 -3 Конец
    счета
    . Макет
    формы показан на рис. 35.

    2. Программный код
    для кнопки пуск
    1
    :

    Dim
    i, j As Integer

    Form1.Cls

    Print
    «
    Прямой
    счёт

    For
    i=-3 To 3 Step 1

    Print
    i;

    Next
    i

    Print
    «
    Обратный
    счёт

    For
    j=3 To -3 Step -1

    Print
    j;

    Next
    j

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.19

    1. Создать новый
    проект и программу для решения задачи:
    в компьютер вводится N чисел. Подсчитать
    из них количество положительных,
    отрицательных и тех, что превышают
    число 10. Макет формы показан на рис. 35.

    2. Программный код
    для кнопки пуск
    1
    :

    Form1.Cls

    Dim
    N, X, Y1, Y2, Y3 As Integer

    Dim
    A As Single

    N=InputBox(«Укажите,
    пожалуйста, количество чисел, которое
    вы хотите ввести», «Ввод количества
    чисел»)

    For
    X=1 To N Step 1

    A=InputBox(«Введите,
    пожалуйста, число», «ввод чисел»)

    If
    A>0 Then

    Y1=Y1+1

    If
    A>10 Then Y2=Y2+1

    Else

    Y3=Y3+1

    End
    If

    Next
    X

    Print
    «Количество положительных чисел =»;
    Y1

    Print
    «Количество отрицательных чисел =»;
    Y3

    Print
    «Количество чисел, превышающих 10 =»;
    Y2

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.20

    1. Создать новый
    проект и программу для решения задачи:
    в компьютер вводится N чисел. Вычислить
    и напечатать их сумму. Макет формы
    показан на рис. 35.

    2. Программный код
    для кнопки пуск
    1
    :

    Form1.Cls

    Dim
    N, X As Integer

    Dim
    A, B As Single

    N=InputBox(«Укажите,
    пожалуйста, количество чисел, которое
    вы хотите ввести», «Ввод количества
    чисел»)

    For
    X=1 To N Step 1

    A=InputBox(«Введите,
    пожалуйста, число», «ввод чисел»)

    B=B+A

    Next
    X

    Print
    «
    Сумма
    чисел
    =»;
    B

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.21

    1. Создать новый
    проект и программу для решения задачи:
    найти максимальное из 10 вводимых в
    компьютер чисел. Макет формы показан
    на рис. 36.

    2. Программный код
    для кнопки старт:

    D
    im
    X As Integer, A, Y As Single

    A=InputBox(«Введите,
    пожалуйста, число», «ввод числа»)

    Y=A

    For
    X=1 To 9

    A=InputBox(«Введите,
    пожалуйста, число», «ввод числа»)

    If
    A>Y Then Y=A

    Next
    X

    Text1.Text=Y

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.22

    1. Создать новый
    проект и программу для решения задачи:
    найти из N чис
    ел
    минимальное. Каким по порядку было
    введено минимальное число? Макет формы
    показан на рис. 37.

    2. Программный код
    для кнопки пуск:

    Dim
    X, N As Integer

    Dim
    A, Y, B As Single

    N=InputBox(«Укажите,
    пожалуйста, количество чисел, которое
    вы хотите ввести», «Ввод количества
    чисел»)

    A=InputBox(«Введите,
    пожалуйста, число», «ввод числа»)

    Y=A:
    B=1

    For
    X=1 To N-1

    A=InputBox(«Введите,
    пожалуйста, число», «ввод числа»)

    If
    A<Y Then

    Y=A:
    B=X+1

    End
    If

    Next
    X

    Text1.Text=Y

    Label4.Caption=B

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.23

    1
    .
    Создать новый проект и программу для
    решения задачи: в каком случае сумма
    на вкладе в банке будет больше: при 14%
    годовых через 10 лет или при 10% годовых
    через 14 лет. Проценты начисляются на
    остаток на счете и добавляются к вкладу
    ежегодно. Макет формы показан на рис.
    38.

    2. Программный код
    для кнопки пуск:

    Dim
    i As Integer

    Dim
    s1, s2 As Double

    s1=1

    s2=2

    For
    i=1 To 10

    s1=s1*1.14

    Next

    For
    i=1 To 14

    s2=s2*1.1

    Next

    If
    s1>s2 Then

    MsgBox
    «1
    путь
    лучше«

    Else

    MsgBox
    «2
    путь
    лучше«

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.24

    1. Создать новый
    проект и программу для решения задачи:
    через сколько лет средства, положенные
    в банк под 12% годовых, возрастут не
    менее, чем в 2 раза. Проценты начисляются
    на остаток на счете и добавляются к
    вкладу ежегодно? Макет формы показан
    на рис. 38.

    2. Программный код
    для кнопки пуск:

    Dim
    n As Integer

    Dim
    s As Double

    s=1

    Do

    s=s*1.12

    n=n+1

    Loop
    While s<2

    MsgBox
    через
    » & n & »
    лет«)

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.25

    1. Создать новый
    проект и программу для решения задачи:
    автомобиль 3 часа ехал со скоростью 80
    км/ч и 2 часа со скоростью 90 км/ч. Вычислить
    среднюю скорость автомобиля. Результат
    напечатать методом Print.
    Макет формы показан на рис. 35.

    2. Программный код
    для кнопки пуск1:

    Dim
    S As Single

    V1%=80:
    T1%=3

    V2%=90:
    T2%=2

    S=(V1*T1+V2*T2)/(T1+T2)

    Print
    «
    средняя
    скорость=»;
    S

    Dim
    S As Single

    V1%=80:
    T1%=3

    V2%=90:
    T2%=2

    S=(V1*T1+V2*T2)/(T1+T2)

    Print
    «средняя скорость=»;
    S

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.26

    1. Создать новый
    проект и программу для решения задачи:
    в компьютер вводится слово. Компьютер
    должен просто распечатать его. Однако
    если введенным словом будет «колхозник»,
    то компьютер должен напечатать вместо
    него слово «фермер». Макет формы
    показан на рис. 35.

    2. Программный код
    для кнопки пуск1:

    Form1.Cls

    Dim
    slovo As String

    slovo=InputBox(«введите
    слово”, “ввод слова»)

    If
    slovo=»колхозн
    ик»
    Then

    Print
    «фермер»

    Else

    Print
    slovo

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.27

    1. Создать новый
    проект и программу для решения задачи:
    компьютер спрашивает пользователя,
    как его зовут, а затем приветствует его
    в соответствии с именем: Колю
    Привет, Васю
    Здорово, Джона
    Hi,
    а остальных
    Здравствуйте. Для Васи, кроме того, он
    красит форму в зеленый цвет. Макет формы
    показан на рис. 35.

    2. Программный код
    для кнопки пуск1:

    Form1.Cls

    Form1.BackColor=&HC0C0FF

    Dim
    ИМЯ
    As String

    ИМЯ=InputBox(«Введите
    имя», «Ввод имени»)

    If
    ИМЯКоля»
    Then

    Print
    «
    Привет!»

    Else

    If
    ИМЯВася»
    Then

    Form1.BackColor=vbGreen:
    Print «
    Здорово!»

    Else

    If
    ИМЯДжон»
    Then

    Print
    «Hi!»

    Else

    Print
    «
    Здравствуйте

    End
    If

    End
    If

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.28

    1. Создать новый
    проект и программу для решения задачи:
    компьютер спрашивает пользователя,
    сколько ему лет? Узнав возраст человека,
    дальн
    ейшую
    беседу он ведет по двум вариантам. Если
    возраст больше 17, то компьютер должен
    задать вопрос: «В каком институте
    ты учишься?» и, получив ответ,
    заметить: «Хороший институт». Если же
    возраст меньше или равен 17, то
    соответственно
    «В какой школе ты учишься?» и «Неплохая
    школа». После этого, каков бы ни был
    вариант, компьютер должен попрощаться:
    «До следующей встречи!» Макет формы
    показан на рис. 39.

    2. Программный код
    для кнопки пуск:

    Dim
    ВОЗРАСТ
    As
    Single

    Dim
    ИНСТИТУТ, ШКОЛА
    As
    String

    ВОЗРАСТ=InputBox(«Сколько
    вам лет?», «Введение возраста»)

    If
    ВОЗРАСТ>17
    Then

    ИНСТИТУТ=InputBoxВ
    каком институте ты учишься
    ?»,
    «введение названия института»):
    Text1.Text
    Хороший институт

    Else

    ШКОЛА=InputBoxВ
    какой школе ты учишься
    ?»,
    «введение названия школы»):
    Text1.Text
    = «
    Неплохая
    школа
    «

    End
    If

    MsgBox
    «
    До
    следующей встречи
    !»,
    64, «Прощание»

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.29

    1. Создать новый
    проект и программу для решения задачи:
    человек вводит в компьютер число. Если
    оно находится в интервале от 28 до 30, то
    нужно напечатать текст
    ПОПАЛ, если оно больше или равно 30, то
    ПЕРЕЛЕТ,
    если оно находится на отрезке от 0 до
    28, то
    НЕДОЛЕТ, если число меньше нуля, то
    НЕ БЕЙ ПО СВОИМ. Макет формы показан на
    рис. 39.

    2. Программный код
    для кнопки пуск:

    Dim
    A As Single

    A=InputBox(«Введите
    число», «Ввод числа»)

    If
    A<0 Then

    Text1.Text=»Не
    бей по своим!»

    Else

    If
    A<=28 Then

    Text1.Text=»Недолет»

    Else

    If
    A<30 Then

    Text1.Text=»Попал!»

    Else

    Text1.Text=»Перелет»

    End
    If

    End
    If

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.30

    1. Создать новый
    проект и программу для решения задачи:
    пользователь в
    водит
    радиусы 2-х кругов и сторону квадрата.
    С помощью процедуры MsgBox
    вывести результат сравнения площадей
    этих фигур: меньше, больше или одинаковы.
    Расположить на форме кнопку выхода из
    проекта. С помощью процедуры MsgBox
    перед выходом переспросить, уверен ли
    пользователь в выходе, выход только по
    ответу – да. Макет формы показан на
    рис. 40.

    2. Программный код
    для кнопки пуск:

    Dim
    a, r1, r2, s, s1, s2 As Double

    Const
    pi=3.1416

    r1=InputBox(«введите
    1
    радиус«)

    r2=InputBox(«введите
    2
    радиус
    «)

    a=InputBox(«введите
    сторону квадрата»)

    s1=pi*r1^2

    s2=pi*r2^2

    s=a^2

    If
    s1>s2 And s1>s Then

    MsgBox
    «
    круг
    1
    больше«

    ElseIf
    s1<s2 And s<s2 Then

    MsgBox
    «
    круг
    2
    больше«

    ElseIf
    s1>s And s1=s2 Then

    MsgBox
    «круги равны, квадрат меньше»

    ElseIf
    s1<s And s1=s2 Then

    MsgBox
    «круги равны, квадрат больше»

    ElseIf
    s1<s And s>s2 Then

    MsgBox
    «
    квадрат
    больше
    «

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.31

    1. Создать новый
    проект и программу для решения задачи:
    пользователь вводит произвольное
    число. Вывести с помощью процедуры
    MsgBox
    результат сравнения суммы 1-й и 3-й цифры
    с суммой 2-й и 4-й цифры. Если введенное
    число имеет меньше 4-х разрядов, сообщить
    об этом пользователю и сравнение не
    производить. Макет формы показан на
    рис. 40.

    2. Программный код
    для кнопки пуск:

    Dim
    i, a1, a2 As Integer

    Dim
    b As String

    b=InputBox(«введите
    число«)

    If
    Len(b)<4 Then

    MsgBox
    «недостаточно цифр», 48, «стоп»

    Else

    a1=Val(Mid(b,
    1, 1))+Val(Mid(b, 3, 1))

    a2=Val(Mid(b,
    2, 1))+Val(Mid(b, 4, 1))

    If
    a1>a2 Then

    MsgBox
    «1 и 3 больше», 64, «результат»

    ElseIf
    a1<a2 Then

    MsgBox
    «2 и 4 больше», 64, «результат»

    Else

    MsgBox
    «одинаково», 64, «результат»

    End
    If

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.32

    1. Создать новый
    проект и программу для решения задачи:
    пользователь вводит произвольное
    число. Вывести с помощью процедуры
    MsgBox
    результат сравнения суммы цифр,
    расположенных на четных местах в числе
    с суммой цифр, расположенных на нечетных
    местах: меньше, больше или одинаковы.
    Расположить на форме кнопку выхода из
    проекта. С помощью процедуры MsgBox
    перед выходом переспросить, уверен ли
    пользователь в выходе, выход только по
    ответу – да. Макет формы показан на
    рис. 40.

    2. Программный код
    для кнопки пуск:

    Dim
    i, a1, a2 As Integer

    Dim
    b As String

    b=InputBox(«enter
    number»)

    For
    i=1 To Len(b) Step 2

    a1=a1+Val(Mid(b,
    i, 1))

    a2=a2+Val(Mid(b,
    i+1, 1))

    Next

    If
    a1>a2 Then

    MsgBox
    «сумма нечетных больше», 64,
    «результат»

    ElseIf
    a1<a2 Then

    MsgBox
    «сумма четных больше», 64, «результат»

    Else

    MsgBox
    «равны», 64, «результат»

    End
    If

    3. Программный код
    для кнопки выход:

    Dim
    a As String

    a=MsgBox(«выход?»,
    vbYesNo, «
    выход«)

    If
    a=vbYes Then End

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 4.33

    1
    .
    Создать новый проект и программу для
    поиска нужного товара в списке. Заполнить
    список 5 – 7 наименованиями товаров.
    Разместить на форме текстовое поле для
    ввода названия нужного товара. Для
    клавиши «найти»
    написать код, который с помощью функции
    MsgBox выводит информацию: есть такой
    товар в списке или нет. В этом же сообщении
    предложить выбор: продолжить поиск
    товаров или завершить работу. Макет
    формы показан на рис. 41. Заполнить список
    данными (см. рис. 41) в свойстве List
    (см. практ. р. № 3.1) в окне properties
    window.

    2.
    Программный
    код
    для
    кнопки
    пуск:

    Dim
    i, n As Integer

    Dim
    a As String

    For
    i=0 To List1.ListCount

    If
    List1.List(i)=Text1.Text Then n=1

    Next

    If
    n=1 Then

    a=MsgBox(«есть
    товар»
    & vbCrLf & «
    продолжить?»,
    vbYesNo)

    Else

    a=MsgBox(«нет
    товара»
    & vbCrLf & »
    продолжить?»,
    vbYesNo)

    End
    If

    If
    a=vbNo Then End

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Форма отчета:
    дискета или иной носитель с файлами
    форм и проектов работы № 4; текстовый
    файл с изображениями форм и текстами
    программных кодов.

    Тема 5. Операционное меню и графика Практическая работа № 5.1

    О
    перационное
    меню

    создается в главной форме (рис. 42) проекта
    с помощью служебной программы MENU
    EDITOR,
    вызываемой одноименной командой из
    меню TOOLS.
    (См. рис. 43)

    В

    окне MENU
    EDITOR
    название позиции меню вводится в поле
    Name,
    а содержание
    команды меню – в поле
    Caption.
    Удобно все позиции одного выпадающего
    меню снабжать одинаковым именем Name,
    но различными индексами, которые
    вводятся в поле Index.
    Команды
    меню могут содержать так называемые
    «горячие»
    символы, с помощью которых можно
    обращаться к командам меню, используя
    функциональные клавиши. Для этого
    соответствующий символ в поле Caption
    должен быть обозначен знаком &
    (см. рис.
    44).
    Если позиция меню должна работать как
    «флажок»,
    то необходимо для нее включить флажок
    Checked,
    если позиция должна быть недоступна
    при запуске программы, для нее нужно
    включить флажок Enabled.
    Если позиция должна быть невидима, то
    выключить флажок Visible.
    Если следующая вводимая позиция меню
    должна быть на уровень ниже (например,
    для команд выпадающего меню) или выше
    (например, для команд основного меню),
    то для перехода на другой уровень
    следует нажать кнопку 
    (понизить уровень) или

    (повысить уровень). Переход на следующую
    строку для ввода следующей позиции
    меню выполняется кнопкой NEXT
    и щелчком по полю Caption.

    Для того, чтобы
    открыть окно редактора кодов программы
    для той или иной команды меню, нужно
    2-ды щелкнуть по этой команде в окне
    формы.

    1. Открыть
      новый проект. Внешний вид формы показан
      на рис. 42. Оформить форму по образцу.
      Установить в форме метку. Установить
      для формы свойство Name
      menu.

    2. Выбрать
      команду MENU
      EDITOR
      из меню TOOLS.
      Заполнить окно MENU
      EDITOR
      по образцу (см. рис. 42 и 43) и нажать кнопку
      ОК.
      (Будьте
      внимательны! Точки …. перед содержанием
      позиций меню в окне
      MENU
      EDITOR
      не набирать!)

    &программа
    (
    name=prog)
    нажать кнопки
    NEXT
    и

    &звезда
    (
    name=zvez,
    index=0)
    нажать кнопку
    NEXT

    &выход
    (
    name=zvez,
    index=1)
    нажать кнопки
    NEXT
    и

    &справка
    (
    name=spr)
    нажать кнопки
    NEXT
    и


    программе (
    name=spravka,
    index=0)
    нажать кнопку
    NEXT

    &разработчик
    (
    name=spravka,
    index=1)

    1. Вызвать
      окно редактора для команды меню о
      программе
      ,
      записать в процедуру для этой команды
      следующий программный код:

    Private
    Sub spravka_Click(Index As Integer)

    Select
    Case Index

    Case
    0

    menu.Enabled=False

    o
    prog.Show

    Case
    1

    menu.Enabled=False

    razrab.Show

    End
    Select

    End
    Sub

    1. Диалоговое
      окно

      (рис. 44) – это модальное окно, которое
      не позволяет переключаться на
      родительское (исходное) окно, прежде
      чем будет завершена работа с модальным.
      Для обеспечения этого свойства
      необходимо форме этого окна задать
      свойство Border
      Style
      = 3

      Fixed
      Dialog.
      Кроме того, в тексте программы должны
      быть строки, которые обеспечивают
      состояние недоступности родительского
      окна перед выводом диалогового окна
      на экран (свойство Enabled
      формы).
      После
      закрытия диалогового окна нужно
      восстановить доступность родительского
      окна и установить на нем «фокус».
      Для того, чтобы любое не главное окно,
      в т.ч. и диалоговое, появилось на экране
      при работе программы, необходимо в
      нужном месте программного кода
      предусмотреть строку с оператором
      загрузки формы и методом показа ее,
      т.к. при запуске программы автоматически
      появляется только главное окно
      программы. Синтаксисы оператора
      загрузки и метода показа формы следующие:

    • Оператор
      загрузки: LOAD
      Name
      формы

    • Метод
      показа: Name
      формы.Show

    Оператор
    LOAD
    только
    загружает форму из файла в память, но
    не показывает на экране. Метод Show
    предназначен для показа уже загруженной
    формы на экране, если форма еще не
    загружена, то он также может и загрузить
    ее. Если какое-либо окно при работе с
    программой используется часто, то
    целесообразно в начале программы
    загрузить его оператором LOAD,
    а затем в нужный момент показывать на
    экране методом Show.

    По
    окончании работы с диалоговым окном
    его необходимо скрыть и выгрузить.
    Оператор и метод, обеспечивающие
    выгрузку и скрытие формы имеют синтаксисы:

    • Оператор
      выгрузки:
      UNLOAD
      Name
      формы

    • Метод
      скрытия:
      Name
      формы.Hide

    Обычно
    диалоговые окна вызываются командами
    меню, поэтому оператор LOAD
    и метод Show
    должны
    находиться в соответствующей процедуре
    выпадающего меню. Так как принято все
    позиции одного выпадающего меню
    именовать одинаковым Name,
    то в проекте
    Visual
    Basic
    6.0
    создается
    одна процедура с оператором Select
    case
    Index,
    который передает в эту процедуру
    значение свойства Index
    выбранной
    позиции
    меню.

    Придав
    однажды диалоговому окну свойство
    модальности, нужно добавить аналогичную
    строку, которая возвращает доступность
    главной формы. В каждый момент времени
    какая-либо форма или объект в ней
    является активной, это означает, что –
    она «в
    фокусе
    »!
    По умолчанию,
    при вызове формы на экран в фокус
    попадает ее первый управляющий элемент.
    В некоторых случаях бывает нужно
    предусмотреть в тексте программы
    установку фокуса на какой-либо форме
    или объекте в ней, чтобы он был виден
    на экране. Для этого предназначен
    следующий метод:

    Name
    объекта
    .
    SetFocus

    1. Нажать
      кнопку добавить
      форму

      (Add
      Form)
      на панели инструментов или выбрать
      команду Add
      Form
      из меню Project.
      В проекте появится еще одна форма. Эта
      форма – будущее диалоговое окно,
      содержащее сведения о программе. (См.
      рис. 44) Если форма добавлена в проект
      ошибочно, то для ее удаления нужно
      вызвать на ее значке в окне проводника
      проекта контекстное меню и выбрать
      команду Remove
      Form.
      При выборе этой команды появляется
      запрос на сохранение удаляемой формы
      в отдельном файле, на который необходимо
      ответить.

    Рисунок
    в форму может быть вставлен объектами
    Image
    и PictureBox,
    которые
    находятся в наборе инструментов General.
    Эти объекты
    «показывают»
    рисунки, если их свойству Picture
    присвоено
    как значение имя файла рисунка.

    Установить
    в форме объект Image,
    присвоить
    свойству Picture
    этого объекта
    имя файла, содержащего рисунок (файл с
    рисунком должен быть предварительно
    создан с помощью какого-либо графического
    пакета и сохранен на диске или дискете;
    либо можно использовать любой имеющийся
    готовый файл рисунка).
    Следует
    иметь в виду, что объект
    Image
    не может «сжать»
    или «растянуть»
    большой или маленький по размерам
    рисунок до своих размеров, поэтому
    рекомендуется использовать рисунки,
    соизмеримые с размерами объекта Image
    и формы. В противном случае следует
    установить значение свойства Stretch
    объекта Image
    равным True
    – в этом случае «растяжение»
    или «сжатие»
    рисунков будет возможно.

    У
    становить
    также в форме метку и командную кнопку
    ОК.
    Установить необходимые значения свойств
    этих объектов. Задать для формы свойство
    Name
    oprog.
    Установить для этой формы значения
    свойств Minbutton
    False
    и Maxbutton
    False.
    Записать для кнопки ОК
    следующий программный код:

    oprog.Hide

    menu.Enabled=True

    m
    enu
    .SetFocus

    1. Аналогичным
      образом подготовить второе диалоговое
      окно «сведения
      о разработчике
      »
      (см. п.п. 4, 5). Установить в окне метки, в
      свойствах Caption
      которых записать сведения о разработчике
      (рис. 45); а также кнопку закрыть.
      Задать для формы свойство Name
      razrab.
      Записать для кнопки закрыть
      следующий программный код:

    razrab.Hide

    menu.Enabled=True

    menu.SetFocus

    1. Добавить к проекту
      еще одну форму (см. рис. 46) с заголовком
      окна «звезда»
      и свойством Name
      zvezda.
      Установить на форме 2 командные кнопки
      со свойствами Caption:
      построить звезду

      и ОК
      соответственно.
      (Будьте
      внимательны! Звезду на форме не
      рисовать!
      )
      Записать следующий программный код
      для кнопки ОК:

    zvezda.Hide

    menu.Enabled=True

    menu.SetFocus

    1. Создать
      процедуру–функцию для построения
      правильной звезды с помощью метода
      формы Line
      и с использованием тригонометрических
      функций. Для этого следует открыть
      раздел программного кода General
      Declarations
      в окне редактора кодов программы для
      формы «звезда»,
      где описать эту процедуру–функцию:

    Private
    Function Postr_Zvezda()

    Dim
    Pi, L, al, x0, y0, X1, Y1 as Single

    Dim
    X2, Y2, x3, y3, x4, y4, x5, y5 as Single

    ForeColor=&HFF

    цвет
    красный

    Pi=3.1416:x0=1500:y0=1000:L=2000:al=36/180*Pi

    X1=x0:Y1=y0

    X2=X1+L:Y2=Y1:Line(X1,Y1)-(X2,Y2)

    x3=X2-L*Cos(al):y3=Y2+L*Sin(al)

    Line
    (X2,Y2)-(x3,y3)

    x4=x3+L*Sin(al/2):y4=y3-L*Cos(al/2)

    Line
    (x3,y3)-(x4,y4)

    x5=x4+L*Sin(al/2):y5=y3

    Line
    (x4,y4)-(x5,y5)

    Line
    (x5,y5)-(X1,Y1)

    End
    Function

    Записать для
    кнопки построить
    звезду

    следующий программный код:

    Dim
    zvezd As Double

    zvezd=Postr_Zvezda()

    1. Вернуться в
      главную форму «разработка
      меню
      ».
      Вызвать окно редактора для команды
      меню звезда
      и записать следующий программный код:

    Private
    Sub zvez_Click(Index As Integer)

    Select
    Case Index

    Case
    0

    menu.Enabled=False

    zvezda.Show

    Case
    1

    End

    End
    Select

    End
    Sub

    1. В

      любом проекте, имеющем более 1-й формы,
      одна из форм должна быть стартовой. По
      умолчанию стартовой является та форма,
      которая была первой создана в проекте.
      В том случае, если компилятор Visual
      Basic
      6.0
      не
      может определить стартовую форму, или
      требуется указать стартовую форму
      самостоятельно, следует воспользоваться
      командой Project
      Properties
      из меню Project.
      В диалоговом окне команды Project
      Properties
      на вкладке General
      (рис. 47) следует определить стартовую
      форму, выбрав ее по значению свойства
      Name
      в раскрывающемся списке Startup
      Object,
      затем нажать кнопку ОК.

    2. Запустить программу
      и убедиться в правильности ее работы,
      при необходимости исправить ошибки,
      а затем сохранить на дискете файл
      проекта с именем lab5_1
      или example5_1
      командой Save
      Project
      As
      из меню file.
      Также сохранить на дискете каждую
      форму с именами lab5_1_1…(2,
      3, 4)
      или
      example5_1_1…(2,
      3, 4)
      . Можно
      сохранить формы и с именами, совпадающими
      со свойствами Name
      форм проекта.

    Для сохранения
    нескольких форм одного проекта нужно
    последовательно выделять значки этих
    форм в окне проводника проекта, выбирая
    при этом каждый раз команду Save
    <name
    формы>
    As
    в меню File.
    Каждый раз эта команда будет отображать
    свойство Name
    той формы, которая в данный момент
    выделена в окне проводника проекта.

    Практическая работа № 5.2

    1. Создать новый
    проект и программу для вывода на форму
    результатов редактирования фрагмента
    текста путем изменения типа, цвета и
    размера шрифта, начертания (курсив или
    полужирный). Макет формы показан на
    рис.
    48.

    2. Программный код
    для кнопки пуск1:

    Dim
    A As String

    A=InputBox(«Введите
    текст»)

    T

    ext1.Text=A

    3. Программный код
    для кнопки редактирование
    текста
    :

    Text1.FontName=»Comic
    Sans MS»

    Text1.FontSize=16

    Text1.FontItalic=True

    Text1.FontBold=True

    Text1.ForeColor=vbRed

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 5.3

    1. Создать новый
    проект, показывающий желтую квадратную
    форму с нов
    ым
    заголовком в правом верхнем углу и в
    центре экрана при нажатии на управляющую
    кнопку. Макет
    формы показан на рис. 49.

    2. Программный код
    для кнопки пуск:

    Form1.Top=0

    Form1.Left=15360-Form1.Width


    15360 – ширина
    формы
    в
    свойстве
    «right to left»

    Form1.Caption=»new
    title»

    Form1.BackColor=vbYellow

    Form1.Height=Form1.Width

    3. Программный код
    для кнопки в
    центр
    :

    Form1.Left=15360/2-Form1.Width/2

    Form1.Top=11520/2-Form1.Height/2


    11520 — высота формы в свойстве «right
    to
    left»

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 5.4

    1. Создать новый
    проект – простейший интерфейс –
    фотоальбом. Макет формы показан на рис.
    50. Установить на форме объект Image.

    2. Программные
    коды для кнопок OptionButton:

    Private
    Sub Option1_Click()

    Image1.Picture=LoadPicture(«C:Documents
    and SettingsAll Users
    ДокументыМои
    рисункиОбразцы
    рисунковВодяные
    лии.jpg»)

    End
    Sub

    Private
    Sub Option2_Click()

    Image1.Picture=LoadPicture(«C:Documents
    and SettingsAll Users
    ДокументыМои
    рисункиОбразцы
    рисунковГолубые
    холмы.jpg»)

    End
    Sub

    Private
    Sub Option3_Click()

    Image1.Picture=LoadPicture(«C:Documents
    and SettingsAll Users
    ДокументыМои
    рисункиОбразцы
    рисунковЗакат.jpg»)

    End
    Sub

    Private
    Sub Option4_Click()

    Image1.Picture=LoadPicture(«C:Documents
    and SettingsAll Users
    ДокументыМои
    рисункиОбразцы
    рисунковЗима.jpg»)

    End
    Sub

    В программных
    кодах для кнопок OptionButton
    должен быть указан истинный путь доступа
    к графическим файлам.

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 5.5

    1. Создать новый
    проект, позволяющий при нажатии одной
    кнопки сделать видимой другую для
    завершения приложения. Выбрать иконку
    для ее отображения на форме. Макет формы
    показан на рис. 51.

    2
    .
    Для того, чтобы в заголовке формы
    отображалась иконка, нужно свойству
    формы Icon
    присвоить значение файла с расширением
    *.ico.

    3. Программный код
    для кнопки пуск:

    Command2.Enabled=True

    4.
    Программный
    код
    для
    формы:

    Private
    Sub Form_Load()

    Command2.Enabled=False

    End
    Sub

    5. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 5.6

    1
    .
    Создать новый проект, состоящий из двух
    форм. Первая форма (рис. 52) должна
    содержать меню для вызова второй формы
    (рис. 53). Во второй форме предусмотреть
    список с фамилиями 5 студентов группы
    и кнопку для возврата в первую форму.

    2. Программный код
    для меню на форме 1:

    Form2.Show

    3. Программный код
    для кнопки увидеть
    список

    на форме 2:

    Form2.Cls

    Dim
    Spisok(1 To 5) As String

    Dim
    x As Integer

    Spisok(1)=»Андреева«:
    Spisok(2)=»
    Борисова«

    Spisok(3)=»Иванов«:
    Spisok(4)=»
    Петров«

    Spisok(5)=»Грекова«

    For
    x=1 To 5

    List1.AddItem
    Spisok(x)

    Next
    x

    4. Программный код
    для кнопки вернуться
    к первой форме

    на форме 2:

    Form1.Show

    5. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и формы.

    Практическая работа № 5.7

    1. С
    оздать
    новый проект для решения задачи:
    нарисовать 10 квадратов цветами радуги
    и подписать их номера. Макет
    формы
    показан
    на
    рис.
    54.

    2. Программный код
    для формы:

    Private
    Sub Form_Load()

    Form1.Show

    For
    i=0 To 9

    Line
    (1+400*i, 1)-(300+400*i, 300), QBColor(5+i), B

    Print
    i+1

    Next
    i

    End
    Sub

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 5.8

    1

    .
    Создать новый проект и программу,
    которая позволит создать список
    слов,
    выбрать из списка слова, заканчивающиеся
    на заданную букву, определить количество
    остальных (не заканчивающихся на букву)
    слов. Слова, соответствующие условию
    отбора должны выводиться в форму. Если
    список слов пуст, программа должно
    выводить на экран сообщение. Программа
    должна содержать 4 окна: главное и
    справочное окна, рабочее окно приложения,
    окно сведений о разработчике. Переключение
    между окнами должно осуществляться с
    помощью меню.

    2. Добавить к
    проекту 3 формы. Макеты главной формы
    и форм
    справочных окон показаны на рис. 55, 56,
    57. (см. практ. р. № 5.1) Задать формам
    свойства Name:
    главной – menu,
    разработчик – razrab,
    о программе – oprog.
    Самостоятельно записать коды для кнопок
    закрыть
    в справочных окнах.

    3. Создать на
    главной форме меню в соотв. с рис. 55.

    &программа
    (
    name=prog)
    нажать кнопки
    NEXT
    и

    &поиск
    (name=spisok, index=0)
    нажать
    кнопку
    NEXT

    &выход
    (
    name=spisok,
    index=1)
    нажать кнопки
    NEXT
    и

    &справка
    (
    name=spr)
    нажать кнопки
    NEXT
    и


    программе (
    name=spravka,
    index=0)
    нажать кнопку
    NEXT

    &разработчик
    (
    name=spravka,
    index=1)

    Записать для меню
    программный код:

    Private
    Sub spisok_Click(Index As Integer)

    Select
    Case Index

    Case
    0

    menu.Enabled=False

    Load
    poisk

    poisk.Show

    Case
    1

    End

    End
    Select

    End
    Sub

    Private
    Sub spravka_Click(Index As Integer)

    Select
    Case Index

    Case
    0

    menu.Enabled=False

    Load
    razrab

    razrab.Show

    Case
    1

    g
    lavn.Enabled=False

    Load
    oprog

    oprog.Show

    End
    Select

    End
    Sub

    4. Оформить 4-ю
    форму по образцу (рис. 58). Задать ей
    свойство name
    Poisk.
    Записать следующие программные коды
    для объектов
    формы:

    Программный
    код
    для
    раздела
    General
    Declarations
    :

    Dim
    slovarr(1 To 50) As String

    Dim
    slovkol As Integer

    Программный
    код для кнопки закрыть:

    poisk.Hide

    Unload
    poisk

    menu.Enabled=True

    menu.Show

    Программный
    код для кнопки добавить:

    spis.AddItem
    slovo.Text

    slovkol=slovkol+1

    slovarr(slovkol)=slovo.Text

    slovo.Text=»»

    slovo.SetFocus

    Программный
    код для кнопки найти:

    poisk.Cls

    If
    spis.List(0)=Empty Then

    MsgBox
    «Заполните список», 16, «Внимание»

    Exit
    Sub

    End
    If

    Dim
    i, sum As Integer

    poisk.CurrentX=Lab_pr.Left

    poisk.CurrentY=Lab_pr.Top+30

    buk.Caption=bukva.Text

    For
    i=1 To slovkol

    If
    Right$(slovarr(i), 1)=bukva.Text Then

    poisk.Print
    slovarr(i)

    Else

    sum=sum+1

    End
    If

    Next
    i

    result.Caption=sum

    5. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и формы.

    Форма отчета:
    дискета или иной носитель с файлами
    форм и проектов работы № 4; текстовый
    файл с изображениями форм и текстами
    программных кодов.

    Тема 6. Двумерные массивы Практическая работа № 6.1

    1. Создать новый
    проект и программу, которая позволит
    создать матрицу порядка от 2 до 9, который
    указывается в поле порядок
    матрицы
    .
    Если значение порядка не соответствует
    указанному диапазону, программа выдает
    стандартное сообщение. Элементы матрицы
    вводятся по одному последовательно по
    строкам. Заполнение матрицы осуществляется
    с помощью поля элемент
    матрицы

    и кнопки добавить.
    Кнопка сумма
    предназначена для подсчета суммы
    элементов строки матрицы, номер которой
    указан в поле суммировать
    строку N
    .

    2. Внешний вид
    формы показан на рис. 59, свойство Name
    формы – Example6_1.
    Установить на форме необходимые
    объекты, свойства Name
    указаны на рисунке рядом с объектами.
    Записать самостоятельно программный
    код для кнопки Закрыть.

    3. Записать следующие
    программные коды для формы и объектов:

    Программный
    код для раздела General
    Declarations:

    Dim
    mtx(1
    To
    9, 1
    To
    9)
    As
    Integer

    Dim
    mtr
    As
    Integer

    Dim
    lem
    As
    Integer

    Dim
    stn As Integer

    Dim
    cln As Integer

    Программный код
    для активации формы:

    Private
    Sub Form_Activate()

    pmx.SetFocus

    CurrentX=ln.X1+100

    CurrentY=ln.Y1+200

    stn=1

    End
    Sub

    Программный код
    для кнопки добавить:

    lem=lem+1

    cln=cln+1

    mtx(stn,
    cln)=Val(nel.Text)

    Print
    nel.Text;

    CurrentX=CurrentX+500

    If
    cln=mtr Then

    stn=stn+1

    cln=0

    CurrentY=CurrentY+300

    CurrentX=ln.X1+100

    End
    If

    nel.SetFocus

    nel.Text=»»

    Программный код
    для кнопки сумма:

    Dim
    i
    As
    Integer

    Dim
    ism As Integer

    For
    i=1 To mtr

    ism=ism+mtx(Val(rnm.Text),
    i)

    Next
    i

    rsm.Caption=ism

    Процедура снятия
    «фокуса»
    с текстового поля:

    Private
    Sub pmx_LostFocus()

    mtr=Val(pmx.Text)

    If
    mtr>1 And mtr<10 Then

    dobav.Enabled=True

    nel.SetFocus

    Else

    MsgBox
    «Неверный порядок матрицы», 16,
    «Ошибка!»

    pmx.SetFocus

    pmx.Text=»»

    End
    If

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и формы.

    Практическая работа № 6.2

    1. Создать новый
    проект, заполняющий матрицу размером
    2х4 случайными числами в диапазоне от
    –3 до +6. Написать код для управляющей
    кнопки, подсчитывающий произведение
    положительных элементов для каждого
    столбца матрицы. Предусмотреть ответ
    «нет», если все элементы столбца меньше
    или равны нулю. Макет формы показан на
    рис. 60.

    2
    .
    Свойство Name
    формы – Example6_2.
    Установить на форме необходимые
    объекты, свойства Name указаны на рисунке
    рядом с объектами. Установить на форме
    8 текстовых полей с одинаковым свойством
    Name
    Text1,
    но различными значениями свойства
    Index:
    от 0
    до 7.
    Текстовые поля должны представлять
    собой контрольный массив. Нумерация
    полей – по строкам.

    3. Программный код
    для кнопки пуск:

    Dim
    i, j, n, a(1, 3), b As Integer

    Randomize

    For
    i=0 To 1

    For
    j=0 To 3

    a(i,
    j)=-3+Int(10*Rnd)

    Text1(i*4+j)=a(i,
    j)

    Next:
    Next

    For
    j=0 To 3

    If
    a(0, j)<=0 Or a(1, j)<=0 Then

    MsgBox
    «в столбце» &
    j
    & «нет положительных элементов»

    Else

    b=a(0,
    j)*a(1,
    j)

    MsgBox
    «в столбце» &
    j
    & «произведение положительных
    элементов=» &
    b

    End
    If

    Next

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.3

    1
    .
    Создать новый проект для решения задачи,
    рассмотренной в п. 6.2, другим способом.

    2. Внешний вид
    формы показан на рис. 61, свойство Name
    формы – Example6_3.
    Установить на форме необходимые
    объекты, свойства Name
    указаны на рисунке рядом с объектами.
    Записать программный код для кнопки
    Выход.

    3
    .
    Установить на форме два объекта FlexGrid.
    Для этого вызвать контекстное меню на
    наборе инструментов General,
    выбрать команду Components.
    В окне Components
    на вкладке Controls
    (рис. 62) поставить галочку напротив
    позиции Microsoft
    FlexGrid Control 6.0 (SP6)
    ,
    нажать кнопку Применить,
    затем кнопку ОК.
    В наборе инструментов General
    появится кнопка

    объекта FlexGrid.
    Свойства Name
    объектов FlexGrid
    G1
    и G2
    (рис. 61). Объект FlexGrid
    имеет свойства: свойство Cols
    – количество столбцов, установить это
    свойство для обоих объектов равным 4;
    свойство Rows
    – количество строк, установить это
    свойство для обоих объектов равным 2.
    Содержимое объекта FlexGrid
    хранится в его свойстве Text.

    4. Записать для
    объектов формы следующие программные
    коды:

    Раздел
    General
    Declarations
    :

    Dim
    m(2, 4), p, i, j, b(4) As Integer

    5. Программный код
    для кнопки обновить:

    G2.Clear

    For
    i=0 To 1

    For
    j=0 To 3

    m(i,
    j)=Int((-3)*Rnd+6)

    G1.Col=j

    G1.Row=i

    G1.Text=m(i,
    j)

    Next
    j

    Next
    i

    For
    j=0 To 3

    If
    m(0, j)>0 And m(1, j)>0 Then

    For
    i=0 To 1

    b(4)=m(0,
    j)*m(1, j)

    G2.Col=j

    G2.Text=b(4)

    Next
    i

    Else

    MsgBox
    «в столбце» &
    j
    & «нет положительных элементов»

    End
    If

    Next
    j

    6. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.4

    1
    .
    Создать новый проект для решения вывода
    на форму символьного массива из 5 слов
    по 5 букв и определить слово: а) составленное
    из букв, расположенных на главной
    диагонали символьного массива; б)
    определить слово, составленное из букв,
    расположенных на обратной диагонали
    символьного массива; в) определить
    слово, составленное из букв, расположенных
    в начале каждого слова; г) определить
    слово, составленное из букв, расположенных
    в заданном столбце символьного массива;
    д) определить слово, составленное из
    последних букв каждого слова. Макет
    формы показан на рис. 63.

    2. Программный код
    для кнопки пуск:

    Dim
    A(1 To 5, 1 To 5) As String*1

    Dim
    X As Integer, Y As Integer, B As Integer

    For
    X=1
    To
    5

    MsgBox
    «введение слова по буквам «, 64

    For
    Y=1 To 5

    A(X,
    Y)=InputBox(«введите
    букву»)

    Print
    A(X, Y);

    Next
    Y

    Print

    Next
    X

    Text1.Text=A(1,
    1)+A(2, 2)+A(3, 3)+A(4, 4)+A(5, 5)

    Text2.Text=A(1,
    5)+A(2, 4)+A(3, 3)+A(4, 2)+A(5, 1)

    Text3.Text=A(1,
    1)+A(2, 1)+A(3, 1)+A(4, 1)+A(5, 1)

    B=InputBox(«введите
    номер столбца»)

    Text4.Text=A(1,
    B)+A(2, B)+A(3, B)+A(4, B)+A(5, B)

    Text5.Text=A(1,
    5)+A(2, 5)+A(3, 5)+A(4, 5)+A(5, 5)

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.5

    1. Создать новый
    проект, заполняющий матрицу размером
    4х4 случайным
    и
    целыми числами в диапазоне от 0 до +20.
    Написать код для управляющей кнопки,
    определяющий из элементов, расположенных
    по главной
    диагонали
    максимальное
    или минимальное значение. Макет формы
    показан на рис. 64.

    2. Установить на
    форме 16 текстовых полей с одинаковым
    свойством Name
    Text1,
    но различными значениями свойства
    Index:
    от 0
    до 15.
    Текстовые поля должны представлять
    собой контрольный массив. Нумерация
    полей – по строкам.

    3. Программный код
    для кнопки начать:

    Dim
    a(3, 3), i, min, max, j As Integer

    Randomize

    For
    i=0 To 3

    For
    j=0 To 3

    a(i,
    j)=Int(21*Rnd)

    Text1(i*4+j)=a(i,
    j)

    Next:
    Next

    If
    Option1.Value Then

    min=a(0,
    0)

    For
    i=1 To 3

    If
    a(i, i)<min Then min=a(i, i)

    Next

    MsgBox
    «min=» & min

    End
    If

    If
    Option2.Value Then

    max=a(0,
    0)

    For
    i=1 To 3

    If
    a(i, i)>max Then max=a(i, i)

    Next

    MsgBox
    «max=» & max

    End
    If

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.6

    1

    .
    Создать новый проект – двумерный массив
    7х7 и найти максимальный элемент каждого
    столбца. Макет
    формы показан на рис. 65.

    2. Записать для
    объектов формы следующие программные
    коды:

    Раздел
    General
    Declarations
    :

    Dim
    M(7, 7) As Integer

    Private
    Function MAX(Y As Integer) As Integer

    Dim
    s As Integer

    s=M(0,
    Y)

    For
    i=0 To 6

    If
    M(i, Y)>s Then s=M(i, Y)

    Next
    i

    MAX=s

    End
    Function

    3. Программный код
    для кнопки очистить:

    For
    j=0 To 6

    MSFlexGrid2.Col=j

    MSFlexGrid2.Text=»»

    Next
    j

    4.
    Процедура
    загрузки
    формы:

    With
    MSFlexGrid1

    For
    i=0 To 6

    For
    j=0 To 6

    M(i,
    j)=Int(Sin(i)*3-Cos(j)*7)

    .Row=i:
    .Col=j: .Text=Str(M(i, j))

    Next
    j

    Next
    i

    End
    With

    5.
    Процедура
    для объекта
    MSFlexGrid1:

    Private
    Sub MSFlexGrid1_Click()

    Dim
    Y As Integer

    Y=MSFlexGrid1.Col

    MSFlexGrid2.Col=Y

    MSFlexGrid2.Text=MAX(Y)

    End
    Sub

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.7

    1
    .
    Создать новый проект – двумерный массив
    7х7 и найти
    произведение
    ненулевых элементов обратной диагонали.
    Макет формы показан на рис. 66. Записать
    для объектов формы следующие программные
    коды.

    2. Раздел
    General
    Declarations
    :

    Dim
    M(7, 7) As Integer

    Private
    Function MyProg() As Integer

    Dim
    P As Integer

    P=1

    For
    i=0 To 6

    For
    j=0 To 6

    If
    i+j=6 And M(i, j)<>0 Then

    P=P*M(i,
    j)

    End
    If

    Next
    j

    Next
    i

    MyProg=P

    End
    Function

    3.
    Процедура
    загрузки
    формы:

    With
    MSFlexGrid1

    For
    i=0 To 6

    For
    j=0 To 6

    M(i,
    j)=Int(Sin(i)*3-Cos(j)*7)

    .Row=i:
    .Col=j: .Text=Str(M(i, j))

    Next
    j

    Next
    i

    End
    With

    4. Программный код
    для кнопки очистить:

    Label4.Caption=»»

    5. Программный код
    для кнопки вычислить:

    Label4.Caption=MyProg

    6. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.8

    1. Создать новый
    проект – двумерный массив 7х7 и среднее
    арифметическое положительных элементов
    каждой строки. Макет формы показан на
    рис. 67. Записать для объектов и формы
    следующие программные коды.

    2

    .
    Раздел
    General
    Declarations
    :

    Dim
    M(7, 7) As Integer

    Private
    Function Avr(Y As Integer) As Single

    Dim
    s As Integer

    For
    j=0 To 6

    If
    M(Y, j)>0 Then s=s+M(Y, j)

    Next
    j

    Avr=s/j

    End
    Function

    3.
    Процедура
    загрузки
    формы:

    With
    MSFlexGrid1

    For
    i=0 To 6

    For
    j=0 To 6

    M(i,
    j)=Int(Sin(i)*3-Cos(j)*7)

    .Row=i:
    .Col=j: .Text=Str(M(i, j))

    Next
    j

    Next
    i

    End
    With

    4. Программный код
    для кнопки очистить:

    For
    j=0 To 6

    MSFlexGrid2.Row=j

    MSFlexGrid2.Text=»»

    Next
    j

    5. Процедура для
    объекта MSFlexGrid1:

    Private
    Sub MSFlexGrid1_Click()

    Dim
    Y As Integer

    Y=MSFlexGrid1.Row

    MSFlexGrid2.Row=Y

    MSFlexGrid2.Text=Str(Format(Avr(Y),
    «##.##»))

    End
    Sub

    6. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.9

    1. С
    оздать
    новый проект – двумерный массив
    7х7 и вывести
    на экран количество слов, длина которых
    больше 5 символов. Макет формы показан
    на рис. 68.

    2. Записать для
    объектов и формы следующие программные
    коды.

    Раздел
    General
    Declarations
    :

    Dim
    M(7, 7) As String

    Private
    Function MyFun()

    Dim
    Sum As Integer

    For
    i=0 To 6

    For
    j=0 To 6

    If
    Len(M(i, j))>5 Then Sum=Sum+1

    Next
    j

    Next
    i

    MyFun=Sum

    End
    Function

    Private
    Sub Gen()

    Dim
    S As String

    For
    i=0 To 6

    For
    j=0 To 6

    S=»»

    For
    k=1 To Int(Rnd*7)

    L=Chr(65+Int(Rnd*5))

    S=S+L

    Next
    k

    M(i,
    j)=S

    MSFlexGrid1.Col=j

    MSFlexGrid1.Row=i

    MSFlexGrid1.Text=M(i,
    j)

    Next
    j

    Next
    i

    End
    Sub

    3. Программный код
    для кнопки обновить
    массив
    :

    Gen

    Label4.Caption=MyFun

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.10

    1. Создать новый
    проект для вывода на экран слова,
    находящегося на диагонали символьного
    массива с помощью процедуры–подпрограммы.
    Макет формы показан на рис. 69.

    2. Записать для
    объектов и формы следующие программные
    коды.

    Раздел
    General
    Declarations
    :

    Dim
    M(5, 5) As String

    Private
    Sub MyProc()

    D
    im
    S As String

    For
    i=0 To 4

    For
    j=0 To 4

    If
    i=j Then S=S +M(i, j)

    Next
    j

    Next
    i

    Label3.Caption=S

    End
    Sub

    3. Программный код
    для кнопки обновить
    массив
    :

    For
    i=0 To 4

    For
    j=0 To 4

    M(i,
    j)=Chr(65+Int(Rnd*10))

    MSFlexGrid1.Col=j

    MSFlexGrid1.Row=i

    MSFlexGrid1.Text=M(i,
    j)

    Next
    j

    Next
    i

    MyProc

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Практическая работа № 6.11

    1

    .
    Создать новый проект – двумерный массив
    7х7 и отсортировать по возрастанию
    каждый столбец. Макет формы показан на
    рис. 70.

    2. Записать для
    объектов и формы следующие программные
    коды.

    Раздел
    General
    Declarations
    :

    Dim
    M(7, 7) As Single

    Private
    Sub SORT(Y As Integer)

    Dim
    A, B, C As Single

    For
    i=0 To 6

    A=M(i,
    Y)

    For
    s=i To 6

    B=M(s,
    Y)

    If
    B<A Then

    C=A

    M(i,
    Y)=B

    M(s,
    Y)=C

    A=B

    End
    If

    Next
    s

    MSFlexGrid2.Row=i

    MSFlexGrid2.Text=M(i,
    Y)

    Next
    i

    End
    Sub

    3.
    Процедура
    загрузки
    формы:

    With
    MSFlexGrid1

    For
    i=0 To 6

    For
    j=0 To 6

    M(i,
    j)=Int(Sin(i)*3-Cos(j)*7)

    .Row=i:
    .Col=j: .Text=Str(M(i, j))

    Next
    j

    Next
    i

    End
    With

    4. Программный код
    для кнопки очистить:

    For
    i=0 To 6

    MSFlexGrid2.Row=i

    MSFlexGrid2.Text=»»

    Next
    i

    5.
    Процедура
    для
    объекта
    MSFlexGrid1:

    With
    MSFlexGrid1

    Y=.Col

    SORT
    (Y)

    End
    With

    6. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Форма отчета:
    дискета или иной носитель с файлами
    форм и проектов работы № 6; текстовый
    файл с изображениями форм и текстами
    программных кодов.

    Тема 7. Разработка базы данных Практическая работа № 7.1

    1
    .
    Программа создает базу данных по учету
    кадров предприятия. Заполнение базы
    данных осуществляется с помощью команды
    запись
    из меню файл,
    это же меню содержит команды просмотр
    и выход.
    Команда просмотр
    предназначена для пролистывания
    содержимого базы данных. Содержимое
    базы данных и количество записей в ней
    отображается в главном окне приложения.
    Меню правка
    содержит команды изменить
    и удалить,
    предназначенные для редактирования
    содержимого базы данных. Приложение
    также содержит справочное окно и
    инструкцию для пользователя.

    Для создания и
    работы с базой данных необходимо
    использование специальных средств,
    имеющихся в Visual
    B
    asic
    6.0
    и
    называемых Data
    Manager
    . Эти
    средства создают объект Data,
    а также
    другие объекты, ассоциируемые с базой
    данных, для работы с ней. Но для простых
    случаев использование этих средств
    может оказаться более громоздким, чем
    создание базы данных с помощью
    структурного типа данных или массива.

    Для создания
    структуры базы данных в простой программе
    можно описать некоторый структурный
    тип, который будет иметь все необходимые
    поля таблицы базы данных. Затем должен
    быть описан одномерный массив этого
    типа. А также создана заготовка базы
    данных и другие объекты для работы с
    ней, которые могут быть выполнены с
    помощью общих средств языка Visual
    Basic 6.0

    (операторов присваивания, объектов
    текстового поля и др.). Т.к. база данных
    должна быть доступна для многих
    событийных процедур, разных форм, в
    т.ч. и для главной формы, то описание
    структуры, типа и массива этого типа
    необходимо поместить в раздел general
    declarations
    .
    Это стандартный модуль файла с расширением
    *.bas,
    который добавляется к проекту командой
    Add Module
    из меню Project.

    2. Открыть
    новый проект. Внешний вид главной формы
    показан на рис. 71. Задать свойство name
    формы – glav.
    Установить необходимые значения
    основных свойств формы по образцу.
    Создать на форме операционное меню
    приложения согласно рис. 71. (См. пр. р. №
    5.1) Свойства name
    выпадающих меню указаны на рис. 71 в
    рамках меню. Установить на форме 7 меток
    и 1 список. Свойства name
    указаны на рисунке рядом с объектами.

    3
    .
    Добавить к проекту модуль командой Add
    Module
    из
    меню Project.
    Задать свойство name
    модуля – basa
    (рис. 72).
    При описании структуры типа базы данных,
    необходимо чтобы в ней были указаны
    поля, которые соответствуют графам
    таблицы базы данных (см. табл. 3):

    Табл. 3

    Графы
    таблицы

    Свойство
    name поля

    Тип

    Описание

    фамилия

    famnum

    Текстовый

    String*10

    должность

    dolnum

    Текстовый

    String*15

    оклад

    oklnum

    Текстовый

    String*10

    Записать в раздел
    general
    declarations

    модуля basa
    приложения «УЧЕТ КАДРОВ»:

    Type
    kadrrec

    famnum
    As String*10

    dolnum
    As String*15

    oklnum
    As String*10

    End
    Type

    Затем описать в
    этом же разделе модуля массив базы
    данных:

    Public
    basa(1
    To
    10)
    As
    kadrrec
    база
    данных не более 10 записей

    4. Для работы с
    базой данных потребуются различные
    текущие признаки, которые будут
    характеризовать текущее состояние
    базы данных. Эти признаки обычно
    присваивают глобальным целым переменным
    и описывают там же, где и структура, тип
    и массив базы данных. Добавить в модуль
    описания этих переменных:

    Public
    currec
    As
    Integer
    текущая
    запись

    Public
    recquant
    As
    Integer
    количество
    записей в базе

    5. Список в главном
    окне приложения может показывать всю
    базу данных, но при этом может и не
    показывать все ее поля. Список необходимых
    для показа полей определяется
    программистом исходя из требований,
    предъявляемых к приложению. Для того,
    чтобы в списке в главном окне программы
    данные полей располагались в виде
    «правильных»
    столбцов, необходимо установить для
    этого списка непропорциональный шрифт,
    например: Courier
    или Courier
    New
    , в
    котором на каждый символ отводится
    одинаковое по ширине место.

    Открыть главную
    форму проекта. Установить для объекта
    список свойство Font
    Courier
    или Courier
    New
    , размер
    шрифта следует подобрать самостоятельно
    исходя из размеров объекта список.

    5. Открыть окно
    редактора кодов программы для команды
    меню файл
    и записать следующий программный код:

    Private
    Sub fm1_Click(Index As Integer)

    Select
    Case Index

    Case
    1

    glav.Enabled=False

    sod.Show

    Case
    2

    glav.Enabled=False

    zapys.Show

    Case
    3

    End

    End
    Select

    End
    Sub

    6
    .
    Добавить к проекту форму. Задать свойство
    name
    формы – zapys.
    Внешний вид формы показан на рис. 73.
    Оформить форму по образцу, установить
    необходимые значения свойств объектов
    формы согласно рис. 73.

    7. Команда запись
    из меню файл
    проекта «УЧЕТ КАДРОВ» должна добавлять
    новую запись в конец базы данных, т.е.
    в очередной элемент массива, данные
    этой новой записи, которые вводятся в
    окне названой команды. Кроме этого, эта
    команда должна добавлять часть или все
    введенные данные к списку в главном
    окне приложения, который специально
    предназначен для просмотра базы. Имена
    текстовых полей в окне команды запись
    не должны (!) совпадать с именами полей
    базы данных, описанных оператором type.

    Кнопки ЗАПИСАТЬ
    и ЗАКРЫТЬ
    выполняют почти одинаковые действия:
    кнопка ЗАПИСАТЬ
    – добавляет данные в базу данных, а
    кнопка ЗАКРЫТЬ
    – добавляет данные и закрывает окно.
    Таким образом, в событийных процедурах
    этих 2–х кнопок должен быть практически
    одинаковый текст. Для того, чтобы не
    дублировать этот текст в 2–х событийных
    процедурах, он оформляется в виде одной
    структурной единицы программы: процедуры
    addrecinput.
    При этом в указанных событийных
    процедурах для кнопок имеются лишь
    строки вызова этой общей процедуры.
    Общая процедура записывается в модуль
    проекта.

    Открыть окно
    редактора кодов для кнопок ЗАПИСАТЬ
    и ЗАКРЫТЬ
    и ввести следующий программный код:

    Private
    Sub zap_Click()

    nomer.Caption=recquant+1

    Call
    addrecinput

    End
    Sub

    Private
    Sub zakr_Click()

    nomer.Caption=recquant+1

    Call
    addrecinput

    Unload
    zapys

    glav.Enabled=True

    glav.SetFocus

    End
    Sub

    8. Открыть окно
    редактора кодов модуля basa
    и записать описание процедуры:

    Public
    Sub addrecinput()

    Dim
    strvar As String

    recquant=Val(glav.vsego.Caption)+1

    If
    recquant<>11 Then

    zapys.nomer.Caption=recquant

    basa(recquant).famnum=zapys.fam.Text

    strvar=basa(recquant).famnum
    & «»

    basa(recquant).dolnum=zapys.dol.Text

    strvar=strvar+basa(recquant).dolnum
    & «»

    basa(recquant).oklnum=zapys.okl.Text

    strvar=strvar+basa(recquant).oklnum

    glav.spisok.AddItem
    strvar

    zapys.fam.Text=»»

    zapys.dol.Text=»»

    zapys.okl.Text=»»

    zapys.fam.SetFocus

    glav.vsego.Caption=recquant

    Else

    MsgBox
    «база заполнена», 16, «нет места»

    Unload
    zapys

    glav.Enabled=True

    glav.SetFocus

    Exit
    Sub

    End
    If

    End
    Sub

    9. Вернуться в
    форму Запись.
    Записать программные коды для событий:
    загрузка формы и изменение состояния
    объекта fam
    (текстовое поле):

    Private
    Sub fam_Change()

    nomer.Caption=recquant+1

    End
    Sub

    Private
    Sub Form_Load()

    recquant=Val(glav.vsego.Caption)

    End
    Su
    b

    10. Вернуться в
    главную форму проекта. Команда удалить
    из меню правка
    должна удалять текущую запись базы
    данных. Для того, чтобы запись стала
    текущей, нужно выделить ее (щелкнуть
    по ней мышью) в списке в главном окне
    программы. При щелчке номер строки
    передается в свойство ListIndex
    списка. Команда удалить
    должна также удалять запись из базы
    данных, а все последующие записи после
    удаляемой переписывать на позицию
    выше. Будьте
    внимательны!

    Записи в базе данных нумеруются от 0 до
    9, но пользователю на экране отображается
    нумерация от 1 до 10. Следует этот момент
    учитывать при реализации событийных
    процедур для команд запись
    и удалить,
    а также при написании других кодов
    программы, где предполагается вывод
    содержимого базы данных на экран.

    Открыть окно
    редактора кодов для команды операционного
    меню правка
    и записать следующий программный код:

    Private
    Sub pm1_Click(Index As Integer)

    Dim
    i As Integer

    Select
    Case Index

    Case
    1

    glav.Enabled=False

    izmen.Show

    Case
    2 ‘
    процедура
    команды «удалить»

    If
    recquant=0 Then

    MsgBox
    «база пуста», 16, «удаление
    невозможно»

    Exit
    Sub

    End
    If

    glav.Enabled=True

    glav.SetFocus

    If
    recquant<>0 Then

    For
    i=currec+1 To recquant+1

    basa.basa(i-1)=basa.basa(i)

    basa.basa(i).famnum=»
    «

    basa.basa(i).dolnum=»
    «

    basa.basa(i).oklnum=»
    «

    Next
    i

    spisok.RemoveItem
    currec-1

    recquant=Val(vsego.Caption)-1

    vsego.Caption=recquant

    currec.Caption=»
    «

    End
    If

    End
    Select

    End
    Sub

    Записать программные
    коды для событий: загрузка
    формы и щелчок
    по строке в объекте spisok
    (ListBox)

    Private
    Sub Form_Load()

    recquant=Val(vsego.Caption)

    End
    Sub

    Private
    Sub spisok_Click()

    currec=spisok.ListIndex+1

    currec.Caption=currec

    End
    Sub

    11. Добавить к
    проекту форму. Задать свойство name формы
    izmen.
    Внешний вид формы показан на рис. 74.
    Оформить форму по образцу, установить
    необходимые значения свойств объектов
    формы согласно рис. 74.

    Команда изменить
    показывает окно с теми данными базы,
    которые надо изменить. Таким образом,
    данные должны быть показаны в текстовых
    полях. После изменения новые данные
    должны попасть на то же место в базе
    данных и на ту же строку в список в
    главном окне приложения, но не в конец(!)
    списка и/или базы данных.

    Открыть окно
    редактора и записать следующие
    программные коды для объектов формы
    izmen:

    Private
    Sub pred_Click()

    Dim
    a As Integer

    a=recquant-1

    If
    a<=0
    Then

    MsgBox
    «вы просмотрели базу до начала»,
    48, «СТОП»

    Exit
    Sub

    End
    If

    recquant=recquant-1

    izmen.fam.Text=basa.basa(recquant).famnum

    izmen.dol.Text=basa.basa(recquant).dolnum

    izmen.okl.Text=basa.basa(recquant).oklnum

    izmen.nomer.Caption=recquant

    End
    Sub

    Private
    Sub sled_Click()

    Dim
    a As Integer

    a=recquant+1

    If
    a>=11 Then

    MsgBox
    «вы просмотрели базу до конца»,
    48, «СТОП»

    Exit
    Sub

    End
    If

    recquant=recquant+1

    izmen.fam.Text=basa.basa(recquant).famnum

    izmen.dol.Text=basa.basa(recquant).dolnum

    izmen.okl.Text=basa.basa(recquant).oklnum

    izmen.nomer.Caption=recquant

    End
    Sub

    Private
    Sub zakr_Click()

    Unload
    izmen

    glav.Enabled=True

    glav.SetFocus

    End
    Sub

    12. Поскольку
    действия, выполняемые кнопкой ОК
    практически аналогичны действиям,
    выполняемым кнопкой записать
    в окне запись,
    то добавим в модуль проекта еще одну
    процедуру izmrecinput:

    Public
    Sub izmrecinput ()

    Dim
    strvar As String

    recquant=izmen.nomer.Caption

    glav.spisok.RemoveItem
    recquant-1

    basa(recquant).famnum=izmen.fam.Text

    strvar=basa(recquant).famnum
    & «»

    basa(recquant).dolnum=izmen.dol.Text

    strvar=strvar+basa(recquant).dolnum
    & «»

    basa(recquant).oklnum=izmen.okl.Text

    strvar=strvar+basa(recquant).oklnum

    glav.spisok.AddItem
    strvar, recquant-1

    End
    Sub

    В событийную
    процедуру для кнопки ОК
    запишем строку вызова процедуры
    izmrecinput:

    Private
    Sub okbut_Click()

    Call
    izmrecinput

    End
    Sub

    13. Добавить к
    проекту форму. Задать свойство name
    формы – sod.
    Внешний вид формы показан на рис. 75.
    Оформить форму по образцу, уст
    ановить
    необходимые значения свойств объектов
    формы согласно рис. 75. Просмотр содержимого
    базы данных осуществляется с помощью
    кнопок предыдущий
    и следующий,
    событийные проце-дуры которых аналогичны
    процедурам одноименных кнопок в окне
    команды изменить.
    Кнопка ОК
    выгружает окно просмотра и возвращает
    пользователя в главное окно проекта.

    Запишите событийные
    процедуры для кнопок предыдущий
    и следующий,
    изменив в кодах свойство name
    формы, а также свойства объектов,
    отображающих содержание полей базы
    данных (см. п. 11).

    Private
    Sub pred_Click()

    Dim
    a As Integer

    a=recquant-1

    If
    a<=0 Then

    MsgBox
    «вы просмотрели базу до начала»,
    48, «СТОП»

    Exit
    Sub

    End
    If

    recquant=recquant-1

    sod.fam.Caption=basa.basa(recquant).famnum

    sod.dol.Caption=basa.basa(recquant).dolnum

    sod.okl.Caption=basa.basa(recquant).oklnum

    sod.nomer.Caption=recquant

    End
    Sub

    Private
    Sub sled_Click()

    Dim
    a As Integer

    a=recquant+1

    If
    a>=11 Then

    MsgBox
    «вы просмотрели базу до конца»,
    48, «СТОП»

    Exit
    Sub

    End
    If

    recquant=recquant+1

    sod.fam.Caption=basa.basa(recquant).famnum

    sod.dol.Caption=basa.basa(recquant).dolnum

    sod.okl.Caption=basa.basa(recquant).oklnum

    sod.nomer.Caption=recquant

    End
    Sub

    Запишите событийную
    процедуру для кнопки ОК.

    Private
    Sub okbut_Click()

    Unload
    sod

    glav.Enabled=True

    glav.SetFocus

    End
    Sub

    1
    4.
    Добавить к
    проекту 2 формы, которые должны выполнять
    функции справочных
    диалоговых окон. Задать
    свойства name
    форм – opisanie
    и spravka.
    Внешний вид форм показан на рис. 76.
    Оформить формы по образцу. Окно описание
    программы

    содержит краткую инструкцию для
    пользователя. Окно справка
    содержит инфор-мацию о самой программе
    и сведения о разработчике. Запишите
    для этих форм программные коды для
    кнопок ОК
    и закрыть.

    Private
    Sub okbut_Click()

    Unload
    opisanie

    glav.Enabled=True

    glav.SetFocus

    End
    Sub

    Private
    Sub zakr_Click()

    Unload
    spravka

    glav.Enabled=True

    glav.SetFocus

    End
    Sub

    15. В главной форме
    проекта запишите программный код для
    команд операционного меню справка.

    Private
    Sub sp1_Click(Index As Integer)

    Select
    Case Index

    Case
    1

    glav.Enabled=False

    opisanie.Show

    Case
    2

    glav.Enabled=False

    spravka.Show

    End
    Select

    End
    Sub

    Private
    Sub okbut_Click()

    Unload
    opisanie

    glav.Enabled=True

    glav.SetFocus

    End
    Sub

    Private
    Sub zakr_Click()

    Unload
    spravka

    glav.Enabled=True

    glav.SetFocus

    End
    Sub

    1
    6.
    Запустить программу и убедиться в
    правильности ее работы, при необходимости
    исправить ошибки, а затем сохранить на
    дискете проект, формы и модуль с именами
    (см. рис. 77): basa.vbp,
    glav.frm,
    zapys.frm,
    izmen.frm,
    sod.frm,
    opisanie.frm,
    spravka.frm,
    basa.bas
    соответствующими
    командами из меню file.

    Форма
    отчета
    :
    дискета или иной носитель с файлами
    модуля, форм и проектов работы № 7;
    текстовый файл с изображениями форм и
    текстами программных кодов.

    Тема 8. Решение задач в среде Visual Basic 6.0 Задача № 8.1

    1. Создать новый
    проект и программу для
    вычисления
    значения функции:

    Значения А и Х
    задать с помощью элемента HScrollBar.
    Окно работающег
    о
    приложения показано на рис. 78. Установить
    на форме два объекта HScrollBar.

    2. Записать для
    объектов HScrollBar
    программные
    коды:

    Private
    Sub HScroll1_Change()

    My
    вызов
    процедуры

    End
    Sub

    Private
    Sub HScroll2_Change()

    My
    вызов
    процедуры

    End
    Sub

    3. Записать
    программный код для процедуры загрузки
    формы:

    Form1.Show

    Label1.Caption=»Вычислить
    функцию
    Y=»+Chr(10)+Chr(13)+

    «X/sqr(X^2-A),
    если
    A<3″+Chr(10)+Chr(13)+»X/sin(X+A), если A>=3″

    4. Записать
    программный код для раздела General
    Declaartions:

    Dim
    X, A As Integer

    Dim
    Y As Single

    Private
    Sub My()

    X=HScroll1.Value

    A=HScroll2.Value

    Label4.Caption=X

    Label5.Caption=A

    If
    A<3 Then

    If
    (X<-Sqr(Abs(A))) Or (X>Sqr(Abs(A))) Then

    Y=X/Sqr(X^2-A)

    Label6.Caption=»A<3.
    Вычисляется
    значение
    Y=X/sqr(X^2-A)=
    «+
    Str(Y)

    Else

    MsgBox
    «X
    должно
    быть
    в
    диапазоне«+Chr(10)+Chr(13)+»X<-Sqr(Abs(A))
    And X>Sqr(Abs(A))»

    End
    If

    Else

    If
    Sin(X+A)<>0 Then

    Y=X/Sin(X+A)^2

    Label6.Caption=»A>3.
    Вычисляется
    значение
    Y=X/Sin(X+A)^2
    =»+
    Str(Y)

    Else

    MsgBox
    «X
    должно
    быть
    в
    диапазоне«+Chr(10)+Chr(13)+»X<-Sqr(Abs(A))
    And X>Sqr(Abs(A))»

    End
    If

    End
    If

    End
    Sub

    5. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Задача № 8.2

    1
    .
    Создать новый проект и программу для
    расчета времени, за которое возрасты
    наблюдателей на Земле и в космическом
    пространстве сравняются согласно
    теории А. Эйнштейна.
    Окно работающего
    приложения показано на рис. 79.

    2. Записать для
    кнопки Расчет
    программный
    код:

    Private
    Sub Command2_Click()

    Const
    C As Long=300000

    Dim
    Ts, Tr, T, V As Long

    Ts=Val(Text1.Text):
    Tr=Val(Text2.Text): V=Val(Text3.Text)

    If
    V>0 And V<=C Then

    T=(Tr-Ts)/(1-Sqr(1-(V/C)*(V/C)))

    Label6.Caption=Format(T,
    «###.##»)

    Else

    Text3.Text=»»

    Text3.SetFocus

    MsgBox
    «скорость корабля должна быть в
    пределах»+
    Chr(10)+
    Chr(13)+Chr(9)+»0<V<300000″

    End
    If

    End
    Sub

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Задача № 8.3

    1. Создать новый
    проект и программу для построения
    графика функции Y=A*x2+B*x+C.
    Значения коэффициентов задать с помощью
    объекта Slider.

    2. Окно работающего
    приложения показано на рис. 80. Построение
    графика осуществляется с помощью
    объекта PictureBox.
    Установить на форме три объекта Slider
    с помощью команды Components
    из контекстное меню, вызванного на
    наборе инструментов General
    (см. пр. р. № 6.3, п. 3).

    3. Записать
    программный код для процедуры загрузки
    формы:

    Form1.Show

    Picture1.DrawWidth=1

    Picture1.Scale
    (-10, 10)-(10, -10)

    Picture1.Line
    (-10, 0)-(10, 0), vbcian

    Picture1.Print
    «X»

    Picture1.Line
    (0, 10)-(0, -10), vbcian

    Picture1.Print
    «Y»

    For
    i=-10 To 10

    Picture1.PSet
    (i, 0), QBColor(0)

    Picture1.Print
    i

    Next
    i

    4. Записать для
    объектов Slider
    программные коды:

    Private
    Sub Slider1_Change()

    My

    End
    Sub

    Private
    Sub Slider2_Change()

    M
    y

    End
    Sub

    Private
    Sub Slider3_Change()

    My

    End
    Sub

    5. Записать
    программный код для раздела General
    Declaartions:

    Private
    Sub My()

    Dim
    a, b, c As Integer

    a=Slider1.Value

    b
    = Slider2.Value

    c
    = Slider3.Value

    Label5.Caption=»a=
    «+ Str(a): Label6.Caption= «b= » + Str(b):
    Label7.Caption=»C= «+ Str(c)

    Picture1.Cls

    Picture1.Scale
    (-10, 10)-(10, -10)

    Picture1.Line
    (-10, 0)-(10, 0), vbcian

    Picture1.Print
    «X»

    Picture1.Line
    (0, 10)-(0, -10), vbcian

    Picture1.Print
    «Y»

    For
    i=-10 To 10

    Picture1.PSet
    (i, 0), QBColor(0)

    Picture1.Print
    i

    Next
    i

    For
    i=-10 To 10 Step 0.02

    x=i

    y=a*x^2+b*x+c

    Picture1.PSet
    (x, y)

    Next
    i

    End
    Sub

    6. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Задача № 8.4

    1. Создать новый
    проект и программу для вычисления
    наименьшего общего кратного 2-х
    произвольных чисел.
    Окно работающего
    приложения показано на рис. 81.

    2. Записать для
    кнопки Вычислить
    программный
    код:

    Dim
    n1, n2, Nok, M As Double

    If
    Val(Text1.Text)<>0 Or Val(Text2.Text)<>0 Then

    n1=Abs(Val(Text1.Text))

    n2=Abs(Val(Text2.Text))

    M=n1*n2

    Do

    q=n1
    Mod n2

    n1=n2:
    n2=q

    Loop
    While q<>0

    Nok=n1

    Text3.Text=M/Nok

    Else

    MsgBox
    «Следует ввести числа, отличные от
    нуля!»

    Text1.Text=»»

    Text2.Text=»»

    Text1.SetFocus

    End
    If

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект и форму.

    Задача № 8.5

    1. Создать новый
    проект и программу для вычисления
    наибольшего
    общего делителя 2-х произвольных чисел.
    Окно работающего
    приложения показано на рис. 82.

    2
    .
    Записать для кнопки Вычислить
    программный
    код:

    If
    Nod(Val(Text1.Text), Val(Text2.Text))<>0 Then

    Text3.Text=
    Nod(Val(Text1.Text), Val(Text2.Text))

    Else

    Text3.Text=»»

    End
    If

    3. Записать
    программный код для раздела General
    Declaartions:

    Function
    Nod(ByVal n1 As Double, ByVal n2 As Double) As Double

    n1=Abs(n1):
    n2=Abs(n2)

    If
    n1*n2=0 Then

    MsgBox
    («ошибка ввода»)

    Text1.Text=»»

    Text1.SetFocus

    Text2.Text=»»

    Exit
    Function

    End
    If

    Do

    q=n1
    Mod n2

    n1=n2:
    n2=q

    Loop
    While q<>0

    Nod=n1

    End
    Function

    4. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект.

    Задача № 8.6

    1. Создать новое
    приложение, позволяющее нарисовать на
    форме прямоугольник, у которого длина
    одной стороны задается с помощью
    элемента Slider,
    а длина другой вычисляется по формуле
    золотого сечения. Окно работающего
    приложения показано на рис. 83.

    2. Записать для
    элемента Slider
    программный код:

    Dim
    a, b As Integer

    DrawWidth=5

    Form1.Cls

    a=Slider1.Value:
    Label2.Caption=a

    b=(a*(Sqr(5)-1))/2

    Label6.Caption=b

    Line
    (2000, 3000)-(2000 + a, 3000), vbRed

    Line
    (2000, 3000)-(2000, 3000 + b), vbBlue

    Line
    (2000, 3000 + b)-(2000 + a, 3000 + b), vbYellow

    Line
    (2000 + a, 3000)-(2000 + a, 3000 + b), vbMagenta

    3. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект.

    Задача № 8.7

    1
    .
    Создать новое приложение, позволяющее
    нарисовать на форме правильный
    треугольник с высотой, заданной с
    помощью элемента Slider.
    Окно работающего
    приложения показано на рис. 84.

    2. Записать для
    элемента Slider
    программный код:

    Dim
    h As Integer

    Slider1.Text
    = «H= «+Str(Slider1.Value)

    Form113.Cls

    Text1.Text=Slider1.Value

    h=Slider1.Value

    Call
    My(h)

    3. Записать
    программный код для раздела General
    Declaartions:

    Private
    Sub My(x As Integer)

    DrawWidth=3

    Line
    (3300, 2000)-(3300-x * Sin(3.14/3), 2000+x), vbRed

    Line
    (3300, 2000)-(3300+x * Sin(3.14/3), 2000+x), vbGreen

    Line
    ((3300-x*Sin(3.14/3)), 2000+x)-(3300+x*Sin(3.14/ 3), 2000+x),
    vbYellow

    DrawWidth=1

    Line
    (3300, 2000)-(3300, 2000+x), vbMagenta

    End
    Sub

    4. Записать
    программный код для процедуры загрузки
    формы:

    Me.Show

    Text1.Text=Slider1.Value

    5. Запустить
    программу и убедиться в правильности
    ее работы, при необходимости исправить
    ошибки, а затем сохранить на дискете
    проект.

    Форма отчета:
    дискета или иной носитель с файлами
    форм и проектов задач; текстовый файл
    с изображениями форм и текстами
    программных кодов.

    90

    • #1

    I’m getting the error in the title of the thread and VBA highlights the time_lastcell2 as the culprit.

    Code:

    Dim first_cell As Integer
    Dim time2 As Worksheet
    Set time2 = ActiveWorkbook.Sheets("time")
    
    
    Dim lastday As Date, lastday_time As Date
    time_lastcell2 As Integer
    
    
    With time2
    time_lastcell2 = .Range("e65000").End(xlUp).Row
    End With
    
    
    lastday_time = time2.Range("e" & time_lastcell).Address
    
    
    
    
    'Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
        Application.EnableEvents = False
    
    
    
    
    With ActiveSheet
    first_cell = .Range("c65000").End(xlUp).Row
    
    
    lastday = .Range("b" & first_cell).Address
    
    [more code]

    Save Often

    If you start asking yourself if now is a good time to save your Excel workbook, the answer is Yes

    • #2

    kylefoley76,

    Missing Dim….

    Dim time_lastcell2 As Integer

    • #3

    Missing Dim….

    Dim time_lastcell2 As Integer

    Also, since it will hold a row number, I would suggest declaring it as a Long instead of as an Integer…

    Dim time_lastcell2 As Long

    • #4

    Thanks that did it. Also Rick, about the fact that I thought you didn’t like one-liners expressing gratitude. I thought I read that on excelfox but I went back to look for it and I couldn’t find it.

    У меня есть приведенный ниже код, который объединяет/объединяет все повторяющиеся строки с одним и тем же текстом в столбцах 1-4 и суммирует значение в столбце 5.

    Код работал правильно в течение некоторого времени, но внезапно перестал работать, и я столкнулся с приведенным ниже сообщением об ошибке:

    Ошибка компиляции:

    Statement invalid outside type block

    Любая помощь в решении этого вопроса будет высоко оценена

    Sub nSum()
        Dim Rng As Range, Dn As Range, n As Long, Txt As String, Ac As Long
        Set Rng = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))
        ray(1 To Rng.Count, 1 To 4) 'Column count ''***ERROR LINE***************
    
        With CreateObject("scripting.dictionary")
            .CompareMode = vbTextCompare
    
            For Each Dn In Rng
                Txt = Join(Application.Transpose(Application.Transpose(Dn.Resize(, 3))), ",")
                If Not .Exists(Txt) Then
                    n = n + 1
                    For Ac = 1 To 4: ray(n, Ac) = Dn.Offset(, Ac - 1): Next Ac
                    .Add Txt, n
                Else
                    ray(.Item(Txt), 4) = ray(.Item(Txt), 4) + Dn.Offset(, 3)
                End If
            Next
    
            n = .Count
        End With
    
        With Sheets("Sheet2").Range("A1").Resize(n, 4)
            .Value = ray
            .Borders.Weight = 2
            .Columns.AutoFit
        End With
    End Sub'
    

    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии

    А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Statement ignored oracle ошибка
  • State sets error 3d max ошибка