Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_romanova_VB6.0.doc
Скачиваний:
24
Добавлен:
21.08.2019
Размер:
2.51 Mб
Скачать
  • Установить в форме объект Label - метка, он нужен для создания надписей в форме, находится в наборе инструментов general (см. рис. 1 и 3). Метка имеет свойство name (см. выше), а также свойство caption, содержащее надпись, которую видит пользователь. Задать для метки значение свойства captionвведите число.

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

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

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

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

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

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

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

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

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

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

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

    • 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

    При обнаружении ошибки в программном коде компилятор Visual Basic 6.0 выдает стандартное окно сообщения, которое содержит информацию о коде (Run-time 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. User-defined 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*(p-a)*(p-b)*(p-c)) ‘площадь треугольника по ф-ле Герона

    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=a10\5

    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 – зелёный, FontComic Sans, 12, жирный курсив, nameexample4_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. Оформить форму по образцу. Установить в форме метку. Установить для формы свойство Namemenu.

    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 – в этом случае «растяжение» или «сжатие» рисунков будет возможно.

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

    oprog.Hide

    menu.Enabled=True

    m enu.SetFocus

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

    razrab.Hide

    menu.Enabled=True

    menu.SetFocus

    1. Добавить к проекту еще одну форму (см. рис. 46) с заголовком окна «звезда» и свойством Namezvezda. Установить на форме 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 Settings\All Users\Документы\Мои рисунки\Образцы рисунков\Водяные лии.jpg")

    End Sub

    Private Sub Option2_Click()

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

    End Sub

    Private Sub Option3_Click()

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

    End Sub

    Private Sub Option4_Click()

    Image1.Picture=LoadPicture("C:\Documents and Settings\All 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). Задать ей свойство namePoisk. Записать следующие программные коды для объектов формы:

    Программный код для раздела 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 текстовых полей с одинаковым свойством NameText1, но различными значениями свойства 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 объектов FlexGridG1 и 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 текстовых полей с одинаковым свойством NameText1, но различными значениями свойства 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 Basic 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, в котором на каждый символ отводится одинаковое по ширине место.

    Открыть главную форму проекта. Установить для объекта список свойство FontCourier или 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 Sub

    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

  • Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]