Автор: Карева Екатерина Михайловна Должность: учитель информатики Учебное заведение: ГБОУ школа №530 Населённый пункт: Санкт-Петербург, г. Пушкин Наименование материала: Методическая разработка Тема: Visual Basic_методическая разработка.pdf Раздел: полное образование
2
Предисловие
Данное учебное пособие ориентировано на освоение объектно-ориентированного языка
Visual Basic , основанного на знании курса
алгоритмизации и основ программирования на
алгоритмическом языке. Разработка может использоваться в старших классах средней школы
при изучении курса программирования, а также использоваться на элективном курсе. Пособие
поможет за 30 - 40 учебных часов освоить основные моменты и способы создания приложений в
среде ООП.
Материал
состоит
из
глав,
содержащих
в
большей
степени
приемы
работы
с
графическим интерфейсом среды: объектами, свойствами объектов, управляющими элементами,
цветом, графикой и приемам составления программного кода, основанного на использовании
основных алгоритмических структур и форматом определения и записи операторов в среде
VisualBasic, а также разбором методов решения типовых задач.
В конце каждой темы приводятся задания для самостоятельной работы.
3
О
БЪЕКТНО
-
ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
В
основе
объектно-ориентированного
программирования
лежит
понятие
ОБЪЕКТА,
объединяющего
в
себе свойства
и
методы объекта
(действия
объектов
и
над объектами).
Система
ООП
позволяет
визуализировать
процесс
создания
графического
интерфейса
разрабатываемого приложения, т.е. позволяет создавать объекты и задавать им значения с
помощью диалоговых окон среды программирования..
Взаимодействие программных объектов
между собой и их изменение описываются с
помощью ПРОГРАММНОГО КОДА, который базируется на использовании алгоритмических
структур.
Основная единица в ООП является ПРОГРАММНЫЙ ОБЪЕКТ, который объединяет в себе
как описывающие его данные (свойства), так и средства обработки этих данных (методы) при
некотором управляющем воздействии - событии, т.е. ПРОГРАММНЫЕ ОБЪЕКТЫ обладают
СВОЙСТВАМИ, могут использовать МЕТОДЫ и реагировать на СОБЫТИЯ.
Каждый
объект
обладает
набором
свойств,
первоначальное
значение
которых
можно
установить с помощью диалоговых окон. Кроме того, значение этих свойств может быть
изменено в программном коде. Для присваивания свойству объекта нового значения следует в
программном коде указать имя объекта, название свойства и справа от знака присваивания
записать конкретное значение свойства. Общая форма записи такова: Объект> . <Свойство>
= < Значение>
Центральное место в ООП занимает ФОРМА – основа создания графического интерфейса,
представляет собой окно на экране, в котором размещаются объекты и управляющие элементы.
4
ГРАФИЧЕСКИЙ
ИНТЕРФЕЙС
ИНТЕГРИРОВАННОЙ
СРЕДЫ
ЯЗЫКА
VISUAL
BASIC
Как запустить систему программирования VB и создать новый проект
?
Пуск
Программы
Microsoft Visual Basic 6.0
Microsoft Visual Basic 6.0
Ввести
команду
File-New
Project.
На
диалоговой
панели
New
Project
выбрать
тип
создаваемого проекта Standart.exe.
После щелчка по кнопке открыть появится окно интегрированной среды разработки Visual
Basic
Структура окна среды программирования Visual Basic
Конструктор форм
В центре окна Visual Basic расположено окно Конструктор форм , в котором размещается
главный объект проекта Форма (Form1 ). Форма является основой для создания графического
интерфейса создаваемого проекта и на ней размещаются различные Управляющие элементы
( Controls ).
В
окне
конструктора
форм
визуально
конструируются
все
формы
5
приложения
с
использованием
инструментария
среды
разработки.
Размер
формы
можно
изменять, используя маркеры выделения формы и мышь.
Выбор размещаемых на форме Управляющих элементов производится с
помощью Панели инструментов (Toolbox) , которая обычно размещается в
левой
части
окна
приложения.
Стандартная
(General)
панель
инструментов
содержит
21
класс
управляющих элементов: Метка (Label),
Текстовое
поле
(TextBox),
Командная
кнопка (CommandButton) и др.
Окно
Свойства
объекта
(Properties) предоставляет возможность
просмотра
и
редактирования
значений
свойств выбранного объекта, указанного
в
верхней
части
окна,
а
также
для
каждого
свойства
список
его
возможных
значений.
Окно
располагается в середине правой части
окна приложения
Окно
Программный
код
(Code )
позволяет
просматривать и редактировать программный код
проекта. Вызывается окно Программный код командой [View( Вид )
– Code( Код )], или двойным щелчком по элементу управления.
Окно
Проводник
проекта
(Project
Explorer )
представляет
содержимое проекта, т.е. входящие в него файлы, в форме дерева
файлов. В состав проекта входит собственно файл проекта (имеет
расширение
vbp),
файлы
форм,
которых
может
быть
несколько (имеют расширение frm) и файлы программных
модулей (имеют расширение bas). Это окно располагается в
верхней правой части окна приложения.
В
окне
проводника
можно
выполнять
действия,
необходимые при проектировании приложения: добавлять
файлы
элементов
проекта,
удалять
объекты,
редактировать,
сохранять объекты проекта.
Окно
Расположение
формы
(Form
Layout )
позволяет
установить
положение
формы
(фактически
окна
созданного
приложения)
на
экране
монитора
в
процессе
выполнения
программы. Окно Расположение формы размещается в нижнем
правом углу окна приложения.
Командой
View-Object
Browser
можно
вызвать
окно
Просмотра
объектов
Object
Browser, которое содержит в левом списке все доступные классы
объектов
и
объекты,
текущего
проекта
(выделены
жирным
шрифтом),
а
в
правом
списке
для
выбранного
объекта
показывает перечень его свойств, методов и событий.
6
Проект
В
VB
при
воплощении
алгоритма
необходимо
создавать
несколько
взаимосвязанных
частей – одну или несколько экранных форм и один или несколько программных модулей.
Поэтому подобное изделие назвали ПРОЕКТОМ .
Понятие событийная процедура
Важное место в технологии визуального объектно-ориентированного программирования
занимают события. В качестве события могут выступать щелчок мыши на объекте, загрузка
картинки, нажатие определенной клавиши, открытие документа и т.д.
Любой
объект
можно
связать
с
набором
процедур,
исполняемых
при
наступлении
определенных
событий.
Процедура,
связанная
с
определенным
событием
называется
событийной процедурой .
Событийная
процедура
–
это
программный
модуль,
реализующий
определенный
алгоритм. Двойной щелчок мыши в режиме разработки проекта по кнопке создает в окне
Программный код - заготовку программы:
Private Sub Command1_Click(_)
……….
End Sub
Смысл процедуры – выполнение запрограммированных действий: изменение свойств
объекта, вызов методов, выполнение вычислений, вывод результата в определенные места
приложения и т.д.
Например,
если
пользователь
нажимает
командную
кнопку,
то
в
качестве
отклика
выполняется
некоторая
последовательность
действий,
которые
определены
в
событийной
процедуре определенным набором операторов. Чтобы объект выполнил какую-либо операцию,
необходимо задать метод (описать оператор, команду). Для применения некоторого набора
команд, возможных для данного объекта, применим синтаксис:
<Объект> . <Метод> [= <Значение>]
Общие свойства объектов
Каждый
объект
в
VB
имеет
ряд
общих
и
специфических
свойств.
Общие
свойства
объектов приведены в таблице
.
СВОЙСТВО
ЗНАЧЕНИЕ
ДЕЙСТВИЕ
Name – Имя
Любое
Идентификация
объекта
в
программном
коде
BackColor – Цвет фона
Цветовая палитра
Цвет фона объекта
Caption – Название
Любое
Название объекта на форме
Font – Шрифт
Любой из имеющихся в
VB
Шрифт, размер, начертание
ForeColor – Цвет
шрифта
Палитра цветов
Цвет
текста
или
графических
изображений
Height – Высота
Единица
измерения
(твип)
Высота объекта
Width – Ширина
Единица
измерения
(твип)
Ширина объекта
Picture – Картинка
Выбор файла
Графическое изображение
Visible – Видимость
False/True
Объект невидим, объект видим
(1 твип = 0,018 мм)
Последовательность создания проекта
Создание графического интерфейса будущего приложения:
7
1.
В окне Конструктора
форм на форму с помощью Мыши помещаются («рисуются»)
управляющие элементы, которые должны обеспечить взаимодействие приложения с
пользователем.
2.
Задаются значения свойств объектов графического интерфейса с помощью окна Свойства
объекта .
3.
Создается программный код как отклик на щелчок мыши по управляющему элементу в
появившемся Окне редактора кода .
4.
Сохранение проекта с помощью меню Файл:
-
сначала сохранить форму по команде Сохранить Form1 как …(Имя Проекта .frm)
-
затем сохранить файл проекта по команде Сохранить Проект как …(Имя Проекта.vbp)
-
компиляция проекта в приложение – команда Файл – Компилировать …
Форма и ее свойства
Форма – это место, где размещаются различные объекты управления, необходимые при
проектировании
приложения.
Описание
формы
хранится
в
отдельном
файле
формы
с
расширением .frm. файл содержит следующую информацию:
-
начальный размер формы;
-
положение формы на экране;
-
шрифты, цвет и другие.
Проект может содержать несколько форм, каждая отображается в отдельном окне. Как и все
другие объекты, форма обладает рядом свойств, основные представлены в таблице:
СВОЙСТВО
ЗНАЧЕНИЕ
ДЕЙСТВИЕ
BorderStyle
Тип границ и
элементов в
области заголовка
0 – None
Фиксированное положение и размер, нет границы
1 – Fixed Single
Размер
окна
постоянный,
имеет
двойной
контур,
можно только переместить и закрыть
2 - Sizeable
По умолчанию. Можно менять размеры, границы.
ControlBox
Системное меню
False
Окно не содержит кнопок системного меню
True
По умолчанию. В верхнем правом углу присутствуют
кнопки системного меню.
Например: Надпись в левом верхнем углу формы «Мой первый проект» появится в результате
выполнения фрагмента программного кода:
Form1.Caption = «Мой первый проект»
Или задать это же свойство в окне Свойств объекта.
Как располагать управляющие элементы на форме?
Форма
является
основой
для
создания
графического
интерфейса
разрабатываемого
проекта. На форме можно разместить различные управляющие элементы (кнопки, текстовые
поля, окна рисунков и др.).
Расположение на форме и размеры управляющих элементов можно легко изменять с
помощью мыши.
Для
этого
необходимо
активизировать объект щелчком
мыши
(он будет
выделен восемью квадратиками - маркерами) и перетащить его на новое место или «ухватить»
маркер и перетащить границу элемента.
Точное местоположение и размеры выделенных элементов управления отображаются
двумя парами чисел в правой части линейки инструментов окна приложения. Первая пара чисел
показывает расстояние от левого верхнего угла формы до левого верхнего угла элемента, а
вторая пара – это размеры элемента (ширина и высота).
8
Стандартная панель инструментов (General)
Панель содержит заготовки будущих элементов управления, основные, рассматриваемые в
данном курсе, приведены в таблице:
НАЗВАНИЕ
НАЗНАЧЕНИЕ
Label
Метка – для вывода данных и пояснительных надписей
CommandButten
Командная кнопка – элемент управления используется для
выполнения программных откликов
PictureBox
Графическое окно – для вывода графических изображений
Timer
Таймер – использование функции времени
TextBox
Текстовое окно – для ввода и вывода текста
Shape
Фигуры – геометрические фигуры 5 типов
Image
Картинка –графическое изображение
OptionButten
Переключатель – элемент выбора одной из альтернатив
Frame
Рамка – объект группировки
Инструменты: метка, командная кнопка, текстовое поле, графическое поле
Инструмент Метка
Элемент управления Метка – Label используется для размещения на форме текстовой
информации. Текст метки задается свойством типа Caption. Этосвойство можно установить в
окне
Properties
или
в
программном
коде.
На
панели
General
инструмент
Label
(Метка)
выглядит т.о. (А). Растянуть на форме прямоугольник нужного размера, затем в окне свойств
изменить свойство Caption , т. е. вместо Label1 запишем нужное, например « Виват, Россия !»
Для оформления надписи используются значения свойств:
СВОЙСТВО
ЗНАЧЕНИЕ
BorderStyle
Задает стиль рамки , по умолч. имеет значение 0 – None
(без
обрамления),
если
значение
1
–
Fixed
Single ,
то
надпись будет иметь контур
BackColor
Задает цвет фона поля надписи
Appearance
Задает для текста объемность
Alignment
Задает выравнивание текста (по правому, по левому, по
ширине)
AutoSize
True – площадь для текста увеличивается в зависимости от
размера
надписи,
False
–
часть
информации,
не
уместившаяся в размеры метки, может быть не видна
Wordwrap
True
–
расширение
надписи
вниз
по
строкам,
False
–
размер
метки
изменяется
только
в
горизонтальном
направлении.
Командная кнопка на форме
Командная
кнопка
применяется
для
выполнения
на
форме
запрограммированных
действий,
позволяющих
щелчком
запустить
некоторый
процесс
–
процедуру,
написанную
пользователем для этого события.
Чтобы
разместить
на
форме
командную
кнопку
CommandButten
необходимо
указать
свойства положения и размеров: Left – 2040; Top – 2880; Width – 1815; Height – 615. Установить
свойство Style – Graphical . Установить цвет кнопки – BackColor , размер шрифта ( Font ) – 14,
свойство Caption на слово, например « Закрыть ». Кнопку можно установить и «вручную» с
помощью мыши.
Кнопка может иметь стиль стандартный или графический, задаваемый свойством Style.
Если Style = 0 – Standart, используется обычный стандартный стиль, если Style = 1 – Graphical –
стиль кнопки графический. В этом режиме можно изменять цвет кнопки или добавить картинку
на кнопку.
Текстовое поле
9
Текстовое поле TextBox используется для ввода и вывода данных на форму. Для ввода или
вывода используется свойство Text, которое заполняется либо в программном коде, либо на
этапе проектирования приложения. Если объект активизирован, то в текстовом окне появляется
курсор
–
можно
вводить
данные. Числовые
данные
будут
введены
в
текстовом
формате,
поэтому их для использования в вычислениях следует привести к числовому формату.
Для оформления текстового окна применяется следующие свойства :
СВОЙСТВО
ЗНАЧЕНИЕ/ДЕЙСТВИЕ
BorderStyle
Определяет стиль
рамки .
Fixed
Single – наличие рамки.
None – нет рамки
Appearance
Определяет объемность текстового поля, если имеет
значение 1 – 3D
BackColor
Задает цвет
фона внутри окна
Alignment
Задает выравнивание данных в окне (по правому, по левому,
по центру)
Font
Задает название , начертание , размер
шрифта
ForeColor
Применяется для изменения цвета
текста в текстовом поле
MultiLine
(Много строк)
False – обычное поле, True – несколько строк для больших
текстов.
Графическое поле
Графические поля PictureBox используются для вывода графических данных, создаются
аналогичным образом («рисованием» на форме соответствующего размера) и последующей
установкой свойств с использованием панели Свойства объектов.
Кнопка-переключатель.
Переключатели
используются
для
выбора
варианта
из
нескольких
–
радиокнопка.
Выбирается на панели инструментов объект Option1 , на форме «рисуется» его вид. В свойстве
Caption
желательно
подписать
объект.
Вводится
событийная
процедура
для
созданного
объекта.
Как задать свойства цвета и шрифта объектов?
Используя свойство BackColor, можно выбрать цвет объектов на вкладках Системные
цвета или Цвета палитры .
Шрифт задается свойством Font (шрифт, начертание, размер) и цвет шрифта – свойством
ForeColor .
Выравнивание текста внутри объекта задается свойством Alignment (Center, Left, Right).
Как вывести данные различными шрифтами?
Вывод можно выполнять различными шрифтами. Для выбора шрифта в программном коде
используется оператор присваивания:
<Имя объекта>. Font. <свойство> = <значение>
Например:
Text1 . Font . Name = “Arial”
- шрифт Arial
Text1 . FontSize = 20
- размер шрифта =20 пт
Font.Bold
-Полужирный
Font.Italic
-Курсив
Пример создания простого приложения
Проект: Вычисление высоты строки в миллиметрах по заданной высоте в пунктах.
Разместим в форме два текстовых
окна , две метки и две кнопки , нажатие одной из
которых будет менять информацию в текстовом поле, вторая кнопка закроет приложение.
1.
Запустить Visual Basic. В окне New Project выбрать Standard.EXE вкладки New (новый) и
кликнуть по кнопке «Открыть».
2.
На
экране
появится
новый
проект
и
форма,
содержание
которой
нужно
заполнить
необходимыми управляющими компонентами.
10
3.
Для ввода данных высоты строки в пунктах будем использовать текстовое поле Textl .
4.
Для вывода результата - высоты строки в миллиметрах используем текстовое поле Text2 .
5.
Для подписей текстовых окон Textl и Text2 можно использовать метки Label1 и Label2
соответственно.
6.
Для выполнения функций вычисления используем кнопку Command1 . Это будет « Старт ».
7.
Для завершения работы программы используем кнопку Command2 – « Финиш ».
8.
Указанные
выше
компоненты
вынесем на
форму.
Для
этого
на
панели
стандартных
элементов
находим
значок
нужного
компонента,
активизируем
его
и
«переносим» на
форму: рисуем условный прямоугольник в том месте формы, где будет предположительно
находиться этот элемент, учитывая при этом его примерные размеры.
9.
Аналогичные действия выполняем поочередно для каждого элемента, пока на форме не
появятся все шесть элементов. Каждый прямоугольник должен содержать соответствующие
названия: Textl , Text2 , Label1 , Label2 , Command1 , Command2 .
10.
Далее изменяем свойства объектов используя окно свойств Properties .
Для изменения свойств элементов следует активизировать элемент - выделить его на форме.
В этом случае он будет иметь вокруг 8 маркеров. Далее для выделенного элемента в окне
свойств можно вносить изменения:
для Commandl изменить свойство Caption = 'Старт' ,
для Command2 - свойство Caption = 'Финиш' .
Для остальных элементов задать значения свойств:
Form1
Caption = ‘Пример’
Textl.
Text =» «
пустая
строка
Text2.
Text =» «
пустая
строка
Labell
Caption = 'Введите высоту строки в пунктах'
Label2
Caption = ' Высота строки в мм'
Чтобы надписи в текстовых окнах были выведены по центру, можно изменить свойство
Alignment на соответствующее свойство ( Center ).
Совет :
следует
иметь
одинаковыми
размеры
одноименных
элементов,
например
кнопок, для улучшения восприятия интерфейса создаваемого приложения. Лучше будет,
если и стиль кнопок будет одинаковым по размерам ( Width , Height ), цвету ( BackColor ) и
шрифту ( Font ). To же касается вида текстовых окон и меток.
11.
После
того
как
форма
готова,
перейдем
к
созданию
программного
кода.
Для этого выбрать кнопку Command1 и дважды кликнуть по ней. В результате появится
заготовка
программного
кода
для
Commandl .
Известно,
что
1
пункт
=
0,353
см.
Принимая, что
а
- высота строки в пунктах, значение ее пользователь должен ввести в
окно Textl . Но в текстовом окне данные получаются также текстовые, типа String .
Поэтому используем функцию
Val() для перевода в числовой тип
Single , который
объявлен для переменных
а
и
b
в начале программы в операторе Dim .
Значение строки
b
вычисляется в мм, и это значение необходимо определить. На VB это
можно записать так
b
=
a
* 0.353 .
Для
вывода
значения
в
текстовое окно
Text2
используется
функция
Round (),
которая
округляет количество знаков после запятой до двух.
Программный код для кнопки Command1 ( Старт ):
Private Sub Commandl_Click()
Rem кнопка Старт
Dim a, b As Single
a = Val(Textl.Text)
b = a * 0.353
Text2.Text = Round(b, 2)
End Sub
12.
Аналогичные
действия
выполняем
в
отношении
кнопки
Command2,
по
которой
будет
выполняться одно лишь действие - закрыть приложение. Это выполняет команда End.
Программный код для кнопки Command2 ( Финиш ):
Private Sub Command2_Click()
End
End Sub
13.
Прежде чем запустить приложение на выполнение, следует сохранить проект:
пункт меню Файл - Сохранить Form1 как …(Имя Проекта .frm)
11
пункт меню Файл - Сохранить Проект как …(Имя Проекта.vbp)
14.
Запустить проект на выполнение. Выбираем команду Run -> Start
Значение высоты строки вводится в поле Textl по кнопке « Старт ».
В окне Text2 появилось значение высоты строки в пунктах.
15.
Для завершения работы приложения следует нажать кнопку « Финиш ».
Результат работы приложения показан на рис.
Как вывести изображение на форму?
Для
вывода
изображений
на
форму
в
процессе
выполнения
программы
необходимо
воспользоваться
событийной
процедурой,
содержащей
функцию
LoadPicture .
Эта
функция
имеет синтаксис:
LoadPicture [(имя файла)]
Имя файла должно указывать на графический файл одного из форматов ( ICO , BMP , WMF ,
JPG и др.). При отсутствии имени файла функция возвратит пустую рамку.
Если рисунок лежит в той же папке, что и файл проекта, можно указывать только
имя
файла изображения.
Если проект загружается из среды Visual Basic, то нужно указывать полный путь к файлу
с изображением , т.е. аргументом функции LoadPicture должно являться полное имя файла.
Например
D:\VB\\Рисунок.gif.
Присвоим
свойству
Picture
формы
form1
значение
функции
LoadPicture
в
событийной
процедуре Click, связанной с кнопкой command1 :
Private Sub command1_Click()
form1.Picture=LoadPicture ("D:\VB\\Рисунок.gif")
End Sub
Разместить на форме кнопку и присвоить свойству Caption – значение Картинка .
Осуществить двойной щелчок по кнопке и в окне Программный код ввести текст событийной
процедуры.
После запуска проекта щелкнуть по кнопке Запуск , на форме появится изображение, которое
размещается в верхнем левом углу формы.
Как задать положение и установить размеры объекта?
Размеры объекта задаются свойствами Width (Ширина) и Height (Высота). По умолчанию,
эти величины задаются в специальных единицах – твипах. Один твип – это 1/1440 логического
дюйма (1 дюйм = 2,54 см). На экранной форме располагаются ряды точек – сетка, которая
помогает точнее размещать объекты на форме. По умолчанию расстояние между соседними
точками на форме составляет 120 твипов.
Положение формы и объектов на ней тоже определяется в твипах. На стандартной панели
инструментов
справа
можно
видеть
две
пары
чисел,
которые
называются
индикатором
положения и размеров выделенного объекта.
12
Первая
пара
чисел
–
положение
формы
относительно
левого
верхнего
угла
экрана.
Вторая пара чисел – размеры формы в твипах по горизонтали и вертикали.
Таким
образом,
положение
формы
на
экране
после
запуска
можно
регулировать
свойствами Left и Top, а размеры, соответственно, Width и Height.
Для приблизительного, на глазок, изменения положения формы можно воспользоваться
окном План формы, на котором виден экран и схематическое положение формы. С помощью
мыши его можно перемещать, куда необходимо. Числа на индикаторе сейчас же изменятся.
Теперь
об
объектах,
расположенных
на
форме.
Когда
они
выделены,
то
индикатор
положения показывает первой парой чисел положение объекта относительно верхнего левого
угла формы, второй – размеры объекта.
Пример :
Увеличение
и
уменьшение
размеров
объектов в процессе выполнения программы.
Для
этих целей
будем
использовать вышеуказанные
свойства размеров Width и Height (Ширина и высота).
Поместим
на
форму
изображение
( Image ),
а
в
нем
разместим
картинку
( Picture ),
предварительно
установив
свойство
Scretch
(растяжка)
–
True.
Дважды
щелкнув
по
Image
на
форме,
создадим
программный код увеличения размеров картинки:
Private Sub Image1_Click()
Image1.
Height = Image1.
Height + 500
Image1.
Width = Image1.
Width + 500
End Sub
Аналогичным образом можно создать кнопку, позволяющую запускать процедуру уменьшения
размеров картинки.
Как вставить картинку в качестве фона формы?
Где взять картинку? Можно из библиотеки стандартных картинок, можно из файла, можно
и самим нарисовать - все подойдет.
Для этого есть два способа:
1.
В качестве фона формы можно использовать почти любой графический файл. Для этого
непосредственно для выделенной формы выбрать свойство Picture и загрузить нужную
картинку.
2.
Растянуть
на
форму
инструмент
Image
с
панели
General ,
установить
подходящие
свойства – Left, Top, Width, Height. Для свойства Scretch установить значение - True ,
картинка
растянется
по отведенному
ей
месту,
затем
в свойстве Picture
– выбрать
нужный файл с картинкой.
Как сделать, чтобы картинка или надпись первоначально не были видны,
а появлялись по необходимости?
Выделить предварительно тот или иной объект, установить свойство Visible – False. Теперь
дважды щелкнув по управляющей кнопке, записать в заготовке процедуры программный код:
Private Sub Command2_Click()
Form1.Label1.Visible = True
Form1.Image1.Visible = True
End Sub
Задачи для самостоятельной работы.
1.
Создайте
на
форме
проект,
показывающий
по
нажатию
одной
кнопки
животное
с
надписью (например, «Это – лев»), а по нажатию другой командной кнопки – другое
животное с соответствующей надписью (например, «Это – Черный кот»).
2.
Создайте на форме проект, показывающий по нажатию одной кнопки знак дорожного
движения
и
комментарий
о
его
назначении
(например,
«Дорожный
знак»,
соответствующая картинка и комментарий под ним «Проезд запрещен»).
13
3.
Создайте на форме проект, выводящий по кнопке название государства – «Россия» и по
нажатию другой командной кнопки - флаг России.
14
ДАННЫЕ
И
ОПЕРАТОРЫ
Код
программы
состоит
из
последовательности
команд,
которые
называются
операторами .
Оператор – это синтаксическая единица языка программирования, которая определяет
некоторое
действие.
Операторы
описывают
алгоритмические
действия,
которые
должны
выполняться для решения задачи. Каждый оператор представляет собой законченную фразу
языка
программирования
и
может
содержать
ключевые
слова,
переменные,
константы
и
выражения.
Обычно оператор располагается на одной строке, но его можно продолжить на другой
строке с помощью символа продолжения строки - знак < _ > (подчеркивание), перед ним
ставится пробел.
На одной строке можно записать несколько операторов, разделяя их знаком < : >.
Комментарии .
Для
пояснения
отдельных
конструкций
в
программном
коде
часто
используются комментарии. Строки комментария начинаются со слова Rem или со знака (‘) –
апостроф, далее следует пробел.
Данные – информация, представленная в формальном виде, который обеспечивает возможность
ее хранения, обработки и передачи.
В программном коде используются данные, постоянные (константы) и переменные величины.
Константы бывают двух видов:
Числовое значение константы
Идентификатор константы.
Переменные . В языке VB переменные используются для
хранения и обработки данных в
программе. Переменные задаются именами, которые определяют область оперативной памяти
компьютера, в которой хранятся их значения.
Переменная
–
параметр,
значение
которого
в
процессе
выполнения
программы
может
изменяться в допустимом для нее диапазоне.
Тип переменной определяется диапазоном значений, которые могут принимать переменные и
допустимыми операциями над этими значениями.
ПЕРЕМЕННЫЕ
РАЗМЕР в байтах
Числового типа :
Integer (целые, от -32768 до +32767)
Single ( числа с плавающей точкой )
Long ( длинное целое )
Double ( числа с двойной точностью )
Byte (положительные числа без
десятичных точекот 0 до 255 )
2
4
4
8
1
Логического типа:Boolean ( True/False)
2
Строкового типа: String
1 байт на символ
Объявление данных
Каждую величину необходимо объявить в начале программы: указать ее тип .
Для объявления типа переменных используют оператор Dim . Использование типа данных
экономит память и облегчает поиск ошибок в программе.
Синтаксис оператора Dim следующий:
Dim <Имя переменной> As < тип >
Например,
Dim Y As Integer
Dim Ant As Single
Dim D As String*25
Dim A As Boolean
15
Данные, объявленные в операторе Dim , доступны только на уровне модуля формы или той
процедуры, где были объявлены. Для определения области видимости данных используются
также Public и Private .
Pablic – глобальная переменная, данные доступны всему приложению;
Private – данные доступны на уровне модуля формы.
Константу объявляют через зарезервированное слово Const . Например:
Const Pi = 3.14159
Const Dan = “Informatica”
Если в программе используются необъявленные переменные, то для принудительного
объявления переменных используется оператор Option Explicit .
Арифметические выражения
Арифметическое выражение – это символическая запись, содержащая переменные, числа,
математические функции, знаки арифметических операций.
Порядок вычисления арифметического выражения аналогичен математическому, который
может быть изменен при наличии скобок. Правила оформления выражений стандартны для
языков программирования.
Оператор присваивания
Оператор
присваивания
задает
текущее
значение
переменной,
которое
определяется
выражением или определяет выражение, значение которого должно возвращаться функцией.
Также операция присваивания позволяет изменять значения свойств формы и размещенных на
ней управляющих элементов.
Синтаксис оператора присваивания:
<Идентификатор> = <выражение>
x = a + Sin(x^2 – a) / (a + b)
или
<Объект> . <Свойство> = <Значение>
Form1.Caption = “Пример”
в заголовке формы появится слово «Пример»
Form1.BackColor = vbRed
цвет фона формы – красный
Shape1.Shape = Circle
в элементе Shape1 реализован круг
Вывод результатов методом Print
Для вывода информации на форму или другой объект используется метод Print .
Синтаксис оператора:
<Имя объекта >.Print <Список вывода>
Метод действует на объект, на который будут выводиться значения.
По умолчанию метод Print выводит указанный список на активную форму .
Если разделителем в списке вывода используются запятые, то значения выводятся на
объект
в
зонном
формате,
по
14
позиций
на
зону.
Если
разделителем
в
списке
вывода
используется знак <;>, то данные выводятся в плотном формате - через пробел .
Print “x =”; x, “y =”; y
Значения, записанные в кавычках, используются для комментариев.
Если список вывода заканчивается знаком <;>, то строка вывода следующего оператора
Print будет присоединена к предыдущей.
Print “x =”; x;
Print “y =”; y
Если список вывода отсутствует, то образуется пустая строка.
Проект “Переменные»
1.
Поместить на Форму – кнопку Command1
2.
Создать
событийную
процедуру,
реализующую
присваивание
переменным
значения
различных типов и их вывод на Форму используя метод Print .
Dim a As Byte, b As Integer, c As Single, d As String, z As Boolean
Private Sub Command1_Click()
16
a = 117 : b = -32577 : c = 2.17 : d = " Информатика " : z = True
Print “ a”; a : Print “ b”; b : Print “ c”; c
Print “ d”; d : Print “ z”; z
End Sub
Проект «Вычисление площади треугольника по формуле Герона»
1.
Разместить на форме четыре текстовых поля TextBox (три — для ввода длин сторон -
Text1. Text, Text2.Text , Text3.Text и одно — для вывода результата - Text4.Text) и командную
кнопку CommandButton .
2.
Создать событийную процедуру, реализующую ввод в текстовые поля значений сторон
треугольника а, b, c, вычисляющую полупериметр и площадь треугольника по формуле
Герона. Результат выводится в текстовое поле Text 4.Text.
Private Sub Command_Click{)
' задание сторон треугольника
а = Val(Text1. Text)
b = Val(Text2.Text)
с = Val(Text3. Text)
‘ расчет полупериметра’
p = (a+b+c) / 2
' расчет и вывод площади’
Text4.Text = (p * (p - a) * (p - b) * (p - с) )^ (1 / 2)
End Sub
Проект «Калькулятор»
Создадим
проект,
позволяющий
выполнять
арифметические
действия
над
числами
( сложение , вычитание , умножение и деление )
Поместим на форму:
-
два текстовых поля – для ввода чисел ( Text1 и Text2 )
-
метку – для вывода результата ( Label1 )
-
4 командные кнопки ( Command1 --- Command4 ) – для событийных процедур сложения,
вычитания, умножения, деления.
Программный
код
кнопки
сводится
к
тому,
чтобы
изменить
значение
свойства
метки
Label1
( Caption )
так,
чтобы
оно
являлось
суммой
(разностью, умножением, делением соответственно)
числовых значений свойства Text текстовых полей
Text1.Text,
Text2.Text. .
Для
преобразования
строковых
значений
в
числовые
вводимых
числовых данных воспользуемся функцией Val().
Программный код для кнопки (сложение):
Private Sub command1_Click()
Label1.Caption = Val(Text1.Text) + Val(Text2.Text)
End Sub
Программные коды для кнопок вычитание, умножение, деление отличается только знаком
арифметической операции.
17
Ф
УНКЦИИ В ЯЗЫКЕ
VB
Математические функции
В математических функциях значениями аргументов и функций являются числа. В языке
VB имеется 12 математических функций.
Функция
Аргумент функции
Возвращаемое значение
Sin(x)
Число (в радианах)
Синус числа
Cos(x)
Число (в радианах)
Косинус числа
Tan(x)
Число (в радианах)
Тангенс числа
Atn(x)
Число
Арктангенс в радианах
Sqr(x)
Положительное число
Квадратный корень из числа
Log(x)
Число
Натуральный логарифм числа
Exp(x)
Число
Экспонента числа
Rnd()
Нет аргумента
Случайное число (от 0 до 1)
Int(x)
Число
Наибольшее целое, не превышающее аргумента
Fix(x)
Число
Число без дробной части
Abs(x)
Число
Модуль числа
Sgn(x)
Число
Знак числа
Проект «Инженерный калькулятор»
Используя имеющийся проект « Калькулятор »
добавим для него кнопки для запуска событийных
процедур вычисления – Sin, Cos, Tan, Sqr, St, Log .
Пример программного кода для событийной
процедуры возведения в степень :
Private Sub Command11_Click()
Label1.Caption = Val(Text1.Text) ^ Val(Text2.Text)
End Sub
Аналогичным
образом
создаются
программные коды для остальных функций.
Функции ввода и вывода данных
Функция ввода InputBox позволяет вводить данные с помощью диалоговой панели.
Синтаксис:
Имя переменной = InputBox (“Приглашение” [, “Текст заголовка окна”)]
В результате выполнения функции появится диалоговое окно с текстовым полем, куда
необходимо с клавиатуры ввести требуемое значение и нажать на кнопку Ок.
Например:
A = InputBox(“Введи значение A”)
Возвращаемое функцией значение имеет тип String. Поэтому необходимо предварительно
преобразовать получаемое значение в числовой вид с помощью функции Val.
A = Val(InputBox(“Введи значение A”))
Функция MsgBox позволяет выводить сообщения не на форму, а на специальную панель
сообщений как числовые, так и текстовые значения.
Окно вывода может иметь различные кнопки управления, приведенные в таблице, набор
которых зависит от аргументов функции.
Систаксис:
MsgBox (“Сообщение”,[Код1 + Код2], [“Заголовок”])
-
Сообщение выводится на панель сообщений
-
Код1 + Код2 – внешний вид панели (набор кнопок)
-
Заголовок – в строку заголовка панели
Код1
Вид пиктограммы
Код2
Кнопки
16
0
Ок
18
32
?
1
Ок, Отмена
48
!
2
Стоп, Повтор, Пропустить
64
I
3
Да, Нет, Отмена
4
Да, Нет
5
Повтор, Отмена
Например:
MsgBox (“Деление на ноль”,”0”,”Вывод данных” – где:
-
Деление на ноль – Выведется в самом окне
-
0 – это кнопка ОК
-
Вывод данных – это заголовок окна
Проект: «Среднее арифметическое введенных чисел».
Подсчитать и вывести на форму среднюю оценку по 5 предметам, заданным произвольно с
помощью функций ввода – вывода.
1.
Поместить на Форму – кнопки Command1 и Command2 для запуска и завершения
приложения – Запуск и Финиш.
2.
Создать событийную процедуру, реализующую ввод оценок по 5 предметам функцией
InputBox и выполняющую вывод результата функцией MsgBox на специальную панель
сообщений.
Программный код для кнопки Запуск :
Private Sub Command1_Click()
Dim p1, p2, p3, p4, p5, srednee As Integer
p1 = Val(InputBox("Введи оценку", "История"))
p2 = Val(InputBox("Введи оценку ", "Химия"))
p3 = Val(InputBox("Введи оценку ", "Информатика"))
p4 = Val(InputBox("Введи оценку ", "Физика"))
p5 = Val(InputBox("Введи оценку ", "Математика"))
srednee = (p1 + p2 + p3 + p4 + p5) / 5
MsgBox "Средняя оценка по предметам" + Str(srednee), 0, "Вывод результата"
End Sub
Программный код для кнопки Финиш :
Private Sub Command2_Click()
End
End Sub:
Задачи для самостоятельного выполнения
1.
Разработайте проект, в котором пользователь мог ввести название города-юбиляра, год
его
основания,
текущий
год.
После
нажатия
командной
кнопки
должно
выйти
поздравление: "Поздравляем жителей города N с Х-летием!!!"
2.
Разработайте
проект,
который
находит
квадратный
корень
произведения
двух
вещественных чисел и выводит результат на форму. Числа запрашиваются.
19
3.
Запросите у пользователя валютный курс на сегодняшний день, затем имеющуюся у него
рублевую сумму и рассчитайте, сколько долларов и сколько евро он может купить на эти
деньги.
4.
Дискета 3,5" вмещает 1,44 Мбайт. Рукопись содержит А страниц текста. На каждой
странице Y строк по Z символов в каждой. Сколько дискет потребуется для записи
рукописи? A, Y и Z запрашиваются.
5.
Документ содержит текст из X строк по Т символов в каждой и точечную черно-белую
фотографию размером 10x15 см. Каждый квадратный сантиметр содержит 600 точек,
любая точка описывается 4-мя битами. Каков общий информационный объем документа
в Кбайтах?
6.
Игра "Zavr In The Sky" требует для установки на жесткий диск А мегабайт свободного
места. На жестком диске сейчас Б мегабайт свободного места. Сколько флэш-карт по В
мегабайт понадобится, чтобы освободить недостающее пространство? (Данные А, Б и В
запрашиваются.)
7.
Жесткий диск пуст и имеет объем свободного пространства Г гигабайт, а) Сколько книг,
каждая из которых состоит из Д страниц, на каждой странице Е строк, в каждой строке Ж
символов, можно записать на такой жесткий диск? б) Если учесть, что каждая такая
книга 3 см толщиной, то какой высоты в метрах будет стопка, если все их сложить друг
на друга?
8.
Скорость передачи данных по локальной сети С миллионов бит в секунду. Ученик качал
игру Т минут. а) Сколько это гигабайт и сколько дискет по 1,5 Мбайта можно заполнить
таким объемом информации? б) Сколько денег (в рублях) придется заплатить ученику за
трафик, если первый 1 Гбайт не оплачивается, а все, что сверх его — по Y копеек за 1
Мбайт.
9.
Продав квартиру, вы получили 52000р и положили их в банк. Банк начисляет 1% в
первый месяц, а каждый следующий
— тоже 1%, но уже
с получившейся суммы.
Сколько денег будет в банке на вашем счету через год?
Функции Даты и Времени
Функция Date возвращает значение текущей даты, которое присваивается переменной типа
Date . Значение даты представляется в виде : #Месяц/Число/Год#
Разность значений переменных типа Date дает количество дней между датами.
Пример : Вывести на форму текущую дату, а также определить сколько дней Вы прожили.
Разместить на форме командную кнопку – Сегодня и создать программный код:
Private Sub Command1_Click()
Cls
ForeColor = vbRed
FontSize = 20
Alignment = center
Print Tab(10);" Сегодня "; Date
End Sub
Разместить
на
форме
командную
кнопку
–
Кол-во
прожитых
дней
и
создать
программный код:
Private Sub Command3_Click()
Cls
ForeColor = vbRed
FontSize = 30
Print " Вы прожили «; Date - #01/01/1980#; " дней"
End Sub
Функция Time возвращает значение текущего времени типа String, которое можно вывести
в
текстовое
поле.
Значение
времени
выводится
в
виде:
#Часы:
Минуты:
Секунды#.
Для
обновления текущего времени используем объект Timer панели инструментов General. Объект
проверяет показания системных часов (на экране не видны) по событию Timer. Периодичность
20
события задается в свойстве Interval, измеряемое в миллисекундах (0 до 65535). Чтобы событие
Timer происходило ежесекундно, необходимо свойству Interval присвоить значение 1000.
Проект
Часы:
Разместить
на
форме
метку,
куда
будем выводить значение текущего времени и объект Timer
(Часы).
В
свойстве
Interval объекта
зададим
значение
–
1000.
Событийная процедура для часов:
Private Sub Timer1_Timer()
Label1.Caption = Time значение текущего времени
ForeColor = vbBlack ‘
Цвет шрифта’
FontSize = 80 ‘
Размер шрифта’
End Sub
Задачи для самостоятельного выполнения
1.
Создать проект, выводящий на экран количество дней со дня вашего рождения.
2.
Создать проект, запрашивающий дату рождения родителей и выводящий на экран их
возраст в момент вашего рождения.
3.
Создать проект, выводящий на экран количество дней с начала третьего тысячелетия
Оператор условного перехода
Использование операторов условного перехода позволяет реализовывать в программном
коде
вариант
выбора
пути
решения
в
зависимости
от
результата
проверки
выполнения
определенного условия. Синтаксис оператора условного перехода:
If <условие> Then <оператор> или
If <условие> Then <оператор >
End If
Например,
If (n >= 10) and (n <=20) Then Print “Интервал”
Пример : Задать с клавиатуры три числа. На экран вывести наибольшее и наименьшее из них.
1.
Разместить на форме кнопки –
Старт
и
Финиш
.
2.
Программный код ля кнопки
Старт
:
Private Sub Command1_Click()
X1 = Val(InputBox("Введи первое число", "Число 1"))
X2 = Val(InputBox("Введи второе число", "Число 2"))
X3 = Val(InputBox("Введи третье число", "Число 3"))
If X1 > X2 And X1 > X3 Then b = X1: GoTo 1
If X2 > X3 And X2 > X1 Then b = X2 Else b = X3
1 If X1 < X2 And X1 < X3 Then a = X1: GoTo 2
If X2 < X3 And X2 < X1 Then a = X2 Else a = X3
2 Font.Size = 30
ForeColor = vbRed
Form1.Print " Наибольшее число"; b
Form1.Print " Наименьшее число "; a
End Sub
3.
Программный код для кнопки
Финиш
:
Private Sub Command2_Click()
End
End Sub
Задачи для самостоятельного выполнения
1.
Запросите с клавиатуры три целых произвольных числа. Выведите на форму их среднее
значение, а также наибольшее и наименьшее числа.
2.
Известно, что сторона квадрата равна а , радиус круга r . Выведите на форму название и
значение площади большей фигуры.
3.
Составить простейший фрагмент игры «Кто хочет стать миллионером!». Придумайте 5 любых
вопросов и к каждому из них 4 варианта ответов. Программа должна запросить имя игрока и
21
желание сыграть. Если не желает, то прощаемся, если желает играть, то предложить первый
вопрос и варианты ответов. Запросить с клавиатуры вариант ответа. В случае правильного
ответа начисляем ему сто очков и переходим ко второму вопросу. Если ответ не верен, то
выражаем сожаление и прощаемся. Первый вопрос – 100 очков, второй – 200, третий – 300,
четвертый – 500, пятый – 1000. если игрок правильно отвечает на все 5 вопросов, то
поздравляем его, сообщаем, где получить выигранную сумму и заканчиваем программу.
Оператор цикла
Использование
операторов
цикла
дает
возможность
повторного
выполнения
набора
инструкций – операторов. Используемый в данной разработке оператор цикла с параметром
позволяет выполнять инструкции определенное число раз.
Синтаксис оператора:
For <параметр цикла> = <начальное значение> to <конечное значение> [<step - шаг>]
<тело цикла>
Next <параметр цикла>
Например :
Private Sub Command1_Click(_)
Dim At1 As Integer, j As Integer
At1 = 0
For j = 2 to 20 step 2
At1 = At1 + j
Next j
MsgBox “Сумма равна ”, At1
End Sub
Проект1 : Вывести на экран натуральные числа от 1 до 10, а также их квадраты и кубы.
На форму – 2 кнопки: Начало (вычисление и вывод результата) и Финиш (завершение
программы).
Программный код для кнопки Начало :
Private Sub Command1_Click(_)
Dim i As Integer
FontSize = 14
Print “Число”, “Квадрат”, “Куб”
Print
For i = 1 to 10
Ptint i,i^2, i^3
Next i
End Sub
Программный код для кнопки Финиш :
Private Sub Command2_Click(_)
End
End Sub
Проект2 :Нарисовать концентрические окружности (мишень).
На форме разместить 2 кнопки: Старт и Финиш .
Программный код для кнопки Старт :
Private Sub Command1_Click(_)
Dim r As Integer
Picture1.Scale (0, 100) – (100, 0)
For r = 5 to 50 step 5
Picture1.Circle (50, 50), r
Next
r
End Sub
Программный код для кнопки Финиш :
Private Sub Command2_Click(_)
End
End Sub
22
М
АССИВЫ
Массив
—
это
набор
однотипных
данных
(чисел,
символов,
слов),
имеющий
имя
и
последовательную нумерацию его элементов.
Если в программе предстоит работать с большим объемом данных, то мы должны
этот массив в программе объявить с помощью уже известного нам оператора
DIM
,
после
которого указывается имя массива и в скобках размерность массива, т. е. указывается
начальный и конечный индексы (номера) его элементов. После скобок необходимо
указать тип данных массива.
Например,
в
группе
четыре
человека.
Массив
—
это
фамилии
учеников.
Записывается так:
Dim Fam (1 to 4) As String
В этом случае компьютер в памяти отводит некую область из четырех ячеек, которую
называет Fam . Кроме того,
эти ячейки
нумеруются натуральными
числами,
начиная
с
1.
Пример: имеется 4 дома с номерами 1, 2, 3, 4 на улице с названием Fam . В каждом доме по
жильцу
(массив
фамилий:
Григорьев,
Березкин,
Силин,
Огнев).
Чтобы
обратиться
к
конкретному жильцу, необходимо указать его адрес Fam(2), т.е. название улицы и номер
дома.
Из этого следует, что:
у массива есть имя , которое дает ему программист;
у массива есть тип , который определяется типом данных, его оставляющих;
у массива есть размер , т. е. количество составляющих его элементов;
у массива есть сквозная последовательная индексация составляющих его
элементов;
у каждого элемента массива есть значение (в нашем случае это фамилия).
Заполнение массива и вывод его значений на форму
Заполнение одномерного строкового массива с клавиатуры:
Dim Fam(1 to 4) As String * 20
Cls
For I = 1 to 4
Fam(I) = InputBox(“Введи фамилию длиной не более 20 символов”)
Print Fam(I)
Next I
Заполнение массива случайными числами
Для
генерации
последовательности
случайных
чисел
используем
функцию
Rnd.
При
запуске программы функция Rnd дает равномерно распределенную псевдослучайную (т.е.
каждый раз повторяющуюся) последовательность чисел в интервале 0<Х<1. Для того чтобы
генерировались
различающиеся
между
собой
последовательности,
можно
использовать
оператор Randomize .
Для получения последовательности случайных чисел в заданном интервале a < x < b
необходимо использовать следующую формулу:
(b –a )*Rnd + a
Получение целочисленной последовательности случайных чисел на интервале 0 < x < 10
достигается использованием функции выделения целой части числа: Int(Rnd * 10)
Dim Mas( 10) As Integer
Cls
Randomize
For i = 1 to 10
Mas(i) = Fix(Rnd(1) * 100 + 1)
Print Mas(i)
Next i
Заполнение массива при помощи стандартных функций
Пусть дана функция y = sin x , где x изменяется от 1 до 10 с шагом 0,5. Здесь надо решить,
сколько значений будет вычислено и их мы занесём в массив.
23
N =(x нач.- x кон.)/шаг + 1
N = (10 – 1)/0,5 + 1 = 19
Программа будет выглядеть так:
Cls
Dim M(1 to 19)
i = 1
For x = 1 to 10 Step 0.5
M(i) = Sin(x)
Print “x = “; x; “Sin(x) = “; M(i)
i = i + 1
Next x
Здесь приходится вручную наращивать индекс i, т. к. параметром цикла в данном случае
является х.
Поиск минимального элемента в массиве
Будем считать сначала, что минимальный элемент равен первому элементу массива A(1) и
присвоим переменной Min его значение.
Затем в цикле сравним последовательно элементы массива со значением переменной Min,
если какой-либо элемент окажется меньше, присвоим его значение переменной Min, а его
индекс присвоим переменной N. По окончании цикла в переменной Min окажется минимальное
значение массива, а в переменной N – его номер. Распечатаем результаты.
Примечание: Аналогичным образом находится максимальный элемент в массиве, только
меняется знак операции сравнения на противоположный.
Пример : Разместим на форме кнопку заполнения массива Заполнить массив и кнопку
Стоп .
Создадим
для
них
событийные
процедуры
заполнения
массива
А(10)
и
поиска
минимального элемента в этом массиве. Найденный элемент и его индекс выведем в текстовые
поля Text1.Text и Text2.Text .
Программный код для кнопки Заполнить :
Private Sub Command1_Click()
Dim a(10) As Single, i As Integer
Cls
Randomize
For i = 1 To 10
a(i) = Int(-30 * Rnd + 80 * Rnd)
Next i
ForeColor = vbBlack
FontSize = 14
Print " М а с с и в"
Print
ForeColor = vbBlack
FontSize = 14
For i = 1 To 10
Print " a("; i; ") = "; a(i)
Next i
Min = a(1): N = 1
For i = 2 To 10
If a(i) < Min Then Min = a(i): N = i
Next i
Text1.Text = Min
Text2.Text = N
End
Запустить проект. По кнопке Заполнить на форме появится массив и в текстовых полях
результаты поиска (мин. элемент и его номер).
24
Задачи для самостоятельной работы
1.
Заполните 2 массива 10 случайными числами, лежащих в пределах от -10 до 10. Сложите
поэлементно эти массивы и заполните ими третий массив. На форму вывести все три
массива в три столбика
2.
Расположить
элементы
одномерного
массива,
заполненного
случайными
числами
в
интервале (-120, 99 – 120,99) в следующем порядке: положительные, равные нулю,
отрицательные.
3.
Случайным образом
сформировать
вектор
В(4),
элементы
которого
разделить
на
3.
Вывести массив в строку в графическое поле.
4.
Заполнить
массив
случайными
числами
в
интервале
(-91
–
92)
заменить
все
положительные элементы, стоящие на нечетных местах, нулями.
5.
Заполнить массив случайными числами в интервале (от-61 до 72) и заменить все
отрицательные элементы, стоящие на четных местах единицами.
6.
В
заполненном
случайными
числами
в интервале
(от
-84
до 25) массиве
поменять
местами четные и нечетные элементы.
7.
Расположить
элементы
одномерного
массива,
заполненного
случайными
числами
в
интервале
(от
-42
до
120)
в
следующем
порядке:
положительные,
равные
нулю,
отрицательные.
8.
Замените в массиве из 10 случайных целых чисел, каждое из которых лежит в пределах
от 1 до 10, все четные элементы нулями и выведите полученный массив на форму.
9.
Массив состоит из 60 случайных двузначных целых чисел. Выведите их на экран в
обратном порядке по 6 чисел в строке.
10.
Даны два массива, заполненные каждый десятью случайными числами, каждое из
которых от 1 до 9 включительно. Сложите массивы поэлементно, результаты
запишите в третий массив. На экран вывести все три массива.
11.
Заполните массив из 10 чисел, введенных с клавиатуры, лежащих в пределах от 50 до
150,
вывести
массив
на
форму,
подсчитать
и
вывести
на
форму
количество
одинаковых чисел, а также найти максимальный элемент и его номер
12.
Даны три массива с одинаковым количеством элементов 5, в которых содержатся
стороны треугольников А
i
, B
i
, C
i
. Определите периметр P
t
и площадь S
i
каждого
треугольника по формуле Герона.
13.
Определите объем каждого из 10 цилиндров, для которых заданы радиусы оснований
Ri (случайные целые числа от 5до 25 см) и высоты Hi (случайные целые числа от 10 до 30
см.).
14.
Дан одномерный массив W из 10 случайных целых чисел, каждое из которых лежит в
пределах от 1 до 100. Получите новый массив R, где каждый элемент создается из массива
W делением соответствующего элемента на его индекс.
15.
Вычислите и представьте в виде массива последовательность первых 20 чисел Фибоначчи,
если Х
1
= 1, X
2
= 2, а каждый последующий элемент равен сумме двух предыдущих.
16.
Имеются данные о
среднесуточной температуре в течение февраля 2005г.
по Санкт-
Петербургу.
Вычислите
среднюю
температуру
февраля, наибольшую
и
наименьшую
температуры. Постройте линейный график изменения среднесуточной температуры.
17.
В фирме «Green Beavis Ltd» работают семь сборщиков компьютеров. Для повышения
производительности
труда
в
конце
недели
обрабатывают
сведения
о
количестве
компьютеров, собранных каждым из них ежедневно. Напишите программу, которая выдаст
на экран следующие данные:
-
наибольшее количество компьютеров; собранных одним служащим за неделю;
-
среднее количество собранных за день компьютеров;
-
лучший результат за один день;
-
номер служащего, показавшего этот результат, и день, в который он был достигнут.
18.
Даны два числовых массива X и Y с количеством элементов 10 и 20 соответственно.
Получите массив Z состоящий из 30 элементов, составленный добавлением массива X в
конец массива Y.
25
19.
Дан массив из 20 случайных целых чисел, каждое из которых лежит в пределах от 10 до 50.
Найдите максимальное число и его номер, а если таких чисел несколько, то подсчитайте,
сколько их.
20.
Дан массив среднемесячных температур за год. Определить, в каком месяце была самая
высокая температура, а в каком самая низкая. Массив и результат анализа вывести на
форму.
21.
Заполните массив Х(100) целыми случайными числами, лежащих в пределах от 3 до 17.
С
клавиатуры
ввести
число
N, также
лежащее в
этих пределах.
Определите
число
элементов
массива,
равных
числу
N.
На
форму
вывести
массив
и
количество
подсчитанных чисел, равных введенному числу
22.
Имеется копилка, в которой находится 1000 российских монеток достоинством в 5, 10 и 50
копеек. Задайте массив М(1000) случайным образом из этого набора, и
подсчитайте,
сколько в копилке было пятачков и полтинников, и какова общая сумма накопленного.
23.
Дан
массив
из
десяти
целых
случайных
двузначных
чисел.
Найдите
сумму
трех
максимальных из них.
24.
Заполните массив 10 случайными числами, лежащих в пределах от 50 до 200, и вывести
на форму их численные значения, подсчитать и вывести на форму сумму этих чисел, а
также найти минимальный элемент и его номер
25.
Заполните массив R(25) случайными целыми двузначными числами так, чтобы числа не
повторялись.
26.
Заполнить массив числами, введенными с клавиатуры: 53, 56, 12, 54, 81, 10, 18, 37, 3, 62 и
вывести в графическое поле сам массив в строку, а также их среднее значение, а также
найти максимальный элемент массива и его номер
27.
Заполнить массив числами, введенными с клавиатуры: 13, 58, 22, 59, 11, 17, 12, 37, 31, 52
и вывести в графическое поле сам массив в столбик, а также вычислить и вывести
выражение ((x
1
- S)
2
+ (x
2
– S)
2
+ … + (x
N
– S)
2
)/N, где x
i
– числа, N – их количество, S –
среднее арифметическое элементов массива.
28.
Заполните массив 20-ю случайными числами, лежащих в пределах от -50 до 20, выведите
на форму их значения в строку, подсчитайте и выведите сумму этих чисел, а также
положительные и отрицательные элементы в отдельные столбики
26
Г
РАФИЧЕСКИЕ ВОЗМОЖНОСТИ ЯЗЫКА
VB
Самым простым способом является использование инструментов панели General .
Например. Проект "Российский флаг"
Возьмем стандартную форму, увеличим ее в необходимых размерах и зададим следующие
свойства для формы: Caption — Российский флаг; BackColor — черный.
Теперь
возьмем
на
панели
инструментов
General
инструмент
Line
и
проведем
вертикальную линию на форме (своего, рода флагшток).
Зададим для линии свойство BorderColor — белый и BorderWidth — 2.
Затем возьмем инструмент Shape и от верхнего окончания линий вправо и вниз сделаем
прямоугольник. Выбрать свойства: Shape — Rectangle ; FillStyle — Solid (сплошная заливка);
FillColor — белый; BorderColor — белый.
Получится белый прямоугольник с белыми же границами. Аналогичные действия необходимо
проделать еще с двумя полосами российского флага.
Программируемые графические примитивы
Любое компьютерное изображение, по сути — это набор разноцветных экранных точек
(пикселов). В Visual Basic предусмотрены не только точки, но и линии, и прямоугольники, и
окружности, и дуги.
Наименование
Синтаксис и комментарии
Точка
Object. Pset (X, Y) , с
х,
Y
— координаты точки, с — цвет. Если object не указан, то
построение осуществляется на форме
Окружность
Object. Circle (X, Y) , R, C
X, Y – координаты центра, R — радиус, C — цвет
Линия
Object. Line (XI , Y1) - (X2 , Y2 ) , С
X1, Y1 - координаты точки начала отрезка,
Х2 , Y2 —
координаты точки окончания отрезка
Прямоугольник
Object. Line(X1,Y1) - (Х2, Y2) , С, В
XI , Y1
— координаты точки начала диагонали прямоугольника,
Х2 , Y2 — координаты точки окончания диагонали прямоугольника,
С — цвет, B (от англ. "Box" — коробка) заставляет программу
достроить прямоугольник по его диагонали.
Прямоугольник
закрашенный
object .Line (X1, Yl) - (X2,Y2) , C, BF
X1, Yl -- координаты точки начала диагонали прямоугольника, Х2,
Y2 — координаты точки окончания диагонали прямоугольника, с —
цвет,
BF (от англ. "Box Full" — полная коробка) заставляет программу
достроить прямоугольник по его диагонали и закрасить его цветом
C.
Очистка нарисованного
object.Cls
Очищает объект от текста и графики
Возвращение цвета точки с
указанными координатами
object.Point(X,Y)
Примечание : Закрашенный круг получается, если перед рисованием окружности указать
свойство [объект].
FillStyle =0 (0•—
сплошная заливка, а есть еще вариант посмотрите в
таблице свойств и затем свойство FillСо1оr = <собственно цвет >
Как задать координатную сетку объекта?
Это осуществляется оператором Scale , в котором задаются левый верхний и правый
нижний углы объекта в условных единицах. Это называется масштабированием .
27
Проект "Координатные оси"
Пусть необходимо, чтобы для построения графика какой-либо функции на экране
присутствовали оси абсцисс и ординат и начало координат лежало в начале формы
Сначала задаемся общими размерами прямоугольника, в котором будут находиться
оси. Допустим, ширина прямоугольника — 20 условных единиц, а высота — 14 условных
единиц. Тогда если центр будет иметь координаты (0, 0), то левый верхний угол будет
иметь координаты (—10, 7), а координаты правого нижнего угла будут (10, -7).
Программный код построения осей будет выглядеть следующим образом:
Private Sub Commandl_Click ()
'Масштабирование’
Scale (-10, 7)-(10, -7)
'Задание толщины рисуемых объектов
DrawWidth = 2 'толщина - 2 пиксела
'Рисование оси ординат
Line (0, -7)-(0, 7)
'Рисование оси абсцисс’
Line (-10, 0)-(10, 0)
'Подпись оси ординат’
PSet (9.5, -0.3), QBColor(7)
Print "Y"
'Подпись оси абсцисс
PSet (-0.5, 6.9), QBColor(7)
Print "X"
'Рисование синей окружности радиуса 3
Circle (0, 0), 3, vbBlue
End Sub
Как задать и выбрать цвета?
При
оформлении форм
и
других объектов
мы
уже
применяли цветовое оформление,
используя свойства: BackColor , ForeColor , FillStyle , FillColor
Программно цвет можно задать тремя способами:
-
Используя константы цветов . В этом случае цвет указывается непосредственно
константным словом.
Константы цветов
Константа
Цвет
vbBlack
vbWhite
vbRed
vbBlue
vbGreen
vbYellow
vbCyan
vbMagenta
Черный
Белый
Красный
Синий
Зеленый
Желтый
Голубой
Фиолетовый
-
Используя набор цветов QBasic . В этом случае цвет указывается так: qbColor
(номер цвета).
Цвета функции QBColor
Номер цвета
Цвет
Номер цвета
Цвет
0
1
2
3
4
5
6
7
Черный
Синий
Зеленый
Бирюзовый
Красный
Темно-красный
Коричневый
Светло-серый
8
9
10
11
12
13
14
15
Серый
Голубой
Светло-зеленый
Светло-бирюзовый
Светло-красный
Фиолетовый
Желтый
Белый
28
-
С
помощью
функции
RGB
(Red-Green-Blue).
Есть
три
основных
цвета,
остальные
получаются смешением этих трех. Значение каждого из цветов меняется от 0 до 255.
Например, цвет
RGB
(0, 0, 255) будет чисто синим, черный получится
RGB
(0, 0, 0), а
серый, например,
RGB
(192, 192, 192).
Примечание
Если цвет не указан, то рисование выполняется по умолчанию черным цветом.
Для
рисования
можно
использовать
непосредственно
форму,
но
чаще
используется
инструмент PictureBox, который, как и инструмент Image , позволяет внутри себя не только
размещать картинки, но и рисовать программно, используя вышеописанные способы.
Проект «Графический редактор»
Разработаем проект, который будет выполнять функции простого графического редактора,
где в качестве поля для рисования будет использоваться графическое поле.
Зададим систему координат с помощью оператора Scale , который фиксирует координаты
левого верхнего и нижнего правого углов поля.
Разместим
на
форме
графическое
поле
Picture1
и
кнопку
Координаты .
Создадим
событийную
процедуру
установки
системы
координат
(0
в
левом
нижнем
углу
поля,
максимальные значения координат X и Y равны 100:
Private Sub Command1_Click()
Picture1.Scale (0, 100)-(100, 0)
End Sub
Установка точки. Координаты точки будем запрашивать с помощью функции ввода
InputBox , а цвет зададим с помощью одной из восьми констант, определяющих цвет: (vbBlack –
черный, vbBlue – синий, vbGreen – зеленый, vbCyan – голубой, vbRed – красный, vbMagenta –
сиреневый, vbYellow – желтый, vbWhite - белый)
Разместим на форме кнопку Точка и создадим событийную процедуру установки точки:
Private Sub Command2_Click()
X1 = Val(InputBox("Введите координату Х", "Координата X"))
Y1 = Val(InputBox("Введите координату Y", "Координата Y"))
Picture1.PSet (X1,Y1), vbRed
End Sub
Рисование линии . Координаты начала и конца линии, а также числовой код цвета будем
запрашивать с помощью функции ввода InputBox . Цвет будем задавать с помощью функции
QBColor(number ), аргументом которой являются числа от 0 до 15, а результатом – один из
основных 16 цветов.
Разместим на форме кнопку Command3 ( Линия ) и создадим событийную процедуру
рисования линии :
Private Sub Command3 _Click()
X1 = Val(InputBox("Введите координату Х1", "Координата X1"))
Y1 = Val(InputBox("Введите координату Y1", "Координата Y1"))
X2 = Val(InputBox("Введите координату Х2", "Координата X2"))
Y2 = Val(InputBox("Введите координату Y2", "Координата Y2"))
C = Val(InputBox("Введите цвет 0 - 15", "Цвет"))
Picture1.Line (X1, Y1)-(X2, Y2), QBColor(C)
End Sub
Рисование прямоугольника. Координаты противоположных вершин прямоугольника и
числовые
коды
интенсивностей
красного,
зеленого
и
синего
цветов
будем
запрашивать
с
помощью функции ввода InputBox .
Цвет будем задавать с помощью функции RGB(Red,Green,Blue ), аргументами которой
являются три числа в диапазонах 0 до 255 (интенсивности базовых цветов), а результатом –
число типа Long в диапазоне от 0 до 256
3
(16 777 215). Таким образом, определяется цветовая
29
палитра
с
более
чем
16
миллионами
цветов,
а
каждый
цвет
задается
числом,
которое
вычисляется по формуле Red + 256*Green + 256
2
*Blue .
Разместим на форме кнопку Command4 ( Прямоугольник ) и создадим событийную
процедуру рисования прямоугольника:
Private Sub Command4_Click()
X1 = Val(InputBox("Введите координату Х1", "Координата X1"))
Y1 = Val(InputBox("Введите координату Y1", "Координата Y1"))
X2 = Val(InputBox("Введите координату Х2", "Координата X2"))
Y2 = InputBox("Введите координату Y2", "Координата Y2")
R = Val(InputBox("Введите интенсивность красного цвета", "Красный цвет"))
G = Val(InputBox("Введите интенсивность зеленого цвета", "Зеленый цвет"))
B = Val(InputBox("Введите интенсивность синего цвета", "Синий цвет"))
Picture1.Line (X1, Y1)-(X2, Y2), RGB(R, G, B), B
End Sub
Аналогичным образом можно создать событийные процедуры рисования закрашенных
прямоугольников и окружностей.
Запустить проект. Последовательно щелкнуть на кнопки рисования объектов и введя
необходимые параметры на появляющихся панелях ввода.
Сохранить проект
Построение графика функции
Разработаем
проект
построения
графиков
функций.
В
качестве
примера
рассмотрим
построение графика функции y = tgx.
Разместим
на
форме
графическое
поле
Picture1 ,
в
котором
будет
производиться
построение графика.
Разместим
на
форме
кнопку
Построение
графика
tg(x )
и
создадим
событийную
процедуру построения графика, в которой будет:
-
установлен масштаб;
-
в цикле осуществлено построение графика функции;
-
нарисованы оси координат и в циклах напечатаны на них числовые шкалы;
-
в цикле выведены вертикальные линии координатной сетки.
Dim X As Single , I As Integer
Private Sub cmd1_Click()
'Задание масштаба
picture1. Scale (-5, 2)-(5, -2)
'Построение графика
For X = -5 To 5 Step 0.01
picture1. PSet (X, Tan(X))
Next X
'Координатная сетка
For I = -5 To 5
picture1. Line (I, 2)-(I, -2), vbGreen
Next I
'Ось Х
picture1.Line (-5, 0)-(5, 0)
For I = -5 To 5
picture1.PSet (I, 0)
picture1.Print I
Next I
'Ось Y
picture1.Line (0, 2)-(0, -2)
For I = -2 To 2
picture1.PSet (0, I)
picture1.Print I
30
Next I
End Sub
Запустить проект и щелкнуть по кнопке График .
Для
построения
графика
другой
функции
необходимо
в
программном
коде
в
цикле
построения графика задать новую функцию.
Сохранить проект
Построение графика функции y = a * x * x + b * x + c
Разработаем проект построения графика функции y = a * x * x + b * x + c .
Разместим на форме графическое поле picture1 , в котором будет производиться построение
графика.
Разместим на форме кнопки Старт
и Финиш . После ввода коэффициентов в текстовые
поля по кнопке Старт строится график функции.
Событийная процедура построения графика для кнопки Старт :
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single
Dim x As Single, y As Single
Dim i As Integer
Picture1.Scale (-5, 8)-(5, -8)
'Считывание коэффициентов уравнения'
a = Text1.Text
b = Text2.Text
c = Text3.Text
‘Ось абсцисс'
Picture1.Line (-6, 0)-(6, 0)
For i = -5 To 5
Picture1.PSet (i, 0)
Picture1.Print i
Next i
'Ось ординат'
Picture1.Line (0, -9)-(0, 9)
For i = -8 To 8
Picture1.PSet (0, i)
Picture1.Print i
Next i
'Строим график по точкам'
Picture1.DrawWidth = 2
For x = -5 To 5 Step 0.005
y = a * x * x + b * x + c
Picture1.PSet (x, y)
Next x
End Sub
Задачи на функции и графики
Вычислить
значения
функции
в
заданном
интервале,
вывести
результат
в
таблицу,
по
результатам
вычислений
построить
график.
Область
изменения
аргумента
выбрать
самостоятельно в соответствии с областью допустимых значений, обосновать выбор области
изменения аргумента для построения графика.
y = x
3
+x
2
+ e
1-x
у = е
х
-
2
/ tg(x-2)
у = 6/(х
3
+ х
2
)- 1/е
х
у = 2х
2
+ Зх – cos x
у = е
х
+ cos(x
2
+ 3)
у = е
х
-
2
+ х
2
+ 3
у = х
2
+ е
х+11
+ sin x
у = 56x
2
+ x + cos(2x-x
3
)
у = х
3
+ х
2
+ х + sin 2x
y = 12.3 + 2x + x
2
e
x-5
у =(6.3 + x
3)
/ x
2
y = 3/(x+1) + cos
2
x
31
С
ТРОКОВЫЕ ПЕРЕМЕННЫЕ И ФУНКЦИИ
Cтоковые переменные – это переменные, которые могут содержать как отдельные символы,
так и их последовательности длиной до 255 символов. К ним в
Visual
Basic применимы
нижеследующие операции.
Известно, что каждый символ, представленный на клавиатуре, для компьютера переводится
в числовой код. Эти коды объединены в стандартную международную таблицу кодов ASCII.
Коды с 0 по 32 не имеют изображения на экране и служат для функций управления (пробел,
клавиши управления курсором и т. д.). Далее следуют знаки препинания, цифры, строчные и
прописные
буквы
латинского
алфавита
и
другие
символы,
которые
вы
можете
найти
на
клавиатуре.
Всего
их
128.
А
еще
128
кодов
(от
129
до
255)
служат
для
расширения
возможностей клавиатуры, например для генерации национальных символов — в нашем случае
для кириллицы. Учить их наизусть не надо — они есть в таблице. Но если ее не окажется под
рукой, то можно определить код любого символа, используя специальные функции.
Функции ASC и СНR
Функция
ASC определяет код символа и имеет следующую форму записи:
ASC (строковая переменная)
Например :
N = ASC(“F”)
print "Код заглавной буквы, F — "; N
В результате получим: Код заглавной буквы F — 70
Еще пример:
X="YAHOO"
N=ASC(X)
Print N
В результате получим код первого символа, входящего в слово
" YAHOO ", т. е. “Y”, который
равен 89
.
Примечание: Следует помнить, что коды заглавных и строчных букв — разные. Кроме того,
если напрямую указываем в функции ASC
символ или текст , то он берется в кавычки (первый
пример), а если это строковая
переменная , то без кавычек (второй пример).
Функция
CHR определяет символ, код которого указан в скобках.
Форма записи функции: CHR (код символа)
Например
:
Cls
1 n = InputBox ("Введите любой код от 33 до 128")
If n < 33 OR n >=128 Then Print "Обратите внимание на границы для кода": Goto 1
End If
Print "Символ с кодом "; n; "- это"; Chr(n)
Обратите внимание на оформление программы. Сначала выполняется очистка экрана. Затем —
запрос кода. Если он введен не в требуемых пределах, то программа возвращает человека к
запросу.
Функция LEN
Следующая функция — LEN .
Она определяет длину введенной или существующей строковой
переменной в символах. Синтаксис:
LEN (строковая переменная)
Например :
CLS
F=InputBox ("Введите Вашу фамилию")
M=Len (F)
Print "В вашей фамилии "; N; "букв"
32
Представленная программа определяет количество букв во введенной фамилии. Функция LEN
учитывает не только буквы, но и символы, т. е. она распознает и пробелы, и знаки препинания, и
цифры, содержащиеся во введенном тексте.
Например :
CLS
F = InputBox ("Введите Ваш адрес")
N = Len (F)
Print "В вашем адресе"; N; "символов
"
Самостоятельное задание : Определите с помощью предыдущего примера, сколько символов
будет в следующем адресе: 191110, Россия, Санкт-Петербург, Чкаловский пр., 78-33.
Функции LEFT, RIGHT, MID
Для
получения
фрагмента
строки
(или
значения
строковой
переменной)
применяются
специальные функции.
Функция
LEFT выделяет из строковой переменной N
С
имволов слева:
LEFT (строковая переменная, N)
Пример:
CLS
F = “Газонокосильщик”
L = LEFT(F, 5)
Print L
На
экране появится слово
"Газон", т.
е.
первые пять
символов слева
исходной
строковой
переменной.
Функция
RIGHT вырезает из строковой переменной N
символов справа:
Right (строковая_переменная, N)
Например
:
CLS
F= "Газонокосильщик"'
R = RIGHT (F, 9)
Print R
На экране появится слово "косильщик", т.е. первые девять символов справа исходной строковой
переменной;
Функция
MID
извлекает N символов, начиная с символа с номером M исходной строковой
переменной:
MID (строковая_переменная, М, N)
Например :
CLS
F = "Газонокосильщик"
:
М = MID (F, 7, 4)
Print M
На экране появится слово "коси", т. е. четыре символа, начиная с седьмого исходной строковой
переменной.
Используя эти функции, для начала можно с их помощью поиграть в игру "Наборщик", когда из
букв, составляющих какое-либо слово, нужно составить другие слова. Для этого предназначена
функция
конкатенации
или
по-простому,
слияния,
которая
записывается просто
знаком
+.
Например;
CLS
F =”
Газонокосильщик”
Wl = Mid (F, 5, 2) + Right (F, 7}
W2 = Mid (F, 5, 2) + Left (F, 2)
33
W3 = Mid (F, 9, l) + Mid (F, 7, 2) + Mid(F, 11, 2) + Mid(F, 7, 2)
Print Wl
Print W2
Print W3
Определите, какие слова получатся в результате выполнения приведенной программы?
Задача : Как известно, для компьютера словом является последовательность символов,
заключенная в
пробелы
с
двух сторон.
Это
не
обязательно
слово,
в
привычном
для
нас
понимании,
а любой набор
символов,
например,
45ро9?
или
ВАР56+УР47.
Поэтому,
в
простейшем
случае,
подсчет
количества
слов
во
введенном
тексте
сводится
к
подсчету
количества пробелов и добавлении к полученному значению единицы. Почему так? Очень
просто: слов два, а пробел между ними один; слов три, а пробелов два и т. д.
Получаем программу.
CLS
W = InputBox ("Введите текст телеграммы")
N = Len (W) : К=0
FOR I = 1 ТО N
Р = Mid (W, I, 1)
IF P = " " Then K = K+1
Next I
Print "В вашей телеграмме — "; K + 1; "слов"
Программа работает таким образом. Она определяет длину текста в символах и заносит
это число в переменную N. Затем устанавливает счетчику пробелов К нулевое значение.
После чего в цикле вырезает из текста последовательно по одному символу и проверяет, а не
является ли он пробелом. Если это так, то увеличивает счетчик пробелов К на единицу, а если
нет — берет следующий символ. По завершении цикла в переменной К хранится количество
пробелов в тексте, и мы выводим ответ о количестве слов на экран, добавляя к К единицу.
Проект «Строковый калькулятор»
Создадим проект, реализующий функции конкатенации двух строк, вырезки подстроки и
определения количества
символов в строке.
Исходные данные вводятся в текстовые поля под заголовками Строка 1,
Строка 2, Нач_позиция
и Количество . Результат появляется в поле Результат .
Программные коды для кнопок:
Конкатенация :
Private Sub Command1_Click()
Text3.Text = Text1.Text + Text2.Text
End Sub
Длина строки:
Private Sub Command3_Click()
Text3.Text = Len(Text1.Text)
End Sub
Вырезка:
Private Sub Command2_Click()
Text3.Text = Mid(Text1.Text, Val(Text5.Text), Val(Text6.Text))
End Sub
Финиш:
Private Sub Command4_Click()
End
End Sub
Задачи для самостоятельного решения
1.
Опробуйте представленную выше программу и узнайте, что за символы скрываются под
кодами 33, 66, 99, 100, 128.
34
2.
Примените функции ASC
и CHR
к примеру простейшей шифровки информации, когда
символы вводятся побуквенно, а программа определяет их код, добавляет к ним 1 и
выводит на экран вместо введенного символа символ с новым получившимся кодом.
Слово для тестовой проверки такой программы — "CAT", после его побуквенного
введения должно получиться "DBU".
3.
Напишите программу-дешифратор для предыдущего задания. Тестовая проверка: из слова
"DBU" должно получиться слово "САT”.
4.
Напишите программу, выводящую на экран символы, скрывающиеся за кодами 129
— 255. Распечатайте коды строчных и прописных букв кириллицы.
5.
Напишите программу, которая выдаст на экран пять слов максимальной длины из слова
"ЭЛЕКТРИЧЕСТВО". Побеждает тот, у кого сумма букв во всех словах наибольшая.
6.
Используя пример с подсчетом слов в телеграмме, напишите программу, имитирующую
отделение связи с очень хорошим обслуживанием. Программа должна выяснить имя клиента
и в дальнейшем обращаться к нему только по имени. Запрашивается также регион, куда
посылается телеграмма. Их три: Россия (коэффициент 1), страны СНГ (стоимость одного
слова умножается на 2) и дальнее зарубежье (стоимость одного слова умножается на 5). По
России стоимость одного слова составляет 3 руб. 50 коп. (причем неважно, какой длины
слово). Затем у клиента запрашивается текст телеграммы и денежная сумма, определяется
количество
слов,
стоимость телеграммы. Если
денег
ровно
столько,
сколько
надо,
его
благодарят и прощаются. Если больше, чем надо, то ему предлагают сдачу и прощаются.
Если меньше, то просят добавить необходимую сумму, а затем, после расчета, с клиентом
прощаются.
Нарисовать
окошко
телеграфа,
в
прорезях
которого
и
происходит
диалог
компьютера с пользователем.
35
Ф
УНКЦИИ ПРЕОБРАЗОВАНИЯ ТИПОВ ДАННЫХ
Функции
преобразования
типов
реализуют
преобразование
данных из
одного
типа
в
другой. Функция VAL() преобразует строковое значение в числовое, функции STR(), OCT(),
HEX()
преобразуют
десятичные
числа
соответственно
в
десятичные,
восьмеричные
и
шестнадцатеричные в строковой форме. Аргумент функции – десятичное число, значение –
строка.
Перевод целых положительных чисел из десятичной системы счисления
в восьмеричную с помощью функции Oct
Для перевода чисел из десятичной системы счисления в восьмеричную воспользуемся
функцией Oct , аргументом которой являются десятичные числа, а значением восьмеричные
числа в строковой форме.
Введенные
в
десятичные
поля
числа
переведем
сначала
из
строковой
формы
в
числовую с помощью функции Val, а затем
из
десятичной
числовой
переведем
в
строковую
восьмеричную
с
помощью
функции
Oct.
Добавим
на
форму
три
текстовых поля txt1Oct, txt2Oct и txt3Oct
Создадим
кнопку
( из
10-й
в
8-ю)
и
запишем
для
нее
событийную
процедуру
перевода чисел:
Private Sub DecOct_Click()
txt1Oct.Text = Oct(Val(txt1Dec.Text))
txt2Oct.Text = Oct(Val(txt2Dec.Text))
End Sub
Поместим на форму две метки с надписями Десятичные числа и Восьмеричные числа .
Добавим на форму 4 кнопки со знаками арифметических операций ( +, -, *, : ) . Создадим для
них
процедуры
соответствующих
операций
–
сложение,
вычитание,
умножение,
деление.
Результат операции будет помещен в текстовое поле Txt3Dec.Text . Одна из них (сложение)
приведена:
Private Sub Command4_Click()
Txt3Dec.Text = Val(Txt1Dec.Text) + Val(Txt2Dec.Text)
End Sub
Остальные операции отличаются только знаком.
Запустить проект на выполнение. Ввести числа в два первых текстовых поля десятичной
системы. Щелкнуть по кнопке «+», а затем по кнопке
(из 10-й в 8-ю ). Будет выполнено
сложение десятичных чисел и их перевод в восьмеричную систему.
Перевод целых положительных чисел из восьмеричной системы счисления в десятичную с
помощью функции Val
Для перевода чисел из восьмеричной системы счисления в десятичную воспользуемся
функцией
Val ,
аргументом
которой
являются
восьмеричные
числа
в
строковой
форме,
а
значением десятичные числа.
Введенные
в
восьмеричные
поля
в
строковой
форме
числа
переведем
сначала
в
восьмеричное
представление
добавлением
приставки
"&O"
с
помощью
операции
конкатенации
строк .
Полученное
восьмеричное
число
в
строковой
форме
переведем
в
десятичную числовую с помощью функции
Val
. Создадим кнопку (из 8-й в 10-ю) и запишем
для нее событийную процедуру перевода
чисел:
Private Sub cmdOctDec_Click()
txt1Dec.Text = Val("&O" + txt1Oct.Text)
txt2Dec.Text = Val("&O" + txt2Oct.Text)
End Sub
36
Запустить проект на выполнение. Ввести числа в два первых текстовых поля восьмеричной
системы. Щелкнуть по кнопке (из 8-й в 10-ю) . Будет выполнен их перевод в десятичную
систему.
Выполнить
арифметическую операцию
в десятичной системе,
щелкнув, например, по
кнопке « - ». Перевести результат в восьмеричную систему, щелкнув по кнопке (из 10-й в 8-ю) .
Сохранить проект.
Примечание :
-
для перевода чисел из десятичной системы счисления в шестнадцатеричную можно
воспользоваться событийной процедурой для соответствующей кнопки ( из 10-й в 16-ю ):
Private Sub
cmdDectHex_Click()
txt1Hex.Text = Hex(Val(txt1Dec.Text)
txt2Hex.Text = Hex(Val(txt2Dec.Text))
End Sub
-
для перевода чисел из шестнадцатеричной в десятичную можно воспользоваться
процедурой для кнопки ( из 16-й в 10-ю ):
Private Sub
cmdHexDec_Click()
txt1Dec.Text = Val("&H" + txt1Hex.Text)
txt2Dec.Text = Val("&H" + txt2Hex.Text)
End Sub
Задания для самостоятельного выполнения
1.
Усовершенствовать проект «Перевод чисел» расширив его функциональные возможности.
Обеспечить
возможность
перевода
чисел
из
десятичной
системы
счисления
в
шестнадцатеричную и обратно.
2.
Создать проект «Подсчет цифр в числе», который позволяет определить количество цифр
во введенном натуральном десятичном числе.
3.
Модернизировать
проект
так,
чтобы
можно
было
определить
количество
цифр
во
введенном целом десятичном числе.
4.
Создать проект «Печать цифр числа», который обеспечивает вывод на печать (по зонам)
цифр, составляющих введенное целое десятичное число.
5.
Создать проект «Сумма цифр», который позволяет вычислить сумму десятичных цифр заданного
целого десятичного числа.
6.
Создать проект «Перевод десятичных чисел в двоичную систему счисления».
А
НИМАЦИЯ ОБЪЕКТОВ
Анимация часто используется для изображения движения объектов.
Для создания анимации (иллюзии движения на экране какого-либо объекта) применяется
принцип
смены
кадров
(изображений),
как
это
делается
в
мультипликации.
Программа,
имитирующая движение, должна реализовывать следующие этапы:
-
создание изображения на экране;
-
реализация временной паузы для того, чтобы глаз зафиксировал изображение;
-
стирание изображения цветом фона;
-
смена координат изображения;
-
создание изображения на экране с измененными координатами и т. д.
Для регулирования скорости движения объекта используется пустой цикл, чем большее
количество раз он будет выполняться, тем медленнее будет двигаться объект.
Проект «Движение круга по горизонтали.»
Разместить на форме кнопку – Движение и графическое поле Picture1 . Для закрашивания
круга необходимо установить значение – Сплошная закраска ( Solid ) свойства, задающего тип
закраски – FillStyle при выделенном графическом поле в режиме конструирования.
Программный код движения круга в графическом поле:
37
Dim x As Integer, n As Long
Private Sub Command1_Click()
'Масштаб’
Picture1.Scale (0, 10)-(100, -10)
'Анимация’
For x = 1 To 100
'Рисуем круг зеленого цвета’
Picture1.FillColor = vbGreen
Picture1.Circle (x, 0), 7, vbGreen
'Задержка для фиксации глазом
For n = 1 To 1000000
Next n
''Рисуем круг белого цвета’
Picture1.FillColor = vbWhite
Picture1.Circle (x, 0), 7, vbWhite
Next x
End Sub
Задания для самостоятельного выполнения
1.Создать проект, реализующий работу стрелочных часов. Стрелки (часовая, минутная и
секундная) должны вращаться с использованием эффекта анимации.
2.Создать проект, реализующий работу стрелочных и электронных часов. Стрелки должны
вращаться с использованием эффекта анимации синхронно с системным временем компьютера.
П
РОЦЕДУРЫ
При разработке сложных алгоритмов рекомендуется выделять в нем последовательности
действий, выполняющие многократные действия, которые впоследствии реализуются в виде
подпрограмм. В объектно-ориентированных языках программирования подпрограммы принято
называть процедурами. Запуск процедур не связывают с каким – либо событием, а реализуется
путем вызова из других процедур.
Каждой процедуре дается уникальное имя – Имя Процедуры и устанавливается список
входных и выходных
параметров .
Список входных параметров – это набор переменных с установленными значениями до
вызова процедуры.
Список
выходных
параметров
–
это
набор
переменных,
значение
которых
будет
установлено после окончания процедуры.
Синтаксис процедуры:
Sub ИмяПроцедуры (Список Параметров)
Программный код
End Sub
Общая процедура вызывается на выполнение либо оператором Call, либо по имени. Если
вызов оператором Call, то список параметров заключается в скобки:
Call ИмяПроцедуры (Список Параметров)
В случае вызова процедуры по имени список параметров приводится без скобок:
ИмяПроцедуры Список Параметров
Пример: Проект «Процедура пользователя».
Сформировать массив из десяти случайных чисел в диапазоне от - 30 до +80. Найти
среднее арифметическое квадратов сформированной последовательности. Для формирования
данных создать процедуру пользователя.
Разместить на форме следующие элементы управления:
Command1, Command2, Command3- для кнопок «Массив», «Вычислить», «Финиш»;
Label1 - свойство Caption = 'Среднее арифметическое квадратов элементов массива';
Тех11 будет содержать результат;
38
массив из десяти чисел будет размещен на форму.
Программный код имеет следующий вид:
Sub proc (a) As Single, n As Integer) ‘Процедура пользователя
‘ Заполнение массива’
Dim i As Integer
For i = 1 to n
а(i) = 110 * Rnd() - 30
Next i
End Sub
Private Sub Command1_Click()
‘Вывод массива на форму’
Dim а (10) Аs Single
Рrint: Рrint: Рrint:
proc а(), 10
For i = 1 tо 10
Рrint а(i);
Next i
End Sub
Private Sub Command2_Click ()
‘Вычисление среднего арифметического’
Dim S As Single, а (10) Аs Single, i Аs Integer
S = 0
proc a(), 10
For i = 1 to 10
S = S + a (i) ^ 2
Next i
Text1.Text = S / 10
End Sub
Private Sub Command3_Click ()
End
End Sub
После запуска приложения, нажимая последовательно на кнопку “ Массив ”, на Форме
появится информация о массиве, на кнопку “ Вычислить ” – в текстовом окне число - среднее
арифметическое, а кнопка “ Финиш ” закроет приложение.
С
ОРТИРОВКА МАССИВА
Разработаем проект, который позволит заполнить числовой массив целыми случайными
числами, а затем предоставит возможность сортировать массив по возрастанию.
Проект «Сортировка массива»
Разместить на форме текстовое поле Text1.Text и кнопку Command1 . Присвоить свойству
Caption значение Заполнить .
Установить
для
свойства
MultiLine (многострочный) текстового
поля
значение
True
и
подобрать размер шрифта так, чтобы массив распечатывался в одной строке текстового поля.
Ввести для кнопки событийную процедуру заполнения массива и его вывода в текстовое
поле:
Dim I, A(10) As Byte
Private Sub
Command1
_Click()
Randomize
For I = 1 To 10
A(I) = Int(Rnd * 10)
Text1.Text = Text1.Text + A(I)
Next I
End Sub
Запустить проект и несколько раз щелкнуть по кнопке Заполнить .
39
В текстовом поле появятся последовательности случайных чисел, различающиеся между
собой.
Поиск минимального элемента
Будем считать сначала, что минимальный элемент равен первому элементу массива
A(1)
и присвоим переменной Min его значение.
Затем в цикле сравним последовательно элементы массива со значением переменной Min ,
если какой-либо элемент окажется меньше, присвоим его значение переменной Min , а его
индекс присвоим переменной N
Разместить
на
форме
кнопку
Command2
и
присвоить
свойству
Caption
значение
Мин.элемент .
Создадим для нее событийную процедуру поиска минимального элемента:
Private Sub Command2_Click()
Min = A(1)
N = 1
For I = 2 To 10
If A(I) < Min Then Min = A(I): N = I
Next I
Print "Минимальный элемент "; Min; "его индекс"; N
End Sub
Запустить проект. Последовательно щелкать на кнопках Заполнить и Мин. элемент .
В текстовом окне будет появляться заполненный массив, а на форме будет печататься
минимальный элемент и его индекс.
Сортировка массива по возрастанию методом перестановок
Идея алгоритма сортировки по возрастанию массива, состоящего из N элементов, методом
перестановок элементов состоит в последовательном поиске минимальных элементов и их
перемещении к началу массива с помощью перестановок с элементами, имеющими меньший
индекс.
На первом шаге находим минимальный элемент массива и меняем его местами с первым
элементом массива. Остаются неупорядоченными N-1 элемент. Проводим поиск минимального
элемента среди элементов с индексами от 2 до N и делаем перестановку.
Повторяем процедуру поиска минимального элемента среди оставшихся неупорядоченных
элементов многократно. Повторение реализуем с помощью цикла со счетчиком, максимальное
значение которого составляет N-1. В результате массив сортируется по возрастанию .
Так
как,
поиск
минимального
элемента
массива
проводится
многократно,
реализуем
рассмотренную
ранее
событийную
процедуру
Command2_Click()
как
общую
процедуру
МинЭлемент (I, N As Byte),где
I – является входным параметром,
N – выходной параметр
Программный модуль формы должен содержать:
Событийную процедуру заполнения массива (можно с помощью случайных чисел)
Общую процедуру поиска минимального элемента
Событийную процедуру сортировки массива.
Поместим на форму кнопку и создадим для нее событийную процедуру заполнения
массива
Ввести программный код общей процедуры поиска минимального элемента и поместить
ее в начало программного кода проекта.
Объявить переменные, используемые во всех процедурах:
Dim A(10), Min, I, J, K, R, N As Byte
'общая процедура поиска минимального элемента
Sub МинЭлемент(I, N As Byte)
Min = A(I)
N = I
For J = I + 1 To 10
40
If A(J)< Min Then Min = A(J): N = J
Next J
End Sub
Событийная процедура, реализующая сортировку массива, будет включать в себя вызов
общей процедуры поиска минимального элемента и код перестановки элементов.
Процесс сортировки массива можно сделать наглядным, если в текстовое поле выводить
состояние массива на каждом шаге сортировки
Поместить на форму текстовое поле txtSort и кнопку Command2 (Сортировать). Ввести
программный код событийной процедуры сортировки массива:
'событийная процедура сортировки
Private Sub Command2_Click()
txtSort.Text = ""
For I = 1 To 9
'вызов общей процедуры поиска минимального элемента
Call МинЭлемент(I, N)
'перестановка
R = A(I)
A(I) = A(N)
A(N) = R
'печать
массива
для
каждого
цикла
сортировки
For K = 1 To 10
txtSort.Text = txtSort.Text + Str(A(K))
Next K
Next I
End Sub
Процедуру
можно
выполнять
многократно
и
наблюдать
процесс
сортировки
для
различных
вариантов
заполнения массива.
Д
ВУМЕРНЫЕ МАССИВЫ
Двумерный массив – это набор однотипных данных, местоположение каждого элемента
которого определяется не одним индексом, а двумя.
Пример двумерного массива – детская игра в морской бой, где каждая клетка игрового
поля обозначается двумя символами – буквой и цифрой, например А5, Б9 и т.д. Другой пример
применения двумерных массивов – билеты в кино или театр, имеющие для каждого зрителя две
координаты – РЯД и МЕСТО.
Примечание: Откуда пошла традиция указывать на билетах ряд и место? Оказывается из Франции.
Когда дворяне при шпагах и гордом характере приходили в театр, имея просто билет без указания
места, то нередко возникали смертоубийственные стычки из-за этих самых мест. Королю это
надоело, и он обратился за помощью к ученому Декарту, который и предложил систему — "ряд—место".
Эта система в дальнейшем трансформировалась в привычную для нас декартову систему координат —
ось X, ось У.
Описываются двумерные массивы тем же оператором DIM , после которого в скобках
указываются
две
размерности
массива
–
КОЛИЧЕСТВО
СТРОК
и
КОЛИЧЕСТВО
СТОЛБЦОВ .
Например, массив 5x3 объявим так:
DIM Z(1 To 5, 1 To 3)
41
В виде таблицы массив будет выглядеть таким образом:
Z (1, 1)
Z (1, 2)
Z (1, 3)
Z (1, 4)
Z (1, 5)
Z (2, 1)
Z (2, 2)
Z (2, 3)
Z (2, 4)
Z (2, 5)
Z (3, 1)
Z (3, 2)
Z (3, 3)
Z (3, 4)
Z (3, 5)
Заполнение и вывод на экран двумерного массива
При обработке двумерных массивов используются вложенные циклы, работающие таким
образом:
Создаются два цикла - внешний
цикл перебора СТРОК,
внутренний
цикл заполнения
СТОЛБЦОВ.
For i = 1 to 3
For j = 1 to 3
Тело цикла по j
Тело цикла по i (внутренний цикл)
внешний цикл
Next j
Next i
Задание: Заполнить двумерный массив Z(3,5) целыми случайными числами, лежащими в
интервале от 1 до 20 и вывести его на экран в виде таблицы:
Cls
Randomize
Dim Z(1 To 3, 1 To 5)
For I = 1 To 3
For J = 1 To 5
Z ( I, J) = Int(Rnd*20)+1
Print Z(I , J);
Next J
Print
Next I
Проект «Таблица умножения»
Поместить на форму кнопку, для которой создать событийную процедуру, реализующую
вывод на форму таблицы умножения на 5.
Разместить на форме следующие элементы управления:
Command1 , Command2 , - для кнопок «Таблица умножения», «Финиш»;
Результат будет размещен на форме.
Программный код для кнопки « Таблица умножения »:
Private Sub Command1_Click()
Dim I As Integer, J As Integer
Dim F(5 To 7, 1 To 10) As Integer
Cls
Font.Size = 10
Font.Bold = True
For I = 5 To 7
For J = 1 To 10
F(I, J) = I * J
Print Tab(10); I; "*"; J; "="; F(I, J)
Next J
Print
Next I
End Sub
Программный код для кнопки « Финиш »:
Private Sub Command2_Click()
End
End Sub
42
Задачи для самостоятельного решения
1.
Дам двумерный массив 5x5. Определите сумму элементов каждой строки и ту строку, в которой
сумма элементов максимальна.
2.
Определите наименьший элемент в массиве Х(10, 10). Выделите его другим цветом.
3.
Дан
массив
W$(S,
4),
в
котором
каждая-строка
состоит
из
четырех
символов,
составляющих
английское слово. Отсортируйте массив таким образом, чтобы слова были расположены по алфавиту.
4.
В массиве R (5x5) поменяйте местами первую и последнюю строки
5.
Напишите
программу,
находящую
в
двумерном
массиве
номера
строк
с
наибольшей
суммой
элементов.
6.
В массиве R (5x5) замените элементы главной диагонали нулями.
7.
В массиве R (5x5) вычислите сумму элементов главной диагонали.
8.
В массиве R (5x5) упорядочьте строки по возрастанию элементов главной диагонали.
9.
Определите, является ли заданный массив 3x3 магическим квадратом, т. е. таким, суммы элементов
которого в строках, столбцах и главных диагоналях равны между собой.
43
П
РАКТИЧЕСКИЕ РАБОТЫ
Форма и компоненты
Задание
: Создать проект, в котором при вводе в текстовое поле нового заголовка и при
последующем щелчке по кнопке меняется заголовок окна и цвет формы.
1.
Запустите Visual Basic.
Для создания приложения необходимо использовать следующие объекты
управления.
Label1
- метка;
Command1
- командная кнопка;
Text 1
- текстовое окно;
Перенести на пустую форму эти элементы.
2.
В работе использовать следующие свойства Properties:
Label1
Caption ='Введи новый заголовок’
Command1 -
Caption=’Смени заголовок окна’
Default=’True’
Text1
Text=’Информатика и ИКТ’
Form1
Caption = 'Форма и компоненты'
3.
Набрать программный код:
Private Sub Command1 _Click()
Form1. Caption=
Text 1.Text
End Sub
4.
Запустите программу на выполнение. После запуска курсор появится в текстовом поле.
Чтобы сменить заголовок формы, следует набрать новый текст в текстовом окне и нажать
кнопку «Сменить заголовок окна».
5.
Для завершения работы программы нажать значок «закрыть» на форме.
6.
Сохранить файл формы и программы с соответствующими расширениями .frm и .vbp.
7.
Добавить на форму еще две кнопки:
Command2 -
Caption=’Сменить цвет формы’
Command3 -
Caption=Выход из приложения
’
8.
Набрать программный код для добавленных кнопок:
Private Sub Command2 _Click()
Form1. BackColor=
Rnd * 65000
End Sub
Private Sub Command3_Click()
End
End Sub
9.
Запустить программу на выполнение. После запуска нажать кнопку «Сменить цвет формы»
Цвет будет меняться каждый при нажатии на эту кнопку.
10.
Для завершения работы программы нажать кнопку «Выход из приложения».
11.
Сохранить программу.
44
Ввод и вывод данных
Использование случайных чисел для ввода данных. Условный оператор. Использование функции
ввода данных с клавиатуры.
Задание . Даны два случайных числа а и b , которые выводятся в соответствующие текстовые поля на
форме. С клавиатуры задается название арифметической операции, которую надо выполнить над
числами: сложение, вычитание, умножение, деление. Необходимо создать программу, в которой в
определенное текстовое поле указывается символ операции, в соответствующее текстовое поле
выдается результат вычисления.
1.
Запустите Visual Basic.
2.
Для создания приложения необходимо использовать следующие объекты управления!
Labell , Label2,Label3,Label4 - метки;
Text 1,Text 2,Text 3,Text 4 - текстовые окна;
Command1, Command2 - командные кнопки
.
Перенести на пустую форму эти элементы.
3.
В работе использовать следующие свойства В работе использовать следующие
свойства Properties:
Labell
Caption ='Случайное число a’
Label2
Caption = 'Случайное число b'
LabeI3
Caption =' Результат'
Label4
Caption = ' Знак операции’
Textl, Text2, Text3, Text4 Text = ' 0 '
Command 1
Caption = 'Старт'
Command2
Caption ='Финиш'
Forml
Caption = 'Ввод-вывод данных'
4.
Набрать программный код в соответствии с приведенным ниже текстом
Private Sub Commandl_Click()
Dim a,
B
, c As Single, oper As String
a = Rnd * 300: b = Rnd * 200
Textl.Text = Format (a)
Text2.Text = Format (b)
oper = InputBox("Введите название операции", "Ввод - вывод")
If oper = "сложение" Then с = a + b
Text4.Text = Format ("+")
End If
If oper ="вычитание" Then
с = a - b
Text4.Text = Format ("-")
End If
If oper = "умножение" Then
с = a * b
Text4.Text = Format ("*")
End If
If oper = "деление" And b <> 0 Then
с = a / b
Text4.Text = Format ("/")
End If
Text3.Text = Format (c) ' Вывод результата
End Sub
Программный код для командной кнопки « Финиш »
Private Sub Coramand2_Click()
End
End Sub
5. Запустите программу на выполнение: из меню Run/Start. После запуска программы
следует нажать кнопку « Старт », на экране появится окно с заголовком « Ввод - вывод ».
Необходимо в текстовом поле набрать название операции (например: сложение).
6.
Повторите все сначала, нажав кнопку « Старт »: измените данные, введите название новой
операции и т. д.
7.
Для завершения программы необходимо нажать кнопку на форме « Финиш ».
8.
Сохранить файл программы и файл формы с соответствующими расширениями . frm и .vbp
45
Вывод данных на форму
Вывод результатов вычислений на форму. Оператор
цикла. Преобразование данных строкового
типа в числовые
Задание. Составить программу для построения таблицы значений а и Ь, если а=х+4.3, Ь=ах+1.23
при изменении х в диапазоне [0, 5] с шагом h = 0,5. Результат вычислений вывести в виде таблицы.
1.
Запустите Visual Basic.
2.
Для создания приложения необходимо использовать следующие объекты управления:
Label1 - метка;
Command1
- командная кнопка;
Command2
- командная кнопка.
Перенести на пустую форму эти элементы.
3.
В работе использовать следующие свойства Properties:
Label1
Caption = ‘, Ф.И., Класс '
Command1
Caption = 'Старт'
Command2
Caption = 'Финиш'
Form1
Caption = 'Вывод данных на форму’
4.
Набрать программный код для кнопки
Старт
:
Private Sub Commandl_Click().
Dim x0, xk, x, a, b, h As Single
Dim i, n As Integer
.
Rem Ввод данных -в текстовое окно и преобразование их в числа х0, xk, h
x0 = Val ( InputBox {" Введи начальное значение х", "Ввод данных"))
xk = Val {InputBox ("Введи конечное значение xk", " Ввод данных “))
h = Val (InputBox { "Введи h - шаг изменения х", " Ввод данных "))
х = х0
Forml. Cls
' Очистка формы
Print: Print " "; " х0="; x0, "xk="; xk, "h ="; h
Print: Print " "; " a" , •" b", " x" : Print
Rem - Выделение целой части числа
n > Int((xk – x0) / h)
Rem вывод данных на форму
For i = 1 То n
а = х + 4 . 4 : b = а * х + 1 . 23
Print " " ; a, b, x
х = х + h
Next i
End Sub
Набрать программный код для кнопки Финиш
Private Sub Command2_Click{)
End
End Sub
5.
Запустите программу на выполнение. После запуска программы следует нажать кнопку «
Старт
», на
экране по очереди откроются окна с заголовком « Ввод данных ». Необходимо ввести в текстовом
поле значения: начальное значение х0, конечное значение xk, h - шаг изменения х.
6.
Для завершения программы необходимо нажать кнопку на форме «
Финиш
».
7.
Сохранить файл формы и файл программы с соответствующими расширениями .frm. и .vbp
46
Переключатели
Получение навыков программирования графических объектов и изучение
функций переключателя,
Задание . Составить программу, которая позволяет изменить начертание и цвет геометрической фигуры,
типа квадрат, овал, круг, используя стандартный элемент
управления «фигура» - Shape . „
1.
Запустите Visual Basic.
2.
Для создания приложения использовать следующие объекты управления:
Shape1
- фигура;
Label1 - метка;
Command1 -
командная кнопка;
Frame1
рамка,;
Option1,
Option2,
Option3, Option4,
Option5,
Option6
переключатели
3.
Перенести
на
пустую
форму
эти
элементы.
Причем, прежде чем перенести переключатели,
входящие в
группу
«Цвет», необходимо
перенести на форму
рамку.
Далее, выбрав
на панели
инструментов очередной переключатель, нарисовать его внутри рамки.
4.
В работе следует использовать следующие свойства Properties :
Labell
Caption ='Фигура'
Command1
Caption = 'Финиш'
Option1
Caption ='Квадрат'; Value = True,
Option2
Caption ='Овал'; Value = True
Option3
Caption ='Круг'; Value == True
Option4
Caption - 'Красный'; Value = True
Option5
Caption ='Желтый'; Value = True
Option6
Caption ='Синий'; Value = True
Frame1
Caption = 'Цвет'; Value = True
Form1
Caption = 'Переключатели'
Shape1
BackStyle= 1 - Opacue
BackColor= ButtonFace
BorderStyle= 0 Transparent
5.
Набрать программный код переключателей и кнопки « Финиш » в соответствии с приведенным ниже
текстом
Option Explicit
Private Sub Optionl_Glick()
Shapel.Shape =1
End Sub
Private Sub Option2_Click ()
Shapel.Shape =2
End Sub
Private Sub Option3_Ciick{)
Shapel.Shape =3
End Sub
Private Sub Qption4_Click()
BackColor = vbRed
End Sub
Private Sub Option5_Click()
Shapel.BackColor = bYellow
End Sub
Private Sub Option6_Click()
Shapel.BackColor = vbBlue
End Sub
Private Sub Corranandl_Click()
End
End Sub
6.
Запустите программу на выполнение. После запуска программы, поочередно активизируя переключатели
для цвета и фигуры, получим разные варианты изменения фигуры.
7.
Для завершения программы необходимо нажать кнопку «
Финиш
».
8.
Сохранить файл программы и файл формы с соответствующими расширениями .frm и .vbp.
47
График функции
Получение навыков программирования графических объектов и построения функции.
Задание . Составить программу для построения таблицы значений и графика функции y = 1.2 Sin x при
изменении x в диапазоне [-10, 10]. Результат вывести на форму в виде графика.
1.
Запустите Visual Basic.
2.
Для создания приложения использовать следующие объекты управления:
Label1 - метка;
Command1, Command2
командные кнопки;
PictureBox – графическое окно
Перенести на пустую форму эти элементы.
3.
В работе использовать следующие свойства
Properties
:
Label1
Caption = ‘ Ф.И., Класс '
Command1
Caption = 'График'
Command2
Caption = ‘Таблица’
Command3
Caption = 'Финиш'
Form1
Caption = 'Таблица- график’
4.
Набрать программный код в соответствии с приведенным ниже текстом для кнопки1:
Option Explicit
Private Sub Command1_Glick()
Dim x As Single
Form1.Cls
Picture1.Visible = true
Picture1.DrawWidth = 1
Picture1.DrawStyle = 0
Picture1.Scale (-12, 2) – (12, -2)
Picture1.Line (-11, 0) – (11. 0)
Picture1.Line (0, 1.5) – (0, -1.5)
For x = -10 To 10 Step 0.2
Picture1.DrawWidth = 4
Picture1.DrawStyle = 2
Picture1.PSet (x, 1.2 * Sin(x) – x), RGB(0, 0, 256)
Next x
End Sub
Программный код в соответствии с приведенным ниже текстом для кнопки2:
Private Sub Command2_Glick()
Dim x As Single
Form1.Cls
Picture1.Visible = False
Print: Print “ “, “ x”, “ Функция”: Print
For x = -10 To 10 Step 2.5
Print “ “, x, 1.2 * Sin(x) – x
Next x
End Sub
5.
Запустите программу на выполнение. После запуска программы, поочередно нажимая на кнопки «
График
»
и «
Таблица
», на форме будут появляться график функции и таблица значений.
6.
Добавьте на форму командную кнопку «Финиш» и соответствующую процедуру окончания работы программы:
Private Sub Command3_Click()
End
End Sub
7.
Сохраните файл формы и программы.
48
Работа с массивами
Заполнение и вывод массивов, вычисление среднего арифметического элементов массива.
Задание. Составить программу для формирования массива случайным образом в интервале от -30 до
80 . Подсчитать среднее арифметическое элементов массива. Массив и результат вычислений вывести
на форму.
1.
Запустите Visual Basic.
2.
Для создания приложения необходимо использовать следующие объекты управления:
Command1
– командная кнопка
Command2
- командная кнопка
Command3
- командная кнопка
Text1
- текстовое окно
Перенести на пустую форму эти элементы.
1.
В работе использовать следующие свойства Properties:
Command1
Caption = «Массив»
Command2
Caption = ‘»Среднее арифметическое»
Command3
Caption = 'Финиш'
Text1.Text
«0»
2.
Набрать программный код для кнопки Command1:
Private Sub Command1_Click()
Dim a(15) As Single, i As Integer
Cls
Randomize
For i = 1 To 15
a(i) = -30 * Rnd + 80 * Rnd
Next i
ForeColor = vbBlack
FontSize = 16
Print " Массив"
Print
ForeColor = vbRed
FontSize = 14
For i = 1 To 15
Print " a("; i; ") = "; Round(a(i), 3)
Next i
End Sub
3.
Набрать программный код для кнопки Command2 (Среднее арифметическое)
Private Sub Command2_Click()
Dim a(15) As Single, i As Integer, s As Single
For i = 1 To 15
a(i) = -30 * Rnd + 80 * Rnd
Next i
s = 0
For i = 1 To 15
s = s + a(i)
Next i
Text1.Text = s / 15
End Sub
4.
Набрать программный код для кнопки Command3 (Финиш)
Private Sub Command3_Click()
End
End Sub
5.
Запустите программу на выполнение. После запуска программы, поочередно нажимая на кнопки
« Массив » и « Среднее арифметическое », на форме будет выведен массив, а в текстовом поле появится
вычисленное среднее значение.
6.
По кнопке « Финиш » закончить программу.
7.
Сохраните файл формы и программы с соответствующими расширениями .frm и .vbp.
49
С
ПРАВОЧНЫЕ ДАННЫЕ
Типы данных
Название
Переменные
Размер в байтах
Integer
Целые числовые значения от -32768 до +32767
2
Single
Числа с плавающей точкой
4
Long
Длинные целые числа
4
Double
Числа с двойной точностью
8
Byte
Положительные числа без десятичных точекот 0 до 255
1
Boolean
Логические данные (True/False)
2
String
Данные строкового типа :
1 байт на символ
Арифметические операции
Операция
Описание
+
Сложение
-
Вычитание
*
Умножение
^
Возведение в степень
/
Деление
\
Деление для целых чисел
Mod
Остаток от деления двух целых чисел
&
Конкатенация (объединение) строк
Логические операции
Операция
Описание
a And b
a и b
a Or b
a или b
Not a
Не a
a Xor b
Если оба условия одинакового значения, то результат False,
иначе - True
50
С
ВОЙСТВА НЕКОТОРЫХ ОБЪЕКТОВ
Свойство
Описание
BackColor
Цвет фона
ForeColor
Цвет текста
FillColor
Цвет заполнения Shape - объектов
BorderStyle
Тип границы (стиль рамки)
Caption
Текст надписи
Font
Шрифт символов
FontSize
Размер символов
FontBold
Полужирный
FontItalic
Курсив
FontStyle
Начертание букв
Height, Width
Высота и ширина
Left, Top
Координаты относительно края
Name
Имя объекта
Picture
Рисунок, подложка
Frame
Рамка
Shape
Фигура
Visible
Видимость элемента (True – False)
Enabled
Реакция на события (False – недоступен)
Style
Стиль оформления
Text
Содержимое поля (Текстовое окно)
Stretch
Растяжка
51
О
СНОВНЫЕ ФУНКЦИИ
VB
С
ПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1.
М .Д. Князева. Программирование на Visual Basic. Кудиц-образ. Москва. 2006г.
2.
И. К. Сафронов. Visual Basic в задачах и примерах. Санкт-Петербург. БХВ-Петербург.
2006г.
3.
Н. Д. Угринович. Информатика и информационные технологии. Москва. Бином. 2003г.
Название
Описание
Abs(x)
Абсолютное значение числа
Asc(x)
Числовой код символа
Date()
Значение текущей даты
Fix(x)
Целая часть числа
InputBox(p)
Диалоговое окно ввода
Int(x)
Целая часть числа с округлением
MsgBox(p)
Сообщение в диалоговом окне
Len(p)
Длина строки
Mid(p)
Вырезка подстроки символов
Oct(x)
Восьмеричное представление числа
Option Explicit
Проверка наличия объявлений переменных
QBColor
Функция номера цвета
Randomize
Инициализация генератора случайных чисел
RGB
Функция задания цвета
Right(p)
Вырезка строки справа
Sgn(x)
Знак числа
Sin(x)
Синус угла
Sqr(x)
Квадратный корень
Str(x)
Строковое представление числа
Tab(x)
Позиционирование в строке вывода
Tan(x)
Тангенс угла
Time(0
Текущее время
Val(x)
Числовое представление строки
52
Оглавление
О
БЪЕКТНО
-
ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
................................................................. 3
ГРАФИЧЕСКИЙ
ИНТЕРФЕЙС
ИНТЕГРИРОВАННОЙ
СРЕДЫ ............................................ 4
ЯЗЫКА
VISUAL
BASIC ........................................................................................................... 4
ДАННЫЕ
И
ОПЕРАТОРЫ ..................................................................................................... 14
Ф
УНКЦИИ В ЯЗЫКЕ
VB ............................................................................................................. 17
М
АССИВЫ
................................................................................................................................ 22
Г
РАФИЧЕСКИЕ ВОЗМОЖНОСТИ ЯЗЫКА
VB ................................................................................. 26
С
ТРОКОВЫЕ ПЕРЕМЕННЫЕ И ФУНКЦИИ
..................................................................................... 31
А
НИМАЦИЯ ОБЪЕКТОВ
............................................................................................................. 36
П
РОЦЕДУРЫ
............................................................................................................................. 37
С
ОРТИРОВКА МАССИВА
............................................................................................................ 38
Д
ВУМЕРНЫЕ МАССИВЫ
............................................................................................................ 40
П
РАКТИЧЕСКИЕ РАБОТЫ
........................................................................................................... 43
С
ПРАВОЧНЫЕ ДАННЫЕ
............................................................................................................. 49
С
ВОЙСТВА НЕКОТОРЫХ ОБЪЕКТОВ
............................................................................................ 50
О
СНОВНЫЕ ФУНКЦИИ
VB ......................................................................................................... 51