LiveZilla Live Help
заказать сейчас
МЕТОДИЧКИ


Далее...

КОНТАКТЫ:
Тел.: (495) 507-98-54
          (499) 917-07-23

м. Таганская,
ул. Воронцовская,
д. 4 корп. 3, оф. 613

E-mail: superdiplom@mail.ru

ICQ-консультант

ЧАСЫ РАБОТЫ:
пон. - пт.: 09.00 - 18.00
суббота - выходной
воскресенье - выходной

 

Реклама на сайте: бухгалтерское обслуживание заказать реферат заказать диплом

УНИВЕРСИТЕТ НАТАЛЬИ НЕСТЕРОВОЙ
Факультет информационных технологий
О.Л. Гусева, Е.В. Баклашова
Основы программирования
на языке Visual Basic
Учебное пособие
для компьютерного практикума
Москва
2004
2
Гусева О.Л., Баклашова Е.В.
Основы программирования на языке Visual Basic. Учебное пособие для компьютерного
практикума. – М.: Университет Натальи Нестеровой, 2004. – 100 c.
Данное пособие – это сборник практических работ, выполнение которых научит вас создавать Windows-
приложения в среде программирования Visual Basic. Пособие ориентировано на шестую версию языка, но работы
подобраны таким образом, что рассмотренные в них вопросы полезны пользователям всех версий Visual Basic,
а представленные программные коды будут безошибочно работать в версиях 5.0 и 7.0.
Этот небольшой курс познакомит вас с основными понятиями объектно-ориентированного
программирования. На каждом занятии кроме освоения понятийного материала выполняются проекты на
компьютере в среде Visual Basic. Практические работы и порядок их следования методично подобраны и
гарантируют постепенное введение в среду программирования Visual Basic. От задания к заданию будут
углубляться ваши знания и навыки работы в этой среде. Вы познакомитесь со стандартными типами данных,
освоите основные управляющие конструкции языка Visual Basic, такие как циклы и ветвления, научитесь
грамотно организовывать диалог с пользователем, работать с массивами данных. От небольших проектов,
имеющих одну форму, вы перейдете к созданию более сложных, имеющих несколько форм и модули кода.
Материал изложен простым и доступным языком. Все объясняется на примерах.
Пособие создавалось для студентов факультета экономики и управления, поэтому особое внимание
уделено финансовым функциям Visual Basic и программированию финансовых задач, таких как расчет
амортизации, накопленной стоимости, заработной платы. Приводится пример решения задачи линейного
программирования, показана возможность работы с базами данных и подключения к Интернету, оформления
проектов с помощью графики и анимации.
Пособие включает также программу курса и полезные приложения. Для текущего контроля знаний пред-
лагаются задания для самостоятельного выполнения, тесты и контрольные задания.
Практикум обеспечивает возможность самостоятельной работы над курсом, что соответствует совре-
менному подходу к обучению в высшей школе.
Пособие рекомендовано студентам очного и заочного отделений факультета экономики и управления,
студентам других факультетов, преподавателям и всем, кто желает познакомиться со средой программирования
Visual Basic и научиться создавать Windows-приложения для решения собственных задач.
Редактор – Л.И.Турусова
© Гусева О.Л., Баклашова Е.В., 2004
© Университет Натальи Нестеровой, 2004
3
Содержание
1. Введение....................................................................................................................................................................... 4
2. Практическая работа № 1 (часть 1): «Оболочка системы программирования Visual Basic.
Основные понятия объектно-ориентированного программирования».................................................................... 6
3. Практическая работа № 1 (часть 2): «Этапы разработки Windows-приложений
в среде программирования Visual Basic (на примере создания простейшего приложения)».............................. 11
4. Практическая работа № 2: «Использование объектов файловой системы».......................................................... 15
5. Практическая работа № 3 (часть1): «Данные в Visual Basic. Типы данных»........................................................ 17
6. Практическая работа № 3 (часть 2): «Проект из двух форм и модуля кода.
Область видимости переменной».............................................................................................................................. 25
7. Практическая работа № 4: «Арифметические выражения и встроенные функции языка Visual Basic»............ 29
8. Практическая работа № 5: «Ввод-вывод данных. Системные функции InputBox и MsgBox»......................... 34
9. Практическая работа № 6: «Программирование ветвлений» ................................................................................. 38
10. Практическая работа № 7 (часть 1): «Программирование повторений (циклы со счетчиком).
Вложенные циклы» .................................................................................................................................................. 45
11. Практическая работа № 7 (часть 2): «Программирование повторений (циклы с условием)»............................. 49
12. Практическая работа № 8 (часть 1): «Одномерные массивы (способы заполнения и обработка)».................... 51
13. Практическая работа № 8 (часть 2): «Обмен значениями. Сортировка элементов массива».............................. 55
14. Практическая работа № 9: «Двумерные массивы (решение задачи линейного программирования)» ............... 59
15. Практическая работа № 10 (часть 1): «Программирование финансовых задач. Расчет амортизации».............. 62
16. Практическая работа № 10 (часть 2): «Программирование финансовых задач. Расчет накопленной
стоимости» ................................................................................................................................................................. 66
17. Практическая работа № 10 (часть 3): «Программирование финансовых задач. Расчет величины
заработной платы»..................................................................................................................................................... 69
18. Практическая работа № 10 (часть 4): «Разработка стартовой формы» ................................................................. 74
19. Практическая работа № 11: «Графика, мультимедиа, Интернет».......................................................................... 77
20. Программа курса ....................................................................................................................................................... 81
20.1. Введение....................................................................................................................................................... 81
20.2. Тематический план...................................................................................................................................... 81
20.3. Программа компьютерного практикума..................................................................................................... 83
20.4. Вопросы к экзамену .................................................................................................................................... 83
21. Вопросы для тестирования по курсу ........................................................................................................................ 84
22. Контрольные задания по курсу ................................................................................................................................ 92
23. Приложения ............................................................................................................................................................... 95
23.1. Таблица значков инструментов окна Toolbox ........................................................................................... 95
23.2. Основные объекты, свойства, методы и события Visual Basic................................................................. 95
23.3. Таблица префиксов...................................................................................................................................... 99
23.4. Встроенные функции Visual Basic .............................................................................................................. 99
24. Список использованной литературы ...................................................................................................................... 101
4
1. Введение
Современные информационные технологии основаны на принципах объектно-ориентированного
программирования.
Объектно-ориентированное программирование – это методика разработки программ, в
основе которых лежит понятие объекта как некоторой структуры, описывающий объект реального мира, его
поведение. Это принципиально новая методика разработки программ.
В 1991 году корпорация Microsoft представила компьютерному миру Visual Basic. Это один из первых
языков, поддерживающих событийно управляемое программирование (event-driven
programming). В настоящее время вышли уже шестая и седьмая версии языка.
У людей, лишь поверхностно знакомых с Visual Basic, он вызывает уверенность в своей простоте и
ограниченности его возможностей. Действительно, много лет назад Basic (прообраз Visual Baisic) использовался
для обучения начинающих программистов с последующим переходом на более сложные языки
программирования, это даже отражено в самом названии. Basic – Beginner’s All-purpose Symbol ic
Instruction Code (многоцелевой код символьных инструкций для начинающих). Более точный по смыслу
перевод: универсальный язык программирования для начинающих.
Но обращая внимание на словосочетание «для начинающих», многие пропускают слово «многоцелевой».
С прогрессом компьютерных технологий развивался и Basic, И вот в настоящее время Visual Basic дает
возможность решать практически любые задачи любой сложности и уже не считается учебным языком. Версия
языка Visual Basic 6.0 представляет собой универсальную среду для быстрой разработки приложений, сравнимую
с Visual C++ и Delphi, где используются все современные методы программирования.
Итак, наш выбор – язык Visual Basic.
Почему нас заинтересовал именно этот язык?
Во-первых, Visual Basic выгодно отличается от других языков своей простотой и наглядностью.
Опыт работы показывает, что студенты довольно быстро осваивают язык и могут создавать свои собственные
программы с профессиональным интерфейсом.
Во-вторых, Visual Basic – живой, динамично развивающийся язык. Он не устаревает, шагает в ногу
с развитием компьютеров и компьютерных технологий.
В-третьих, Visual Basic – это язык, на который «делает ставку» одна из ведущих фирм в области
разработки компьютерных технологий – компания Microsoft. Новейшие версии Visual Basic
встраиваются в новейшие системы, разрабатываемые этой фирмой (например, в текстовый редактор Word,
табличный процессор Excel в качестве языка для написания макрокоманд).
В-четвертых, язык обладает мощным арсеналом встроенных финансовых функций, что
важно, так как пособие разрабатывалось в основном для студентов экономического факультета.
И наконец, последний аргумент в пользу Visual Basic – более 4 миллионов программистов
использует данный язык.
Главная цель пособия – научить вас составлять программные коды, то есть программы на языке
системы программирования Visual Basic.
Системой программирования называют объединение языка программирования с системными
программными средствами, которые обеспечивают создание и выполнение программ на этом языке. Систему
программирования Visual Basic называют также средой проектирования Visual Basic. Почему в этом
термине слово «программирование» заменено словом «проектирование»? Вы легко объясните это,
когда поймёте следующее. Вы должны научиться не только программировать (составлять алгоритмы и писать
программы на Visual Basic), но и создавать настоящие программные приложения, работающие в системе
Windows (Windows-приложения). А программирование – это лишь один из этапов создания приложения.
Есть и другие этапы, которые бывают не менее сложными, трудоемкими и ответственными, чем
программирование. В частности, этап создания окна (экранной формы) будущего приложения, размещения в
этом окне необходимых элементов (объектов) управления – кнопок, текстовых и графических полей, полос
прокрутки и многого другого. А программы на языке Visual Basic пишутся по большей части именно для того,
чтобы управлять этими элементами. Поэтому программирование вместе с другими этапами создания приложения
называют проектированием, а само создаваемое приложение – проектом Visual Basic. По этой же причине
систему программирования Visual Basic называют системой или средой проектирования.
Поскольку система является «визуальной», пользователь может создавать видимую часть приложения, не
написав ни строчки программного кода. Эта часть является основой интерфейса «программа-пользователь».
Процесс создания Windows-приложения состоит из следующих этапов:
1. Постановка задачи – составление по возможности точного и понятного словесного описания
того, как должно работать будущее приложение, что должен делать пользователь в процессе его работы. Это
описание должно объяснять и то, как будет выглядеть экранная форма (окно) этого приложения, в каком виде
будет представлена информация, которую нужно преобразовать с помощью этого приложения.
2. Разработка интерфейса – создание экранной формы (окна приложения) со всеми
находящимися на этой форме объектами и свойствами этих объектов.
5
3. Собственно программирование – определение того, какие события будут происходить в
процессе работы приложения, составление алгоритмов процедур для этих событий и написание программы
(программных кодов этих процедур).
4. Отладка программы – устранение синтаксических и логических ошибок в процедурах и
достижение того, чтобы приложение удовлетворительно работало в среде проектирования.
5. Сохранение проекта.
6. Компиляция – превращение проекта в исполняемое приложение, способное работать
самостоятельно за пределами среды проектирования.
Со всеми этими этапами вы познакомитесь в ходе выполнения практических заданий.
Этот небольшой курс познакомит вас с основными понятиями объектно-ориентированного
программирования. Практические работы и порядок их следования методично подобраны и гарантируют
постепенное введение в среду программирования Visual Basic. Вы познакомитесь со стандартными типами
данных, основными управляющими конструкциями языка Visual Basic, научитесь грамотно организовывать
диалог с пользователем, работать с массивами данных, использовать финансовые функции Visual Basic для
программирования финансовых задач, таких как расчет амортизации, накопленной стоимости, величины
заработной платы. В пособии приводится пример решения задачи оптимизации (линейного программирования),
показана возможность работы с базами данных и подключения к Интернету, оформления проектов с помощью
графики и анимации. От небольших проектов, имеющих одну форму, вы перейдете к созданию более сложных,
имеющих несколько форм и модули кода. Материал изложен простым и доступным языком. Все объясняется на
примерах. В пособии большинство задач содержит подробные пояснения для их решения, приводится большое
количество готовых программных кодов. Но
только разобравшись в них, вы сможете выполнить задания для самостоятельного выполнения и
контрольные задания. Теоретический материал вводится по ходу выполнения задач только там, где он необходим
в минимальном объеме и таким образом не заменяет лекции.
В пособие включены программа курса, приложения, задания для самостоятельного выполнения, тесты и
контрольные задания.
Практикум обеспечивает возможность самостоятельной работы над курсом, что полностью согласуется с
современным подходом к обучению в высшей школе.
6
2. Практическая работа № 1 (часть 1):
«Оболочка системы программирования Visual Basic.
Основные понятия объектно-ориентированного программирования»
1. Запустить Visual Basic и произвести необходимую настройку.
После запуска программы на экран будет выведено диалоговое окно New Project. Окно предоставляет
пользователю меню для выбора дальнейших действий. Меню содержит три пункта:
• New – начало создания нового проекта;
• Existing – выбор приложений из существующих проектов;
• Resent – список самых последних проектов.
В окне по умолчанию установлен тип программного проекта Standar t EXE. Нажмите кнопку
Открыть.
После загрузки Visual Basic вы увидите несколько окон. Названия окон даны на рисунке.
Если в Основном окне проекта нет Окна экранной формы, открыть его (команды меню
View, Object или клавиши {Shift+F7}). Окно экранной формы расположено в центре и имеет заголовок
Project1 - Form1(Form).
Если на Главной панели проекта нет Окна свойств объекта (Properties),
открыть его (команда меню View, Propert ies Window, клавиша {F4} или кнопка на панели
инструментов ).
Если на Главной панели проекта нет Окна инструментов(Toolbox), открыть его
(команды меню View, Toolbox или кнопка на панели инструментов).
Для того чтобы представить, как форма будет располагаться на экране, удобно использовать
Окно расположения формы. Если его нет, можно открыть его (команды меню View,Form
Layout Window или кнопка на панели инструментов).
Если необходимо, добавить Окно Project (команды
меню View, Project Explorer, клавиши {Ctrl+R} или
кнопка на панели инструментов).
Основное окно Строка меню Панель инструментов
Окно
Инструментов
ToolBox
Окно Свойств
Properties
Окно Проекта
Project
7
Каждая форма – это отдельный файл приложения. Кроме того, существует, по крайней мере, один
файл, содержащий код программы. Все файлы образуют проект. В Окне Project показаны все файлы
проекта, доступ к которым осуществляется с помощью кнопок View Code и View Object панели
инструментов Окна Project .
В среде Windows каждая программа выполняется в собственном окне. Visual Basic создает окно
программы автоматически – это окно Формы (Form). Окно Формы – первый и самый главный объект
программы.
В окне Свойств (Properties) можно описать, каким будет окно программы. Таких задаваемых
свойств у Формы, как вы видите, очень много. Некоторые из них понятны без объяснений, для других всегда
можно посмотреть пояснение в нижней части этого окна.
2. Потренируйтесь в задании свойств Формы:
• В свойстве Capt ion удалить значение Form1 и набрать фразу «Это моя первая программа». Уже в
процессе набора заголовок окна Формы будет меняться на вашу фразу. Значит, свойство Caption задает заголовок
окна Формы.
• Изменить цвет фона окна – свойство BackColor. Значением этого свойства является число (это число
записано в шестнадцатеричной системе счисления). Это число кодирует некий цвет. Но знать, каким числом
какой цвет кодируется вам не надо. Щелкнув по свойству BackColor, вы увидите кнопку списка. Щелкните по
ней, и появится палитра цветов, из которых просто выберите понравившийся вам цвет.
3. Запустить программу на выполнение. В Основном окне в Панели инструментов щелкнуть
по кнопке Start.
Все окна кроме основного исчезнут, а окно Формы примет рабочий вид. С ним можно обращаться, как с
обычным окном Windows: свернуть, развернуть, восстановить в размерах, закрыть. Но и только. Ведь никаких
действий мы не предписывали выполнять.
А что можно предписать выполнить? Например, можно предписать (запрограммировать) такую реакцию:
при щелчке мышью в окне поменять цвет фона и заголовок окна.
4. Прервать выполнение программы: щелкнуть по кнопке End Панели инструментов.
5. Дважды щелкнуть по окну Формы. Появится окно кода:
Start End
Приостановить
Список
объектов
Список
событий
Начало
процедуры
(Служебные
слова)
Конец
процедуры
Имя процедуры
Место для команд
(Тело процедуры)
8
Нам надо «приказать» Visual Basic, чтобы при щелчке мышью на окне Формы изменился
заголовок и цвет фона.
Объект Form уже выбран в списке объектов.
6. В списке событий выбрать Click.
7. Набрать текст программы, чтобы получить вид окна кода, как показано на рисунке:
8. Запустить программу на выполнение, щелкнув по клавише Start.
9. Щелкнуть на окне: фон окна должен стать черным.
10. Завершить выполнение программы.
11. Самостоятельно, аналогично сделанной только что работе, создать процедуру, которая при
двойном щелчке (DblClick) на окне Формы заменит заголовок на «Белый фон» и сделает цвет фона
окна белым (&H80000005).
12. Запустить программу на исполнение: Start . Одинарным и двойным щелчком проверить ее работу.
13. До сих пор прерывание программы мы производили нажатием кнопки End на Панели
инструментов основного окна Visual Basic. А в настоящих программах ставят специальную кнопку для
прекращения работы. Сделаем и мы таковую.
14. В окне Инструментов (ToolBox) нажать кнопку CommandButton. Мышью нарисовать в
окне Формы прямоугольник. Он превратиться в кнопку Command1.
15. Самостоятельно сделать так, чтобы на кнопке было написано Выход.
16. При нажатии на эту кнопку программа должна прерваться. Значит, надо для объекта
командная кнопка Command1 при событии Click выполнить команду End.
17. Для создания соответствующей процедуры дважды щелкнуть на кнопке. Откроется окно кода с
заготовкой процедуры, которую надо сделать такой, как на рисунке:
На рисунке справа от оператора End вы видите так называемый комментарий: все, что находится
правее апострофа, Visual Basic не воспринимает как программу и не выполняет.
18. Запустить программу на выполнение и проверить ее работу.
19. Сохранить проект на своем рабочем диске. Щелкнуть по кнопке Сохранить. В диалоговом окне
Save File As выбрать свой диск, дать имя файлу FПерваяПрограмма и щелкнуть по кнопке
Сохранить. Форма будет сохранена с расширением . f rm .
20. В диалоговом окно Save Project As задать имя файла РПерваяПрограмма и произойдет
сохранение проекта с расширением .vbp .
Итак, мы написали три процедуры. Одна выполняется в том случае, когда на форме происходит
событие Click, вторая – когда на форме происходит событие DblClick, третья – при событии
Click на объекте командная кнопка. Эти процедуры являются подпрограммами в главной
программе Project1. То есть процедуры – это программы, выполняемые «внутри» другой программы. В
дальнейшем мы увидим, что любая процедура сама может содержать в себе подпрограммы (другие
процедуры).
Написанные нами процедуры называются событийными. Они выполняются в том случае, когда с
некоторым объектом происходит некоторое событие.
Объектов, которые можно разместить на Форме, достаточно много. Мы познакомимся с
большинством из них в процессе выполнения следующих практических работ.
Visual Basic позволяет выводить информацию непосредственно на Форму. Рассмотрим, как это делается.
21. Щелкнуть дважды на Форме для вызова окна кода. В списке событий выбрать Act ivate
(активация). Набрать следующую программу (вместо слова Print можно набирать знак вопроса “?”,
Visual Basic сам заменит его на метод Print):
9
22. Запустить программу на выполнение. Разобраться, как работает метод Print, почему числа и слова
расположены так, а не иначе.
Метод Print предписывает выводить (визуализировать) информацию.
Почему в данном случае вывод информации происходит на Форму, а не на другой объект? Да потому,
что в данном случае Форма – единственный объект, для которого может выполниться данный метод.
Visual Basic выводит информацию именно на Форму «по умолчанию».
Подведем итоги:
1. Программа Visual Basic выполняется в окне Формы.
2. Сама форма, кнопки, метки, текстовые поля, картинки и т.п. называются объектами.
Объектом мы будем называть элемент пользовательского интерфейса, который создается на форме
Visual Basic с помощью элементов управления. Вы можете перемещать объекты, изменять их размеры и
настраивать их, используя установки свойств. Объектам присуща функциональность – они действуют
определенным образом и могут откликнуться на определенные ситуации.
3. Объекты создаются с помощью элементов управления.
Элемент управления – это инструмент, который используется для создания объектов на форме.
Элементы управления вы выбираете в Окне инструментов, а затем с помощью мыши вычерчиваете объекты
на форме.
4. Объекты имеют свойства (Properties).
Свойство – это величина или характеристика, присущая объекту Visual Basic, например заголовок или цвет
формы
5. Свойства объектов можно задавать в окне свойств (Properties).
6. Свойства объектов можно менять в процессе выполнения программы (процедуры).
В программном коде существует определенный формат для установки свойства.
Объект.Свойство = Значение
Здесь Объект — это имя настраиваемого объекта, Свойство — это характеристика, которую вы
собираетесь изменить, Значение — это новая установка свойства.
Например, строка
Form1. Caption = "Черный цвет"
используется в программе для установки свойства Caption объекта Form1 в «Черный цвет».
7. Процедура события (событийная процедура) — это часть кода, которая выполняется
при манипуляции объектом в программе.
Например, после щелчка на первой командной кнопке в программе выполняется процедура события
Command1_Click.
Имя событийной процедуры состоит из трех частей (включая подчеркивание):
<Имя объекта>_<Имя события>
Например: Form1_Сlick – событие состоит в том, что по форме щелкают мышью.
8. Наиболее часто встречается в процедурах оператор (команда) «записать в ячейку
памяти значение переменной». Знак "=" читается "присвоить" и означает, что в ячейку памяти
записывается значение, равное выражению справа от знака "=";
Например: Form1.BackColor = &H80000008
Эта запись означает, что в памяти компьютера есть ячейка с именем Form1.BackColor, и в эту ячейку
записывается число &H80000008 (это шестнадцатеричная запись числа).
Если значением свойства является текст, то он заключается в кавычки.
Например: Form1.Caption="Черный фон"
10
9. Программное утверждение – это ключевое слово в коде, благодаря которому осуществляется
работа программы.
10. Переменная – это специальное хранилище для временного хранения данных в программе.
Программист создает переменные для хранения результатов вычислений, создания имен файлов, обработки
ввода и т.д. Имена, числа и значения свойств могут храниться в переменных. Для вводимых в программу ваших
собственных переменных надо описывать их тип. С типами переменных вы познакомитесь в Практической
работе № 2.
11. Методы – это специальные утверждения, которые выполняют действие или обслуживание для
отдельного объекта в программе. В программном коде формат использования метода выглядит так:
Объект.Метод=Значение
Объект – это имя объекта, который вы хотите изменить; метод – команда, которую вы хотите
использовать для изменения объекта; значение – это необязательный аргумент, используемый методом.
Например, утверждение Printer.Print 5 заставит напечатать принтер число 5, то есть число 5 будет
напечатано на бумаге.
Например: Picture1.Cls – очистить поле картинки Picture1.
11
3. Практическая работа № 1 (часть 2):
«Этапы разработки Windows-приложений
в среде программирования Visual Basic
(на примере создания простейшего приложения)»
Процесс создания Windows-приложения состоит из ряда этапов (см. Введение).
Все этапы проектирования Windows-приложения в среде Visual Basic продемонстрируем на простом
примере.
1. Постановка задачи
Вы хотите произвести ремонт вашей комнаты и хотите использовать компьютер для определения нужного
количества необходимых для ремонта материалов (например, обоев для оклейки стен). Вы хотите выступить в
роли программиста и создать Windows-приложение для разрешения одной из проблем — вычисления площади
всех стен вашей комнаты, имеющей форму прямоугольного параллелепипеда. (Зная площадь стен, вы сможете
купить нужное количество рулонов обоев.)
2. Создать экранную форму (разработать интерфейс)
а) Мысленно представить, как будет выглядеть экранная форма, исходя из постановки задачи.
Используя Окно инструментов, расположить на экранной форме объекты управления, как показано на
рисунке:
Пиктограммы соответствующих объектов
управления в Окне инструментов:
– метка
– текстовое поле
– изображение
– командная кнопка
На экранной форме расположено шесть
объектов класса Метка (Label), четыре
объекта класса Текстовое поле (TextBox),
два объекта класса Командная кнопка
(CommandBatton) и один объект класса
Изображение(Image).
Заголовок
Формула
Чертеж
Надпись Надпись Надпись Надпись
П о л я д л я в в о д а д а н н ы х Поле для вывода результата
Кнопка ПУСК Кнопка ВЫХОД
12
б) Используя Окно свойств объекта, установить значения свойств объектов в соответствии со
следующей таблицей (расшифровка свойств объектов дана в Приложении 1):
Объект Имя объекта
по умолчанию
(значение
свойства Name)
Свойство Значение свойства
Форма Form1 Name frmПлощадьСтен
Caption Площадь стен комнаты
BackColor (Palette) Светло-зеленый
Метка Label1 Name lblЗаголовок
Caption Площадь стен комнаты вычисляется по
формуле:
Alignment 2 – Center
BackColor (Palette) Светло-серый
BorderStyle 1
Font Arial, жирный курсив, 12
ForeColor Темно-зеленый
Метка Label2 Name lblФормула
Caption S=2*(A+B)*H
Font Arial, жирный курсив, 24
Alignment 2 – Center
BackColor (Palette) Светло-серый
BorderStyle 1
ForeColor Темно-зеленый
Метка Label3 Caption Длина ( А )
Метка Label4 Caption Ширина (В )
Метка Label5 Caption Высота ( H )
Метка Label6 Caption Площадь стен ( S )
Alignment 2 – Center
BackStyle 0 – Transparent
Font Arial, жирный курсив, 12
Выделить метки Label3 – Label6
(клавиша {Shift}+Мышь) и
установить одинаковые для всех
меток свойства: ForeColor Черный
Текстовое поле Text1 Name txtДлина
Text Пусто
Текстовое поле Text2 Name txtШирина
Text Пусто
Текстовое поле Text3 Name txtВысота
Text Пусто
Текстовое поле Text4 Name txtРезультат
Text Пусто
Выделить текстовые поля Text1 – Alignment 2 – Center
Text4 (клавиша {Shift}+Мышь) и
установить одинаковые свойства:
Font Arial, обычный, 12
Командная Command1 Name cmdПуск
кнопка Caption П У С К
Командная Command2 Name cmdВыход
кнопка Caption В Ы Х О Д
Picture Выбрать нужный рисунок на диске по
указанию преподавателя
(R:\Dokument\room.bmp)
Окно
изображения
Stretch True (картинка подгоняется под размер
элемента управления)
Image1
BorderStyle 1 – Fixed Single
Примечание: компетентного и аккуратного программиста отличает способность дать точное имя (свойство
Name) объекту управления и форме, так чтобы в программе была возможность распознать и тип объекта
управления, и его назначение.
Приняты следующие соглашения об именах объектов управления:
ctlName
где ctl – префикс, определяющий тип элемента управления,
Name – информативное с точки зрения функционального назначения имя элемента управления.
13
Принято использовать следующие префиксы:
форма – frm рисунок – pic
метка – lbl командная кнопка – cmd
текстовое поле – txt и др. (см. Приложения)
изображение – img
3. Написать программные коды
Прежде чем приступить к программированию, необходимо определить те события, для которых
необходимо разработать алгоритмы и описать их на языке программирования (составить программный код). В
нашем примере есть два события: щелчок мышью по командной кнопке ПУСК и щелчок мышью
по командной кнопке ВЫХОД. Первое событие должно запустить программу вычисления площади стен
комнаты, а второе – завершить работу программы.
Алгоритм вычисления площади стен комнаты очень прост:
1) Ввести три числа: A, B, H – длину, ширину и высоту.
2) Вычислить площадь стен комнаты по формуле: S=2*(A+B)*H
3) Вывести результат: число S – площадь стен.
а) Дважды щелкнуть по командной кнопке ВЫХОД и вы окажетесь в Окне программного кода.
Обратите внимание! Во второй строке Окна программного кода имеются два окна списков. В левом
указан объект управления, с которым связан программный код (процедура), в нашем случае это командная
кнопка ВЫХОД (значение свойства Name этой кнопки – cmdВыход мы видим в окне) . В правом окне
указано событие, которое должно быть произведено, чтобы выполнялась данная процедура, в нашем случае это
щелчок мышью по кнопке ВЫХОД (Click).
б) Процедура обработки события щелчок мышью по командной кнопке ВЫХОД должна иметь
следующий вид:
Private Sub cmdВыход_Click() ‘Формат имени процедуры: Объект_Событие()
End ‘Оператор завершения программы
End Sub
в) Выбрать в списке левого окна другой объект управления – cmdПуск, а в списке правого окна оставьте
событие Click.
г) Процедура обработки события щелчок мышью по командной кнопке ПУСК должна иметь следующий
вид:
Private Sub cmdПуск_Click()
A = Val(txtДлина.Text) ‘Присваивание переменной А, значения, введенного в текстовое поле
txtДлина
B = Val(txtШирина.Text) ‘Присваивание переменной В, значения, введенного в текстовое поле
txtШирина
H = Val(txtВысота.Text) ‘Присваивание переменной H, значения, введенного в текстовое поле
txtВысота
S = 2 * (A + B) * H ‘Вычисление значения площади и присвоение вычисленного
значения переменной S
txtРезультат.Text = Str(S) ‘Вывод результата в текстовое поле txtРезультат
End Sub
Формат оператора присваивания: Имя переменной = Выражение
Объект.Свойство = Значение свойства
Функция Val преобразует текстовый аргумент в числовое значение (по умолчанию данные, введенные в
текстовое поле, представляются текстовой строкой).
Функция Str выполняет обратное преобразование.
4. Отладить программу
а) Запустить программу на выполнение (команда меню Run, Start или кнопка на панели
инструментов или клавиша {F5}) .
Если появятся сообщения об ошибках, попытайтесь устранить их с помощью преподавателя. Visual Basic
предоставляет различные средства отладки, с которыми вы познакомитесь на следующих занятиях.
14
Окно работающего приложения после ввода
исходных данных и щелчка по кнопке ПУСК
должно иметь следующий вид:
В окне для вывода результата получено
значение площади стен.
б) Проверить работу кнопки ВЫХОД. Щелчок по ней должен привести к завершению программы.
Аналогичный результат будет получен при нажатии на панели инструментов на кнопку
или на системную кнопку закрытия окна в правом верхнем углу окна приложения.
в) Изменить процедуру обработки события щелчок мышью по командной кнопке ПУСК
следующим образом (добавить три строки в начало процедуры):
Private Sub cmdПуск_Click()
lblЗаголовок.ForeColor = QBColor(1) ‘изменение цвета символов заголовка
lblФормула.ForeColor = QBColor(1) ‘изменение цвета символов формулы
frmПлощадьСтен.BackColor = QBColor(11) ‘изменение цвета формы
A = Val(txtДлина.Text)
B = Val(txtШирина.Text)
H = Val(txtВысота.Text)
S = 2 * (A + B) * H
txtРезультат.Text = Str(S)
End Sub
Обратить внимание, что свойства объектов изменены не с помощью окна свойств Properties, а
программным путем.
QBColor – функция, которая позволяет изменять цвета в зависимости от аргумента (см. Приложения).
г) Проанализировать, какие свойства и как изменились по сравнению с первым вариантом программы.
5. Сохранить проект на своем рабочем диске
а) Щелкнуть по кнопке Сохранить. В диалоговом окне Save Fi le As выбрать свой диск, дать имя
файлу FПлощадьСтен и щелкнуть по кнопке Сохранить. Форма будет сохранена с расширением .f rm .
б) В диалоговом окне Save Project As задать имя файла РПлощадьСтен и произойдет сохранение
проекта с расширением .vbp .
6. Создать исполняемое приложение (exe-файл)
Для того чтобы Windows-приложение могло работать независимо от среды проектирования (автономно),
нужно произвести трансляцию проекта в исполняемый exe-файл.
а) Выполнить команды меню File, Make ИмяФайла.exe (ИмяФайла – это имя Вашего проекта, т.е.
PПлощадьСтен.exe). По умолчанию файл создается в той же папке, где сохранен проект.
б) Закрыть среду разработки программ Visual Basic.
в) Запустить на выполнение файл PПлощадьСтен.exe и убедиться, что он работает автономно, как
любые другие Windows-приложения.
Задание для самостоятельного выполнения
1. Дополнить проект таким образом, чтобы он позволял вводить длину и ширину рулона обоев и
вычислял необходимое количество рулонов для ремонта комнаты.
2. Дополнить проект таким образом, чтобы он позволял вводить цену одного рулона и вычислял
стоимость всех рулонов, необходимых для ремонта.
15
4. Практическая работа № 2:
«Использование объектов файловой системы»
Visual Basic предлагает три очень полезных объекта для предоставления доступа к файловой системе.
Это список дисков (DriveListBox), которые позволят вам пролистывать
доступные диски в системе; список директорий (DirListBox), которые позволят
ориентироваться в папках на выбранном диске, и список файлов (FileListBox),
позволяющие вам выбрать нужный файл в папке.
Постановка задачи
Разработать программу Browser, которую вы сможете использовать в своей повседневной работе для
просмотра картинок на любых гибких и жестких дисках, сетевых дисках или CD-ROM (Объекты файловой
системы поддерживают все типы дисководов).
Для просмотра графических файлов использовать объект Image. Данный объект может работать с
шестью графическими форматами: битовыми (.bmp-файлы), метафайлами Windows (.wmf -файлы, являющиеся
файлами электронных картинок, размеры которых вы можете менять), пиктограммами ( .ico-файлы), курсорами
(.cur -файлы), форматом JPEG ( .jpg-файлы) и форматом GIF (.gif-файлы).
После запуска приложение должно иметь примерно следующий вид:
Порядок действий:
1. Расположить элементы управления на экранной форме в соответствии с рисунком.
2. Значения свойств элементов управления, которые определяют внешний вид приложения установить
по своему усмотрению.
3. Значения свойств Caption установить в соответствии с рисунком.
4. Установить значения свойств объектов в соответствии со следующей таблицей:
Объект Свойство Значение свойства
Списки дисковых накопителей Name Drive1 (по умолчанию)
Списки директорий Name Dir1(по умолчанию)
Списки файлов Name File1(по умолчанию)
Pattern *.bmp; *.wmf; *.ico
Name img1
BorderStyle 1 – Fixed Single
Окно изображения
Stretch True
5. Сохранить проект в заранее созданной папке Browser.
6. Написать программный код проекта:
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive Это утверждение обновляет свойство Path (путь) в списке
директорий после того, как пользователь выберет диск в списке
дисководов. Утверждение сцепляет два объекта вместе, так что
список директорий перечисляет папки для нужного диска.
End Sub
16
Private Sub Dir1_Change()
File1.Path = Dir1.Path Это утверждение связывает список файлов
со списком директорий, так что файлы в
списке соответствуют выбранной папке.
End Sub
Private Sub File1_Click()
selectedFile = File1.Path & "\" & File1.FileName Эти две строки – сердце программы. Первая
строка использует оператор & для
комбинирования свойств Path объекта
File1 с символом \ и свойством Filename
и затем сохраняет результирующее имя
пути в переменной SelectedFile.
Переменная – это пространство для
временного хранения информации в
программе. В данном случае переменная
SelectedFile хранит полное имя файла,
выбранное пользователем (включая имена
диска и папки).
img1.Picture = LoadPicture(selectedFile) Вторая строка использует переменную
SelectedFile при загрузке файла в окно
рисунка (Image1) в форме с помощью
функции LoadPicture и свойства Picture.
End Sub
7. Запустить программу на выполнение. Просмотреть графические файлы, расположенные в папке
Dokument на диске R.
8. Создать исполняемое приложение (exe-файл).
9. Сохранить проект в заранее созданной папке Browser.
17
5. Практическая работа № 3 (часть1):
«Данные в Visual Basic. Типы данных»
Любая программа, которую вы составляете, нацелена на обработку каких-либо данных. Данные поступают
в программу в своем первоначальном виде (исходные данные) и в обработанном виде «выходят» из программы
(выходные данные).
Данные могут быть постоянными величинами (константами) и переменными
величинами.
Константы – это такие величины, которые в процессе выполнения программы не изменяют своих
значений.
Переменные величины в процессе выполнения программы свои значения изменяют.
В языке Visual Basic, как и в любом другом языке, постоянные и переменные величины должны быть
отнесены к какому-либо типу данных. Стандартные типы данных, поддерживаемые языком Visual Basic,
приведены в таблице.
Типы данных Visual Basic
Тип данных Объем занимаемой
памяти
Диапазон значений Суффикс Оператор
объявления типа
Целые типы
Integer (целое
число)
2 байта от -32768 до 32767 % DefInt
Long (длинное
целое число)
4 байта от –2147483648
до 2147483647
& DefLng
Byte (байт) 1 байт от 0 до 255 DefByte
Boolean
(логическая
величина)
2 байта Истина (True) и
Ложь (False)
DefBool
Плавающие типы
Single
(десятичное число
обычной
точности)
4 байта от 1.401298Е-45
до 3.402823Е+38
(по модулю)
! DefSng
Double
(десятичное число
двойной
точности)
8 байт от
4.94065645841247Е-324
до
1.79769313486232Е+308
# DefDbl
Строковые типы
String
(строка символов)
1 байт на каждый
символ
$ DefStr
Объектные типы
Object
(ссылка на объект)
4 байта DefObj
Variant-типы (по умолчанию)
Variant
(числовые типы)
16 байт DefVar
Variant
(строковые типы)
22 байта +длина
строки
DefVar
Прочие типы
Currency
(число в
денежном
формате)
8 байт до 15 знаков слева от
десятичной точки до 4
знаков справа от
десятичной точки
@ DefCur
Date
(дата)
8 байт DefDate
Понимание того, как связаны тип данных и занимаемая ими память важно для оптимизации кода. Везде,
где это возможно, нужно использовать тип данных, требующий меньший объем памяти, чтобы сэкономить
системные ресурсы.
Программа
Исходные данные Выходные данные
18
Переменные в Visual Basic
Переменные используются для хранения некоторых необходимых программе данных. Переменная имеет
имя и значение. Имя переменной уникально и неизменно, а значение может меняться в процессе выполнения
программы.
Имена переменным можно давать как простые, так и сложные. И, хотя имена переменным выбираются
произвольно, существуют следующие ограничения:
• имя переменной должно начинаться с буквы, а не с цифры или другого символа;
• остальные символы – буквы и цифры (прописные и строчные буквы различаются)
• имя не должно содержать точки, пробела, можно использовать знак _;
• длина имени не должна превышать 255 символов;
• имя должно быть уникальным в пределах данной процедуры или модуля;
• имя не должно быть ключевым словом Visual Basic.
Например, нельзя использовать вот такие имена для переменных:
1Week – нельзя начинать имя переменной с цифры;
Jan.To.Dat – нельзя использовать точки;
End – нельзя использовать ключевое слово Visual Basic;
Номер Один – между символами нельзя оставлять пробелы.
Следующие имена можно использовать для переменных:
Номер_Один
INumOne
Number1
Лучше выбирать имена переменных так, чтобы они несли в себе информацию о назначении переменной,
но не нужно делать их слишком длинными, т.к. в программе Вам придется на них ссылаться.
Переменные получают свои значения в период выполнения программы и сохраняют их, пока им не будет
присвоено новое значение.
В переменных можно хранить практически любые данные. Переменная может содержать число, строку
текста, экземпляр объекта, элементы управления, элемент базы данных. В переменной можно хранить
информацию любого типа, но разные типы переменных предназначены для эффективной работы с различными
типами информации. Чтобы программа смогла воспользоваться переменной, ее необходимо объявить.
Способов объявления переменной Visual Basic предлагает несколько:
а) С помощью оператора определения переменной.
Синтаксис объявления переменной следующий:
Public / Private / Dim ИмяПеременной [As ТипПеременной]
Начинается объявление с одного из зарезервированных ключевых слов: Public, Private или Dim,
которое сообщает Visual Basic, что вы хотите объявить переменную.
Выбор конкретного зарезервированного слова зависит от того, какой вы себе представляете область
видимости вашей переменной. Более подробно об этом будет рассказано чуть позже.
При объявлении переменной внутри процедуры, используется только слово Dim.
As – ключевое слово, которое говорит Visual Basic, что вы определяете тип данных для этой переменной.
В одной строке можно объявить несколько переменных, при этом, правда, следует обращать внимание на
указание имени типа:
Dim NumText As Integer, b As Integer , c As Long
Private numberOne As Integer, f , d
Dim My_Book As Str ing
Dim НомерТелефона As String*12
В первой строке объявлены две переменные типа Integer и одна переменная типа Long. Во второй
строке – три переменные, причем одна из них получит тип Integer, а две другие по умолчанию Variant. В
третьей строке объявлена символьная переменная произвольной длины, а в четвертой строке – фиксированной
длины (12 символов).
б) В Visual Basic можно объявить тип переменной с помощью суффикса.
Факториал& – переменная типа Длинное целое число;
MyName$ – переменная типа Строка символов;
А% – переменная типа Целое число;
X238! – переменная типа Десятичное число обычной точности;
Пи# – переменная типа Десятичное число двойной точности.
Переменная может встречаться в программе несколько раз. Нужно ли всегда писать суффикс в конце ее
имени? Не обязательно. Этот суффикс можно написать только один раз – когда переменная впервые появилась в
тексте программы.
19
в) В Visual Basic можно объявить тип переменной с помощью оператора объявления типа.
Синтаксис объявления переменной следующий:
ОператорОбъявленияТипа СтрокаИнтерваловИмен
DefInt A-F, I-J, P-S – эта запись говорит о том, что все переменные, которые начинаются с букв
от А до F, от I до J и от P до S имеют тип Integer. Если переменные
начинаются с букв вне этих пределов, то у них по умолчанию тип Var iant.
В Visual Basic можно, не объявляя переменную, просто использовать ее имя, как вы и делали в
Практической работе № 1. Если вы не определяете тип данных, то присваивается тип Variant. Необходимо
учитывать, что переменные типа Variant занимают больше места в памяти и обращение к ним происходит
несколько медленнее.
Константы Visual Basic
Синтаксис объявления константы следующий:
Const ИмяКонстанты [As Тип] = ЗначениеКонстанты
Примеры:
Const NumSentense As Str ing = “В лесу растут грибы”
Const N = 820000005 – в этом примере тип константы Var iant.
ИмяКонстанты и ЗначениеКонстанты задаются так же, как имя и значение переменной.
Кроме объявляемых констант, в программе на языке Visual Basic могут использоваться системные,
встроенные константы, например, значение цвета VbRed, VbWhite и т.д. Имена этих констант – ключевые
слова Visual Basic.
Часто бывает разумным вместо неоднократно повторяющихся строк или чисел использовать имя
константы.
Оператор присваивания переменной значения
Для присвоения переменной некоторого значения используется оператор присваивания.
Синтаксис оператора следующий:
[Let] ИмяПеременной=ЗначениеПеременной
В последнее время ключевое слово Let не используют.
Значение переменной – это конкретное значение, которое находится в диапазоне возможных значений для
данного типа переменных, либо выражение, которое должно быть вычислено.
При выполнении оператора присваивания переменная, имя которой указано слева от знака равенства,
получает значение, равное значению выражения справа от знака равенства.
Примеры:
MyName$ = “Всеволод”
I = I + 1
S = 3.14 * R ^ 2
С различными способами объявления переменных вы познакомитесь в данной практической работе:
1. Создать приложение. Расположить на экранной форме приложения единственный объект –
командную кнопку ПУСК.
2. Установить с помощью Окна Свойств значение свойства Name для формы frmПеременные, а
значение свойства Capt ion – Типы переменных и способы их объявления.
3. Установить с помощью Окна Свойств значение свойства Name для командной кнопки
cmdПуск, а значение свойства Capt ion – ПУСК.
4. Установить программным путем ряд значений свойств формы, для чего написать процедуру, которая
будет выполняться сразу при загрузке формы:
Private Sub Form_Load()
With frmПеременные
.BackColor = QBColor(15) ‘цвет формы
.Font = "Arial Cyr" ‘тип шрифта
.FontSize = 12 ‘размер шрифта
.FontItalic = True ‘начертание шрифта (курсив)
.FontBold = True ‘начертание шрифта (полужирный)
.ForeColor = QBColor(2) ‘цвет шрифта
End With
End Sub
20
Оператор With / End With позволяет более просто установить ряд свойств для одного объекта – в
данном случае для формы frmПеременные.
Синтаксис оператора следующий:
With ИмяОбъекта
.Свойство1 = ЗначениеСвойства1
.Свойство2 = ЗначениеСвойства2
. . .
.СвойствоN = ЗначениеСвойстваN
End With
5. Написать процедуру, которая будет выполняться при нажатии кнопки ПУСК:
DefInt X-Y ‘объявление переменных в диапазоне от X до Y типа Integer
Private Sub cmdПуск_Click()
X = 5 / 2: Y = 10 / 3: Z = X / Y ‘три оператора присваивания в одной строке (через двоеточие)
Print X, Y, Z ‘метод Print выводит результат на экранную форму
End Sub
В Visual Basic все объекты, в которые можно что-то записать, обладают методом Print. Например, чтобы
отобразить на форме f rmMyForm строку "Привет", можно составить следующий код:
frmMyForm.Print "Привет"
При использовании метода Print разрешается опускать имя объекта. Обычно таковым объектом является
активная форма.
6. Сохранить проект на своем рабочем диске в папке Р2 с именем ТипыПеременных.
7. Запустить приложение и нажать на кнопку ПУСК.
В приложении будет напечатана следующая строка:
Объясните, почему вы видите такой результат. Какой тип присвоен переменной Z? Почему?
8. Закомментировать строку программного кода, где объявляются переменные – поставить перед строкой
знак ' (апостроф). В этом случае она будет игнорироваться при выполнении.
Запустить приложение и нажать на кнопку ПУСК.
В приложении будет напечатана следующая строка:
Объясните, почему вы видите такой результат.
9. Снять комментарий со строки программного кода, где объявляются переменные.
С помощью суффикса @ присвоить переменной Z тип Currency, для чего
заменить строку X = 5 / 2: Y = 10 / 3: Z = X / Y
строкой X = 5 / 2: Y = 10 / 3: Z@ = X / Y
Запустить приложение и нажать на кнопку ПУСК.
В приложении будет напечатана следующая строка:
Объясните, почему вы видите такой результат.
10. Закомментировать строку программного кода 'DefInt X-Y.
Удалить суффикс @ у переменной Z
В самое начало программы вставить строку:
21
Dim Z As Integer, X As Integer, Y As Integer
Запустить приложение и нажать на кнопку ПУСК.
В приложении будет напечатана следующая строка:
Объясните, почему вы видите такой результат.
11. Заменить строку Dim Z As Integer, X As Integer, Y As Integer
строкой Dim Z As Integer, X As Integer, Y As Double
Запустить приложение и нажать на кнопку ПУСК.
В приложении будет напечатана следующая строка:
Объясните, почему вы видите такой результат.
12. Полностью заменить текст программного кода процедуры, которая выполняется при нажатии кнопки
ПУСК, на следующий:
DefInt A-F, K, M
Const G As Variant = 40000
Const H As Variant = 42000
Private Sub cmdПуск_Click()
K = H + G
K=K*2
F = H - G
F=F - 10000
M = ″OK!″
Print K, F, M
End Sub
Запустить приложение и нажать на кнопку ПУСК.
Появится следующее окно, сообщающее о
Переполнении:
13. Нажать кнопку Debug (Отладка). При этом вы попадете в Окно программного кода, где
цветом будет помечена строка K = H + G. Полученное значение переменной К выходит за диапазон типа
Integer.
14. Заменить строку программного кода DefInt A-F, K, M
на две строки DefInt A-F, M
DefLng K
Снова запустить приложение и нажать на кнопку ПУСК.
22
Появится следующее окно, сообщающее о
Несоответствии типа переменной:
15. Нажать кнопку Debug (Отладка). При этом вы попадете в Окно программного кода, где
цветом будет помечена строка M = ″OK! ″. Значение переменной M – строка символов, а в программе тип
переменной M объявлен как Integer.
16. Заменить строки программного кода DefInt A-F, M
DefLng K
на следующие строки DefInt A-F
DefLng K
DefStr M
Еще раз запустить приложение и нажать на кнопку ПУСК.
В приложении будет напечатана следующая строка:
17. Добавить в область объявления переменных и констант следующие строки:
Const Stroka1 As String = "Переменные и константы в программе"
Const Stroka2 As String = "Избегайте ошибок при объявлении типов переменных и констант."
18. Полностью заменить текст программного кода процедуры, которая выполняется при нажатии кнопки
ПУСК, на следующий:
Private Sub cmdПуск_Click()
K = H + G
K = K * 2
F = H - G
F = F - 10000
M = "OK!"
Print Stroka1
Print K, F, M
Print Stroka2
End Sub
19. Запустить приложение и нажать на кнопку ПУСК.
При необходимости увеличить размер формы так, чтобы окно приложения имело вид:
20. Сохранить форму на своем рабочем диске в папке Р2 под новым именем ТипDate – команда File ,
Save ТипыПеременных.frm as...
23
21. Полностью заменить текст области объявления переменных и констант, а также текст программного
кода процедуры, которая выполняется при нажатии кнопки ПУСК, на следующий:
DefDate D
DefInt N
Private Sub cmdПуск_Click()
Print "Сегодня", "Я родился", "Я прожил (дней)"
D1 = Date: D2 = "24/12/1949"
N = D1 - D2
Print D1, D2, N
End Sub
22. Установить с помощью Окна Свойств для формы frmПеременные значение свойства
Caption – Переменные типа Date.
Текст процедуры, которая выполняется при загрузке формы, не менять.
23. Сохранить проект на своем рабочем диске в папке Р2 под новым именем ТипDate – команда File,
Save project as.
24. Запустить приложение и нажать на кнопку ПУСК.
Вид окна приложения:
25. В программном коде присвоить переменной D2 значение даты своего дня рождения.
26. Запустить приложение и нажать на кнопку ПУСК.
27. Настроить Visual Basic таким образом, чтобы от вас требовалось явное определение переменных.
Неявное объявление переменных (с помощью оператора Def или только суффиксов) без
необходимости применять не следует, так как в последующем могут возникнуть непредвиденные ошибки. Для
того чтобы избежать неприятностей в случае ошибочной записи имени переменной, необходимо в раздел
глобальных объявлений General помещать оператор Option Explici t. В этом случае Visual Basic будет
расценивать любую неявно объявленную переменную как ошибочную.
В начало программного кода добавить строку Option Explicit
Снова запустить приложение и нажать на кнопку ПУСК.
Появится следующее Окно, сообщающее о том, что Переменная не определена:
28. Остановить выполнение программы.
29. Заменить строки программного кода DefDate D
DefInt N
на строки Dim D1 As Date, D2 As Date
Dim N As Integer
(или для переменной N можно задать тип с помощью суффикса – Dim N%)
30. Еще раз запустить приложение и нажать на кнопку ПУСК.
24
31. Настроить Visual Basic таким образом, чтобы при создании новых проектов требовалось явное
определение переменных (то есть в разделе глобальных объявлений General оператор Opt ion Explic i t будет
создаваться автоматически): выполнить команду меню Tools, Opt ions, затем в диалоговом окне Opt ions
открыть вкладку Editor и поставить флажок Require Var iable Declaration (Требовать объявление
переменной) и щелкнуть по кнопке OK.
Если после этого вы забудете объявить какую-нибудь переменную, вы получите сообщение
Var iable not defined. (переменная не определена).
25
6. Практическая работа № 3 (часть 2):
«Проект из двух форм и модуля кода. Область видимости переменной»
Напомним, что синтаксис оператора определения переменной следующий:
Public / Private / Dim ИмяПеременной [As ТипПеременной]
Этот оператор сообщает Visual Basic, что будет храниться в переменной и где эту переменную можно
использовать. Область, где используется переменная, называется областью видимости переменной.
Если переменная доступна, то она существует, но не наоборот. Переменная может существовать в памяти и быть
доступной для некоторых частей программного кода и при этом быть недоступной («невидимой») для других.
Вы можете объявить переменную для работы в пределах одной процедуры, или для работы в любой
процедуре данной формы, или для работы во всей программе.
Когда вы объявляете переменную, область ее видимости задается одним из ключевых слов: Dim,
Private, Public . Однако область видимости переменной зависит и от того, где она объявлена.
Dim. Таким образом объявляют локальные переменные, которые существуют только во время вызова той
процедуры, где они объявлены. Но если переменная с помощью Dim объявлена в разделе глобальных
объявлений формы или модуля, то она будет доступна во всех процедурах этой формы или модуля, но для других
форм и модулей такая переменная будет «невидимой».
Private. Отличается от Dim тем, что не может объявлять переменные внутри процедуры или функции.
При объявлении же в разделе глобальных объявлений формы или модуля Dim и Private равнозначны.
Public. Если переменная объявлена с использованием этого ключевого слова, то она является
глобальной и доступна из всех форм и модулей проекта. Если переменная объявлена как Public в коде формы,
то из других форм и модулей доступ к ней должен осуществляться через следующую конструкцию:
ИмяФормы.ИмяПеременной
Если переменная объявлена как Public в разделе объявлений программного модуля, то доступ к ней
возможен просто через ее имя.
Модули кода
Форма и весь связанный с ней код хранятся в отдельном файле с расширением f rm. По мере того как вы
углубляете свои познания в языке Visual Basic, вы начинаете чувствовать потребность в усложнении структуры
проектов, создаваемых вами. В определенный момент вы приходите к мысли, что вам необходимо сделать не
одну форму в проекте, а две или больше. Тогда ваш проект будет содержать, соответственно, два или больше
файлов с расширением f rm.
Кроме того, вы можете разрабатывать программы, содержащие только код. Он размещается в файлах
модулей кода с расширением bas. Модули кода создаются в тот момент, когда вы выбираете в меню Project
команду Add Module или нажимаете одноименную кнопку на панели инструментов.
На отдельные модули кода программу разбивают, главным образом, чтобы упорядочить ее внутреннюю
структуру. Чаще всего так поступают при разработке большой и сложной программы: блоки кода, отвечающие за
работу ее отдельных компонентов, обычно помещают в отдельные модули. Глобальные объявления в любом
модуле кода распространяются на всю программу.
Сегодня вы создадите проект, который будет иметь две формы и один модуль кода.
Постановка задачи
В проекте должна считаться сумма денег в рублях на покупки, которые пользователь вашей программы
планирует совершить в какой-то день.
Проект будет состоять из двух форм. Первая форма – входная: в ней пользователь записывает название
товара, который он хочет приобрести, количество этого товара и стоимость единицы товара. Всего товаров
может быть пять. Если их меньше, то соответствующие строки формы просто не заполняются.
Во второй форме пользователь вашей программы должен видеть результат расчетов.
1. На своем рабочем диске создать папку Проект2_2 и скопировать в нее файл FInput .f rm из папки
Dokument диска R:
Открыть форму FInput.frm из папки Проект2_2 своего рабочего диска.
26
Она имеет вид:
Имя формы – f rmInput.
Текстовые окна для ввода количества товара имеют имена: txtSum1 для первого товара, txtSum2 для
второго товара, …, txtSum5 для пятого товара.
Текстовые окна для ввода цены единицы товара имеют имена: соответственно txtPr ice1,
txtPr ice2,…,txtPr ice5.
Командная кнопка внизу формы, в коде которой будут производиться основные расчеты имеет имя
cmdEnter.
2. Добавить вторую форму в проект: воспользоваться кнопкой на панели инструментов
или выбрать в меню Project пункт Add Form.
Назвать эту форму – f rmOutput.
Она должна иметь вид:
Метку назвать lblRez. В ее свойстве
Caption будет распечатываться
посчитанная сумма в рублях.
Метку назвать lblRezDol lar. В ее
свойстве Caption будет распечатываться
посчитанная сумма в долларах.
Командную кнопку для завершения работы проекта назвать cmdExi t.
3. Сохранить в папку Проект2_2 своего рабочего диска вторую форму под именем FOutput . f rm, а
проект под именем PОбластьвидимости.vbp .
4. Сформулируем сначала, что должно происходить у нас в файле первой и второй формы: пользователь
вводит названия товаров, их цену и количество с помощью первой формы, потом нажимает на командную
кнопку и происходит расчет – соответствующая цена умножается на соответствующее количество товара, и все
эти произведения суммируются, далее из памяти выгружается файл с первой формой, загружается файл второй
формы, при этом значение суммы передается во вторую форму. Во второй форме эта величина с
соответствующими комментариями распечатывается как свойство Caption метки lblRez.
В коде первой формы расчет сумм денег по каждому товару будем производить в процедуре
cmdEnter_Cl ick(), для подсчета общей суммы по всем товарам сделаем специальную процедуру Calc( ), а
выгрузку первой формы и загрузку второй сделаем в отдельной процедуре Passage().
В коде второй формы в процедуре Form_Load() будем присваивать свойству Capt ion метки lblRez
значение суммы денег по всем товарам, что и увидит пользователь сразу после загрузки второй формы.
Очевидно, для описанных выше целей потребуются переменные, причем разной области видимости.
27
5. Переменная Summa, в которой будет храниться общая сумма, должна быть глобальной, видимой из
обеих форм.
Объявить переменную Summa в кодах первой формы (там, где она начинает функционировать) в
глобальных объявлениях, сразу после Opt ion Explic it:
Public Summa As Single
6. Переменные, в которых будут храниться суммы по каждому товару, сделать общими для первой
формы. Во второй форме они нам уже не понадобятся. Сразу после объявления переменной Summa объявить
эти переменные:
Private S1 As Single , S2 As Single, S3 As Single
Private S4 As Single, S5 As Single
7. Переменные для хранения значений цен по каждому товару будут необходимы для расчетов только в
процедуре cmdEnter_Cl ick(), поэтому сразу после заголовка процедуры объявить эти переменные:
Dim C1 As Single,C2 As Single,C3 As Single
Dim C4 As Single,C5 As Single
8. Цены и количества товаров по каждому виду находятся у нас после их занесения пользователем в
первую форму в виде свойства text соответствующих текстовых окон. Первое, что необходимо для проведения
расчетов – это перевести их в числовой формат и присвоить значения соответствующим переменным, второе –
перемножить цену на количество по каждому товару. Ниже для первого товара показано, как произвести эти
операции в процедуре cmdEnter_Cl ick():
С1 = Val(txtPrice1.text)
S1 = Val(txtSum1.text)
S1 = S1*C1
«Оставить» значение суммы денег, необходимой на покупку первого товара, можно в переменной S1,
поскольку она будет видима из всех процедур первой формы.
9. Заполнить процедуру cmdEnter_Cl ick() недостающими строками кода для расчета сумм денег,
необходимых на покупку остальных товаров.
10. В конец процедуры cmdEnter_Cl ick() добавить оператор Cal l для вызова процедуры Calc()
кода первой формы, в которой будет вычисляться сумма денег, необходимая на покупку всех товаров:
Call Calc
11. Код процедуры Calc():
Private Sub Calc()
Summa = S1 + S2 + S3 + S4 + S5
End Sub
12. В конец процедуры Calc() добавить оператор Cal l для вызова процедуры: Passage:
Call Passage
13. Код процедуры Passage, в которой выгружается первая форма, загружается и выводится вторая:
Private Sub Passage()
Unload frmInput
Load frmOutput
frmOutput.Show
End Sub
14. Осталось присвоить свойству Caption метки lblRez из второй формы frmOutput значение
переменной Summa. Поскольку глобальная переменная Summa была объявлена в форме f rmInput, то
обратиться к ней можно, используя конструкцию f rmInput.Summa.
Тогда код загрузки второй формы следующий:
Private Sub Form_Load()
lblRez.Caption = frmInput.Summa
End Sub
15. Код для командной кнопки cmdExit из второй формы (для выхода из проекта) дописать
самостоятельно.
28
16. Запустить приложение и проверить его работу.
17. Создать отдельный модуль Module1 (имя по умолчанию), в котором посчитать, какова же будет
сумма денег на все покупки в долларах (причем в коде модуля будут «видны» глобальные переменные): команда
меню Project , Add Module.
18. Изменить имя модуля на mdlДоллар.
19. В модуле Module1 необходимо объявить глобальную переменную для суммы в долларах Sdollar и
создать процедуру с объявлением Public, в которой значение глобальной переменной Summa будет
переводиться в доллары путем деления ее значения на константу conConv (соотношение рубля и доллара). Для
упрощения в объявлении зададим константу равной 31.
Тогда Module1 должен содержать следующие строки кода:
Option Explicit
Public Sdollar As Single
Public Sub Dollar()
Const conConv As Single = 31
Sdollar = frmInput.Summa / conConv
End Sub
20. В процедуру Passage() формы f rmInput первой строкой вставить вызов процедуры Dol lar():
Call Dollar
21. В код процедуры Form_Load() второй формы frmOutput добавить строку, которая присвоит
свойству Capt ion метки lblRezDol lar значение переменной Sdollar:
lblRezDollar.Caption = Sdollar
22. Сохранить модуль под именем MСуммаДоллар.
23. Запустить приложение и проверить его работу.
29
7. Практическая работа № 4:
«Арифметические выражения и встроенные функции языка Visual Basic»
Выражения используются для операций над данными. В зависимости от данных и используемых операций
выражения можно разделить на арифметические, логические и символьные.
Арифметические выражения
Арифметическое выражение – это последовательность чисел, констант, переменных, функций,
которые соединены между собой знаками арифметических операций.
В следующей таблице приведены арифметические операции языка Visual Basic:
Операция Описание операции Пример
A^B Возведение А в степень В 10^2=100, 10^-2=0.01
- A Перемена знака А -(-5)=5
A * B Умножение А на В 3 * 2=6
A / B Деление А на В 3 / 2=1.5
A \ B Целочисленное деление А на В 3 \ 2=1
A Mod B Деление по модулю А на В (вычисление остатка) 7 Mod 4=3
A + B Сложение А с В 2.36 + 12.5
A - B Вычитание В из А 231 - 49
Приоритет выполнения операций (в порядке убывания): возведение в степень, умножение и деление,
целочисленное деление, вычисление остатка, сложение и вычитание. Вычисления в выражении производятся
слева направо. Скобки изменяют приоритет.
Примеры:
14 / 5*2 = 5.6 – операции одного приоритета выполняются слева направо;
14 \ 5*2 = 1 – умножение имеет более высокий приоритет и при целочисленном делении дробная
часть отбрасывается;
27^1/3 = 9 – возведение в степень обладает наивысшим приоритетом;
27^(1/3) = 3 – скобки изменяют последовательность операций.
Встроенные функции
В Visual Basic имеется широкий набор встроенных (стандартных) функций, облегчающий написание
программ. Различают математические функции, функции обработки строк, функции для работы с датами и
временем, финансовые.
Математические функции:
Abs(x) – возвращает модуль аргумента;
Atn(x) – возвращает арктангенс;
Sin(x) – возвращает синус;
Cos(x) – возвращает косинус;
Tan(x) – возвращает тангенс;
Ехр(x) – возвращает е^х;
Log(x) – возвращает натуральный логарифм;
Sqr(x) – возвращает квадратный корень;
Rnd() – возвращает случайное число в диапазоне от 0 до 1;
Int(x) – возвращает наибольшее целое число, не превосходящее аргумент;
Fix(x) – возвращает округленное число (отбрасывает дробную часть аргумента);
СInt(x) – возвращает аргумент, округленный до целого по правилам округления математики;
Sgn(x) – возвращает знак числа.
Примечание:
Значения аргументов в тригонометрических функциях задаются в радианах.
аргумент(в радианах)=аргумент(в градусах)*Пи/180
Число Пи может быть вычислено по формуле: Пи=Atn(1)*4
Примеры округлений чисел:
Int(7.32)=7
Int(-7.32)=-8
Fix(-7.32)=-7 CInt(5.5)=6
CInt(-7.5)=-7
Полные сведения о встроенных функциях и правилах их применения можно найти в справочной системе
Visual Basic.
30
Постановка задачи
Выполнить проект – калькулятор.
После того как будет сформирован
графический интерфейс пользователя, окно
приложения должно иметь следующий вид:
При запуске приложение должно работать как обычный калькулятор (выполнять арифметические действия
и вычислять значения функций), с той разницей, что исходные числа вводятся в два разных окна, а результат
выводится в третьем.
Порядок действий:
1. Расположить на экранной форме объекты управления в соответствии с рисунком.
2. Используя Окно свойств объекта, установить значения свойств объектов в соответствии со
следующей таблицей:
Объект Имя объекта по умолчанию
(значение свойства Name)
Свойство Значение свойства
Форма Form1 Name frmCalc
Метка Label1 Name lblX
Caption x
Метка Label2 Name lblY
Caption y
Метка Label3 Name lblRezult
Caption Результат
Текстовое поле Text1 Name txtX
Text Пусто
Текстовое поле Text2 Name txtY
Text Пусто
Текстовое поле Text3 Name txtRezult
Text Пусто
Командная кнопка Command1 Name cmdPlus
Командная кнопка Command2 Name cmdMinus
Командная кнопка Command3 Name cmdMult
Командная кнопка Command4 Name cmdDiv
Командная кнопка Command5 Name cmdRnd
3. Значения свойства Caption для командных кнопок установить в соответствии с рисунком.
4. Значения свойств объектов, определяющих внешний вид калькулятора установить по своему
усмотрению.
5. Составить программный код проекта.
Программный код будет состоять из пяти процедур, каждая из которых выполняется при щелчке мышью
по одной из командных кнопок.
а) В общей части кода, сразу после строки Opt ion Expl ici t объявить необходимые для работы
программы переменные:
Dim X As Single, Y As Single, Rezult As Single
X— переменная, в которой будет храниться значение, введенное пользователем в окошко txtX;
Y — переменная, в которой будет храниться значение, введенное пользователем в окошко txtY;
Rezult — переменная, в которой будет храниться результат вычислений.
31
б) Составить код для командной кнопки cmdPlus:
Private Sub cmdPlus_Click( )
X = Val(txtX.Text)
Y = Val(txtY.Text)
Rezult = X + Y
txtRezult.Text = Str(Rezult)
End Sub
6. Запустить проект и проверить правильность выполнения операции сложения.
7. Сохранить проект на своем диске в предварительно созданной папке Калькулятор.
8. Самостоятельно составить коды для командных кнопок cmdMinus (вычитание), cmdMult
(умножение), cmdDiv (деление).
9. Запустить проект и проверить правильность выполнения операций вычитания, умножения, деления.
10. Сохранить проект.
11. Составить код для командной кнопки cmdRnd.
Private Sub cmdRnd_Click()
Rezult = Rnd()
txtRezult.Text = Str(Rezult)
End Sub
12. Запустить проект и проверить, что при щелчке мышью по кнопке Rnd() в окне результата появится
случайное число в диапазоне от 0 до 1. Запомнить число.
13. Закрыть окно приложения. Запустить проект еще раз. Нажать кнопку Rnd(). Число в окне результата
будет прежним. Чтобы этого не происходило, необходимо добавить в начало процедуры cmdRnd_Click()
строку:
Randomize Timer
14. Запустить проект и проверить, что при щелчке мышью по кнопке Rnd() в окне результата появится
случайное число, отличное от предыдущего.
15. Изменить код таким образом, чтобы при щелчке мышью по кнопке Rnd() в окне результата
появлялось случайное число в диапазоне от 10 до 1000.
Общая формула: Rezul t = (B - A)*Rnd()+A
A – нижняя граница диапазона
B – верхняя граница диапазона
16. Изменить код таким образом, чтобы при щелчке мышью по кнопке Rnd() в окне результата
появлялось целое случайное число в диапазоне от 1 до 100 (целое число можно получить, используя
функцию Int).
17. Сохранить проект.
Финансовые функции Visual Basic
В языке Visual Basic есть больше десятка встроенных финансовых функций (см. Приложения).
Приведём описания лишь трёх из них.
1. Функция Pmt(rate, nper, pv) возвращает величину периодического взноса в банк, который
должен выплачивать клиент этого банка, чтобы в определённый срок вернуть банку взятые у него деньги
(кредит).
rate (1-й аргумент функции Pmt) – это банковская процентная ставка, относящаяся к периоду выплаты
(ставка – по-англ. rate). Например, если клиент выплачивает взнос ежемесячно, а банк берёт 12% годовых, то
значение rate равно 0.01 .
nper (2-й аргумент функции Pmt) – это общее число периодов выплат (от англ. number of periods).
Например, если кредит взят на 2 года, а выплаты ежемесячные, то значение nper равно 24.
pv (3-й аргумент функции Pmt) – это величина кредита (или приведённой стоимости – по-англ. present
value) – сумма в рублях или иных единицах, которую клиент взял в банке.
2. Функция Pv(rate, nper, pmt) имеет дело с теми же величинами, что и функция Pmt, но
возвращает величину приведённой стоимости (кредита) при заданной величине периодической выплаты pmt (от
англ. payment – выплата).
3. Функция Rate(nper, pmt, pv) имеет дело с теми же величинами, что и функция Pmt, но
возвращает величину банковской процентной ставки, относящейся к периоду выплаты.
32
Постановка задачи
С помощью представленных выше
финансовых функций создать следующее
приложение:
На экранной форме четыре текстовых поля
и три командные кнопки. Текстовые поля
предназначены для ввода или вывода следующих
величин:
1. Годового банковского прироста
стоимости (в процентах);
2. Числа периодических (например,
ежемесячных) выплат;
3. Суммы полученного у банка кредита
(приведённой стоимости);
4. Величины одной выплаты.
1-ю, 3-ю и 4-ю величины этого списка
можно находить с помощью представленных выше
финансовых функций, если остальные величины
этого списка известны.
Для этой цели и служат командные кнопки. Для каждой из них написана отдельная процедура-событие
(Приpocm_Click, Кредит_Сliсk и Выплата_Click). Щелчок каждой из этих кнопок после ввода трёх
чисел в три текстовые поля вызывает появление четвёртого числа в текстовом поле, оставшемся незаполненным.
Порядок действий:
1. На рабочем диске создать папку Кредит и скопировать в неё файл формы FКредит.frm из папки
Dokument диска R:
2. Открыть файл FКредит.frm и обратить внимание на свойства Name и Capt ion объектов формы.
3. Составить программный код проекта (прежде чем приступать к набору строк программного кода
следует убедиться, что вам все понятно):
Dim r As Single, n As Integer, v As Currency, p As Currency
Private Sub cmdВыплата_Click()
r = Val(txtПрирост.Text)
n = Val(txtЧислоПлатежей.Text)
v = Val(txtКредит.Text)
r = r / 1200: p = -pmt(r, n, v)
txtВыплата.Text = Str(p)
End Sub
Private Sub cmdКредит_Click()
r = Val(txtПрирост.Text)
n = Val(txtЧислоПлатежей.Text)
p = Val(txtВыплата.Text)
r = r / 1200: p = -p: v = pv(r, n, p)
txtКредит.Text = Str(v)
End Sub
Private Sub cmdПрирост_Click()
n = Val(txtЧислоПлатежей.Text)
p = Val(txtВыплата.Text)
v = Val(txtКредит.Text)
p = -p: r = 1200 * rate(n, p, v)
txtПрирост.Text = Str(r)
End Sub
4. Составить программный код для щелчка по кнопке cmdВыход.
5. Сохранить проект на своем диске в папке Кредит.
6. Запустить проект и проверить его работоспособность.
33
Задание для самостоятельного выполнения
Открыть проект Калькулятор и дополнить его функциональные возможности. Калькулятор должен
позволять вычислять следующие функции:
• X в степени Y
• Корень квадратный из Х
• Выдавать число Пи
• Производить очистку всех текстовых окон
Приложение после запуска может иметь следующий вид (допускается оформление по своему
усмотрению):
34
8. Практическая работа № 5:
«Ввод-вывод данных. Системные функции InputBox и MsgBox»
К системным функциям относятся функции, действие которых напрямую зависит от работы системы
Windows. Это:
• функция InputBox – для ввода данных пользователем через системное окно;
• функция MsgBox – для выдачи сообщений пользователю через системное окно.
Работа этих функций сопровождается появлением на экране одного из двух окон: Окна ввода
(InputBox) и Окна сообщений (MsgBox)
Окно InputBox
Вы уже знакомы с элементом управления, который позволяет пользователю вводить информацию. Это
текстовое поле. Другой способ ввода — использовать функцию InputBox.
Функция InputBox вызывает окно InputBox.
Окно InputBox состоит из четырех элементов:
1) строка заголовка ( t i t le);
2) приглашение к вводу (prompt);
3) поле ввода со значением, предлагаемым по
умолчанию (defaul t);
4) две кнопки (ОК и Cancel).
Функция вызова окна InputBox имеет следующий синтаксис с соответствующими аргументами:
P = InputBox (prompt [, t i t le] [,defaul t] [ ,Xpos] [,Ypos]) ,
где P – возвращаемое значение функции;
Xpos и Ypos – координаты левого верхнего угла окна.
Все необязательные параметры указаны в квадратных скобках.
При щелчке пользователем на кнопке OK функция InputBox возвращает строку, введенную
пользователем.
При щелчке пользователем на кнопке Cancel возвращается пустая строка.
Постановка задачи
Выполнить проект, в котором будет запрашиваться имя пользователя, а потом печататься маленькое
приветствие на форме с использованием возвращаемого значения функции InputBox.
Порядок действий:
1. Расположить на экранной форме одну командную кнопку.
2. Установить значения свойства Name для формы и кнопки
такие, которые используются ниже в программном коде.
3. Составить программный код проекта:
Dim YourName As String
Private sub cmdПриветствие_Click( )
YourName=InputBox("Введите свое имя", "Имя")
cmdПриветствие.Visible = False
Print: Print: Print
With frmПриветствие
.FontName = "Arial"
.FontSize = 14
End With
Print Tab(10); "Здравствуйте,"
Print Tab(10); YourName
Print
Print Tab(5); "Рады приветствовать вас"
Print Tab(5); "в нашем проекте!"
End Sub
35
4. Проверить работу проекта.
а) После щелчка мышью по кнопке
Щелкни здесь должно появиться окно следующего
вида:
б) После ввода имени и щелчка по кнопке ОК
должно появиться следующее окно:
5. Сохранить проект на своем диске в предварительно созданной папке Приветствие.
Окно MsgBox
Для вывода различных сообщений в Visual Basic имеется окно MsgBox. Почти все Windows-приложения
используют MsgBox, т.к. этот компонент входит в состав Windows. Visual Basic только предоставляет
возможность его вызова.
Вид окна может быть различным, но в его состав всегда входят:
текст сообщения (prompt);
заголовок (ti t le);
пиктограмма;
набор кнопок.
Синтаксис команды: MsgBox prompt [,type] [, t it le]
где type – целая константа (или несколько констант), определяющая, какие кнопки (комбинации кнопок)
и пиктограммы будут отображаться в окне сообщения.
Необязательные параметры приведены в квадратных скобках.
Параметр type определяет внешний вид MsgBox. Значение параметра формируется из нескольких
частей, которые можно складывать: button, icon, default , modal, extras.
Для категории параметра button, icon, default, modal можно использовать только одну из
допустимых констант. Для категории extras допускается применение комбинации значений.
Ниже приведена таблица констант параметра type окна MsgBox.
Константа Значение Описание
Категория Button
VbOkOnly 0 Только кнопка ОК
VbOkCancel 1 Кнопки ОК и Отмена
VbAbortRetryIgnore 2 Кнопки Стоп, Повторить, Пропустить
VbYesNoCancel 3 Кнопки Да, Нет и Отмена
VbYesNo 4 Кнопки Да и Нет
VbRetryCancel 5 Кнопки Повторить и Отмена
Категория Icon
VbCritical 16 Отображает пиктограмму Critical Message
VbQuestion 32 Отображает пиктограмму Warning Query
VbExclamation 48 Отображает пиктограмму Warning Message
VbInformation 64 Отображает пиктограмму Information Message
Категория Default
VbDefaultButton1 0 По умолчанию активна первая кнопка
VbDefaultButton2 256 По умолчанию активна вторая кнопка
VbDefaultButton3 512 По умолчанию активна третья кнопка
VbDefaultButton4 768 По умолчанию активна четвертая кнопка
36
Категория Modal
VbApplicationModal 0 Модальное диалоговое окно приложения
VbSystemModal 4096 Модальное диалоговое окно системы
Категория Extras
VbMsgBoxHelpButton 16384 Дополнительная кнопка для справки
VbMsgBoxSetForeground 65536 Отображение диалогового окна в фоновом режиме
VbMsgBoxRight 524288 Текст выровнен по правому краю
VbMsgBoxRtReading 1048576 Текст отображается справа налево (еврейский, арабский)
Постановка задачи
Изменить проект Приветствие таким образом, чтобы текст приветствия выводился в окне MsgBox.
Внимание! В данном проекте не предусматривается реакция программы на нажатие той или иной кнопки
окна MsgBox. Пока ставится цель только посмотреть, как меняется внешний вид окна.
Порядок действий:
1. Изменить программный код проекта Приветствие следующим образом:
Dim YourName As String, t As String
Private Sub cmdПриветствие_Click()
YourName = InputBox("Введите свое имя", "Имя")
cmdПриветствие.Visible = False
t = 0 + 64
MsgBox "Здравствуйте " +YourName+ "! Рады приветствовать вас в нашем
проекте!", t, "Привет!!!"
End Sub
2. Сохранить изменения и проверить работу проекта.
3. Изменить две последние строки программного кода следующим образом:
t = 2 + 16
MsgBox YourName + "! Произошла ошибка! ", t, "Ошибка!!!"
4. Сохранить изменения и проверить работу проекта.
5. Изменить две последние строки программного кода следующим образом:
t = 4 + 32
MsgBox "Здравствуйте" + YourName + "! Вы согласны пройти тестирование?", t,
"Тестирование!!!"
6. Сохранить изменения и проверить работу проекта.
7. Сохранить изменения в проекте.
37
Функция MsgBox( )
Если вам необходимо не только что-либо сообщить пользователю, но и получить информацию о том,
какое решение принял пользователь, можно воспользоваться функцией MsgBox. Функция MsgBox( ) не
только отображает окно сообщения, но еще и возвращает некоторое значение (ответ пользователя о том, какое он
принял решение).
Синтаксис функции MsgBox():
Возвращаемое_значение= MsgBox (prompt [,type] [,title])
Возвращаемое_значение позволяет определить, какую кнопку нажал пользователь. В таблице,
которая приведена ниже, содержатся значения, возвращаемые функцией MsgBox:
Константа Значение Нажата кнопка
VbOk 1 ОК
VbCancel 2 Отмена
VbAbort 3 Стоп (Прервать)
VbRetry 4 Повторить
VbIgnore 5 Пропустить
VbYes 6 Да
VbNo 7 Нет
Кнопка Default (активная по умолчанию) должна определяться таким образом, чтобы при случайном
нажатии клавиши <Enter> действия, реализуемые в процедуре обработки нажатия кнопки по умолчанию, не
могли нанести большого вреда. Например, не следует в окне с вопросом: «Удалить все внесенные
изменения? (Да/Нет)» назначать кнопку Да по умолчанию.
8. Изменить проект следующим образом:
строку
MsgBox "Здравствуйте " + YourName + "! Вы согласны пройти тестирование? ", t,
"Тестирование!!!"
следует заменить следующими строками:
K = MsgBox("Здравствуйте " + YourName + "! Вы согласны пройти тестирование?", t,
"Тестирование!!!")
If K = 6 Then
Print "Нажата кнопка 'Да' "
Else
Print "Нажата кнопка 'Нет' "
End If
Вместо вызова окна MsgBox здесь используется функция MsgBox. Возвращаемое значение
функции присваивается переменной K и затем анализируется с помощью условного оператора
If…Then…Else. Предварительно переменная K должна быть описана как символьная.
9. Сохранить изменения и проверить работу проекта.
38
9. Практическая работа № 6:
«Программирование ветвлений»
Алгоритмы, в которых последовательность выполнения некоторых предписаний зависит от проверяемых
исполнителем условий, называются нелинейными. Простейшим проявлением нелинейности в алгоритме
является ветвление, которое представляет собой выбор пути решения задачи в соответствии с выполнением
или невыполнением некоторого условия выбора.
Условия выбора в алгоритмических языках представляются в форме условных (логических)
выражений.
Простое условие – это два выражения, между которыми помещается знак операции отношения.
В роли выражений могут выступать числа, числовые переменные, имеющие значения, функции, а также любые
арифметические выражения.
Список операций отношения
Операция Тип данных
числовой символьный
< меньше предшествует
<= меньше или равно предшествует или совпадает
= равно совпадает
<> не равно отличается
>= больше или равно следует за или совпадает
> больше следует за
Простое условие может принимать одно из двух значений: True (Истина) или False (Ложь).
Сложное условие – это последовательность простых условий или других условных выражений,
заключенных в круглые скобки, соединенных знаками логических операций: And, Or, Not и др.
Список логических операций
Операнд1 Операнд2 Not
( отрицание )
And
( и )
Or
( или )
False - True
True - False
False False False False
True False False True
False True False True
True True True True
Условное (логическое) выражение – это либо простое, либо сложное условие.
Примеры условных выражений, построенных с помощью операций отношения:
‘BETA‘ < ‘ALPHA‘ выражение принимает значение False
7 + 3 > 4 выражение принимает значение True
Используя логические операции, можно описать, например, принадлежность точки с координатой X
указанному интервалу (7, 12). На языке математики это условие записывается в виде 7<X<12, а в языке
Visual Basic:
(X > 7) and (X < 12) или not ( (X <= 7) or (X >= 12) )
Установлен следующий приоритет (по убыванию) выполнения логических операций и операций
отношения: not, and, or, <, >, =, <>, >=, <=
Условный оператор If позволяет проверить некоторое условие. В зависимости от результата проверки
выполняется одно действие или другое. Условный оператор применяется в алгоритмах с ветвлением.
Синтаксис однострочной формы условного оператора таков:
If <УсловноеВыражение> Then Оператор1 [Else Оператор2]
Синтаксис многострочной формы:
If < УсловноеВыражение > Then
< ПоследовательностьОператоров1 >
[Else
< ПоследовательностьОператоров2 >]
End If
где < УсловноеВыражение > – любое логическое выражение.
39
Для анализа нескольких условий в структуру блочного оператора If…Then включаются строки
(строка):
ElseIf < УсловноеВыражение > Then
Тогда структура оператора может выглядеть следующим образом:
If <УсловноеВыражение1> Then
< ПоследовательностьОператоров1 >
[ElseIf < УсловноеВыражение2 >Then
< ПоследовательностьОператоров2 >
Else
< ПоследовательностьОператоров3 >]
End If
Структура Select Case применяется, когда одна величина участвует в нескольких сравнениях и
определяет, какая последовательность операторов будет выполняться. Алгоритм такого множественного
сравнения можно запрограммировать и с использованием оператора If…Then, но применение структуры
Select Case эффективнее.
Синтаксис структуры Select Case:
Select Case Выражение
Case <Значение1>
< ПоследовательностьОператоров1 >
Case <Значение2>
< ПоследовательностьОператоров2 >

