Интерфейс и компоненты Visual Basic
Проектирование программного кода осуществляется в Интегрированной среде разработки (Integrated Development Environment IDE). Основными компонентами IDE являются:
окно формы, предназначено для визуального проектирования;
окно кода, предназначено для написания кода вручную;
панель элементов управления, содержит объекты, размещаемые на форме при создании интерфейса;
окно свойств элементов управления;
окно проекта, в котором отображаются все составляющие проекта в виде иерархической древовидной структуры (проводник проекта).
Каждый объект проекта (формы и элементы управления) обладают свойствами, им соответствуют определённые события, реакция на которые называется методами.
ЛАБОРАТОРНОЕ ЗАНЯТИЕ № 3
Цель занятия:ознакомить студентов с составом проекта Visual Basic, визуальной средой разработки и синтаксисом языка.
Задание 1. Проект и интегрированная среда разработки Visual Basic
Используя проводник Windows откройте папку с проектом Visual Basic, указанную преподавателем (VB учебные \ 00 Наибольшее число).
Алгоритм задачи рассмотрен во втором разделе пособия (лабораторное занятие 2, задание 2)
Эта папка содержит шесть файлов, каждый из которых является частью проекта.
Файл с расширением ЕХЕ (MaxN.exe) – исполняемый файл, созданный в процессе компиляции исходного кода. Это результат проектирования, который может существовать независимо от других файлов проекта.
Остальные файлы проекта создаются автоматически в процессе его сохранения. Основными из них являются Проект1.vbp – файл проекта и Форма1.frm – файл формы. Установите указатель на первый из них, и два раза щёлкните по левой кнопке мыши. При этом произойдёт загрузка интегрированной среды разработки Visual Basic, которая приведена на рисунке 18.
Рис. 18. Интегрированная среда разработки Visual Basic.
Последовательно отыщите на экране и ознакомьтесь со следующими компонентами интерфейса:
─ главное меню – расположено в верхней части экрана;
─ панель инструментов – расположено ниже главного меню;
─ панель элементов – находится в левой части экрана;
─ окно формы – в центре экрана;
─ окно программного кода – в центре экрана;
─ окно свойств – в правой части экрана;
─ менеджер проекта – над окном свойств.
Обратите внимание на то, что часть компонентов интерфейса (окно элементов, окно формы, окно кода, окно свойств) содержат атрибуты окна Windows. Поэтому их можно перемещать, сворачивать и закрывать.
Закройте окно формы, окно свойств и панель элементов. Используя меню Вид (Просмотр), откройте закрытые компоненты.
Повторите выполненные операции, используя панель инструментов.
Закройте Visual Basic.
Задание 2. Создание интерфейса приложения с использованием визуальных средств программирования
Рассмотрим один из важнейших инструментов программирования на примере создания простейшего текстового редактора.
Используя меню Пуск \ Программы \ Microsoft Visual Basic 6.0 \ Microsoft Visual Basic 6.0, откройте окно Новый проект. В появившемся окне щёлкните по кнопке Открыть. На экране появится визуальная среда разработки Visual Basic.
На панели элементов щелчком указателя мыши утопите кнопку TextBox – текстовое поле, как показано на рис. 19.
Рис. 19. Кнопка TextBox.
Этот элемент управления используется для ввода текстовой информации. Элементы управления, размещенные на форме, принято называть объектами формы. Форма для них служит контейнером. Сама же форма тоже является объектом приложения. Совокупность этих объектов и есть пользовательский интерфейс.
Для размещения текстового поля на форме, установите указатель мыши в левый верхний угол предполагаемого текстового редактора и, удерживая левую кнопку мыши, переместите его по диагонали формы в правый нижний угол.
Полученный прямоугольник является текстовым полем (рис. 20). Если он выделен, вокруг него размещены угловые, вертикальные и горизонтальные маркера (маленькие чёрные квадратики). Маркера используются для изменения размеров текстового поля. Убедитесь в этом.
Рис. 20. Окно текстового редактора, размещённое на форме.
Если элемент управления активен, в окне свойств отображаются его свойства, в нашем случае свойства текстового поля (рис. 21). Окно свойств содержит две колонки. Колонку наименований (левая ) и колонку значений (правая). Значения свойств элементов управления могут быть изменены.
Установите указатель мыши в правую колонку напротив свойства text и удалите его значение. Обратите внимание на то, какие изменения произошли с текстовым полем.
Установите указатель мыши в правую колонку напротив свойства MultiLine. Откройте поле со списком, используя кнопку со стрелкой. В поле со списком выберите «True» (Да). Это позволит выполнять многострочный ввод текста. В противном случае текст можно будет вводить лишь в одну строку.
Рис. 21. Свойства текстового поля.
Из меню Вид (Просмотр) выберите команду План формы. Выполните щелчок по левой кнопке мыши. На экране появится окно План формы.
На панели инструментов нажмите кнопку Старт или меню Пуск \ Старт. Среда разработки Visual Basic переключится в режим интерпретации, который имитирует работу приложения в реальном масштабе времени. Необходимо учитывать, что это не результат проектирования, а лишь его промежуточный этап.
Опробуйте работу созданного текстового редактора. Для этого введите несколько текстовых строк.
На панели инструментов нажмите кнопку Конец или меню Пуск \ Конец, что позволит вернуться к процессу разработки проекта.
Рис. 22. Окно План формы.
В окне План формы (рис. 22) появится схематическое отображение создаваемой формы. С помощью указателя, удерживая левую кнопку мыши, разместите форму симметрично экрану монитора, который также схематично отображён в окне. После чего закройте окно План формы. Положение проектируемой формы относительно экрана зафиксировано.
Переместите указатель на форму и щёлкните левой кнопкой мыши. Форма, а следовательно и её свойства станут активными.
В окне свойств найдите свойство Caption. Удалите существующее значение (Form1) и наберите с клавиатуры новое (Редактор текстов). В заголовке создаваемой формы отобразится новое значение свойства Caption.
Обратите внимание на то, что свойство Name (Имя) также имеет значение Form1. Но разница между ними существенная. Свойство Caption определяет заголовок формы, тогда как свойство Name используется в качестве идентификатора объекта Форма в программном коде.
Переместите указатель на свойство Icon. Нажмите на кнопку с тремя точками. В окне Загрузить Пиктограмму выберите: VB Учебные \ Фотогаллерея \ ico \ Book01a.ico. В качестве пиктограммы может быть выбран любой файл с расширением ico. Выбранная пиктограмма помещается в строку заголовка формы. Она же будет являться значком к имени загружаемого файла проекта.
Используя проводник Windows, создайте в собственной папке папку Редактор. В процессе сохранения проекта можно изменять наименования файлов. Например, загружаемый файл можно назвать Редактор.ехе. Как правило, он эксплуатируется автономно. Сохраните проект в следующей последовательности:
Файл \ Сохранить Проект Как…
Файл \ Сохранить Form1 Как…
Файл \ Делать Project1.ехе…
Процесс создания загружаемого файла называется процессом компиляции.
Закройте визуальную среду программирования. Используя проводник Windows, убедитесь в том, что необходимые файлы проекта содержатся в папке Редактор. Загрузите исполняемый файл и проверьте его работоспособность.
Задание 3. Модули, процедуры и функции
Чтобы продолжить работу с проектом, необходимо загрузить файл с расширением vbp. Этот файл содержит структуру всего проекта.
Если после загрузки окно формы отсутствует, выберите в окне менеджера проекта (рис. 23) строку формы и щёлкните по ней кнопкой мыши. Для просмотра составляющих проекта используют кнопки Показать объект, Показать Код, которые расположены в левом верхнем углу окна (рис. 23).
Рис. 23. Окно менеджера проекта.
До сих пор мы использовали только визуальные средства программирования. Однако, этого недостаточно для создания полноценного проекта. Необходимо овладеть технологией написания программного кода (программы). Программный код состоит из модулей. Различают три типа модулей:
─ модули формы – основа проекта;
─ стандартные модули – доступны всем модулям проекта;
─ модули классов – используются для создания новых классов, объектов, свойств и методов.
Модули содержат процедуры общего назначения, процедуры обработки событий и функции.
В нашем случае Форма1 является модулем формы, который пока не содержит процедур и функций.
Любое приложение Windows после загрузки сохраняет состояние покоя до тех пор, пока не произойдёт внешнее воздействие на один из элементов управления. Такое воздействие называют событием. Реакция на событие – методом. Рассмотрим технологию создания и структуру процедуры обработки событий на конкретном примере.
Активизируйте окно формы, если оно не активное. Выделите текстовое поле Тext1 и разместите его в центре формы. Для этого используйте функциональное меню: Формат \ Центрировать в Форме \ Горизонтально; Формат \ Центрировать в Форме \ Вертикально.
На панели элементов утопите кнопку CommandButton (кнопка управления). Удерживая левую кнопку мыши, очертите на форме пространство ниже текстового поля. Свойству Caption данного объекта присвойте значение «Восстановить». Аналогичным образом создайте рядом вторую кнопку в соответствие с рис. 24.
Рис. 24. Форма Редактор текстов.
Выделите обе кнопки, удерживая клавишу CTRL. Отформатируйте их размеры с помощью функционального меню: Формат \ Сделать одного Размера \ Ширина; Формат \ Сделать одного Размера \ Высота.
Выделите текстовое поле Тext1. В окне свойств данного объекта выберите свойство Visible. Установите для этого свойства значение «False» (Нет), как показано на рис. 25.
Рис. 25. Свойство Visible.
Установка такого значения свойства Visible позволит скрыть на экране текстовое поле при загрузке приложения. Убедитесь в этом, используя режим интерпретатора. Вернитесь в режим проектирования приложения.
Необходимо создать процедуру, которая при нажатии на кнопку «Восстановить» (событие Click), обеспечила видимость текстового поля.
Установите указатель на кнопку «Восстановить» и дважды щёлкните по левой кнопке мыши. Автоматически откроется окно Редактора кода, в котором будет сформированы первая и последняя строчки процедуры обработки события Click:
Private Sub Command1_Click()
End Sub
Первая строка процедуры должна обязательно содержать зарезервированное слово Sub и имя процедуры, которое состоит из наименования объекта Command1 и наименования события Click, разделённых знаком подчёркивания. Private – обозначает то, что данная процедура доступна только для модуля Form1. Последняя строка процедуры содержит зарезервированные слова End Sub. Обратите внимание, что курсор расположен между первой и последней строками процедуры.
Нажмите клавишу Tab и наберите на клавиатуре выражение следующего содержания:
Text1.Visible = True
В этом выражении использован оператор присвоения – знак равно. Свойству Visible объекта Text1 присваивается значение True – истина. При этом объект следует отделить от его свойства точкой. Такая запись позволяет обеспечить видимость текстового поля.
Общий вид процедуры обработки события нажатия на клавишу «Восстановить»:
Private Sub Command1_Click()
Text1.Visible = True
End Sub
Самостоятельно создайте процедуру обработки события нажатия на клавишу «Удалить». Программный код этой процедуры должен выглядеть следующим образом:
Private Sub Command2_Click()
Text1.Visible = False
End Sub
Проверьте результаты программирования в режиме интерпретации.
Приведённые выше примеры демонстрируют технологию создания процедур обработки событий. По своей структуре функции схожи с процедурами. Однако имеют ряд существенных отличий:
─ функции всегда возвращают значения, процедуры никогда;
─ первая строка функции начинается с зарезервированного слова Function, за которым следует её наименование;
─ последняя строка функции завершается фразой End Function;
─ функция не связана с обработкой событий и может быть вызвана из процедуры.
В арсенале Visual Basic содержится много стандартных функций, использование которых облегчает работу программиста, так как для вызова функции достаточно указать её имя. Рассмотрим на конкретных примерах использование функций.
Используя кнопку Label (Метка), расположенную на панели элементов, отобразите в правом верхнем углу формы (над текстовым полем) прямоугольник. Этот элемент управления будет использоваться для отображения системной даты. Установите для его свойства Caption значение пробел, а для свойства BorderStyle значение 1- Fixed Single как указано на рис. 26.
Рис. 26. Свойства элемента управления.
Откройте Окно формы, если оно закрыто. Установите указатель на кнопку «Восстановить». Двойным щелчком по кнопке мыши откройте Редактор кода. Введите в тело процедуры обработки текущего события выражение вызова стандартной функции Date: Label1.Caption = Date. Функция Date всегда возвращает системную дату, которая присваивается свойству Caption объекта Label1. Теперь процедура будет выглядеть следующим образом:
Private Sub Command1_Click()
Text1.Visible = True
Label1.Caption = Date
End Sub
Создайте две функции одна из которых позволяет выводить на экран текстовую константу, например: “Первая программа на VB”, вторая - гасить изображение на экране и значение системной даты.
Для этого в последней, свободной строке Редактора кода наберите на клавиатуре первую строку функции titul: Function titul() и нажмите клавишу Enter. Последняя строка функции будет создана автоматически. Нажмите клавишу Tab и введите выражение Print "Первая программа на VB". Оператор Print позволяет выводить на экран текстовую константу, заключённую в двойные кавычки.
Function titul()
Print "Первая программа на VB"
End Function
Аналогичным образом создайте функцию гашения экрана. При этом можно использовать обычные средства Копирования и Вставки фрагментов текста через буфер обмена.
Function cle()
Cls
Label1.Caption = ""
End Function
Функция с наименованием cle содержит оператор гашения экрана Cls. В следующей строке свойству Caption объекта Label1 присваивается пустое значение, что соответствует двум последовательно набранным двойным кавычкам.
Для вызова функций наберите их имена в процедурах обработки событий как показано ниже:
Private Sub Command1_Click()
Text1.Visible = True
Label1.Caption = Date
Titul
End Sub
Private Sub Command2_Click()
Text1.Visible = False
Cle
End Sub
Проверьте результаты программирования в режиме интерпретации.
Вернитесь в Редактор кода. Разверните окно редактора на весь экран с помощью кнопки Развернуть (средняя из трёх кнопок, расположенных в правом верхнем углу окна). Созданный программный код, состоящий из процедур обработки событий и функций называется Модулем Формы 1.
Обратите внимание на то, что каждая процедура и функция отделены друг от друга горизонтальной чертой, что упрощает просмотр программного кода. Однако если модуль формы содержит значительное количество процедур и функций, чтение и редактирование такого модуля затруднено. Поэтому часто используются пояснения, которые принято называть комментариями. Любой комментарий начинается с одинарной кавычки, он не воспринимается компилятором и служит лишь для пояснения назначения фрагментов программного кода.
Введите следующие комментарии:
'Процедура обработки щелчка по кнопке Восстановить
Private Sub Command1_Click()
Text1.Visible = True
Label1.Caption = Date 'вызов стандартной функции
titul 'вызов функции titul
End Sub
'Процедура обработки щелчка по кнопке Удалить
Private Sub Command2_Click()
Text1.Visible = False
cle 'вызов функции cle
End Sub
'Функция вывода текста на экран
Function titul()
Print "Первая программа на VB"
End Function
'Функция очистки экрана
Function cle()
Cls'очистка экрана
Label1.Caption = ""'очистка объекта Label1
End Function
Сохраните все файлы проекта в своей папке. Выполните компиляцию. Убедитесь в работоспособности загружаемого файла, полученного в процессе компиляции. Закройте проект.
Рассмотрим пример готового программного кода.
Используя проводник Windows, загрузите проект:
VB Учебные \ Проекты \ 01 Вызов процедуры \ Проект1.vbp
Откройте окно Редактора кода. Код приложения приведён ниже:
'Общая процедура присвоения значения текстового поля
'Text5 свойствам текстовых полей Text1,2,3,4
Sub Процедура()
Text1.Text = Text5
Text2.Text = Text5
Text3.Text = Text5
Text4.Text = Text5
End Sub
'Процедура обработки события: Щелчок по кнопке Command1
Private Sub Command1_Click()
Процедура
End Sub
В данном примере рассмотрены две процедуры:
─ общая процедура;
─ процедура обработки события.
Рассмотрите структуру общей процедуры и технологию обращения к ней. Определите, чем общая процедура отличается от процедуры обработки событий.
Просмотрите работу приложения в режиме интерпретации.
Закройте Visual Basic
Задание 4. Переменные, константы, объявление переменных
Переменная – это область памяти, которая характеризуется именем для ссылки на её значение и типом, определяющим вид данных, которые можно хранить в переменных. В константах хранятся значения, которые не изменяются на протяжении всего времени выполнения приложения.
Процесс резервирования участка памяти под переменную называется объявлением переменной. При объявлении переменных тип данных может быть обозначен знаком – идентификатором. Справочная информация о типах данных и идентификаторах приведена в приложении 1. Рассмотрим на конкретных примерах использование переменных в программном коде.
Создайте Новый проект Visual Basic.
Свойству Caption присвойте значение: Сложение двух чисел.
Аналогичный алгоритм рассмотрен в теоретической части второго раздела.
Для свойства Icon загрузите пиктограмму VB Учебные \ Фотогаллерея \ ico \ Mycomp.ico.
|
Рис. 25. Окно формы.
Разместите на форме три текстовых поля (TextBox) и одну кнопку управления (CommandButton).
Переместите форму в центр экрана.
Удерживая клавишу CTRL, выделите три текстовых поля. Отформатируйте их, используя меню Формат.
Снимите выделение трёх текстовых полей, щелчком мыши на свободном пространстве формы.
Последовательно выделяя каждое текстовое поле, установите для каждого из них значение свойства Text равным нулю. Для свойства MaxLength (максимальное количество вводимых символов) значение равное 4 для первых двух полей и значение равное 5 для третьего поля.
Свойству Caption элемента управления Command1присвойте значение: Вычислить.
Используя элемент управления Label (Label) разместите на форме подписи полей как показано на рис. 26.
Рис. 26. Интерфейс приложения.
Таким образом, создан интерфейс будущего приложения. Два первых текстовых поля будут служить для ввода целых четырёхзначных числовых значений. Щелчок по кнопке «Вычислить» должен обеспечить суммирование чисел и занесение результата в третье текстовое поле.
В учебных целях используем переменные a и b в качестве слагаемых, переменную с для хранения результата суммирования. Хотя их использование в такой простой задаче не обязательно.
Переменные должны быть объявлены. Иногда возникают ошибки при использовании не объявленных переменных. Во избежание такого рода проблем в начале модуля устанавливается оператор Option Explicit, который предупреждает программиста, когда встретится имя переменной, не объявленной явно. Если установить опцию Требуется переменные объявле (Инструменты \ Опции \ вкладка Редактор), то этот оператор будет добавляться автоматически в каждый вновь создаваемый модуль.
Откройте окно Редактора кода и проверьте наличие этого оператора. Если он отсутствует, наберите его на клавиатуре.
Объявите переменные, используя оператор Dim (см. приложение1):
Option Explicit
Dim a As Integer 'число 1
Dim b As Integer 'число 2
Dim c As Integer 'результат
Все переменные объявлены как целые числа.
Второй вариант объявления переменных с помощью идентификатора приведён ниже:
Option Explicit
Dim a % 'число 1
Dim b % 'число 2
Dim c % 'результат
Откройте Окно формы и дважды щёлкните по объекту Command1. В Редакторе кода будут сформированы первая и последняя строки процедуры обработки событий (щелчок по кнопке «Вычислить»):
Private Sub Command1_Click()
End Sub
Напишите следующую последовательность строк программного кода данной процедуры:
Private Sub Command1_Click()
a = CInt(Text1)
b = CInt(Text2)
c = a + b
Text3.Text = CStr(c)
End Sub
a = CInt(Text1) –присвоение значений данных, занесённых в текстовое поле Text1 переменной a.
Поле Text1 содержит текстовую информацию, а переменная a объявлено как число. Во избежание несоответствия типов данных, текстовая информация должна быть преобразована в числовую.
Для этих целей использована стандартная функция CInt. В скобках указан аргумент – текстовое поле.
b = CInt(Text2) –присвоение значений данных, занесённых в текстовое поле Text2, переменной b.
c = a + b –суммирование и пересылка результата в переменную c.
CStr(c) –функцияпреобразования числового значения, содержащегося в переменной, в текстовую информацию. Cstr – функция, с – аргумент (переменная).
Text3.Text = CStr(c)– присвоение значения, возвращаемого функцией, свойству Text текстового поля Text3.
Программный код модуля формы содержит одну процедуру обработки событий:
Option Explicit
Dim a As Integer 'число 1
Dim b As Integer 'число 2
Dim c As Integer 'результат
Private Sub Command1_Click()
a = CInt(Text1)
b = CInt(Text2)
c = a + b
Text3.Text = CStr(c)
End Sub
Проверьте работу приложения в режиме интерпретации.
Создайте в собственной папке папку Переменные. Сохраните в ней проект. Выполните компиляцию. Закройте Visual Basic.
В проводнике Windows откройте папку Переменные и загрузите файл. Проверьте корректность работы созданного приложения.
Вопросы для самоконтроля:
1. Основные компоненты Интегрированной среды разработки Visual Basic и их назначение.
2. Компоненты программного кода Visual Basic (модули, процедуры и функции).
3. Структура процедуры и функции, их отличие.
4. Переменные и константы, типы данных.
5. Объявление переменных, идентификаторы.
6. Назначение оператора Option Explicit.
7. Создайте программный код вывода на экран текстовой информации.
8. Создайте программный код вычисления разности двух чисел.
9. Создайте программный код расчёта удельного веса объёма производства отрасли (Vотрасли) в общем объёме (Vпром.).Удельный вес рассчитывается по формуле:
Уотрасли = (Vотрасли /Vпром.) * 100%.
10. Создайте программный код расчёта удельного веса работников отрасли (Ч отрасли) в общей численности работников занятых в производстве (Чпром.).Удельный вес рассчитывается по формуле:
Уотрасли = (Чотрасли /Чпром.) * 100%.
11. Создайте программный код расчёта эффективности производства. Э = Р / З (Р – результаты, З– затраты).
ОБЛАСТЬ ОПРЕДЕЛЕНИЯ ПЕРЕМЕННЫХ, МАССИВЫ, КОНСТРУКЦИИ ЯЗЫКА
Область определения переменных
Переменные могут быть объявлены на уровне: процедуры, модуля, приложения. От того, где объявлена переменная, зависит возможность её использования или как принято называть область видимости переменной.
Переменные, объявленные на уровне процедуры, могут быть локальными (объявляются оператором Dim) и статическими (объявляются оператором Static). Локальные переменные теряют своё значение при выходе из процедуры. Статические переменные сохраняют последнее присвоенное значение.
Переменные модуля доступны всем процедурам данного модуля. Они объявляются оператором Private вначале модуля.
Переменные объявленные оператором Public доступны всем модулям проекта. Их называют открытыми переменными и объявляют вначале модуля. Справочные сведения о переменных приведены в Приложении 1.
Массивы
В массивах хранятся нумерованные наборы логически связанных переменных, доступ к значениям которых осуществляется по имени элемента массива и его номеру – индексу. Индекс массива начинается с нуля. Массивы объявляются теми же операторами, что и переменные.
Выделяют статические и динамические массивы. Границы статического массива заранее определены. Они указываются в скобках после наименования массива. Например:
Dim Spisok ( 149 ) As String – одномерный массив, состоящий из 150 строковых элементов.
Dim Tovar ( 19, 49 ) As Integer – двухмерный массив, содержащий 20 строк и 50 столбцов.
Границы динамического массива первоначально не определены. Например:
Dim Suma ( ) As Variant – динамический массив содержащий значения типа Variant.
В процессе выполнения программного кода массиву назначается действительное число элементов оператором ReDim. Например:
ReDim Suma ( 150 ) –такое назначение может быть выполнено только в рамках процедуры.
Конструкции языка
Конструкции языка позволяют изменять порядок выполнения операций (ветвление) или неоднократно повторять последовательность действий в
зависимости от определённого условия (циклы).
Краткая справочная информация об основных конструкциях языка приведена в приложении 2.
ЛАБОРАТОРНОЕ ЗАНЯТИЕ № 4
Цель занятия:привить студентам навыки работы с переменными и массивами. Обучить приёмам использования основных конструкций языка Visual Basic.
Задание 1. Массивы, конструкции языка (ветвление, циклы)
Рассмотрим технологию обработки массивов и построение конструкций языка на конкретном примере.
Требуется создать программу сортировки пяти целых чисел по возрастанию. Совокупность числовых значений рассматривать как одномерный массив, состоящий из пяти элементов. В качестве инструмента сортировки использовать простейший алгоритм поплавка. При котором, числа, имеющие меньший удельный вес (меньшее значение), “всплывают”.
Создайте новый проект Visual Basic.
На форме разместите следующие объекты в соответствие с рис. 27:
метку (Label1),
пять текстовых полей (Text1 – Text5),
управляющую кнопку (Command1).
Для указанных свойств объектов присвойте следующие значения (табл. 5):
Таблица 5
Объекты | Свойства | Значения |
Форма1 | Caption | Сортировка |
Icon | VB Учебные \ Фотогаллерея \ ico \ Graph14.ico | |
Label1 | Caption | Введите пять чисел |
Text1, Text2, Text3, Text4, Text5 | Alignment | 1 Выровнять по Правому Краю |
MaxLength | ||
Text | ||
Command1 | Caption | Сортировать |
Алгоритм включает два вложенных цикла. Внутренний цикл (переменная j) содержит условие проверки двух смежных значений массива PU. Если расположенный выше элемент массива имеет большее значение, он перемещается ниже. При этом используется буферная переменная Sh, в которой временно сохраняются перемещаемые элементы массива.
После очередного прохода наращивается на 1 переменная внешнего цикла i.
Программный код с комментариями (выделены курсивом) приведён ниже.
Рис. 27. Интерфейс приложения.
Option Explicit
Dim PU(4) As Integer 'Объявление массива
Dim Sh As Integer 'Объявление буферной переменной
Dim i%, j%'Объявление переменных цикла
Private Sub Command1_Click()
'Заполнение массива PU данными
PU(0) = CInt(Text1)
PU(1) = CInt(Text2)
PU(2) = CInt(Text3)
PU(3) = CInt(Text4)
PU(4) = CInt(Text5)
i = 0: Sh = 0 'Инициализация переменных
Do While i <> 5 'Цикл всех проходов
Do While j <> 4 'Цикл одного прохода
If PU(j) > PU(j + 1) Then 'Условие погружения
Sh = PU(j)
PU(j) = PU(j + 1)
PU(j + 1) = Sh
End If
j = j + 1
Loop
j = 0
i = i + 1
Loop
'Пересылка значений элементов массива в текстовые поля
Text1.Text = CStr(PU(0))
Text2.Text = CStr(PU(1))
Text3.Text = CStr(PU(2))
Text4.Text = CStr(PU(3))
Text5.Text = CStr(PU(4))
End Sub
После создания программного кода сохраните проект. Выполните компиляцию. Закройте Visual Basic. Проверьте работоспособность приложения. Для этого загрузите исполняемый файл (файл с расширением ехе) введите пять числовых значений и выполните их сортировку.
Загрузите файл Проект1.vbp (VB Учебные \ Проекты \ 08 Пузырёк).
Найдите свойство формы Picture. Используя кнопку с многоточием, расположенную в поле свойства, измените картинку.
Закройте Visual Basic без сохранения проекта.
Задание 2. Конструкция Select Case
Создайте новый проект. Разместите на форме семь меток (Label 1 – 7), одно текстовое поле и управляющую кнопку Command1 (рис. 27).
Присвойте свойствам объектов значения, приведённые в таблице 6. Программный код должен реагировать на нажатие любой клавиши – событие KeyPress. Это событие выбирается из списка событий, который размещён в правой верхней части Редактора кода.
Таблица 6
Объекты | Свойства | Значения |
Форма1 | Caption | Дни недели |
Label1 – Label7 | Caption | Понедельник – Воскресенье |
Visible | False | |
Label8 | Caption | Номер дня недели |
Text1 | Text | |
MaxLength | ||
Command1 | Caption | Сброс |
Рис. 27. Окно формы Дни недели.
При этом на экране должен появляться тот день недели, номер которого указан в текстовом окне.
Этот алгоритм рассмотрен во втором разделе (лабораторное занятие 2, задание 4).
Управляющая кнопка Сброс (Command1) используется для восстановления свойств меток (Label1 – 7). Эту операцию в дальнейшем будем называть инициализацией.
Создайте программный код приведённый ниже.
Option Explicit
' Общая процедура инициализации меток
Sub Сброс()
Label1.Visible = False
Label2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label6.Visible = False
Label7.Visible = False
End Sub
' Вызов общей процедуры
Private Sub Command1_Click()
Сброс
End Sub
'Нажатие на клавишу
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim dn% 'Объявление переменной день недели
If Text1 <> "" Then 'Если информация введена, тогда
dn = CInt(Text1) 'она присваивается переменной dn,
Select Case dn 'которая используется для анализа
Case 1 'Понедельник
Label1.Visible = True
Case 2 'Вторник
Label2.Visible = True
Case 3 'Среда
Label3.Visible = True
Case 4 'Четверг
Label4.Visible = True
Case 5 'Пятница
Label5.Visible = True
Case 6 'Суббота
Label6.Visible = True
Case 7 'Воскресенье
Label7.Visible = True
End Select
End If
End Sub
Сохраните проект. Выполните компиляцию. Закройте Visual Basic. Проверьте работоспособность приложения.
Загрузите файл Проект1.vbp (VB Учебные \ Проекты \ 06 Дни недели).
Ознакомьтесь с программным кодом.
Определите, какие новые элементы управления использованы в этом проекте.
Закройте Visual Basic без сохранения проекта.
Вопросы для самоконтроля:
- Что такое переменные и область их определения?
- Какие бывают массивы (статические, динамические массивы)?
- Как объявить переменную или массивов?
- Создайте программный код, содержащий одномерный массив из пяти элементов.
- Какие конструкции языка позволяют изменить порядок операций?
- Охарактеризуйте конструкции языка, позволяющие неоднократно повторять операции.
- Создайте программный код с использованием конструкции If … Then.
- Создайте программный код с использованием конструкции Select Case.
- Создайте программный код с использованием циклической конструкции.
- УПРАВЛЕНИЕ ПРОГРАММОЙ ПО СОБЫТИЯМ
Программный код Visual Basic состоит из процедур обработки событий. Основными событиями являются события щелчка мыши, перемещение мыши, события клавиатуры. Список событий активного объекта можно просмотреть в Редакторе кода.
ЛАБОРАТОРНОЕ ЗАНЯТИЕ № 5
<