Case <Значение(N - 1)>
< ПоследовательностьОператоров(N - 1) >
[Case Else
< ПоследовательностьОператоровN>]
End Select
где Select Case, Case, Case Else, End Select – ключевые слова Visual Basic;
Выражение – арифметическое или символьное выражение.
ПоследовательностьОператоров1 выполняется при совпадении Значения1 и значения
Выражения и т.д.
Пример:
Select Case Value
Case 1, 3
Последовательность операторов 1
Case 5 То 10
Последовательность операторов 2
Case 12 Is >= 15
Последовательность операторов 3
Case Else
Последовательность операторов 4
End Select
В данном примере проверяемым выражением является значение Value. Если значение Value равно 1 или 3
(Case 1, 3), выполняется Последовательность операторов 1. Если значение Value лежит в интервале от 5 до 10
(Case 5 То 10), выполняется Последовательность операторов 2. Если значение Value равно 12 или больше 15
(Case 12 Is >= 15), выполняется Последовательность операторов 3. Если значение Value не равно ни одному из
указанных значений и не принадлежит ни одному из указанных диапазонов, выполняется Последовательность
операторов 4.
Постановка задачи
Проект Калькулятор, созданный ранее, не предохранён от попыток выполнения арифметических действий
над текстом и от деления на ноль. Дополнить программный код проекта таким образом, чтобы устранить эти
недостатки. Кроме того, необходимо установить пароль на проект.
Порядок действий:
1. Открыть проект Калькулятор.
40
2. Запустить проект на выполнение.
Проверить, что при выполнении операции деления
на 0 выдается ошибка: Division by Zero (Деление на ноль).
3. Изменить процедуру деления таким образом,
чтобы при попытке деления на ноль выдавалось
следующее сообщение:
Private Sub cmdDiv_Click()
X = Val(txtX.Text)
Y = Val(txtY.Text)
If Y <> 0 Then Rezult = X / Y : txtRezult.Text = Str(Rezult) Else MsgBox "На ноль делить
нельзя!!!", 16, "Ошибка"
End Sub
4. Проверить правильность выполнения процедуры и сохранить изменения в проекте.
5. Изменить проект таким образом, чтобы
при попытке запустить калькулятор на экране
появлялось приглашение ввести пароль. При
попытке ввода неверного пароля программа
должна заканчивать свою работу.
Пароль установить по своему усмотрению.
Dim Parol As String
Private Sub Form_Load()
Parol = InputBox("Введите пароль", "Пароль")
If Parol <> "тра-ля-ля" Then MsgBox "Пароль неверный!!!", 16, "Ошибка" : End
End Sub
6. Проверить правильность выполнения процедуры и сохранить изменения в проекте.
7. Дополнить процедуру деления таким образом, чтобы при вводе текста
выдавалось сообщение «Вводите только числа!!!»
Private Sub cmdDiv_Click()
If IsNumeric(txtX) And IsNumeric(txtY) Then
X = Val(txtX.Text)
Y = Val(txtY.Text)
If Y <> 0 Then Rezult = X / Y: txtRezult.Text = Str(Rezult) Else MsgBox "На ноль
делить нельзя!!!", 16, "Ошибка"
Else
MsgBox "Вводите только числа!!!", 16, "Ошибка"
End If
End Sub
Функция IsNumeric возвращает значение True, если ее аргумент число и значение False, если ее
аргумент – строка символов.
Очевидно, что такое дополнение должно быть сделано и в других процедурах, но из-за недостатка времени
ограничимся изменением в процедуре деления.
8. Проверить правильность выполнения процедуры и сохранить изменения в проекте.
41
Кнопки-переключатели, контрольные индикаторы, рамки
Кнопки-переключатели (OptionButton) позволяют пользователю сделать выбор двумя
различными способами. Эти элементы управления обычно устанавливаются группами по две или более, и
все они взаимосвязаны, если нет рамок, в противном случае кнопки взаимосвязаны внутри рамок.
Свойство Al ignment может быть установлено в 0 или 1 в зависимости от того, справа или слева от кружка
должен находиться текст.
В каждый момент времени может быть выбрана только одна кнопка, внутри такой кнопки появляется
точка. Для выбранной кнопки свойство Value устанавливается в значение True, для всех других кнопок – в
значение False.
Кнопки-индикаторы (CheckBox) работают аналогично, но независимо друг от друга.
В результате пользователь может выбрать несколько контрольных индикаторов одновременно.
Выбранный контрольный индикатор имеет внутри знак «!».
Значение свойства Value может быть следующим: 0 (не выбрано), 1 (выбрано), 2 (недоступно). При
установке 2 контрольный индикатор и отметка обесцвечиваются.
Рамка (Frame) предназначена для объединения элементов управления в группы.
С функциональной точки зрения рамки необходимы в том случае, если на форме надо установить более
одного набора кнопок-переключателей. Внутри рамки набор кнопок-переключателей работает как
группа, независимо от других кнопок. Следует помнить, что сначала на форму добавляется рамка, а после этого
внутрь рамки добавляются кнопки-переключатели. Рамки также могут быть использованы для улучшения
внешнего вида окна. Свойство рамки Capt ion хранит текст, размещенный в левом верхнем углу рамки.
Постановка задачи
Создать приложение для вычисления заработной платы учителя.
Зарплата учителя вычисляется следующим образом:
а) по таблице в соответствии с разрядом учителя определяется тарифная ставка (зарплата за 18 часов в
неделю) – St;
Разряд 8 9 10 11 12 13 14 15
Ставка (в руб.) 1500 1667 1873 2057 2263 2492 2739 3020
б) на основе тарифной ставки рассчитывается Основная зарплата за ведение уроков:
Z=St*K/18, где K – количество часов (уроков) в неделю.
в) далее рассчитываются Надбавки:
• Проверка тетрадей –10% от зарплаты;
• Вредность (при работе в компьютерном классе) – 12% от зарплаты;
• Заведование кабинетом – 10% от ставки;
• Участие в эксперименте – 15% от ставки;
• Классное руководство – 20% от ставки;
• Звание «Отличник народного просвещения» – 30% от зарплаты;
• Звание «Заслуженный учитель России» – 50% от зарплаты;
• Ученая степень – 50% от зарплаты;
• За методическую литературу – 100 руб. ежемесячно.
г) Начисление = Основная зарплата за ведение уроков + Надбавки
д) Вычисляется налог в пенсионный фонд – 1% от Начисления
е) Вычисляется подоходный налог – 13% от Начисления
ж) Вычисляется Сумма к выдаче = Начисление - Налоги
42
Вид окна приложения после
ввода исходных данных должен
иметь следующий вид:
Порядок действий:
1. Расположить элементы управления на экранной форме в соответствии с рисунком.
2. Значения свойств элементов управления, которые определяют внешний вид приложения установить
по своему усмотрению.
3. Значения свойства Capt ion рамок установить в соответствии с рисунком.
4. Установить значения свойств объектов в соответствии со следующей таблицей:
Объект Свойство Значение свойства
Форма Name frmЗарплата
Caption Пусто
Метка Name lblРегистрация
Caption Пусто
Кнопка-индикатор Name Chk1
Caption Работа в компьютерном классе
Кнопка-индикатор Name Chk2
Caption Заведование кабинетом
Кнопка-индикатор Name Chk3
Caption Участие в эксперименте
Кнопка-индикатор Name Chk4
Caption Классное руководство
Кнопка-переключатель Name Opt1
Caption Нет
Кнопка-переключатель Name Opt2
Caption Звание "Отличник народного просвещения"
Кнопка-переключатель Name Opt3
Caption Звание "Заслуженный учитель России"
Кнопка-переключатель Name Opt4
Caption Ученая степень
Текстовое поле Name txtРазряд
Text Пусто
Текстовое поле Name txtКоличествоЧасов
Text Пусто
Текстовое поле Name txtНачислено
Text Пусто
Текстовое поле Name txtПодоходныйНалог
Text Пусто
43
Текстовое поле Name txtПенсионный
Text Пусто
Текстовое поле Name txtИтог
Text Пусто
Командная кнопка Name cmdВычисление
Caption В ы ч и с л е н и е
5. Сохранить проект в папке ЗарплатаУчителя.
6. Подробно разобрать представленный ниже программный код, а затем набрать его. Для того чтобы
получить зачет по данной работе, вам необходимо ответить на вопросы преподавателя по данной программе.
Option Explicit
Dim F As String, I As String, O As String, R As Integer, K As Integer
Dim St As Currency, Z As Currency, D1 As Currency, D2 As Currency, D3 As Currency
Dim D4 As Currency, D5 As Currency, D6 As Currency, D7 As Currency, D8 As Currency
Dim D9 As Currency, D As Currency, PodNal As Currency, PensNal As Currency
Dim Itog As Currency, Flag As Boolean
Private Sub Form_Load()
F = InputBox("Введите Вашу фамилию", "Регистрация")
I = InputBox("Введите Ваше имя", "Регистрация")
O = InputBox("Введите Ваше отчество", "Регистрация")
frmЗарплата.Caption = "Зарплата учителя. " + F + " " + I + " " + O
lblРегистрация.Caption = "Уважаемая " + I + " " + O + "! Введите, пожалуйста,
свои данные"
End Sub
Private Sub cmdВычисление_Click()
R = Val(txtРазряд.Text)
K = Val(txtКоличествоЧасов.Text)
Flag = True
Select Case R
Case 8
St = 1500
Case 9
St = 1667
Case 10
St = 1873
Case 11
St = 2057
Case 12
St = 2263
Case 13
St = 2492
Case 14
St = 2739
Case 15
St = 3020
Case Else
MsgBox "Вы неверно ввели разряд.", 48, "Ошибка!"
Flag = False
txtРазряд.Text = ""
txtНачислено.Text = ""
txtПодоходныйНалог.Text = ""
txtПенсионный.Text = ""
txtИтог.Text = ""
End Select
44
If Flag = True Then
Z = St / 18 * K
D = 0: D1 = 0: D2 = 0: D3 = 0: D4 = 0: D5 = 0: D6 = 0: D7 = 0: D8 = 0: D9 = 0
If Chk1.Value = 1 Then D1 = 0.12 * Z ' вредность
If Chk2.Value = 1 Then D2 = 0.1 * St ' заведование кабинетом
If Chk3.Value = 1 Then D3 = 0.15 * St ' эксперимент
If Chk4.Value = 1 Then D4 = 0.2 * St ' классное руководство
If Opt2.Value = True Then D5 = 0.3 * St ' звание "Отличник народного просвещения"
If Opt3.Value = True Then D6 = 0.5 * St ' звание "Заслуженный учитель России"
If Opt4.Value = True Then D7 = 0.5 * St ' Ученая степень
D8 = 0.1 * Z ' проверка тетрадей
D9 = 100 ' методическая литература
D = D1 + D2 + D3 + D4 + D5 + D6 + D7 + D8 + D9 ' все надбавки
Z = Z + D
txtНачислено.Text = Str(Format(Z, "0.00")) ' форматный вывод с двумя знаками после
запятой
PodNal = 0.13 * Z ' подоходный налог
txtПодоходныйНалог.Text = Str(Format(PodNal, "0.00"))
PensNal = 0.01 * Z ' налог в пенсионный фонд
txtПенсионный.Text = Str(Format(PensNal, "0.00"))
Itog = Z - PodNal - PensNal ' итог
txtИтог.Text = Str(Format(Itog, "0.00"))
End If
End Sub
7. Сохранить изменения и проверить работу приложения.
Задания для самостоятельного выполнения
1. Вывести максимальное число из двух введенных чисел, в случае их равенства напечатать ответ:
«Числа равны». Исходные числа должны вводиться с помощью текстовых окон, а результат выводиться в окне
MsgBox.
2. Каким прилагательным можно охарактеризовать возраст человека? Субъективное представление
отражает следующая таблица:
Возраст Менее 15 лет 15 – 30 лет 31 – 45 лет 46 – 60 лет Более 60 лет
Характеристика
возраста
детский молодой средний пожилой преклонный
Приложение должно позволять пользователю ввести свой возраст в годах с помощью окна InputBox и
напечатать характеристику возраста на форме в соответствии с таблицей.
3. Вычислить:
Y2 - 0.3 , при Y<0
X = F(Y) - 6.3 , если F(Y) = 0 , при 0<=Y<=1
Y2 - 2Y , при Y>1
Для ввода и вывода использовать текстовые окна.
45
10. Практическая работа № 7 (часть 1):
«Программирование повторений (циклы со счетчиком). Вложенные циклы»
Многократное повторение одного действия или группы действий часто встречается при написании
программ. Простейший способ повторить действия в программе – вернуться на определенную строку программы
и выполнить ее вновь. Самый простой способ это сделать – использовать оператор безусловного перехода
GoTo.
Синтаксис оператора: GoTo < метка >
где < метка > – метка, с которой продолжатся выполнение программы.
Частое употребление оператора GoTo приводит к запутыванию программы. Программисты употребление
оператора GoTo считают плохим тоном. Старайтесь реже его употреблять.
Пример:
metka:
Print "ПРИВЕТ!!!" – бесконечный цикл. [Ctrl+Break] – выход из цикла
GoTo metka:
Циклом называется операция, в которой одни и те же действия повторяются многократно.
Существует два основных типа циклов:
• циклы со счетчиком (с известным числом повторений);
• циклы с условием, в которых действия повторяются до тех пор, пока выполняется определенное
условие или пока не будет выполнено определенное условие.
В Visual Basic для организации циклов с определенным количеством повторений используется оператор
FOR…NEXT.
Синтаксис оператора:
FOR <счетчик>=<начало> ТО <конец> [STEP <шаг>]
[операторы цикла]
[EXIT FOR]
NEXT [<счетчик>]
где < счетчик > – числовая переменная, используемая как счетчик цикла:
< начало > – начальное значение счетчика;
< конец > – конечное значение счетчика
< шаг > – шаг изменения значения счетчика, по умолчанию 1.
Указанное в [ ] может отсутствовать.
Операторы цикла, которые выполняются между операторами FOR и NEXT, т.е. повторяются
многократно, называются телом цикла.
Действие оператора: вычисляется значение выражения <начало>, которое присваивается переменной
<счетчик>. Затем идет выполнение операторов цикла. При достижении NEXT переменная <счетчик>
увеличивается на значение выражения <шаг>. Значение <счетчика> сравнивается со значением выражения
<конец>. Если <счетчик> больше, то выполняется оператор, следующий за NEXT, если нет, то управление
передается на начало тела цикла. При отрицательных значениях <шага> идет уменьшение <счетчика>.
Постановка задачи
Напечатать фразу: «Изучаем циклы!» 15 раз c использованием оператора FOR… NEXT (в условии четко
определено количество повторений).
Порядок действий:
1. Расположить на экранной форме одну командную кнопку.
2. Установить значения свойства Name для формы и кнопки такие, которые используются ниже в
программном коде.
46
3. Составить программный код проекта:
Private Sub cmdПуск_Click()
Dim i As Integer
Cls
For i = 1 To 15 Step 1
frmЦиклы.FontSize = 9 + i
Print i; "Изучаем циклы!"
Next i
End Sub
4. Запустить проект на выполнение. Результат
представлен на рисунке. Проанализируйте его. Почему
перед текстом печатаются числа, почему изменяется
размер шрифта?
5. Сменить значение шага на 2.
Запустить проект на выполнение.
Проанализировать результат.
6. Заменить строку For i = 1 To 15 Step 2 на строку For i = 2 To 10 Step 1
Запустить проект на выполнение. Проанализировать результат.
7. Заменить строку For i = 2 To 10 Step 1 на строку For i = 10 To 1 Step -1
Запустить проект на выполнение. Проанализировать результат.
Постановка задачи
Вычислить сумму N натуральных чисел.
Порядок действий:
1. Полностью изменить программный код предыдущего проекта следующим образом:
Private Sub cmdПуск_Click()
Dim i As Integer, N As Integer, S As Integer
Cls
N = InputBox("Сколько чисел сложить?", "Количество чисел")
S = 0
For i = 1 To N Step 1
S = S + i
Next i
Print "Сумма ", N, "натуральных чисел ", S
End Sub
2. Запустить проект на выполнение. Проанализировать результат.
Задания ля самостоятельного выполнения
1. Сохранить проект в предварительно созданной папке Сумма.
2. Самостоятельно изменить программу таким образом, чтобы она вычисляла сумму только четных
натуральных чисел в интервале до N.
3. Самостоятельно изменить программу так, чтобы она вычисляла сумму только нечетных натуральных
чисел в интервале до N.
4. Самостоятельно изменить программу таким образом, чтобы она вычисляла N! (факториал числа N):
N!=1*2*3*…..*N
5. Изменить проект таким образом, чтобы вычислялась сумма: S=1+1/22+1/33+…+1/NN
47
Постановка задачи
Составить программу, которая определяет среднее арифметическое введенных чисел. Количество чисел и
сами числа вводятся с помощью окна InputBox.
Порядок действий:
1. Расположить на экранной форме одну командную кнопку, два текстовых окна и две метки.
2. Установить значения свойства Name:
для формы – frmЦикл;
для кнопки – cmdЦикл;
для первого текстового окна – txtЧисла;
для второго текстового окна – txtСреднее.
Для первого текстового окна установить значение свойства MultiLine – True
и значение свойства ScrollBars – 2 (Vertical)
3. Все остальные свойства, определяющие внешний вид проекта, установить по собственному
усмотрению.
4. Составить программный код проекта:
Private Sub cmdЦикл_Click()
Dim N As Integer, i As Integer
Dim sum As Single, sr As Single
Dim K As String
txtЧисла.Text = "": txtСреднее.Text = ""
N = InputBox("Сколько чисел?", "Количество чисел")
sum = 0
For i = 1 To N
K = InputBox("Введите " + Str(i) + " число и нажмите кнопку OK.", "Ввод
очередного числа")
txtЧисла.Text = txtЧисла.Text + K + " "
sum = sum + Val(K)
Next i
sr = sum / N
txtСреднее.Text = Str(sr)
End Sub
5. Сохранить проект в предварительно созданной папке Среднее.
6. Запустить проект на выполнение. Проанализировать результат.
7. Изменить программу так, чтобы выполнялся подсчет среднего арифметического только
отрицательных чисел.
8. Сохранить проект.
9. Запустить проект на выполнение. Проанализировать результат.
48
Вложенные циклы
Часто бывает так, что при повторениях изменяется не одна величина, а несколько. При каждом значении
одной величины другая величина «пробегает» все свои значения. В этих случаях используют вложенные циклы.
Синтаксис:
FOR <счетчик1>=<начало1> ТО <конец1> [STEP <шаг1>]
FOR <счетчик2>=<начало2> ТО <конец2> [STEP <шаг2>]
[операторы цикла]
[EXIT FOR]
NEXT [<счетик2>]
NEXT [<счетик1>]
Постановка задачи
Вывести все возможные способы размена
определенной суммы денег с помощью монет
достоинством 1, 2 и 5 рублей. Сумма денег должна
вводиться с помощью окна InputBox. Результат
работы программы представлен на рисунке:
Порядок действий:
1. Расположить на экранной форме две
метки, одну командную кнопку и одно текстовое
окно.
2. Установить значения свойства Name:
для кнопки – cmdРазмен;
для второй метки – lblСумма;
для текстового окна – txtРазмен;
Для текстового окна установить значение свойства MultiLine – True
и значение свойства ScrollBars – 2(Vertical)
3. Все остальные свойства, определяющие внешний вид проекта, установить по собственному
усмотрению.
4. Составить программный код проекта:
Private Sub cmdРазмен_Click()
Dim r As Integer, d As Integer, p As Integer, n As Integer
txtРазмен = ""
n = InputBox("Введите сумму денег, которую вы желаете разменять", "Размен")
lblСумма.Caption = "Ваша сумма " + Str(n) + " руб."
For r = 0 To n
For d = 0 To n / 2
For p = 0 To n / 5
If 1 * r + 2 * d + 5 * p = n Then
txtРазмен.Text = txtРазмен.Text + (Str(r) + " x 1 руб " + Str(d) +
" x 2 руб " + Str(p) + " x 5 руб ") + Chr(13)
End If
Next p
Next d
Next r
End Sub
5. Сохранить проект в предварительно созданной папке Вложенные циклы.
6. Запустить проект на выполнение. Проанализировать результат.
49
11. Практическая работа № 7 (часть 2):
«Программирование повторений (циклы с условием)»
При программировании повторений далеко не всегда известно количество повторов. В этих случаях
используют циклы с условием, которые в Visual Basic могут быть реализованы с помощью следующих
операторов:
Проверка условия в начале цикла Проверка условия в конце цикла
While <условие>
<тело цикла>
Wend
<Тело цикла> выполняется, если <условие> истинно,
иначе осуществляется переход на оператор,
расположенный после Wend. Если первая проверка
<условия> даст результат – ложь, то цикл не
выполнится ни разу.
Do While <условие>
<тело цикла>
[ Exi t Do ]
Loop
<Тело цикла> выполняется, если <условие> истинно,
иначе осуществляется переход на оператор,
расположенный после Loop. Если первая проверка
<условия> даст результат – ложь, то цикл не
выполнится ни разу.
Do <тело цикла>
[ Exi t Do ]
Loop Whi le <условие>
<Тело цикла> выполняется до тех пор, пока
<условие> истина, иначе выполнение цикла
заканчивается. Но хотя бы один раз цикл выполнится
в любом случае.
Do Untile <условие>
<тело цикла>
[ Exit Do ]
Loop
<Тело цикла> выполняется, если <условие> ложно,
иначе осуществляется переход на оператор,
расположенный после Loop. Если первая проверка
<условия> даст результат – истина, то цикл не
выполнится ни разу.
Do
<тело цикла>
[ Exit Do ]
Loop Untile <условие>
<Тело цикла> выполняется до тех пор, пока
<условие> ложно, иначе выполнение цикла
заканчивается. Но хотя бы один раз цикл выполнится
в любом случае.
Постановка задачи
Составить программу, которая определяет среднее арифметическое введенных чисел. Количество чисел
заранее не известно. Числа вводятся с помощью окна InputBox. Ввод завершается при нажатии кнопки
Cancel. Окно InputBox должно иметь вид:
50
Порядок действий:
1. Скопировать проект из папки Среднее в папку Среднее1.
2. Открыть проект из папки Среднее1.
3. Изменить программный код следующим образом:
Private Sub cmdЦикл_Click()
Dim N As Integer, i As Integer
Dim sum As Single, sr As Single
Dim P As String
txtЧисла.Text = "": txtСреднее.Text = ""
sum = 0: N = 0
P = InputBox("Введите число и нажмите кнопку OK. Для завершения ввода нажмите
кнопку Cancel", "Ввод очередного числа")
Do Until P = ""
If IsNumeric(P) = False Then
MsgBox " Введите число ! ", 0 + 16, "Ошибка!!!"
Else
N = N + 1
txtЧисла.Text = txtЧисла.Text + P + " "
sum = sum + Val(P)
End If
P = InputBox("Введите число и нажмите кнопку OK. Для завершения ввода нажмите
кнопку Cancel", "Ввод очередного числа ")
Loop
If N = 0 Then
MsgBox " Не введено ни одного числа ! ", 0 + 16, "Ошибка!!!"
Else
sr = sum / N
txtСреднее.Text = Str(sr)
End If
End Sub
4. Сохранить проект. Запустить проект на выполнение. Проанализировать результат.
Задание для самостоятельного выполнения
Самостоятельно переписать программу с использованием любого оператора с проверкой условия в конце
цикла. При этом работа программы не должна измениться.
51
12. Практическая работа № 8 (часть 1):
«Одномерные массивы (способы заполнения и обработка)»
При составлении программ важно правильно организовать не только действия, но и данные, которые
программа обрабатывает. Наиболее распространенный способ организации данных – табличный.
Различаются линейные и прямоугольные таблицы. В программировании понятию таблицы
соответствует понятие массива.
Массив – упорядоченная последовательность однотипных величин, имеющих общее имя.
Линейной таблице соответствует одномерный массив.
Прямоугольной таблице соответствует двумерный массив.
До сих пор мы рассматривали только простые переменные. Имени переменной соответствовала одна
ячейка памяти.
Структуры данных – это сопоставление с одним именем нескольких ячеек памяти. Массив – одна
из таких структур в Visual Basic.
Пример одномерного массива:
i 1 2 3 4 5 6 7 8 9 10 11
A Петров Иванов Сидоров Котов Кротов Андреев Титов Львов Смирнов Лунин Мамин
Под общим именем А объединено 11 ячеек памяти, содержащих однотипные строковые величины –
фамилии.
i – индекс (номер) элемента в массиве.
При обращении к элементам массива указывается имя массива и в скобках его индекс.
А(2) = «Иванов»
А(7) = «Титов»
Пример двумерного массива:
j
i 1 2 3
1 0 -1 2
2 -3 4.5 2
3 8.3 0 7.1
4 10 1.8 -3
Под общим именем В объединено 12 ячеек памяти содержащих
однотипные величины – десятичные числа.
i, j – индексы
i – номер строки
j – номер столбца
При обращении к элементам массива указывается имя массива и в
скобках два индекса (номер строки и номер столбца).
В(1,1)=0
В(2,3)=2
Прежде чем использовать массив, его необходимо объявить. При объявлении массива Visual Basic
выделяет под него место в памяти.
Массивы в программе объявляются точно так же, как объявляются переменные. Если массив объявлен
локальным, его можно использовать только в той процедуре, в которой он объявлен. Если массив объявлен как
глобальный в стандартном модуле, он может быть использован в любом месте в программе. При объявлении
массива в оператор объявления необходимо включить следующую информацию:
Информация,
помещаемая в оператор
объявления массива
Описание
Имя массива Имя, которое будет использоваться для представления массива в программе.
Для имен массивов применяются те же правила, что и для имен переменных.
Тип данных Тип данных, который будет использоваться для элементов массива.
Размерность Количество измерений вашего массива. Большинство массивов являются
одномерными или двумерными, но при необходимости работы со сложными
математическими моделями, например, трехмерными фигурами, вы можете
задать и большее количество измерений массива.
Количество элементов Количество элементов, которые будут содержаться в массиве. Номера
элементов в массиве соответствуют их индексам. По умолчанию первый элемент
массива имеет индекс 0 (ноль).
Массивы, приведенные в качестве примеров могут быть описаны следующим образом:
Public A(1 To 11) As String
Dim B(1 To 4,1 To 3) As Single
52
В первом случае объявлен одномерный массив из 11 элементов с индексами от 1 до 11; имя
массива – А; тип данных – St r ing; массив объявлен как глобальный.
Во втором случае объявлен двумерный массив из 12 (4*3) элементов; имя массива – В; тип данных –
Single; массив объявлен как локальный.
Часто минимальное значение индекса не указывается. Тогда оно автоматически (по умолчанию)
принимается равным 0. Ключевое слово To при этом не используется. Максимальное значение индекса должно
быть указано обязательно.
Поместив в стандартный модуль оператор
Option Base 1
, можно сделать программу более удобной для восприятия, заменив индекс первого элемента каждого
массива на 1 вместо 0.
Допускаются отрицательные значения индексов.
Прежде чем обрабатывать массив его необходимо заполнить.
Массивы, которые содержат строго определенное количество элементов, называются массивами с
фиксированной границей. Массивы, которые содержат переменное количество элементов (массивы, размеры
которых могут изменяться в процессе выполнения программы), называются динамическими.
Окно списка и Комбинированное окно
Окно списка (ListBox) позволяет хранить не одно значение, а список значений. Список
значений – это упорядоченное множество. Элементы списка имеют индекс. Минимальный индекс
равен 0. Значения в списке имеют тип Str ing.
Важным свойством объекта является свойство ListIndex. После того как пользователь щелкнет на
пункте списка, свойство ListIndex возвращает число, которое соответствует позиции пункта в списке, т.е.
индексу.
Комбинированное окно (ComboBox) представляет собой объединение двух полей – окна
списка и текстового поля. Комбинированное окно аналогично Окну списка, но занимает меньше
места. Окно имеет свойство Style. Значение свойства 0 делает список невидимым (его можно
увидеть, щелкнув по кнопке раскрытия списка).
Свойство ListIndex аналогично этому же свойству Окна списков.
Постановка задачи
Выполнить проект,
позволяющий:
1. Заполнять массив двумя
способами:
• случайными целыми
числами в диапазоне от 0 до100;
• путем ввода чисел с
клавиатуры (не обязательно целых).
2. Находить максимальный
элемент массива и его номер.
После того как будет
сформирован графический интерфейс
пользователя, форма должна
выглядеть следующим образом:
Порядок действий:
1. Расположить элементы управления на экранной форме в соответствии с рисунком. Для выбора
способа заполнения массива использовать комбинированное окно ComboBox.
2. Значения свойств элементов управления, которые определяют внешний вид приложения установить
по своему усмотрению.
3. Значения свойств Capt ion меток, кнопок и рамок установить в соответствии с рисунком.
53
4. Установить значения свойств объектов в соответствии со следующей таблицей :
Объект Свойство Значение свойства
Форма Name frmМассив
Caption Способы заполнения массива.
Текстовое окно Name txtN
Текстовое окно Name txtМассив
Текстовое окно Name txtMax
Текстовое окно Name txtnMax
Командная кнопка Name cmdМассив
Командная кнопка Name cmdMax
Name cboСпособ
Text Выберите способ заполнения массива
Style 0
Комбинированное окно
List Список должен содержать два способа заполнения:
• Ввод с клавиатуры
• Случайными числами
5. Сохранить проект в папке Одномерный массив.
6. Подробно разобрать программный код, написанный для заполнения массива разными способами, а
затем набрать его:
Option Explicit
Dim a() As Single ′ Массив объявлен как динамический, количество элементов в нем может быть
различным
Dim i As Integer
Dim n As Integer
Dim K As String
Dim Max As Single, nMax As Integer
Dim ListIndex As Integer
Private Sub cmdМассив_Click()
n = Val(txtN.Text) ′ Введено количество элементов в массиве
ReDim a(1 To n) ′ Переопределение массива. Количество элементов в массиве – n.
Select Case cboСпособ.ListIndex
Case 0
txtМассив.Text = ""
For i = 1 To n
K = InputBox("Введите " + Str(i) + " число", "Заполнение массива")
a(i) = Val(K)
txtМассив.Text = txtМассив.Text + " " + Str(a(i))
Next i
Case 1
txtМассив.Text = ""
Randomize Timer
For i = 1 To n
a(i) = Int(100 * Rnd())
txtМассив.Text = txtМассив.Text + " " + Str(a(i))
Next i
End Select
End Sub
7. Проверить, что заполнение массива обоими способами происходит нормально и сохранить
программный код.
54
8. Подробно разобрать программный код для поиска максимального элемента в массиве, а затем набрать
его:
Private Sub cmdMax_Click()
frmМассив.Caption = frmМассив.Caption + " Поиск максимального элемента"
Max = a(1): nMax = 1
For i = 2 To n
If a(i) > Max Then
Max = a(i)
nMax = i
End If
Next i
txtMax.Text = Str(Max)
txtnMax.Text = Str(nMax)
End Sub
9. Проверить правильность работы проекта и сохранить его.
Задание для самостоятельного выполнения
1. Дополнить проект таким образом, чтобы он позволял находить и выводить с помощью окна MsgBox:
• минимальное число массива и его индекс;
• среднее арифметическое элементов массива;
• количество нулевых элементов.
2. Сохранить проект.
55
13. Практическая работа № 8 (часть 2):
«Обмен значениями. Сортировка элементов массива»
Обмен значениями
При обмене значениями двух переменных обязательно требуется третья переменная.
При присваивании переменной нового значения её старое значение теряется.
Например, при обмене значениями переменных А и В последовательность операторов:
А = 4
В = 7
… А
=
В

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

С
=
4
А = В – А = 7
В = С – В = 4
– в переменной С сохраняем первоначальное значение переменной А, затем присваиваем переменной А
значение переменной В, и только после этого присваиваем переменной В значение переменной С (т.е.
первоначальное значение переменной А).
Постановка задачи
Выполнить проект, в котором:
• при нажатии на одну из командных кнопок происходит обмен надписями между двумя текстовыми
окнами;
• при нажатии на вторую командную кнопку текстовые окна меняются цветами фона и текста.
После того как будет сформирован графический интерфейс пользователя, форма должна выглядеть
следующим образом:
Порядок действий:
1. Расположить элементы управления на экранной форме в соответствии с рисунком.
2. Значения свойств элементов управления, которые определяют внешний вид приложения установить в
соответствии с рисунком.
3. Установить значения свойств объектов в соответствии со следующей таблицей:
Объект Свойство Значение свойства
Текстовое окно Name txtLeft
Текстовое окно Name txtRight
Командная кнопка Name cmdПУСК1
Командная кнопка Name cmdПУСК2
4. Сохранить проект в папке Обмен.
5. Подробно разобрать программный код, а затем набрать его:
56
Private Sub cmdПУСК1_Click()
Dim Строка As String
Строка = txtLeft.Text
txtLeft.Text = txtRight.Text
txtRight.Text = Строка
End Sub
Private Sub cmdПУСК2_Click()
Dim ЦветФона As Long, ЦветБукв As Long
ЦветФона = txtLeft.BackColor
txtLeft.BackColor = txtRight.BackColor
txtRight.BackColor = ЦветФона
ЦветБукв = txtLeft.ForeColor
txtLeft.ForeColor = txtRight.ForeColor
txtRight.ForeColor = ЦветБукв
End Sub
6. Сохранить проект.
7. Проверить правильность работы проекта.
Сортировка элементов массива
Одним из часто используемых алгоритмов является сортировка элементов массива.
Рассмотрим сортировку элементов массива по возрастанию их значений методом "установки". Алгоритм
этого метода состоит в сравнении значения сначала первого элемента массива со всеми остальными элементами,
затем второго элемента – со следующими за ним, затем третьего – с последующими и т.д. вплоть до
предпоследнего – с последним. Если при сравнении – элемент, стоящий ближе к началу массива имеет большее
значение, чем элемент, стоящий в массиве ближе к концу, то происходит обмен значениями между этими
элементами. Таким образом, меньшие значения «перемещаются» в начало массива, а бóльшие – в конец.
Например, дан исходный массив А из пяти элементов: -5; 10;3 17;0.
При его первом просмотре -5 последовательно сравнивается с 10; 3; 17 и 0. Но т.к. -5 меньше остальных
значений – ничего не происходит.
При втором просмотре 10 сравниваем с 3 и меняем их местами. Теперь 3 сравниваем с 17 – перестановки
нет. Затем 3 сравниваем с 0 – опять обмен. В результате на второй позиции в массиве оказался 0.
После третьего просмотра на третье место в массиве встанет 3.
А в последнем четвертом просмотре участвуют оставшиеся два значения – 17 и 10. Так как первое
больше – меняем их местами и сортировка завершена.
Результат: -5; 0; 3; 10; 17.
Программа, реализующая этот алгоритм выглядит так:
Dim A(1 TO 5) As Single ' массив
Dim i As Integer, j As Integer ' i – номер элемента, который сравниваем;
' j – номер элемента, с которым сравниваем
Dim x As Single ' переменная для обмена
Private Sub …
… ' ввод значений в массив
' Сортировка по возрастанию методом "установки"
For i = 1 To 4
For j = i + 1 To 5
If A( i ) > A( j ) Then
x = A( i )
A( i ) = A( j )
A( j ) = x
End If
Next
Next
… ' вывод массива
End Sub
57
Постановка задачи
Выполнить проект, в котором:
• для разных наименований товаров, выбор которых
осуществляется из списка, с клавиатуры вводятся цены;
• выводится список наименований товаров с
соответствующими ценами в несортированном и в
сортированном (по наименованию) порядке.
Форма выглядит следующим образом:
Порядок действий:
1. Создать на рабочем диске папку Сортировка и
скопировать в нее файл Fshop.f rm из папки Dokument
диска R:
2. Открыть форму Fshop.frm со своего рабочего
диска.
3. Ознакомится со значениями свойства Name
формы и ее элементов.
4. Для комбинированного окна cboName ввести
пять значений (свойство List ):
Плащ
Шарф муж.
Пальто
Платье
Шарф жен.
5. Подробно разобрать программный код, а затем набрать его:
Option Explicit
Dim v As String 'цена товара
Dim i As Integer, j As Integer 'переменные циклов
Dim no As String 'переменная для обмена наименований
Dim co As Single 'переменная для обмена цен
Dim C(0 To 4) As Single 'массив цен (несортированный)
Dim Cs(0 To 4) As Single 'массив цен (сортированный)
Dim Ns(0 To 4) As String 'массив наименований (сортированный)
Private Sub cmdВвод_Click()
Cls
If cboName.ListIndex >= 0 And cboName.ListIndex <= 4 Then
v = InputBox("Введите цену товара: " + cboName.Text, "Ввод цены")
i = cboName.ListIndex
C(i) = Val(v)
Else
MsgBox "Выберите наименование товара", 48, "Ошибка"
End If
End Sub
Private Sub cmdВывод_Click()
Cls
Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print
Print Tab(10); "Наименование"; Tab(40); "Цена"
Print
For i = 0 To 4
cboName.ListIndex = i
Print Tab(10); cboName.Text; Tab(40); C(i)
Next
End Sub
58
Private Sub cmdСортировка_Click()
For i = 0 To 4
cboName.ListIndex = i
Ns(i) = cboName.Text
Cs(i) = C(i)
Next
For i = 0 To 3
For j = i + 1 To 4
If Ns(i) > Ns(j) Then
no = Ns(i): Ns(i) = Ns(j): Ns(j) = no
co = Cs(i): Cs(i) = Cs(j): Cs(j) = co
End If
Next
Next
Cls
Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print: Print
Print Tab(10); "Наименование"; Tab(40); "Цена"
Print
For i = 0 To 4
Print Tab(10); Ns(i); Tab(40); Cs(i)
Next
End Sub
6. Сохранить проект.
7. Проверить правильность работы проекта.
Задание для самостоятельного выполнения
1. Дополнить проект еще одной командной кнопкой, при нажатии на которую список наименований
товаров с соответствующими ценами выводится в порядке убывания цен.
2. Сохранить проект.
59
14. Практическая работа № 9:
«Двумерные массивы (решение задачи линейного программирования)»
Постановка задачи
Небольшая иностранная фирма производит два вида продукции: столы и стулья. Для изготовления одного
стула требуется 3 фута древесины, а для изготовления одного стола – 7 футов. На изготовление одного стула
уходит 2 часа рабочего времени, а на изготовление стола – 8 часов. Фирма должна выполнять план по
ассортименту. Каждый стул приносит 1 доллар прибыли, а каждый стол – 3 доллара.
Сколько стульев и столов должна изготовить фирма, если она располагает 420 футами древесины и 400
часами рабочего времени и хочет получить максимальную прибыль.
Данная задача является частным случаем задачи линейного программирования.
Программирование в данном термине имеет смысл планирования. Линейное же означает, что ищется экстремум
линейной целевой функции при линейных ограничениях (уравнениях, неравенствах).
В общем виде задача линейного программирования записывается следующим образом:
найти Xj ≥0 ( j = 1, 2, … , N ) при ограничениях типа
( i = 1, 2, …, M1 ),
( i = M1+1, M1+2, …, M2 ),
( i = M2+1, M2+2, …, M ),
которые доставляют экстремум целевой функции:
Любая совокупность Xj ≥ 0, удовлетворяющая заданным ограничениям, называется допустимым
решением. Допустимое решение минимизирующее (или максимизирующее) целевую функцию,
называется оптимальным решением.
Построим математическую модель задачи:
Пусть
X – планируемое количество стульев;
Y – планируемое количество столов;
Тогда
1*X – прибыль ( в $ ) от реализации стульев;
3*Y – прибыль ( в $ ) от реализации столов;
P ( X, Y ) = X + 3*Y – прибыль от реализации всей продукции – наша целевая функция.
Мы должны найти максимум целевой функции при наличии следующих ограничений:
2*X + 8*Y ≤ 400 (1)
3*X + 7*Y ≤ 420 (2)
X ≥ 1 (3)
Y ≥ 1 (4)
X, Y – целые (5)
(1) – ограничение на ресурс древесины.
(2) – ограничение на ресурс рабочего времени.
(3), (4) – ограничения, связанные с выполнением плана по ассортименту (нижние границы).
Необходимо найти наибольшие допустимые значения X и Y (верхние границы):
т. к. X ≥ 1 откуда Y ≤ 49 (Y – целое) (6)
i
N
j
ij j B X A ≤ ⋅ Σ=
1
i
N
j
ij j B X A = ⋅ Σ=1
i
N
j
ij j B X A ≥ ⋅ Σ=1
Σ=
= ⋅
N
j
j j Z C X
1
  

− ⋅

− ⋅

(2)
7
420 3
(1)
8
400 2
X
Y
X
Y
 




4
3
49
7
4
59
Y
Y
60
т. к. Y ≥ 1 откуда X ≤ 196 (X – целое) (7)
Наиболее распространенным методом решения задач линейного программирования является симплекс-
метод. В нашем случае, учитывая простоту, можно искать требуемые значения X и Y, перебирая все значения,
которые они могут принимать. Нижние границы определены ограничениями (3), (4), а верхние ограничениями
(6), (7). Таким образом для любых значений X от 1 до 196 и Y от 1 до 49 можно подсчитать значение прибыли по
формуле:
P(X,Y)=X+3*Y, если X и Y удовлетворяют ограничениям (1), (2).
Если X и Y не удовлетворяют ограничениям (1) и (2), то значение прибыли будем считать равным нулю.
Затем среди ненулевых значений прибыли определяется максимальное значение и соответствующие ему
значения X и Y.
Следует отметить, что для использования метода перебора искомые величины должны быть ограничены
снизу и сверху, а также число принимаемых значений не должно быть очень большим, что сделает процесс
поиска решения очень длительным по времени.
Порядок действий:
1. Расположить на экранной форме командную кнопку Пуск.
2. Составить программный код проекта:
Dim x As Integer, y As Integer, d As Integer, t As Integer 'описание переменных
Dim i As Integer, j As Integer, max As Integer
Dim p (1 To 196, 1 To 49) As Integer 'описание массива, в массиве 196 строк и 49 столбцов
Private Sub Пуск_Click()
For x = 1 To 196
For y = 1 To 49
d = 3 * x + 7 * y
t = 2 * x + 8 * y
If d <= 420 And t <= 400 Then 'проверка ограничений
p(x, y) = x + 3 * y 'заполнение массива прибыли (Целевой функции)
Else
p(x, y) = 0 'элементы массива равны 0, если ограничения не
выполняются
End If
Next y
Next x
max = p(1, 1) 'поиск максимума целевой функции
For i = 1 To 196
For j = 1 To 49
If p(i, j) > max Then max = p(i, j): x = i: y = j
Next j
Next i
Print "Максимальная прибыль составляет"; max; "$" 'вывод результатов на форму
Print "Планируемое количество стульев - "; x
Print "Планируемое количество столов - "; y
End Sub
 


− ⋅

− ⋅

(2)
3
420 7
(1)
2
400 8
Y
X
Y
X





3
2
137
196
X
X
61
3. Проверить правильность работы проекта и сохранить его.
Задания для самостоятельного выполнения
Отвлекитесь от смысла предыдущей задачи.
В вашем распоряжении имеется двумерный массив, заполненный целыми числами. Количество строк
массива 196, количество столбцов – 49. Дополнить проект таким образом, чтобы он позволял определить:
1. Сумму элементов 3-й строки (3822);
2. Количество нулевых элементов в массиве (5766);
3. Минимальный элемент и его номер в 49-м столбце (0,196);
4. Среднее значение элементов массива с одинаковыми номерами строки и столбца (i = j).
62
15. Практическая работа № 10 (часть 1):
«Программирование финансовых задач. Расчет амортизации»
Постановка задачи
Под амортизацией понимается уменьшение стоимости имущества в процессе его эксплуатации. Величину
этого уменьшения рассчитывают на какой-либо период (как правило, на какой-то год эксплуатации).
Исходными данными для решения задачи являются:
• начальная стоимость имущества;
• остаточная стоимость в конце периода амортизации (ликвидная стоимость);
• количество периодов, за которые имущество амортизируется (период амортизации);
• кратность учета амортизации.
Для автоматизации процесса расчета амортизации необходимо разработать проект, обеспечивающий
вычисления двумя методами:
• по методу равномерной амортизации;
• по методу кратного учета амортизации.
Программа должна обеспечивать контроль корректности вводимых исходных данных и выдачу
предупреждающих сообщений в случаях:
• отсутствия одного или нескольких исходных данных для расчета;
• если указанная ликвидная стоимость превышает начальную стоимость;
• если указан период расчета, превышающий срок амортизации.
Порядок действий:
1. Выбор метода для расчета.
В библиотеке встроенных функций Visual Basic есть финансово-математические функции для расчета
величины амортизации. Для решения поставленной задачи подходят две из них:
• функция DDB – вычисляет амортизацию фондов в течение заданного интервала времени.
Она имеет синтаксис:
DDB(Стоимость, ЛиквиднаяСтоимость, ВремяЭксплуатации, Период, Кратность)
• функция SYD – вычисляет величину годовой амортизации I за определенный период.
Ее синтаксис:
SYD(Стоимость, ЛиквиднаяСтоимость, ВремяЭксплуатации, Период)
Аргументы функций приведены в следующей таблице:
Стоимость Начальная стоимость имущества
ЛиквиднаяСтоимость Остаточная стоимость а конце периода амортизации
ВремяЭксплуатации Количество периодов, в течение которых имущество амортизируется
Период Номер периода для вычисления, за который вычисляется амортизация
Кратность Число, определяющее кратность учета амортизации
2. Разработка интерфейса
пользователя.
Создать новый проект и поместить на
форму управляющие элементы:
Значения свойства Capt ion элементов
управления установить в соответствии с
рисунком.
Значения свойств элементов управления,
которые определяют внешний вид приложения,
установить по своему усмотрению.
63
Установить значения свойств объектов в соответствии со следующей таблицей:
Объект Свойство Значение свойства
Форма Name frmАмортизация
Caption Расчет амортизации имущества
Текстовое окно Name txt1
Текстовое окно Name txt2
Текстовое окно Name txt3
Текстовое окно Name txt4
Текстовое окно Name txt5
Текстовое окно Name txt6
Кнопка-переключатель Name Opt1
Caption Стандартный
Кнопка-переключатель Name Opt2
Caption Кратный
Метка Name lbl6
Caption Кратность
Командная кнопка Name cmdВычислить
3. Сохранить созданный проект на рабочем диске в папке Зачет под именем Амортизация.
4. Управляющие элементы формы должны выполнять следующие функции:
Form_Load 1. Активизирует окно формы;
2. Очищает все поля ввода данных;
3. Назначает выбор переключателя Стандартный и выключает
отображение окна для ввода значения кратности.
Opt1_Click Скрывает в форме надпись Кратность и соответствующее eй поле
Opt2_Click Отображает в форме надпись Кратность и соответствующее ей поле
cmdВычислить_Click 1. Проверяет корректность исходных данных.
В случае несогласованности отображает сообщение:
2. Вычисляет величину амортизации выбранным методом.
Подробно разобрать программный код, а затем набрать его:
Option Explicit
Dim ПервичнаяСтоимость As Currency
Dim ОстаточнаяСтоимость As Currency
Dim ВремяАмортизации As Integer
Dim ПериодРасчета As Integer
Dim Кратность As Integer
Dim Признак As Boolean
Dim ВеличинаАмортизации As Currency
Private Sub cmdВычислить_Click()
If txt1.Text = "" Or txt2.Text = "" Or txt3.Text = "" Or txt4.Text = "" Then
MsgBox "Нет данных для рачета", vbExclamation, "Амортизация"
Exit Sub
End If
ПервичнаяСтоимость = Val(txt1.Text)
ОстаточнаяСтоимость = Val(txt2.Text)
ВремяАмортизации = Val(txt3.Text)
ПериодРасчета = Val(txt4.Text)
64
If ПервичнаяСтоимость < ОстаточнаяСтоимость Then
MsgBox "Ошибка! Остаток больше начальной стоимости", vbExclamation,
"Амортизация"
txt1.SetFocus
Exit Sub
End If
If ВремяАмортизации < ПериодРасчета Then
MsgBox "Ошибка! Время амортизации меньше периода расчета", vbExclamation,
"Амортизация"
txt3.SetFocus
Exit Sub
End If
If opt1.Value = True Then
Признак = True
Else
Признак = False
End If
If Признак = True Then
ВеличинаАмортизации = SYD(ПервичнаяСтоимость, ОстаточнаяСтоимость,
ВремяАмортизации, ПериодРасчета)
Else
txt6.SetFocus
Кратность= Val(txt6.Text)
ВеличинаАмортизации = DDB(ПервичнаяСтоимость, ОстаточнаяСтоимость,
ВремяАмортизации, ПериодРасчета, Кратность)
End If
txt5.Text = Str(ВеличинаАмортизации)
End Sub
Private Sub Form_Load()
txt1.Text = ""
txt2.Text = ""
txt3.Text = ""
txt4.Text = ""
txt5.Text = ""
txt6.Text = ""
opt1.Value = True
lbl6.Visible = False
txt6.Visible = False
End Sub
Private Sub opt1_Click()
lbl6.Visible = False
txt6.Visible = False
End Sub
Private Sub opt2_Click()
lbl6.Visible = True
txt6.Visible = True
End Sub
5. Сохранить проект
65
6. Запустить программу на выполнение и проверить корректность ее функционирования. Для проверки
использовать следующие контрольные примеры:
66
16. Практическая работа № 10 (часть 2):
«Программирование финансовых задач. Расчет накопленной стоимости»
Постановка задачи
Под накопленной стоимостью понимается сумма, полученная в результате сложения величины
первоначального вклада (или кредита), с величиной платы за кредит, зависящей от нормы прибыли. Плата за
кредит может вычисляться по методу простых процентов (без учета постоянного роста величины платы за
кредит) или по методу сложных процентов. Исходными данными для решения задачи являются:
• величина начального вклада;
• норма прибыли (процентная ставки) за период;
• срок договора (в периодах);
• выбранный метод начисления платы за кредит.
Программа должна обеспечивать контроль корректности данных и выдачу предупреждения в случае, если
не полностью представлены данные, необходимые для расчета.
Порядок действий:
1. Выбор метода для расчета.
В библиотеке встроенных функций Visual Basic есть финансово-математическая функция для расчета
величины накопленной стоимости FV, которая имеет синтаксис:
FV(Ставка, Кпер, Плата [, Нз [, Тип] ] )
Аргументы функции представлены в следующей таблице:
Ставка Процентная ставка за период
Кпер Количество периодов платежей (срок заключения договора)
Плата Величина постоянных выплат в каждом из периодов
Нз Величина начального вклада
Тип Тип указывает, когда делаются платежи – в начале (1) или в конце (0) периода
2. Разработка интерфейса пользователя
Создать новый проект и
поместить на форму управляющие
элементы:
Значения свойства Caption
элементов управления установить в
соответствии с рисунком.
Значения свойств элементов
управления, которые определяют
внешний вид приложения, установить
по своему усмотрению.
Установить значения свойств объектов в соответствии со следующей таблицей:
Объект Свойство Значение свойства
Форма Name frmNS
Caption Расчет накопленной стоимости
Текстовое окно Name txt1
67
Текстовое окно Name txt2
Текстовое окно Name txt3
Текстовое окно Name txt4
Текстовое окно Name txt5
Текстовое окно Name txt6
Кнопка-переключатель Name opt1
Caption В начале периода
Кнопка-переключатель Name opt2
Caption В конце периода
Командная кнопка Name cmdВычислить
3. Сохранить созданный проект на рабочем диске в папке Зачет под именем NS.
4. Управляющие элементы формы должны выполнять следующие функции:
Form_Load 1) Активизирует окно формы;
2) Очищает все поля ввода данных;
3) Назначает выбор переключателя В начале периода
(oрt1.Value=True).
cmdВычислить_Click 1) Проверяет корректность исходных данных. В случае их отсутствия
отображает соответствующее сообщение;
2) Вычисляет величину накопленной стоимости.
Подробно разобрать программный код, а затем набрать его:
Option Explicit
Dim КоличествоПериодов As Integer
Dim ПроцентнаяСтавка As Integer
Dim ВеличинаВыплаты As Currency
Dim СрокДоговора As Single
Dim НакопленнаяСтоимость As Currency
Dim НачальныйВклад As Currency
Dim ПризнакПлатежа As Integer
Private Sub cmdВычислить_Click()
If txt1.Text = "" Or txt2.Text = "" Or txt3.Text = "" Or txt4.Text = "" Or txt5.Text = "" Then
MsgBox "Нет данных для расчета", vbExclamation, "Расчет накопленной стоимости"
txt1.SetFocus
Exit Sub
End If
НачальныйВклад = Val(txt1.Text)
ПроцентнаяСтавка = Val(txt2.Text)
КоличествоПериодов = Val(txt3.Text)
ВеличинаВыплаты = Val(txt4.Text)
СрокДоговора= Val(txt5.Text)
If opt1 = True Then
ПризнакПлатежа = 1
Else
ПризнакПлатежа = 0
End If
СрокДоговора= СрокДоговора / 12
НакопленнаяСтоимость = FV( ПроцентнаяСтавка / 100 / КоличествоПериодов,
КоличествоПериодов * СрокДоговора, ВеличинаВыплаты, -НачальныйВклад,
ПризнакПлатежа )
txt6.Text = Str(НакопленнаяСтоимость)
End Sub
68
Private Sub Form_Load()
txt1.Text = ""
txt2.Text = ""
txt3.Text = ""
txt4.Text = ""
txt5.Text = ""
txt6.Text = ""
opt1.Value = True
End Sub
5. Сохранить проект.
6. Запустить программу на выполнение и проверить корректность ее функционирования. Для проверки
использовать следующие контрольные примеры:
69
17. Практическая работа № 10 (часть 3):
«Программирование финансовых задач. Расчет величины заработной платы»
Постановка задачи
Требуется разработать приложение для расчета заработной платы сотрудников организации. Исходными
данными для расчета являются:
1. Общие нормативные данные:
• ставка подоходного налога (%);
• ставка профсоюзного взноса (%);
• количество рабочих дней в расчетном периоде;
• сумма, не облагаемая налогом, на 1 ребенка (300 руб.);
• сумма, не облагаемая налогом, на работника (400 руб.).
2. Индивидуальные данные:
• величина оклада;
• количество детей;
• количество отработанных дней в расчетном периоде;
• величина премии;
• прочие удержания.
Порядок действий:
1. Выбор метода для расчета.
Заработная плата = Начисления - Удержания
Начисления = Оклад / Количество рабочих дней * Количество отработанных дней + Премия
Удержания = Подоходный налог + Профсоюзный взнос + Прочие удержания
Подоходный налог = (Начисления - 400 – 300 * Количество детей) * Ставка подоходного налога
Профсоюзный взнос = Начисления * Ставка профсоюзного взноса
2. Разработка базы данных
С целью обеспечения функционирования
программы необходимо на рабочем диске в папке Зачет
с помощью MS Access создать базу данных db1,
содержащую одну таблицу Кадры для записи
индивидуальных данных работников. Структура таблицы
Кадры:
После создания структуры таблицы ее необходимо заполнить данными:
Преобразовать созданную базу данных в формат Access 97 для согласования с версией Visual Basic 6.0.
Для этого необходимо выполнить следующие действия:
• В окне db1: база данных (формат Access 2002) выполнить команды меню: Сервис,
Служебные программы, Преобразовать базу данных, в формат Access 97;
• Новую версию базы данных сохранить на рабочем диске под именем Финансы.
70
3. Разработка интерфейса пользователя
Создать новый проект и
поместить на форму
управляющие элементы:
Значения свойства
Caption элементов
управления установить в
соответствии с рисунком.
Значения свойств
элементов управления, которые
определяют внешний вид
приложения, установить по
своему усмотрению.
Установить значения свойств объектов в соответствии со следующей таблицей:
Объект Свойство Значение свойства
Форма Name frmЗарплата
Caption Заработная плата
Name Data1
Caption Выбор сотрудника
Connect Access
DatabaseName Указать путь к базе данных Финансы
Связь с базой данных
(Data)
RecordSource Кадры
Name txt1 – txt23
DataSourse Data1 (для txt1 – txt7, txt13, txt15, txt19)
Текстовые окна
DataField Указать соответствующие поля базы данных
(для txt1 – txt7, txt13, txt15, txt19)
Командная кнопка Name cmdВычислить
4. Сохранить созданный проект на рабочем диске в папке Зачет под именем ЗаработнаяПлата.
5. Управляющие элементы формы должны выполнять следующие функции:
Form_Load 1) Вводятся текущие дата и время в соответствующие текстовые поля.
2) Вводятся нормативные данные в соответствующие текстовые поля.
Data1 Осуществляет чтение данных из базы данных Финансы и заполнение
соответствующих текстовых полей.
Текстовые окна
txt1 – txt7, txt13,
txt15, txt19
1) Отображают значения соответствующих данных из базы данных, а также
результирующих данных. Связь с полями базы данных производится путем
установки значений свойств: DataSourse и DataField.
2) С их помощью может производится коррекция нормативных данных в случае
их изменения.
Подробно разобрать программный код, а затем набрать его:
Option Explicit
Dim Оклад As Currency, Факт As Currency, Премия As Currency
Dim ВсегоНачислено As Currency, КВыдаче As Currency
Dim СтавкаПодоходногоНалога As Single, СтавкаПрофсоюзногоВзноса As Single
Dim КоличествоРабочихДней As Integer, ОтработанныеДни As Integer
Dim КоличествоДетей As Integer
71
Dim ПодоходныйНалог As Currency, ПрофсоюзныйВзнос As Currency
Dim ПрочиеУдержания As Currency, ВсегоУдержано As Currency
Dim Сумма1 As Currency, Сумма2 As Currency
Private Sub cmdВычислить_Click()
txt1.DataField = "Учетный номер"
txt2.DataField = "Фамилия"
txt3.DataField = "Имя"
txt4.DataField = "Отчество"
txt5.DataField = "Должность"
txt6.DataField = "Количество детей"
txt7.DataField = "Отработанные дни"
txt13.DataField = "Оклад"
txt15.DataField = "Премия"
txt19.DataField = "Прочие удержания"
Оклад = Val(txt13.Text)
Премия = Val(txt15.Text)
КоличествоРабочихДней = Val(txt10.Text)
ОтработанныеДни = Val(txt7.Text)
КоличествоДетей = Val(txt6.Text)
СтавкаПодоходногоНалога = Val(txt8.Text)
СтавкаПрофсоюзногоВзноса = Val(txt9.Text)
Сумма1 = Val(txt11.Text)
Сумма2 = Val(txt12.Text)
ПрочиеУдержания = Val(txt19.Text)
If IsNumeric(txt10.Text) = False Then
MsgBox "Ведите количество рабочих дней!", 48, "Ошибка ввода"
ElseIf Val(txt10.Text) < Val(txt7.Text) Then
MsgBox "Количество отработанных дней превышает количество рабочих дней!", 48,
"Ошибка ввода"
Else
Факт = Оклад / КоличествоРабочихДней * ОтработанныеДни
txt14.Text = Str(Format(Факт, "0.00"))
ПодоходныйНалог = (Факт + Премия - Сумма2 - Сумма1 * КоличествоДетей) *
СтавкаПодоходногоНалога / 100
txt17.Text = Str(Format(ПодоходныйНалог, "0.00"))
ПрофсоюзныйВзнос = (Факт + Премия) * СтавкаПрофсоюзногоВзноса / 100
txt18.Text = Str(Format(ПрофсоюзныйВзнос, "0.00"))
ВсегоУдержано = ПодоходныйНалог + ПрофсоюзныйВзнос + ПрочиеУдержания
txt20.Text = Str(Format(ВсегоУдержано, "0.00"))
ВсегоНачислено = Факт + Премия
txt16.Text = Str(Format(ВсегоНачислено, "0.00"))
КВыдаче = ВсегоНачислено - ВсегоУдержано
txt21.Text = Str(Format(КВыдаче, "0.00"))
End If
End Sub
Private Sub Data1_Validate(Action As Integer, Save As Integer)
' Выбор записи в базе данных
txt10.Text = ""
txt14.Text = ""
72
txt16.Text = ""
txt17.Text = ""
txt18.Text = ""
txt20.Text = ""
txt21.Text = ""
End Sub
Private Sub Form_Load()
txt10.Text = ""
txt14.Text = ""
txt16.Text = ""
txt17.Text = ""
txt18.Text = ""
txt20.Text = ""
txt21.Text = ""
txt8.Text = Str(13)
txt9.Text = Str(1)
txt11.Text = Str(300)
txt12.Text = Str(400)
txt22.Text = Date
txt23.Text = Time
End Sub
6. Сохранить проект.
7. Запустить программу на выполнение и проверить корректность ее функционирования. Для проверки
использовать следующие контрольные примеры:
73
74
18. Практическая работа № 10 (часть 4):
«Разработка стартовой формы»
Постановка задачи
Разработанные ранее программы никак не связаны между собой и функционируют автономно. Поставим
задачу: создать для программ проекта управляющую форму с меню, при помощи которого будут выбираться
приложения для расчета амортизации, накопленной стоимости и заработной платы. Эта форма должна быть
стартовой, а меню должно выполнять следующие функции:
• вызов программы расчета амортизации;
• вызов программы расчета накопленной стоимости;
• вызов программы расчета заработной платы;
• размещение форм программ каскадом или сверху вниз внутри стартовой формы;
• выход.
Внешний вид стартовой формы и состав меню изображены на рисунках:
Порядок действий:
1. Открыть проект Заработная плата, созданный ранее, и добавить в него новую форму с помощью
команды Project /Add MDI Form (Проект/Добавить MDI форму).
2. Свойству Name MDI формы установить значение frmФинансовыеРасчеты, а свойству
Caption – Программа финансовых расчетов.
3. C помощью команды Project/Add Form
(Проект/Добавить форму) добавить другие
формы проекта (NS.frm и Амортизация.frm).
Окно Project Explorer должно иметь вид,
представленный на рисунке:
4. Свойству MDIChild форм f rmNS,
frmЗарплата и frmАмортизация установить
значение – True.
5. В окне Project Explorer выделить
форму frmФинансовыеРасчеты. Выполнить
команду Project /Project Propert ies
(Проект/Свойства проекта).
6. В открывшемся диалоговом окне
Project Propert ies выбрать вкладку General (см.
рис.) :
7. В окне Startup Object (Стартовый
объект) раскрыть список и выбрать из него
frmФинансовыеРасчеты (см. рис.) :
После такой установки эта форма проекта будет
стартовой.
75
8. Открыть форму ФинансовыеРасчеты.
9. Выбрать команду Tools/Menu Editor
(Отладка/Редактор). Откроется диалоговое окно
Menu Editor (Редактор меню) :
10. В редакторе создать меню, указав следующие данные (для перехода к следующему пункту
использовать кнопку Next):
Название (Caption) Уровень ( ! " ) Имя (Name)
Выбор программы 1 mnuProg
Накопленная стоимость 2 itmStoimost
Амортизация 2 itmAmort
Заработная плата 2 itmZarplata
Окно 1 mnuWindow
Каскад 2 itmCascade
Сверху вниз 2 ItmHor izontal
Выход 1 mnuExit
В результате меню должно иметь вид:
11. Сохранить форму в папке Зачет под именем Финансы.
12. Открыть окно кода и для процедур обработки событий меню записать следующий код:
Private Sub itmStoimost_Click()
Dim NewForm As New frmNS
Load NewForm
NewForm.Show
End Sub
Private Sub itmAmort_Click()
Dim NewForm As New frmАмортизация
Load NewForm
NewForm.Show
End Sub
76
Private Sub itmZarplata_Click()
Dim NewForm As New frmЗарплата
Load NewForm
NewForm.Show
End Sub
Private Sub itmCascade_Click()
Arrange vbCascade
End Sub
Private Sub itmHorizontal_Click()
Arrange vbTileHorizontal
End Sub
Private Sub mnuExit_Click()
End
End Sub
13. Сохранить проект в папке Зачет под именем Финансы.
14. Запустить проект на выполнение. Первой должна активизироваться стартовая форма.
15. Проверить функционирование всего проекта.
16. Произвести трансляцию проекта в исполняемый exe-файл с именем Финансы.
17. Закрыть среду разработки программ Visual Basic.
18. Запустить на выполнение файл Финансы.exe и убедиться, что он работает автономно, как любые
другие Windows-приложения.
77
19. Практическая работа № 11:
«Графика, мультимедиа, Интернет»
Постановка задачи
Создать приложение, позволяющее познакомиться с продукцией фиктивной фирмы «Электон». Те, кто
занимается бизнесом, могут без особых усилий расширить эту программу, создав комплексную графическую
оболочку для ввода заказов. (Подобные графические инструменты очень популярны в WWW).
Приложение должно состоять из двух форм.
Форма 1 – электронная заставка фирмы. Она выглядит следующим образом:
На форме кроме известных вам объектов добавлено графическое оформление, анимация и возможность
выхода в Internet для просмотра сайта фирмы. Щелчок по кнопке Продолжить вызовет загрузку Формы 2,
которая позволит познакомиться с продукцией фирмы.
Форма 2 должна иметь вид, представленный на следующих трех рисунках (в зависимости от того какой
тип компьютера выбирается):
78
Порядок действий:
1. Для того чтобы представить, как работает приложение, запустить файл
R:\Document\VB\Shop.exe.
2. Расположить на экранной форме 1 три метки и три командные кнопки в соответствии с рисунком.
3. Установить значение свойства Caption для этих объектов и формы в соответствии с рисунком.
4. Установить для кнопок следующие значения свойства Name: cmdСайт, cmdВыход,
cmdПродолжить (соответственно).
5. Установить для формы значение свойства Name – f rm1.
6. В соответствии с рисунком добавить графические объекты на Форму 1, используя инструменты
Line (Отрезок) и Shape (Фигура).
В Visual Basic есть три основных способа использовать графику:
• Не входя в Visual Basic, в каком-нибудь графическом редакторе вы можете нарисовать то, что вам
нужно, или найти на диске файл с подходящим рисунком и поместить его на форме или графическом окне (этот
способ многократно использовался в предыдущих практических работах и будет использован в данной);
• Форма, Picture Box и некоторые другие объекты обладают графическими методами, которые
позволяют рисовать на объекте точки, отрезки, прямоугольники, окружности, эллипсы, дуги и секторы;
• В окне инструментов Toolbox имеются два элемента управления: Line (Отрезок) и Shape
(Фигура). Если их на этапе проектирования поместить на форму и придать им нужные свойства, то можно
получить различные рисунки без программирования в отличие от предыдущего способа.
Графические объекты Line ( Отрезок ) и Shape (Фигура)
Объект Line (Отрезок) используют для создания прямой линии на форме. Внешний вид
линии определяется с помощью свойств, наиболее важными из которых являются BorderWidth
(Толщина), BorderStyle (Тип линии), BorderColor (Цвет) и Visible (Видимость).
Объект Shape (Фигура) используется для создания прямоугольников, прямоугольников со
скругленными углами, квадратов, квадратов со скругленными углами, овалов и окружностей на форме.
Важнейшим свойством объекта является свойство Shape, контролирующее вид изображения.
Другими важными свойствами объекта являются FillColor (Цвет заливки), FillStyle (Тип заливки),
BorderColor (Цвет контура) и Visible (Видимость).
7. Установить свойства графических объектов в соответствии с таблицей:
Объект Имя объекта по
умолчанию (значение
свойства Name)
Свойство Значение свойства
Линия Line1 BorderWidth (Толщина) 5
BorderColor (Цвет) Синий
Shape (Фигура) 0 – Rectangle (Прямоугольник)
FillColor (Цвет заливки) Оранжевый
FillStyle (Тип заливки) 6 – Cross (Крест)
Фигура Shape1
BorderColor (Цвет контура) Оранжевый
79
Shape (Фигура) 0 –Rounded rectangle (Прямоугольник
со скругленными углами)
FillColor (Цвет заливки) Голубой
FillStyle (Тип заливки) 6 – Cross (Крест)
Фигура Shape2
BorderColor (Цвет контура) Голубой
8. Провести подготовительные работы. Установить дополнительные элементы управления в окне
ToolBox.
В меню Project выбрать команду Components и на вкладке Сontrols установить флажки у
следующих компонентов: Microsoft Windows Common Controls 2 6.0 и Microsoft Internet
Controls.
В окне ToolBox появятся дополнительные элементы:
– Animation (окно просмотра видеоклипов)
– WebBrowser (обозреватель для подключения к Интернету и просмотра Web-страниц)
9. Расположить элементы на форме. Оставить свойства, установленные по умолчанию.
10. Составить программный код для формы 1:
Private Sub cmdВыход_Click()
… ′ выход
End Sub
Private Sub cmdПродолжить_Click()
… ′ показ Формы 2
End Sub
Private Sub cmdСайт_Click() ′ просмотр сайта
WebBrowser1.Visible = True
WebBrowser1.Navigate "www.electon.ru"
End Sub
Private Sub Form_Load() ′ просмотр видеоклипа происходит при загрузке формы
ИмяФайла$ = "…\FINDCOMP.AVI" ′ полный путь к файлу (следует найти файл
на компьютере)
Animation1.Open ИмяФайла$
Animation1.Play
End Sub
11. Расположить на экранной Форме 2 следующие объекты: одну командную кнопку, одну метку, два
окна изображения, одну рамку, три кнопки-переключателя и одно комбинированное окно в соответствии с
рисунком.
12. Установить значения свойств объектов для Формы 2 в соответствии со следующей таблицей:
Объект Свойство Значение свойства
Форма Name frm2
Caption Вы можете заказать следующее оборудование
Name Cmb1
Text Откройте список
Комбинированное окно
List Корпус, Монитор, Принтер, Сканер, Клавиатура,
Мышь и Джойстик
Кнопка-переключатель Name OptPC
Кнопка-переключатель Name OptNb
Кнопка-переключатель Name OptKpc
Командная кнопка Name cmdВыход
80
13. Составить программный код для Формы 2:
Private Sub Cmb1_Click()
Select Case Cmb1.ListIndex
Case 0
Img2.Picture = LoadPicture("…\Корпус.bmp") ′ полный путь к файлу
Корпус.bmp
Case 1
… ′ загрузка файла Монитор.bmp
Case 2
… ′ загрузка файла Принтер.bmp
Case 3
… ′ загрузка файла Сканер.bmp
Case 4
… ′ загрузка файла Клавиатура.bmp
Case 5
… ′ загрузка файла МД.bmp
Case 6
… ′ загрузка файла Колонки.bmp
End Select
End Sub
Private Sub cmdВыход_Click()
… ′ показ Формы 1
… ′ выгрузка Формы 2
End Sub
Private Sub OptKpc_Click()
lblPC.Visible = False
Cmb1.Visible = False
Img2.Visible = False
… ′ загрузка файла Kpc.jpg
End Sub
Private Sub OptNb_Click()
lblPC.Visible = False
Cmb1.Visible = False
Img2.Visible = False
… ′ загрузка файла Nb.bmp
End Sub
Private Sub OptPC_Click()
lblPC.Visible = True
Cmb1.Visible = True
… ′ загрузка файла PC.bmp
End Sub
14. Сохранить проект в папке Shop.
15. Запустить проект на выполнение.
16. Проверить функционирование всего проекта.
81
20. Программа курса
Данный курс базируется на знаниях и навыках, полученных студентами при изучении дисциплины
«Информатика».
20.1. Введение
Цели и задачи курса
Основной целью курса является:
• развитие алгоритмического мышления и освоение основ алгоритмизации;
• изучение среды разработки программ
• знакомство с основами программирования на языке объектно-ориентированного программирования
Visual Basic.
За время изучения курса студент должен приобрести:
• знания основных типов алгоритмов;
• знания основ программирования;
• умение вводить исходные данные в программу и интерпретировать результаты ее работы;
• умение использовать стандартное программное обеспечение в своей профессиональной деятельности.
В процессе обучения используется текущий и рубежный контроль: изучение каждой темы завершается
выполнением контрольного практического задания.
Программное обеспечение курса
• Операционная система Windows 98 и выше;
• Среда программирования MS Visual Basic 6.0 и выше;
• Система управления базами данных MS Access 97 и выше.
Литература
Основная литература
1. Волчёнков Н.Г. Программирование на Visual Basic 6: В 3-х ч. Часть 1. – М.: ИНФРА-М, 2000.
2. Волчёнков Н.Г. Программирование на Visual Basic 6: В 3-х ч. Часть 2. – М.: ИНФРА-М, 2000.
3. С.Н.Лукин. Visual Basic. Самоучитель для начинающих. – М.: Диалог-МИФИ, 2001.
4. Назаров С.В., Мельников П.П. Программирование на MS Visual Basic: Учеб. пособие/Под ред.
С.В. Назарова. – М.: Финансы и статистика, 2001.
Дополнительная литература
1. Microsoft Visual Basic 5. Шаг за шагом: Практ. пособ./Пер. с англ. – М.: Издательство ЭКОМ. Изд. 2-е,
исправленное. 1998.
2. Глушаков С.В., Сурядный С.А. Программирование на Visual Basic 6.0: Учебный курс. – Харьков:
Фолио, 2002.
Адреса электронных учебных изданий
1. http://www.vbstreets.ru/
2. http://www.dts.ru/
3. http://vb.hut.ru/vb/
4. http://mtu-net.ru/sharig/
5. http://vbstreets.narod.ru/book.htm
6. http://vbstreets.narod.ru/
7. http:/rusproject.narod.ru/
20.2. Тематический план
Распределение часов
Наименование разделов и тем Всего аудит. Из них
часов Лекции Практ. занятия
Самост.
работа
1 2 3 4 5 6
1. Этапы решения задач 4 2 2 2
2. Среда программирования Visual Basic 4 2 2
3. Основные понятия Visual Basic 4 2 2 2
4. Программы линейной структуры 6 2 4 4
5. Программирование ветвлений 8 4 4 4
6. Программирование циклов 12 6 6 4
7. Обработка массивов данных 10 6 4 4
82
8. Программирование финансовых задач 8 4 4
9. Графика, мультимедиа, Интернет 4 2 2
Итого за семестр 60 30 30 20
Тема 1. Этапы решения задач
Этапы создания приложения: постановка задачи, разработка интерфейса – окна приложения, выбор
методики решения задачи, алгоритмизация и программирование, отладка программы, сохранение проекта,
компиляция. Виды трансляторов. Типы алгоритмов. Свойства алгоритма. Виды ошибок: синтаксические и
логические. Методы устранения ошибок. Назначение контрольного примера.
Тема 2. Среда программирования Visual Basic
Запуск Visual Basic. Элементы окна программы и их назначение: меню программы, окно формы, окно
проекта, окно инструментов, окно свойств объекта, окно программного кода, окно расположения формы.
Команды меню, сочетания клавиш и кнопки панели инструментов, отвечающие за настройку интерфейса, запуск
и остановку программы.
Тема 3. Основные понятия Visual Basic
Visual Basic – язык объектно-ориентированного и событийно-управляемого программирования. Объекты
программирования, свойства объектов и их значения. Объекты программирования: форма, метка, текстовое поле,
командная кнопка, окно изображения, список дисков, список директорий, список файлов, кнопки-переключатели,
контрольные индикаторы, рамки, окно списка, комбинированное окно, отрезок, фигура, окно просмотра
видеоклипов, обозреватель. Привязка программного кода к объектам – понятие событийной процедуры. Виды
событий. Синтаксис записи событийной процедуры. Понятие оператора, метода. Понятие переменной и
константы. Типы данных. Имена переменных и констант.
Тема 4. Программы линейной структуры
Оператор присваивания. Использование оператора присваивания для ввода значения из текстового поля в
переменную, для вычисления значения арифметического выражения, для вывода значения в текстовое поле, для
изменения значения свойства объекта. Оператор завершения программы. Разработка приложения для
выполнения простого арифметического расчета. Разработка приложения просмотра графических файлов.
Объявление переменных в программе: оператор определения переменной, объявление типа переменной с
помощью суффикса, оператор объявления типа переменной. Синтаксис объявления констант. Область видимости
переменной. Модули кода. Оператор загрузки формы, оператор выгрузки формы, оператор вызова процедуры.
Разработка приложения из двух форм и модуля кода, выполняющего расчет стоимости покупок. Арифметические
операции и выражения. Встроенные математические и финансовые функции. Функции преобразования
текстового аргумента в числовой и обратно. Вычисление простых арифметических выражений. Разработка
приложения, имитирующего работу калькулятора. Вычисление величины банковского кредита, периодического
взноса в банк при возврате кредита, величины банковской процентной ставки. Ввод и вывод данных с
использованием системных функций. Синтаксис системных функций для ввода и вывода данных.
Тема 5. Программирование ветвлений
Условные (логические) выражения. Операции отношения. Логические операции. Синтаксис условного
оператора однострочной и многострочной форм. Использование условного оператора для проверки корректности
ввода данных и для запроса ввода пароля. Синтаксис оператора множественного выбора. Разработка приложения
для вычисления заработной платы.
Тема 6. Программирование циклов
Понятие цикла. Бесконечный цикл. Типы циклов: циклы со счетчиком и циклы с условием. Синтаксис
оператора цикла со счетчиком. Вычисление суммы натуральных чисел. Вычисление факториала. Вычисление
среднего арифметического введенных с клавиатуры чисел (количество чисел заранее известно). Вложенные
циклы. Решение задачи поиска всех возможных способов размена определенной суммы денег. Операторы цикла
с условием: операторы с проверкой условия в начале цикла и операторы с проверкой условия в конце цикла.
Синтаксис операторов цикла с условием. Вычисление среднего арифметического введенных с клавиатуры чисел,
при условии, что количество чисел заранее не известно.
Тема 7. Обработка массивов данных
Понятие массива. Одномерный массив. Двумерный массив. Понятие индекса. Объявление массивов в
программе. Массивы с фиксированной границей. Динамические массивы. Использование оператора цикла при
обработке массивов. Ввод данных в элементы массива двумя способами: заполнение элементов массива
случайными числами и ввод данных с клавиатуры с использованием системной функции. Вывод значений
элементов массива в текстовое окно. Использование оператора цикла и условного оператора при обработке
массивов. Поиск максимального и минимального по значению элемента массива и его индекса. Поиск среднего
арифметического значения элементов массива. Поиск количества нулевых элементов в массиве. Обмен
значениями двух переменных. Сортировка элементов массива по возрастанию/убыванию их значений методом
«установки». Решение задачи линейного программирования.
Тема 8. Программирование финансовых задач
Разработка приложения вычисления амортизации двумя методами: методом равномерной амортизации и
методом кратного учета амортизации. Разработка приложения расчета накопленной стоимости. Разработка
приложения расчета величины заработной платы с выборкой информации из заранее созданной базы данных.
Создание управляющей формы с меню, обеспечивающим выбор приложения для расчета амортизации,
83
накопленной стоимости или заработной платы, выбор варианта размещения форм приложений внутри стартовой
формы (каскадом или сверху вниз) и выход из приложения.
Тема 9. Графика, мультимедиа, Интернет
Разработка приложения, знакомящего пользователей с продукцией условной фирмы и содержащего
графическое оформление, анимацию и возможность выхода в Internet для просмотра сайта фирмы.
20.3. Программа компьютерного практикума
1. Практическая работа № 1 (часть 1): «Оболочка системы программирования Visual Basic. Основные
понятия объектно-ориентированного программирования»
2. Практическая работа № 1 (часть 2): «Этапы разработки Windows-приложений в среде
программирования Visual Basic (на примере создания простейшего приложения)»
3. Практическая работа № 2: «Использование объектов файловой системы»
4. Практическая работа № 3 (часть1): «Данные в Visual Basic. Типы данных»
5. Практическая работа № 3 (часть 2): «Проект из двух форм и модуля кода. Область видимости
переменной»
6. Практическая работа № 4: «Арифметические выражения и встроенные функции языка Visual Basic»
7. Практическая работа № 5: «Ввод-вывод данных. Системные функции InputBox и MsgBox»
8. Практическая работа № 6: «Программирование ветвлений»
9. Практическая работа № 7 (часть 1): «Программирование повторений (циклы со счетчиком)»
10. Практическая работа № 7 (часть 2): «Программирование повторений (циклы с условием)»
11. Практическая работа № 8 (часть 1): «Одномерные массивы (способы заполнения и обработка)»
12. Практическая работа № 8 (часть 2): «Обмен значениями. Сортировка элементов массива»
13. Практическая работа № 9: «Двумерные массивы (решение задачи линейного программирования)»
14. Практическая работа № 10 (часть 1): «Программирование финансовых задач. Расчет амортизации»
15. Практическая работа № 10 (часть 2): «Программирование финансовых задач. Расчет накопленной
стоимости»
16. Практическая работа № 10 (часть 3): «Программирование финансовых задач. Расчет величины
заработной платы»
17. Практическая работа № 10 (часть 4): «Разработка стартовой формы»
18. Практическая работа № 11: «Графика, мультимедиа, Интернет»
20.4. Вопросы к экзамену
1. Этапы решения задач.
2. Алгоритм. Свойства алгоритма.
3. Способы записи алгоритмов.
4. Виды алгоритмов: линейный, циклический, разветвляющийся.
5. Определение программы.
6. Виды ошибок: синтаксические и логические.
7. Виды трансляторов.
8. Понятие системы программирования.
9. Элементы окна Visual Basic и их назначение.
10. Понятие событийной процедуры. Синтаксис записи событийной процедуры.
11. Понятие оператора, метода.
12. Переменные и константы. Имена переменных и констант.
13. Типы данных.
14. Объекты и их свойства.
15. Арифметические функции.
16. Арифметические выражения.
17. Логические операции.
18. Логические выражения.
19. Финансовые функции.
20. Функция преобразования числового значения в символьную строку.
21. Функция преобразования символьной строки в числовое значение.
22. Оператор присваивания.
23. Операторы объявления переменных и констант.
24. Системная функция для ввода данных с клавиатуры.
25. Системная функция вывода данных.
26. Условный оператор.
27. Оператор множественного выбора.
28. Операторы цикла: со счетчиком и с условием.
29. Обмен значениями двух переменных.
30. Понятие массива. Элементы массива и их индексы. Одномерные и двумерные массивы.
84
21. Вопросы для тестирования по курсу
1. Системы программирования:
1) обеспечивают непосредственное решение пользовательских задач
2) позволяют создавать новые программы на языках программирования
3) обеспечивают работу всех аппаратных устройств компьютера и доступ пользователя к ним
4) представляют собой совокупность программ, использующихся для различных операций с документами
5) обеспечивают защиту от компьютерных вирусов
2. Интерпретатор – это:
1) режим взаимодействия пользователя с ПК, при котором каждый запрос пользователя вызывает ответную
реакцию
2) транслятор с языка высокого уровня, обеспечивающий исполнение команды программы сразу после ее
трансляции
3) транслятор с языка высокого уровня, преобразующий в объектный код исходный текст программы
4) устройство ПК, выполняющее арифметические и логические операции над входными данными
5) законченное смысловое выражение на языке программирования
3. Алгоритм – это:
1) перечень правил выполнения определенных действий
2) ориентированный граф, указывающий порядок исполнения некоторого набора команд
3) понятное и точное предписание исполнителю совершить последовательность действий, направленных
на достижение поставленных целей
4) набор команд для компьютера
5) протокол вычислительной сети
4. Суть такого свойства алгоритма как результативность заключается в том, что:
1) алгоритм должен быть разбит на последовательность отдельных шагов
2) записывая алгоритм для конкретного исполнителя, можно использовать лишь те команды, что входят в
систему его команд
3) алгоритм должен обеспечивать решение не одной конкретной задачи, а некоторого класса задач данного
типа
4) при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов,
приведя к определенному результату
5) исполнитель алгоритма не должен принимать решения, не предусмотренные составителем алгоритма
5. Суть такого свойства алгоритма как массовость заключается в том, что:
1) алгоритм должен быть разбит на последовательность отдельных шагов
2) записывая алгоритм для конкретного исполнителя, можно использовать лишь те команды, что входят в
систему его команд
3) алгоритм должен обеспечивать решение не одной конкретной задачи, а некоторого класса задач данного
типа
4) при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов,
приведя к определенному результату
5) исполнитель алгоритма не должен принимать решения, не предусмотренные составителем алгоритма
6. Суть такого свойства алгоритма как дискретность заключается в том, что:
1) алгоритм должен быть разбит на последовательность отдельных шагов
2) записывая алгоритм для конкретного исполнителя, можно использовать лишь те команды, что входят в
систему его команд
3) алгоритм должен обеспечивать решение не одной конкретной задачи, а некоторого класса задач данного
типа
4) при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов,
приведя к определенному результату
5) исполнитель алгоритма не должен принимать решения, не предусмотренные составителем алгоритма
7. Алгоритм называется линейным:
1) если он составлен так, что его выполнение предполагает многократное повторение одних и тех же
действий
2) если ход его выполнения зависит от истинности тех или иных условий
3) если его команды выполняются в порядке их естественного следования друг за другом независимо от
каких-либо условий
4) если он включает в себя вспомогательный алгоритм
8. Алгоритм называется циклическим:
1) если он составлен так, что его выполнение предполагает многократное повторение одних и тех же
действий
2) если ход его выполнения зависит от истинности тех или иных условий
85
3) если его команды выполняются в порядке их естественного следования друг за другом независимо от
каких-либо условий
4) если он включает в себя вспомогательный алгоритм
9. Алгоритм называется разветвляющимся, если:
1) если он составлен так, что его выполнение предполагает многократное повторение одних и тех же
действий
2) если ход его выполнения зависит от истинности тех или иных условий
3) если его команды выполняются в порядке их естественного следования друг за другом независимо от
каких-либо условий
4) если он включает в себя вспомогательный алгоритм
10. Программа – это:
1) протокол взаимодействия компонентов компьютерной сети
2) понятное и точное предписание человеку совершить последовательность действий, направленных на
достижение поставленных целей
3) ориентированный граф, указывающий порядок исполнения команд компьютера
4) алгоритм, записанный на языке программирования
5) набор команд операционной системы компьютера
11. Выберите правильную последовательность этапов решения задачи:
1) Выбор методики решения
2) Постановка задачи
3) Алгоритм
4) Решение задачи с различными исходными данными
5) Отладка программы
6) Программа
12. Ошибки, связанные с неправильной записью конструкций языка программирования, называют:
1) логическими
2) орфографическими
3) математическими
4) синтаксическими
5) методическими
13. Ошибки, допущенные при составлении алгоритма или при выборе численного метода решения задачи,
называют:
1) логическими
2) орфографическими
3) математическими
4) синтаксическими
5) методическими
14. На каком этапе решения задач происходит поиск и устранение синтаксических ошибок:
1) выбор методики решения
2) постановка задачи
3) алгоритм
4) решение задачи с различными исходными данными
5) отладка программы
6) программа
15. Каким из перечисленных свойств не должен обладать алгоритм:
1) дискретность
2) наглядность
3) определенность
4) массовость
5) результативность
6) правильность
16. Отсутствие сообщений компьютера о синтаксических ошибках:
1) есть необходимое и достаточное условие правильности программы
2) есть достаточное условие правильности программы
3) есть необходимое, но недостаточное условие правильности программы
4) не является необходимым условием правильности программы
5) гарантирует правильность программы
17. Массив – это:
1) поименованный набор однотипных данных
2) ограниченная апострофами последовательность любых символов
3) совокупность разнородных данных, описываемых и обрабатываемых как единое целое
86
4) набор однотипных файлов на диске
5) набор переменных, начинающихся с одной буквы
18. Числа в языке VISUAL BASIC различаются:
1) как натуральные и целые
2) как целые и десятичные
3) как натуральные и десятичные
4) как целые и иррациональные
5) как целые и рациональные
19. Сколько раз будут выполнены операторы тела цикла при выполнении следующего фрагмента
программы:
A = 1
S = 0
Do While S < 10
S = S + A
A = A + A ^ 2
Loop
1) 10
2) 3
3) 4
4) 5
5) 1
20. Укажите последовательность команд, в результате выполнения которых значения переменных X и Y
поменяются местами:
1) Y = X : B = X : X = Y
2) B = X : X = Y : Y = X
3) X = Y : Y = X
4) C = X : X = Y : Y = C
5) X = X + Y : Y = X – Y : X = X – Y
21. Оператор организации ввода данных с клавиатуры в системе программирования VISUAL BASIC
записывается с использованием служебного слова:
1) Loop
2) InputBox
3) Print
4) MsgBox
5) Next
22. Дана программа:
If X mod 2 = 0 Then
Print "ДА"
Else
Print "НЕТ"
End If
При каких значениях X будет получен ответ «ДА»:
1) 447
2) 4
3) -15
4) 3
5) –2
6) 632
23. Что произойдет в результате выполнения команды PRINT "3*3="; 3*3:
1) на бумаге будет напечатано 9
2) на форме будет выведено 9
3) на бумаге будет напечатано 3*3=9
4) на форме будет выведено 3*3=9
5) на бумаге будет напечатано 3*3=3*3
6) на форме будет выведено 3*3=3*3
24. В языке VISUAL BASIC не используется служебное слово:
1) THEN
2) BEGIN
3) END
4) STEP
5) IF
87
25. Укажите последовательность команд, в результате выполнения которых будет найдено наибольшее
значение переменных X и Y:
1) MAX = ABS( X – Y ) / 2 + ( X + Y ) / 2 : PRINT MAX
2) IF X > Y THEN MAX = X : PRINT MAX
3) IF X < Y THEN MAX = Y : PRINT MAX
4) IF X > Y THEN MAX = X : PRINT MAX ELSE MAX = Y : PRINT MAX
5) MAX = ABS( X – Y ) / 2 – ( X + Y ) / 2 : PRINT MAX
26. В языке VISUAL BASIC операторы, написанные в одной строке, разделяются:
1) двоеточием
2) точкой с запятой
3) запятой
4) пробелом
5) круглыми скобками
27. Какая из функций возвращает случайное число:
1) ABS
2) EXP
3) INT
4) TAN
5) RND
28. Укажите синтаксически неправильную запись:
1) X = Y * SIN( X ) ^ 2 + 4
2) X = Y * SIN ^ 2 ( X ) + 4
3) X = Y * SIN( X ^ 2 ) + 4
4) X = Y ^ 2 * SIN( X ) + 4
5) X = Y ^ ( 2 * SIN( X ) + 4 )
29. При исполнении программы:
N = 3
S = 0
FOR K = 1 to N
S = S + K ^ 2
NEXT
PRINT S
будет выведено число:
1) 9
2) 27
3) 14
4) 6
5) 10
30. В операторе цикла в языке программирования VISUAL BASIC после служебного слова STEP
указывается:
1) выражение, определяющее начальное значение параметра цикла
2) арифметическое выражение, значение которого определяет величину приращения параметра цикла
3) выражение, определяющее конечное значение параметра цикла
4) логическое выражение, значение которого определяет величину приращения параметра цикла
31. Запись «2000» в языке программирования VISUAL BASIC представляет собой:
1) текстовую константу из набора символов «2000»
2) имя переменной
3) текстовую константу из набора символов 2000
4) число
5) год
32. Какое число будет результатом выполнения программы:
N = 5
P = 1
FOR K = 1 TO N
P = P * K
NEXT
PRINT P
1) 120
2) 15
3) 5
4) 20
88
33. Что появится на экране после запуска программы:
FOR K = 12 TO 1 STEP -3
PRINT
NEXT K
1) 12, 9, 6, 3
2) сообщение об ошибке
3) 12, 8, 4
4) ничего
34. В качестве имени в языке VISUAL BASIC нельзя использовать сочетания:
1) AR
2) BR
3) OR
4) PI
5) WR
35. Какая из перечисленных операций не является логической:
1) AND
2) MOD
3) NOT
4) OR
36. Дана программа:
M = А( 1 )
For k=2 to 8
If M < А(k) Then
M = А(k)
End If
Next
Сколько раз будет исполнен оператор M = A(k) при заданном массиве: 3, 8, 7, 9, 4, 10, 2, 12:
1) 7
2) 8
3) 4
4) 1
37. При исполнении программы:
K = 2
FOR K = 1 TO 10
PRINT K
K = K + 2
NEXT
будут выведены числа:
1) 2, 5, 8, 11
2) 1, 4, 7, 10
3) 2, 5, 8
4) 1, 3, 6, 9
5) 1, 3, 6
38. При выполнении программы:
A = -5
B = -3
PRINT ABS( A – B ) / 2 + ABS( A ) * B ^ 2
будет выведено число:
1) 226
2) 229
3) -44
4) 46
5) 49
6) –29
39. Дана задача:
Выберите фрагмент программы для вычисления значения переменной Y:
1) IF X < 2 THEN Y = ABS( X ) : Y = X ^ 2
2) IF X < 2 THEN Y = X ^ 2 : Y = ABS( X )
   ≥
<
=
, 2
, 2
x2 если x
x если x
y
89
3) IF X < 2 THEN Y = ABS( X ) ELSE Y = X ^ 2
4) IF X < 2 THEN Y = X ^ 2 ELSE Y = ABS( X )
40. Дана задача:
Выберите фрагмент программы для вычисления значения переменной S:
1) FOR J = 1 TO 5
S = 0
S = S + J + 1 / J
NEXT
2) FOR J = 1 TO 5
S = 0
S = S + ( J + 1 ) / J
NEXT
3) S = 0
FOR J = 1 TO 5
S = ( J + 1) / J
NEXT
4) S = 0
FOR J = 1 TO 5
S = S + ( J + 1 ) / J
NEXT
5) S = 0
FOR J = 1 TO 5
S = S + J + 1 / J
NEXT
41. Дана программа:
S = 0
For k = 1 to 7 Step 2
If А( k ) > 0 Then
S = S + 1
End If
Next
Какое значение примет переменная S после выполнения программы при заданном массиве: 0, 1, 0, 1, 0, 1, 0?
1) 7
2) 4
3) 3
4) 2
5) 0
42. Дана программа:
S = 0
For i = 1 to 10
If A( i ) > 0 Then S = S + 1
Next
Print S
Какой алгоритм реализует данная программа?
1) поиск максимума
2) поиск минимума
3) подсчет количества ненулевых элементов массива
4) подсчет количества положительных элементов массива
5) подсчет суммы ненулевых элементов массива
6) подсчет суммы положительных элементов массива
43. Дана программа:
S = 0
For i = 1 to 10
If A( i ) <> 0 Then S = S + A( i )
Next
Print S
Какой алгоритм реализует данная программа?
1) поиск максимума
2) поиск минимума
5
6
4
5
3
4
2
s = 2 + 3 + + +
90
3) подсчет количества ненулевых элементов массива
4) подсчет количества положительных элементов массива
5) подсчет суммы ненулевых элементов массива
6) подсчет суммы положительных элементов массива
44. Дана программа:
S = A( 1 )
For i = 2 to 10
If A( i ) > S Then S = A( i )
Next
Print S
Какой алгоритм реализует данная программа?
1) поиск максимума
2) поиск минимума
3) подсчет количества ненулевых элементов массива
4) подсчет количества положительных элементов массива
5) подсчет суммы ненулевых элементов массива
6) подсчет суммы положительных элементов массива
45. К условным операторам относятся:
1) IF … THEN … ELSE
2) FOR … NEXT
3) WHILE … WEND
4) SELECT CASE
5) DO UNTIL … LOOP
46. К операторам цикла относятся:
1) IF … THEN … ELSE
2) FOR … NEXT
3) WHILE … WEND
4) SELECT CASE
5) DO UNTIL … LOOP
47. Значение какого из перечисленных свойств указывается в программе при обращении к объекту:
1) CAPTION
2) ALIGNMENT
3) TEXT
4) NAME
5) ENABLED
48. Значение какого свойства выводится в строку заголовка формы:
1) CAPTION
2) ALIGNMENT
3) TEXT
4) NAME
5) MULTILINE
49. Значение какого свойства определяет вариант выравнивания текста в метке:
1) CAPTION
2) ALIGNMENT
3) TEXT
4) NAME
5) MULTILINE
50. Значение какого свойства разрешает (или запрещает) вывод нескольких строк в текстовом окне:
1) CAPTION
2) ALIGNMENT
3) TEXT
4) NAME
5) MULTILINE
51. Какой тип данных имеет значение текстового окна:
1) целое число
2) логическая величина
3) строка символов
4) дата
5) десятичное число
91
52. Тип данных для объявления символьных строк:
1) INTEGER
2) BOOLEAN
3) SINGLE
4) STRING
5) CURRENCY
6) DATE
53. Тип данных для объявления чисел в денежном формате:
1) INTEGER
2) BOOLEAN
3) SINGLE
4) STRING
5) CURRENCY
6) DATE
54. Тип данных для объявления целых чисел:
1) INTEGER
2) BOOLEAN
3) SINGLE
4) STRING
5) CURRENCY
6) DATE
55. Функция, преобразующая строку символов в числовое значение:
1) ABS
2) INT
3) FIX
4) RND
5) STR
6) VAL
56. Функция, преобразующая числовое значение в символьную строку:
1) ABS
2) INT
3) FIX
4) RND
5) STR
6) VAL
57. Какие из перечисленных имен являются:
а) именами операций
б) именами функций
1) AND
2) RND
3) NOT
4) MOD
5) STR
6) ABS
7) OR
58. Какие из перечисленных имен являются:
а) именами свойств объектов
б) именами типов данных
1) TEXT
2) INTEGER
3) DATE
4) NAME
5) CAPTION
6) STRING
7) SINGLE
92
22. Контрольные задания по курсу
Задание 1
Вычислить сумму, которая удерживается с работника в счет погашения потребительского кредита и
кредита на жилищное строительство. Окно приложения может иметь следующий вид:
В окно «Начислено» вводится сумма, которая начислена работнику. С помощью кнопок-переключателей
указываются виды кредита, по которым имеется задолженность. В текстовом окне «Удержано» должна
выдаваться сумма, которая удерживается с работника в счет погашения кредита. Она вычисляется следующим
образом:
• если имеется задолженность по обоим видам кредита, то с работника удерживается 20% от
начисленной суммы;
• если имеется задолженность по какому-либо одному кредиту, то с работника удерживается 10% от
начисленной суммы;
• если нет задолженности по кредитам, то в окне «Удержано» должно выводиться сообщение «Нет
удержаний».
Задание 2
Известны стоимость покупки, наличие или отсутствие первоначаьного взноса и срок выплаты кредита.
Определить величину скидки, которая предоставляется покупателю. Величина скидки вычисляется следующим
образом:
• если первоначального взноса нет, то сумма скидки равна нулю;
• если стоимость покупки больше 10000 и срок выплаты кредита равен 6 месяцам, то сумма скидки
составляет 10% от стоимости покупки;
• во всех остальных случаях сумма скидки составляет 5% от стоимости покупки.
Окно приложения может иметь следующий вид:
93
Задание 3
Выполнить проект, который определяет, является ли человек пенсионером. В России пенсия назначается,
если человек мужчина и ему больше 60 лет, или этот человек женщина и ей больше 55 лет, или если стаж по
выслуге лет у человека превысил 25 лет. Окно приложения может иметь следующий вид:
Задание 4
Оценка студенту выставляется в зависимости от количества набранных баллов в соответствии с таблицей:
Сумма баллов 8 – 10 6 – 7 4 – 5 Менее 4
Оценка отлично хорошо удовлетворительно неудовлетворительно
Разработать приложение, которое позволит студенту ввести количество баллов с помощью окна InputBox
и выдаст ему оценку в окне MsgBox в соответствии с таблицей.
Задание 5
Вычислить:
1 - e- x , при x<0
Y= 1 + p , при x=0
1/(x + p) , при 0<x<1
1 + pSinx , при x>=1
Ввод данных осуществить с помощью окна InputBox, а результат напечатать на форме.
Задание 6
Клиент поместил в банк S рублей. За год банк увеличивает сумму помещенных в него денег на
P процентов. Написать программу, которая определит, за какой срок сумма вложенных денег увеличиться не
менее чем в K раз. Окно приложения может иметь следующий вид:
94
Задание 7
Клиент поместил в банк S рублей. За год банк увеличивает сумму помещенных в него денег на P %.
Написать программу, которая определит, какова станет сумма вклада через N лет. Окно приложения может иметь
следующий вид:
Задание 8
В одномерном массиве произвольных чисел A(10) поменять местами наибольший и наименьший
элементы. Ввод элементов массива осуществить с клавиатуры. Исходный и результирующий массив распечатать
на форме.
Задание 9
Заполнить одномерный массив B(15) целыми случайными числами в диапазоне [-10;10]. Положительные
элементы массива уменьшить вдвое, а отрицательные заменить значениями их индексов. Исходный и
результирующий массив распечатать на форме.
Задание 10
В двумерном массиве произвольных чисел C(4,4) вычислить сумму элементов, сумма индексов которых
равна 4. Ввод элементов массива осуществить с клавиатуры. Исходный и результирующий массив распечатать на
форме.
Задание 11
Заполнить двумерный массив D(4,7) случайными числами в диапазоне [-5;5]. Исходный массив
распечатать на форме. Вычислить среднее арифметическое положительных элементов массива и количество
элементов, равных нулю. Результат вычислений вывести в окне MsgBox.
95
23. Приложения
23.1. Таблица значков инструментов окна Toolbox
Значок Название Значок Название Значок Название
Указатель
(Pointer)
Графическое окно
(PictureBox)
Метка
(Label)
Текстовое поле
(TextBox)
Рамка
(Frame)
Командная кнопка
(Command Button)
Контрольный
индикатор или
Флажок
(CheckBox)
Кнопка-переключатель
(Option Button)
Комбинированное окно
(ComboBox)
Окно списка
(ListBox)
Горизонтальная полоса
прокрутки
(HScrollBar)
Вертикальная полоса
прокрутки
(VScrollBar)
Таймер
(Timer)
Список дисков
(Drive ListBox)
Список директорий
(Directory List)
Список файлов
(FileListBox)
Фигура
(Shape)
Линия
(Line)
Изображение
(Image)
Данные
(Data)
OLE-объект
(OLE Container)
23.2. Основные объекты, свойства, методы и события Visual Basic
Объекты
CheckBox – управляющий элемент. Поле флажка позволяет отображать и задавать логическое значение.
ClipBoard – объект. Предоставляет доступ к буферу обмена Windows.
СоmbоВох – управляющий элемент. Комбинированное поле, объединяющее в себе текстовое поле и
связанное с ним поле списка.
Data – управляющий элемент. Предназначен для предоставления доступа к базе данных посредством
объекта Recordset одного из трех типов.
DataObjectFiles – коллекция. Коллекция строк с именами файлов, используемых объектом DataObject.
FileListBox – управляющий элемент. Отображает список файлов текущего каталога и позволяет выбрать
один или несколько файлов.
Font – объект. Содержит информацию, необходимую для определения внешнего вида текста, выводимого
на экран или принтер.
Form – объект, Forms – коллекция. Окно или диалоговое окно, содержащее рабочую поверхность
пользователя. Коллекция форм состоит из всех загруженных форм приложения.
Frame – управляющий элемент. Рамка Frame является контейнером, в который можно поместить другие
управляющие элементы.
HScrollBar, VScrollBar – управляющие элементы. Полосы прокрутки позволяют отображать и вводить
числовые значения из заданного диапазона без помощи клавиатуры.
Image – управляющий элемент. Графический образ служит для отображения на экране точечного
рисунка или значка.
Label – управляющий элемент. Этикетка для отображения текстовой надписи.
Line – управляющий элемент. Отображает линию.
ListBox – управляющий элемент. Поле списка позволяет отображать элементы списка и выбирать их.
MDIForm – объект. Материнская MDI-форма может содержать в себе дочерние формы (документы).
Menu – управляющий элемент. Элемент меню.
OLE – управляющий элемент. OLE-контейнер, способный заключать в себе связываемые и внедряемые
объекты.
OptionButton – управляющий элемент. Позиция переключателя. Два и более элементов этого вида,
помещенных в один контейнер, составляют переключатель на соответствующее число позиций.
Picture – объект. Позволяет манипулировать графикой в различных форматах.
96
PictureBox – управляющий элемент. Отображает на экране точечные рисунки, загруженные из графических
файлов различных форматов, позволяет рисовать на своей поверхности с помощью графических методов.
Screen – объект. Позволяет манипулировать положением формы на экране, шрифтами, а также указателем
мыши за пределами формы.
Shape – управляющий элемент. Фигура служит для представления на рабочей поверхности объекта
геометрических фигур.
TextBox – управляющий элемент. Отображает и позволяет модифицировать текст.
Timer – управляющий элемент. Генерирует события Timer через заданные промежутки времени.
Свойства
Alignment. Выравнивание текста (0 – влево, 1 – вправо, 2 – по центру).
AutoRedraw. Разрешает или запрещает автоматическое перерисовывание результатов работы графических
методов на поверхности формы или элемента РictureВох.
AutoSize. Разрешает или запрещает автоматическое изменение размеров элемента в соответствии с размерами
его содержимого.
Backcolor, Forecolor. Задают цвета соответственно фона и переднего плана объекта.
BackStyle. Определяет стиль фона объекта UserControl.
BOFAction, EOFAction. Содержит и позволяет задать значение, определяющее вид действия, которое будет
автоматически предпринято при получении свойством BOF или EOF значения True (т.е. при попытке перейти на
позицию до начала или после конца файла).
Bold. Определяет наличие признака начертания "жирный" для объекта Font.
BorderColor. Задает цвет обрамления.
BorderStyle. Задает стиль обрамления (тип границ: 0 – контур отсутствует, 1 – контур одинарной линией).
BorderWidth. Возвращает и позволяет задать значение, определяющее толщину линий обрамления.
Cancel. Содержит и позволяет задать значение, определяющее срабатывание командной кнопки (обычно это
кнопка <Отмена>) при нажатии клавиши [Esc].
Caption. Содержит строковое значение, определяющее надпись на управляющем элементе или объекте.
Changed. Сигнализирует об изменении значения свойства на странице свойств.
Class. Возвращает имя класса, к которому относится внедренный объект. ,
Clipboard. Содержит объект типа Clipboard, позволяющий получить доступ к буферу обмена Windows.
Col, Row. Определяют текущую клетку в сетке или таблице данных.
Cols, Rows. Определяют общее количество столбцов и строк в сетке или таблице данных.
Columns. Определяет количество столбцов в списке.
CurrentX, CurrentY. Содержат пару координат, на которых завершилась работа графического метода или метода,
выводящего символы, который был вызван последним.
Database. Содержит ссылку на объект типа Database, связанный с элементом типа Data.
DatabaseName. Возвращает и позволяет задать полное имя файла или каталога, содержащего базу данных, с
которой связан или должен быть связан элемент типа Data.
DataField. Определяет поле в наборе записей, которое должен отображать данный элемент.
DataSource. Определяет имя элемента типа Data, через который данный управляющий элемент связан с базой
данных.
Default. Разрешает или запрещает срабатывание командной кнопки (обычно это кнопка <ОК>) по нажатию
на клавишу [Enter].
DefauItType (элемент Data). Возвращает и позволяет задать тип источника данных для элемента типа Data.
DragMode. Возвращает и позволяет задать значение, определяющее режим выполнения операций Drag&Drop
(автоматический или ручной).
DrawMode. Возвращает и позволяет задать вид линий для графических элементов и методов объекта.
DrawStyle. Возвращает и позволяет задать стиль линий для графических методов.
DrawWidth. Определяет толщину линий для графических методов объекта.
Enabled. Возвращает и позволяет задать значение, разрешающее или запрещающее объекту реагировать
на события, вызванные действиями пользователя (т.е. доступность или недоступность объекта).
FileName. Возвращает и позволяет задать полное имя файла.
FileNumber. Должно содержать номер файла, присвоенный ему при открытии.
Files. Возвращает коллекцию DataObjectFiles, представляющую собой список имен файлов, которые
используются объектом DataObject.
Fon tBold, FontItalic, Fon tS trikeThru, Fon tUnderline. Определяют атрибуты и признаки начертания шрифта
(полужирный, курсив, зачеркнутый, подчеркнутый).
FontName. Позволяет задать шрифт.
FontSize. Определяет размер шрифта, выбранного для данного объекта.
Height, Width. Определяют размеры объекта или столбцов сетки (высота, ширина).
Icon. Возвращает значок, появляющийся вместо формы при ее минимизации.
Image. Возвращает код доступа к результатам работы графических методов, сохранившимся в памяти.
Interval. Определяет интервал времени (в миллисекундах) между событиями таймера.
97
KeyPreview. Разрешает или запрещает форме перехватывать и предварительно «просматривать» нажатия
клавиш, прежде чем передавать их управляющему элементу, на котором находится фокус клавиатуры.
Left, Top. Определяют расстояния между левой и верхней границами объекта и соответствующими границами
контейнера.
List. Возвращает и позволяет задать содержимое списка, принадлежащего данному управляющему
элементу.
Max, Min. Определяют максимальное и соответственно минимальное значение свойства Value для полос
прокрутки.
MaxLenght. Максимальная длина (По умолчанию это свойство имеет значение 0, т.е. в текстовое окно
можно вводить любое количество символов. Если установить значение не равное 0, то возможность ввода будет
ограничена до заданного количества символов.).
MinButton. Возвращает и позволяет задать значение, определяющее наличие кнопки минимизации окна в
титульной строке окна формы.
Multiline. Несколько строк (False – запрещает ввод более одной строки текста, True – можно вводить
несколько строк, нажимая Enter и продолжая набор с новой строки).
Name. Определяет имя объекта, по которому к нему можно обратиться в коде.
Path. Возвращает полное имя текущего каталога.
Picture. Возвращает и позволяет задать значок или точечный рисунок, отображаемый управляющим
элементом.
Public. Значение свойства определяет, может ли данный управляющий элемент использоваться
одновременно несколькими приложениями.
Readonly. Разрешает или запрещает модификацию базы данных, с которой связан управляющий элемент.
RecordSource. Определяет имя физической таблицы либо SQL-выражение или объект QueryDe, который
должен служить источником записей для управляющих элементов, связанных с данным элементом Data.
ScaleLeft, ScaleTop. Возвращают и позволяют задать координаты левого верхнего угла объекта.
Screen. Содержит объект Screen, позволяющий управлять указателем мыши за пределами формы, а
также положением формы на экране.
ScrollBars. Линейка прокрутки (0 – линеек прокрутки в текстовом поле нет; 1 – появляется
горизонтальная линейка прокрутки; 2 – появляется только вертикальная линейка прокрутки; 3 – видны обе
линейки).
Shape. Возвращает и позволяет задать значение, определяющее вид геометрической фигуры,
отображаемой управляющим элементом.
Size (Font). Возвращает и позволяет задать значение, определяющее размер шрифта в пунктах.
Style. Определяет стиль изображения объекта на экране и особенности его поведения. Разные
управляющие элементы обладают разными наборами стилей.
Text. Возвращает и позволяет задать текст, содержащийся и доступный для редактирования в текстовом или
комбинированном поле (программа распознает с помощью этого свойства, какой именно введен текст
пользователем). Кроме того, в комбинированном поле и поле списка возвращает выделенный элемент списка.
Value. Возвращает и позволяет задать значение, соответствующее состоянию поля флажка или позиции
переключателя, положению ползунка на полосе прокрутки, содержимому поля в текущей записи (объект
Recordset) или состоянию командной кнопки.
Visible. Разрешает или запрещает отображение объекта на экране.
XI, Yl, X2, Y2. Задают координаты начала и конца линии для управляющего элемента типа Line.
WindowState. Определяет состояние окна (нормальное, свернутое, развернутое).
События
Activate. Происходит, когда объект становится текущим окном.
Deactivate. Происходит, когда объект перестает быть текущим окном.
Change. Сигнализирует об изменении содержимого управляющего элемента.
Click. Происходит по щелчку (нажатию и затем отпусканию) кнопкой мыши в момент, когда указатель мыши
находится на управляющем элементе. Может происходить также при изменении содержимого управляющего
элемента.
DblClick. Происходит по двойному щелчку кнопкой мыши в момент, когда указатель мыши находится
на управляющем элементе.
DragDrop. Происходит при завершении операции перетаскивания, когда управляющий элемент «брошен»
на объект (отпусканием кнопки мыши или вызовом метода Drag с параметром Action, равным 2).
DragOver. Генерируется в процессе выполнения операции перетаскивания.
DropDown. Происходит непосредственно перед разворачиванием списка, связанного с комбинированным
полем.
EnterFocus. Происходит в момент, когда объект получает фокус клавиатуры.
Error. Происходит при возникновении ошибки доступа к данным, для которой не предусмотрена
процедура обработки,
ExitFocus. Происходит в момент, когда объект теряет фокус клавиатуры.
98
GotFocus. Происходит, когда объект получает фокус клавиатуры вследствие действий пользователя или
благодаря вызову метода SetFocus. Форма получает фокус только в случае, когда все видимые элементы
отключены или отсутствуют.
Initialize. Происходит при создании экземпляра формы, MDI-формы, страницы свойств, определяемого
пользователем управляющего элемента или класса.
KeyDown. Происходит при нажатии клавиши, если объект обладает фокусом клавиатуры.
KeyPress. Происходит при нажатии и последующем отпускании клавиши, соответствующей одному из
ASCII-символов, если объект обладает фокусом клавиатуры.
Key Up. Происходит при отпускании клавиши, если объект обладает фокусом клавиатуры.
Load. Происходит при загрузке формы.
LostFocus. Происходит, когда объект теряет фокус клавиатуры вследствие действий пользователя или
благодаря вызову метода SetFocus другого элемента.
MouseDown. Происходит при нажатии кнопки мыши.
MouseMove. Происходит при перемещении мыши.
MouseUp. Происходит при отпускании кнопки мыши.
Scroll. Происходит при перемещении ползунка на полосе прокрутки или элементе, содержащем полосу
прокрутки.
Show. Происходит при изменении значения свойства Visible пользовательского управляющего элемента
или документа на True.
Terminate. Последнее событие жизненного цикла формы, страницы свойств, MDI-формы,
пользовательского управляющего элемента или класса. Происходит, когда из памяти удаляются все ссылки на
данный объект и последний прекращает свое существование.
Timer. Происходит через интервал времени, заданный значением свойства Interval управляющего
элемента Timer.
Unload. Происходит при выгрузке формы и удалении ее с экрана.
Updated. Происходит после изменения данных, содержащихся в объекте.
Методы
Arrange. Упорядочивает дочерние окна или их значки в окне материнской MDI-формы.
Circle. Предназначен для рисования окружностей, эллипсов, дуг и секторов на рабочей поверхности
объекта.
Clear (Clipboard, ComboBox, ListBox). Удаляет (очищает) содержимое буфера обмена,
комбинированного поля или поля списка.
Close (OLE-контейнер). Закрывает объект, содержащийся в OLE-контейнере, и прекращает связь с
создавшим его приложением.
Cls. Удаляет следы текстового и графического вывода с рабочей поверхности формы или управляющего
элемента Picture.
Сору. Копирует объекты из OLE-контейнера в буфер обмена Windows.
Drag. Инициирует, завершает или прерывает операцию перетаскивания любого объекта, кроме
нескольких.
Files. Возвращает список имен файлов, используя при этом формат vbCFiles.
GetData. Получает графические данные из буфера обмена Windows или получает данные типа Variant из
объекта типа DataObject.
GetText. Получает текстовые данные из буфера обмена Windows.
Line. Рисует линии и прямоугольники на рабочей поверхности формы или управляющего элемента типа
PictureBox.
Move. Перемещает формы, MDI-формы и управляющие элементы.
PaintPicture. Загружает точечный рисунок из файла и выводит его на рабочую поверхность формы,
картинки или объекта Printer.
Paste. Выполняет операцию вставки объекта в OLE-контейнер из буфера обмена Windows.
PSet. Рисует точку заданного цвета в заданных координатах на поверхности объекта.
Refresh. Принудительно перерисовывает форму или управляющий элемент в соответствии с его текущим
содержимым.
Render. Рисует заданную часть рисунка на поверхности заданного объекта.
Scale. Задает систему координат для формы, управляющего элемента PictureBox или объекта Printer.
ScaleX, ScaleY. Преобразуют значения координат из одной системы в другую.
SelectAll. Выделяет все элементы формы.
SetData. Помещает графические данные (с использованием заданного формата) в буфер обмена или в
объект DataObject.
SetFocus. Помещает фокус клавиатуры на данный объект.
SetText. Помещает в буфер обмена текстовые данные.
Show. Отображает на экране форму или MDI-форму.
Size. Изменяет размеры определяемого пользователем управляющего элемента.
99
23.3. Таблица префиксов
Объект Префикс
Комбинированное окно (ComboBox) cbo
Контрольный индикатор или Флажок (CheckBox) chk
Командная кнопка (Command Button) cmd
Диалоговое окно dlg
Данные (Data) dat
Поле данных с ограничением dbc
Список данных с ограничением dbl
Список директорий (Directory List) dir
Список дисковых накопителей (Drive ListBox) drv
Список файлов (FileListBox) fil
Рамка (Frame) fra
Форма frm
Горизонтальная полоса прокрутки (HScrollBar) hsb
Изображение (Image) img
Метка (Label) lbl
Линия (Line) lin
Окно списка (ListBox) lst
Меню mnu
OLE-объект (OLE Container) ole
Кнопка-переключатель (Option Button) opt
Графическое окно (PictureBox) pic
Фигура (Shape) shp
Текстовое поле (TextBox) txt
Таймер (Timer) tmr
Вертикальная полоса прокрутки (VScrollBar) vsb
23.4. Встроенные функции Visual Basic
Таблица цветов и значений функции QBColor
Значение функции QBColor Цвет
0 Черный
1 Синий
2 Зеленый
3 Фиолетовый
4 Красный
5 Малиновый
6 Желтый
7 Белый
8 Серый
9 Светло-синий
10 Светло-зеленый
11 Светло-фиолетовый
12 Светло-красный
13 Светло-малиновый
14 Светло-желтый
15 Ярко-белый
100
Математические функции
Abs(x) – возвращает модуль аргумента;
Atn(x) – возвращает арктангенс;
Sin(x) – возвращает синус;
Cos(x) – возвращает косинус;
Tan(x) – возвращает тангенс;
Ехр(x) – возвращает е^х;
Log(x) – возвращает натуральный логарифм;
Sqr(x) – возвращает квадратный корень;
Rnd() – возвращает случайное число в диапазоне от 0 до 1;
Int(x) – возвращает наибольшее целое число, не превосходящее аргумент;
Fix(x) – возвращает округленное число (отбрасывает дробную часть аргумента);
СInt(x) – возвращает аргумент, округленный до целого по правилам округления математики;
Sgn(x) – возвращает знак числа.
Примечание:
Значения аргументов в тригонометрических функциях задаются в радианах.
аргумент(в радианах)=аргумент(в градусах)*Пи/180
Число Пи может быть вычислено по формуле: Пи=Atn(1)*4
Таблица финансово-математических функций
Имя функции, параметры Возвращаемое значение
DDB(Стоимость, Остаточная_стоимость,
Время_эксплуатации, Период, Кратность)
Вычисляет амортизацию фондов в течение заданного
интервала времени
FV(Ставка, Кпер, Плата[, Нз[, Тип]]) Вычисляет накопленную стоимость при известном
размере регулярного взноса и постоянной процентной
ставке
IPmt(Ставка, Период, Кпер, Нз[, Бз[, Тип]]) Вычисляет сумму выплат при известном размере
регулярного взноса и постоянной процентной ставке
IRR(Величина()[,guess]) Вычисляет внутреннюю норму доходности при
известной последовательности выплат и поступлений
MIRR(Величина(), Ставка_финанс, Ставка_реинвест) Вычисляет модифицированную внутреннюю норму
доходности
NPer(Ставка;Платеж;Нз;Бз;Тип) Вычисляет количество периодов времени,
необходимых для достижения заданной фактической
стоимости при постоянном размере выплат и
постоянной процентной ставке
NPV(Ставка, Величина()) Вычисляет чистую приведенную стоимость
инвестиционного проекта при известном размере
выплат и поступлений и при постоянной дисконтной
ставке
PPMT(Ставка;Период;Кпер;Нз;Бз;Тип) Вычисляет величину постоянного взноса для
достижения определенной суммы при постоянной
процентной ставке
Pmt(Ставка, Кпер, Нз[, Бз[, Тип]]) Аналогична PPMT, но позволяет вычислить величину
выплаты в зависимости от того, когда она
производится (в начале или в конце периода)
PV(Ставка, Кпер, Плата[, Бз[, Тип]]) Вычисляет приведенную стоимость при известном и
постоянном размере выплаты, периоде и постоянной
процентной ставке
Rate(Кпер, Плата, Нз[, Бз[, Тип]]) Вычисляет процентную ставку, необходимую для
достижения заданной стоимости при известном
периоде выплат
SLN(Стоимость, Ликвидная_стоимость, Жизнь) Вычисляет величину амортизации фондов линейным
методом
SYD(Стоимость, Ликвидная_стоимость, Жизнь,
Период)
Вычисляет величину годовой амортизации фондов за
определенный период
101
24. Список использованной литературы
1. Волчёнков Н.Г. Программирование на Visual Basic 6: В 3 ч. – М.: ИНФРА-М, 2000. – Ч. 1.
2. Волчёнков Н.Г. Программирование на Visual Basic 6: В 3 ч. – М.: ИНФРА-М, 2000. – Ч. 2.
3. С.Н.Лукин. Visual Basic. Самоучитель для начинающих. – М.: Диалог-МИФИ, 2001.
4. Назаров С.В., Мельников П.П. Программирование на MS Visual Basic: Учеб. пособие/Под ред.
С.В. Назарова. – М.: Финансы и статистика, 2001.
5. Microsoft Visual Basic 5. Шаг за шагом: Практ. пособ.: Пер. с англ. – 2-е изд., исправ. – М.:
Издательство ЭКОМ, 1998.
6. Глушаков С.В., Сурядный С.А. Программирование на Visual Basic 6.0: Учебный курс. – Харьков:
Фолио, 2002.
7. Симонович С.В., Евсеев Г.А. Занимательное программирование: Visual Basic. – М.: АСТ-ПРЕСС
КНИГА, 2001.
8. Истомина Т.Л. Первое знакомство с Visual Basic. – М.: Дограф, 2000.

Москва
2009 год



Узнать цены!

Сделать заказ!

Главная / Методички / УНИВЕРСИТЕТ НАТАЛЬИ НЕСТЕРОВОЙ Основы программирования на языке Visual Basic