первая-нефтегорская.рф/373;docx

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ПЕНЗЕНСКАЯ ГОСУДАРСТВЕННАЯ ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ
ТЕОРИЯ АЛГОРИТМОВ
Методические указания
к лабораторным работам
ПЕНЗА
2011
УДК 681.3
А 22
Приводятся методические указания к лабораторным работам и теоретический материал по
разработке и исследованию алгоритмов и программ, созданных в интегрированной среде разработки Microsoft Visual Studio 2005 на алгоритмическом языке Visual Basic. Для технического оснащения лабораторных работ используются ПЭВМ типа IBM PC и стандартное программное обеспечение.
Методические указания подготовлены на кафедре "Информатика" Пензенской государственной технологической академии и предназначены для студентов специальности 080800 - «Прикладная информатика», изучающих дисциплину "Теория алгоритмов".
Ил. 1, библиогр. 4 назв.
С о с т а в и т е л и В. Б. Лебедев, Н.Е. Кирсанова, А.С. Кузьмин
Р е ц е н з е н т В. В. Дрождин, заведующий кафедрой Пензенского государственного педагогического университета
2
Введение
Методические указания содержат 6 лабораторных работ, которые имеют общую методику
проведения и техническое оснащение (ПЭВМ типа IBM PC, программное обеспечение в виде интегрированной среды разработки Microsoft Visual Studio 2005, оснащенное средствами программирования на алгоритмическом языке Visual Basic, и текстового редактора MS Word для Windows,
предназначенного для оформления отчетов по лабораторным работам). Работы рекомендуется
проводить фронтально по учебным бригадам и последовательно в порядке их номеров. В описании лабораторных работ курсивом выделены наиболее важные термины, на изучение которых
студенту следует обратить особое внимание, а жирным шрифтом выделены нужные названия
опций и пунктов меню экранных панелей программных приложений.
Лабораторная работа №1. Среда
разработки Microsoft Visual
Studio 2005
Цель работы: познакомиться с назначением, составом и основными инструментальными
средствами интегрированной среды разработки программ Microsoft Visual Studio 2005. Научится
создавать простейшие решения и проекты с помощью средств визуального программирования на
алгоритмическом языке Visual Basic.
Общие сведения
1. Интегрированная среда разработки программ Microsoft Visual Studio 2005 предназначена для создания программных приложений и позволяет:
• создавать приложения с использованием языков Visual Basic 2005, Visual C# 2005, Visual
C++ 2005, Visual J# 2005;
• создавать Windows- и Web-приложения, включая приложения для портативных устройств;
• создавать клиент-серверные приложения;
• создавать корпоративные Web-приложения масштаба предприятия.
Microsoft Visual Studio 2005 увеличивает производительность труда разработчиков при создании приложений. Включает, например, Visual Studio Team System — интегрированный и расширяемый набор инструментов для управления программными проектами на всех этапах разработки и тестирования, что обеспечивает взаимодействие и совместную работу коллектива разработчиков.
3
2. Microsoft Visual Studio 2005 содержит среду выполнения .NET Framework, которая состоит
из двух частей: единой среды исполнения (Common Language Runtime, CLR) и библиотеки классов.
Библиотека классов является всесторонней, объектно-ориентированной коллекцией типов, которую можно использовать для разработки приложений, начиная с традиционных приложений с
командной строкой и с использованием графического пользовательского интерфейса и заканчивая приложениями, использующими Web-формы и XML Web-сервисы. Класс — это тип, описывающий устройство объектов, в то время как объект является конкретным представителем определенного класса. Таким образом, каждый объект является экземпляром определенного класса.
Единая среда исполнения управляет кодом во время его выполнения.
3. Элементы графического интерфейса среды разработки Visual Studio2005, называемого
сокращенно IDE (Integrated Development Environment) (меню, панели инструментов, диалоговые
окна) характерны для среды Windows. Среда разработки Visual Studio 2005 является интегрированной, так как в ней можно выполнять различные действия при разработке программного продукта, такие как проектирование графического интерфейса приложения, редактирование программного кода, компиляция всех элементов приложения и сборка в выполняемый файл, а также
пошаговая отладка приложения. Пользователь может изменять расположение и форму окон IDE,
а также сворачивать их, чтобы сделать доступными и видимыми на экране необходимые элементы среды программирования. Открыть нужное окно можно с помощью соответствующей команды пункта меню View (Вид). Многие окна состыкованы друг с другом. Это свойство можно отменить, если с вкладки Docking убрать соответствующий флажок.
4. Главное окно Visual Studio2005 после запуска программы содержит несколько основных
объектов: главное меню и стандартная панель инструментов, окна Start Page (Начальная страница), Solution Explorer (Обозреватель решений), Toolbox (Инструментарий), Properties (Свойства),
Object Browser (Просмотр объектов) и Dynamic Help (Динамическая справка). Диалоговое окно
Start Page (Начальная страница) позволяет открывать недавно использовавшиеся проекты, осуществляет поиск примеров, как из справочной системы, так и Интернета. В окне Solution Explorer
(Обозреватель решений) размещаются проекты и файлы текущего решения. К средству, призванному облегчить разработку, относится также окно Toolbox (Инструментарий), отображающее элементы, используемые в проектах Visual Basic. Окно Properties (Свойства) предназначено для отображения и настройки свойств объектов решения, включая форму и размещенные в ней объекты.
Для получения подробной информации об объектах используется диалоговое окно Object
Browser (Просмотр объектов). Оно позволяет искать и исследовать элементы, их свойства, методы, события, находящиеся в проектах и ссылках на них, как бы представляя собой внутреннюю
библиотеку. Для удобства разработки используется окно Dynamic Help (Динамическая справка).
Во время работы оно постоянно обновляется и в нем предлагается справочная информация, относящаяся к текущим действиям.
5. Решения и проекты — это контейнеры, которые Visual Studio 2005 использует для размещения и группировки кода, который пишется в интегрированной среде. Контейнеры — это объекты, внутри которых размещены другие объекты. Решения — это виртуальные контейнеры; они
группируют свойства, относящиеся к одному (или нескольким) содержащимся в решении проектам. Решения не подвергаются обрабатке компилятором. Внутри интегрированной среды можно
настроить несколько свойств на уровне решения. Проекты имеют и виртуальный, и физический
4
характер. Помимо функционирования в качестве организационных единиц для создающегося
кода они также однозначно соответствуют результатам, получаемым на выходе компилятора.
Иначе говоря, Visual Studio 2005 превращает проекты в откомпилированный код (эквивалентную
программу на машинном языке).
6. Каждый проект приводит к созданию .NET-компонента (такого как файл с расширением
dll – динамическая библиотека, или ехе – исполняемый файл приложения). Для создания нового
проекта используется диалоговое окно New Project (Новый проект). Для его открытия выполните
одно из следующих действий:
в окне Start Page (Начальная страница) выберите ссылку Create Project (Создать проект);
из меню File (Файл) выберите пункт New Project (Новый проект);
нажмите кнопку New Project (Новый проект), расположенную на стандартной панели инструментов.
Появится диалоговое окно New Project с установками по умолчанию для названия и местоположения проекта, а также названия решения. В нижней части этого диалогового окна имеется
поле Name (Имя решения). Оно позволяет задать имя решения (перед его созданием).
7. Программы Visual Basic 2005 хранятся в программных модулях, которые могут быть трех
видов: модуль формы, стандартный модуль и модуль класса. Простое приложение, состоящее
из одной формы, содержит, как правило, только модуль формы. По мере усложнения приложения повторяющиеся функции, выполняемые в нескольких модулях формы, можно выделить в
отдельный программный код, который будет являться общим для всех. Такой программный код
называется стандартным модулем. При создании собственных классов в Visual Basic используются
модули классов. Стандартные модули могут содержать объявления глобальных и локальных переменных, констант, типов, внешних процедур и процедур общего характера, доступных для других модулей данного приложения. Используя объектно-ориентированное программирование, в
Visual Basic 2005 можно создавать новые объекты с разработанными для них свойствами и методами, помещая их в модули классов. Модули формы могут содержать объявления переменных,
констант, типов данных, внешних процедур, применяемых на уровне модуля, процедур обработки событий. В них можно также ссылаться на другие формы и объекты данного приложения.
Порядок выполнения работы
1. Изучить общую методику выполнения работ в соответствии с прил. 1 и выполнить ее
указания (прежде всего, создать рабочий каталог для сохранения файлов).
2. Получить у преподавателя задание по лабораторной работе (описание создаваемого
проекта интерфейса пользователя).
3. Произвести загрузку Microsoft Visual Studio 2005.
5
4. Изучить содержание вспомогательного файла «Калинин Разработка приложений в среде
Microsoft Visual Studio 2008 .pdf» с методическими указаниями по работе в среде Microsoft Visual
Studio 2005.
5. Создать решение и проект программного приложения в соответствии с заданием.
6. Предъявить разработанный проект преподавателю для контроля.
7. Составить отчет по работе в соответствии с прил. 2.
Контрольные вопросы
1. Объясните назначение, состав и функции интегрированной среды разработки Microsoft
Visual Studio 2005.
2. Объясните понятия «решение» и «проект» в Microsoft Visual Studio 2005.
3. Какие виды программных модулей в Microsoft Visual Studio 2005 существуют?
4. Какие .NET – компоненты создаются в проекте?
5. Какие основные объекты содержит главное окно Visual Studio2005?
6. Как осуществляется управление основными элементами IDE?
7. Что представляет собой среда выполнения .NET Framework?
Лабораторная работа №2. Создание
проектов MS Visual Basic с
использованием изменений свойств
объектов
Цель работы: познакомиться с основными средствами изменения свойств объектов при
создании проектов MS Visual Basic. Научиться создавать простые программные Windowsприложения на алгоритмическом языке Visual Basic в среде Visual Studio 2005.
Общие сведения
1. Для создания программного приложения MS Visual Basic в среде Visual Studio 2005 необходимо выполнить следующие этапы (шаги):
Шаг 1. Создание проекта.
Открыть MS Visual Studio и в опции главного меню File выбрать команду New Project (Создать новый проект). В открывшемся диалоговом окне выбрать Windows Application (Приложение
6
Windows). В окне интерфейса IDE отображаются новые формы и файлы, необходимые для создаваемого проекта, они будут добавлены в окно Solution Explorer (Обозреватель решений). Если это
первое создаваемое приложение Windows, то проект получит название "WindowsApplication1".
При создании проекта, в IDE отображается панель формы (Form1) в окне конструктора форм
(Form Designer). Эта форма представляет собой окно, которое будет отображаться при запуске
программы. Проект может содержать несколько форм.
Созданный проект в Visual Basic является местом для хранения частей создаваемой программы (приложения) и организации управления ими. При создании нового проекта, он существует только в памяти. Если закрыть Visual Basic IDE, пользователю будет предложено сохранить
или отменить проект. Если проект сохраняется, то ему можно присвоить другое, более осмысленное, имя.
2. Шаг 2. Создание пользовательского интерфейса.
Панель инструментов (Toolbox) Visual Studio состоит из нескольких вкладок, таких как данные (Data), общее управление (Common Controls), компоненты (Components), контейнеры
(Containers), меню и панели инструментов ([email protected]), печать (Printing), диалоги (Dialogs),
средства презентации (Crystal Reports), общие (General) и все формы (All Windows Forms). Внутри
каждой вкладки есть множество пунктов, которые представляют элементы управления или компоненты, которые можно добавить в создаваемое приложение методом перетаскивания их на
форму. Например, на вкладке All Windows Forms есть пункты: текстовое окно (TextBox), кнопка
(Button), флажок (CheckBox) и др.1
Пользовательский интерфейс, созданный путем добавления элементов управления в окно
Form1, пока не может выполняться как готовое приложение (так как не обеспечена его функциональность).
3. Шаг 3: Настройка внешнего вида и функциональности приложения.
Для настройки свойств элементов управления приложения необходимо выполнить следующее:
3.1 В конструкторе форм (Form Designer) выбрать изображение настраиваемого элемента,
например, кнопки Button1.
Окно Properties (Свойства) в IDE отображает при этом все свойства для элемента Button (с
именем Button1).
Панель инструментов проще в использовании, если держать окна открытыми. Это можно сделать, нажав
кнопку Auto Hide (Автоматически скрывать), которая выглядит как канцелярская кнопка.
1
7
3.2 В окне Properties, выбрать опцию Text, а затем ввести имя кнопки, например, «Старт».
Аналогично можно настроить другие свойства кнопки. 2.
3.3 Установите функциональность кнопки Button1, выбрав соответствующий обработчик событий в панели окна Properties.
Окно Properties для кнопки Button1 содержит опцию Events (События), при нажатии на которую отображается список событий.
Событие возникает в процессе выполнения программы, и вызывает метод для обработки
этого события. Такие методы называются обработчиками событий (event handler), например,
метод Button1_Click вызывает выполнение заданного кода при нажатии кнопки Button1. Обработчики событий обеспечивают функциональность приложения, в частности, взаимодействие его
с пользователем при помощи кнопок.
3.4 Установите функциональность других элементов управления формы Form1.
На данном шаге установлены внешний вид и функциональность некоторых элементов создаваемого приложения, однако требования к выполнению функций приложения могут быть более сложными. В этом случае в создаваемую программу требуется добавить дополнительные
инструкции (команды) на алгоритмическом языке Visual Basic.
4. Шаг 4. Добавление кода Visual Basic.
Чтобы добавить код алгоритмического языка Visual Basic и установить новые функциональные возможности программы нужно дважды щелкнуть значок соответствующего элемента управления формы в окне Form Designer. Открывается окно редактора кода, в котором показан код
программы создаваемого приложения. В этом окне можно добавить новые строки кода3.
Например, редактор кода открыл код:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
|
End Sub
Это код обработчика событий нажатия кнопки Button1, или подпрограммы Sub. Любой код
внутри этой процедуры (между Sub и End Sub ) запускается каждый раз, когда нажата кнопка
2
Список опций можно отсортировать по алфавиту имен свойств, нажав кнопку AZ в окне Button1
Когда открывается редактор кода, курсор автоматически находится внутри процедуры там, где можно
просто вводить текст кода
3
8
Button1. Курсор (|) находится внутри процедуры обработки события. В позицию курсора вводится
текст кода алгоритмического языка Visual Basic, например, методом копирования введен текст
MsgBox("Вы нажали кнопку"). В этом случае, после отладки программы, нажатие кнопки Button1
приложения приведет к выводу стандартной панели с текстом "Вы нажали кнопку".
5. Шаг 5: Запуск и тестирование программы.
Для запуска программы на отладку выбрать опцию Debug на главном меню IDE, и нажать
кнопку Start Debugging (Начать отладку) (или нажать кнопку F5). Чтобы остановить отладку, нужно
нажать кнопку Stop Debugging (Остановить отладку) в опции Debug.
В процессе запуска программы могут возникать ошибки (Errors). Сведения об ошибках отображаются в окне Error List интерфейса IDE. Устранение ошибок связано с возвратом на предыдущие шаги проекта для внесения исправлений. Этот процесс называется отладкой и тестированием программы. Он может быть длительным и сложным.
После тестирования и отладки программы создается выполняемый файл созданного приложения с расширением exe, с этой целью используются опции Release (Реализация) или Build
(Построение)
в
IDE.
Файл
*.exe
приложения
находится
в
папке
File/Projects/WindowsApplication/WindowsApplication/bin/Release/*.exe и может быть скопирован
для выполнения в любое место среды ОС.
Порядок выполнения работы
1. Изучить общую методику выполнения работ в соответствии с прил. 1 и выполнить ее
указания (прежде всего, создать рабочий каталог для сохранения файлов).
2. Получить у преподавателя задание по лабораторной работе (описание создаваемого
проекта интерфейса пользователя).
3. Произвести загрузку Microsoft Visual Studio 2005.
4. Изучить содержание вспомогательного файла с методическими указаниями по работе в
среде Microsoft Visual Studio 2005.
5. Создать решение и проект программного приложения в соответствии с заданием.
6. Предъявить разработанный проект преподавателю для контроля.
7. Составить отчет по работе в соответствии с прил. 2.
Контрольные вопросы
1. Какие существуют основные этапы создания программного приложения MS Visual Basic
в среде Visual Studio 2005?
9
2. Объясните выполнение этапов «1 Создание проекта» и «2 Создание пользовательского
интерфейса» при создании программного приложения.
3. Объясните назначение и функционирование «Панели инструментов» (Toolbox) Visual
Studio.
4. Как производится настройка внешнего вида и функциональности приложения в среде
Visual Studio?
5. Объясните функционирование обработчика событий?
6. Как производится добавление кода Visual Basic в программу приложения в среде Visual
Studio?
7. Как производится запуск и тестирование программы на алгоритмическом языке MS
Visual Basic в среде Visual Studio?
Лабораторная работа №3
Программирование линейных
вычислительных процессов
Цель работы: изучение способов программирования линейных вычислительных
процессов в среде MS Visual Studio 2005. Научиться программировать линейные вычислительные процессы и пользоваться встроенными диалоговыми окнами IDE, овладеть
методами ввода/вывода информации в программных приложениях.
Общие сведения
1. Линейные вычислительные процессы реализуются с помощью программных
приложений, не содержащих операторов логического разветвления вычислительного
процесса. Обычно — это программы, содержащие ввод/вывод данных и линейную последовательность операторов вычислений.
2. Ввод/вывод данных осуществляется с помощью диалоговых окон. Диалоговые
окна используются в приложениях для того, чтобы отобразить информацию или предложить пользователю ввести данные, необходимые для продолжения работы программы.
Кроме того, любое диалоговое окно может являться модальным, т.е. пока оно не закрыто, приложение дальше выполняться не будет. Существует несколько разновидностей
диалоговых окон: нестандартные, встроенные, стандартные. Для отображения нестандартных диалоговых окон используются формы, которые создаются разработчиком и
содержат различные элементы управления, в том числе управляющие кнопки. Нестан10
дартное окно диалога можно создать как путём добавления в проект новой формы, так и
посредством изменения уже существующего диалога. Такие окна, в зависимости от установленных свойств, могут быть модальными или немодальными. Пользователь либо может их перемещать по экрану, либо нет ( если расположение окон фиксировано и не может быть изменено). Встроенные диалоговые окна выгодно отличаются от нестандартных
окон тем, что разработчику не составляет большого труда их создать или отобразить на
экране. Простота использования объясняется тем, что они вызываются при помощи двух
стандартных функций Visual Studio 2005, параметры которых задают внешний вид и
функциональные особенности того или иного диалога.
3. Окно InputBox. Функция InputBox отображает окно диалога (см. рис.1), разрешающее пользователю вводить в текстовом поле данные, описание которых может быть
задано как значение одного из параметров. Стандартными элементами такого диалога
являются управляющие кнопки ОК (подтверждение действия) и Cancel (отмена действия).
Формат данной функции с основными параметрами выглядит следующим образом:
InputBox(подсказка, [заголовок], [значение], [X], [Y] ).
Рисунок 1. Окно диалога функции InputBox
Здесь подсказка — строка или переменная для отображения в диалоговом окне подсказки
относительно вводимого значения;
заголовок — строковое значение, задающее название окна;
значение — принимаемое по умолчанию значение, которое выводится автоматически в
текстовом поле;
X, Y – координаты левого верхнего угла отображаемого диалога. Если не заданы координаты окна, то оно выводится в центре экрана.
Функция InputBox возвращает строку, введённую пользователем. При нажатии кнопки Cancel возвращается пустая строка. Результатом вызова функции InputBox является строковое значение, введённое пользователем в текстовом поле, которое присваивается переменной. Это диалоговое окно почти не встречается, так как выглядит не слишком привлекательно. Следует также
отказаться от использования InputBox в готовом приложении. Однако это окно имеет смысл ис11
пользовать на этапе проектирования, если вам необходимо временно ввести информацию с помощью InputBox. Большим преимуществом является то, что вызов этой функции легко удалить из
программы, так как он содержит только одну строку. Но переменная, содержащая возвращаемое
значение, и проверка этого значения нужны и в окончательной редакции программы.
4. Окно MessageBox. Для вывода различных сообщений имеется окно, подобное Input Box,
— MessageBox. Почти все приложения Windows используют MessageBox, так как этот компонент
входит в состав Windows, а MS Visual Studio 2005 только предоставляет возможность его вызова.
Отличие MsgBox от функции Input Box заключается в том, что окно не содержит текстового поля,
следовательно, пользователем может быть нажата одна из управляющих кнопок, имеющихся в
диалоге. Ещё одна особенность состоит в том, что окно диалога MsgBox всегда выводится в центре экрана.
Рисунок 2. Окно диалога MsgBox
Эта функция имеет следующий вид: MsgBox(подсказка, [кнопки], [заголовок]).
Здесь: подсказка — параметр, аналогичный рассмотренному выше для InputBox;
кнопки — числовое выражение, которое является суммой значений, определяющих количество и тип отображаемых кнопок, тип окна диалога, кнопку по умолчанию, модальность окна.
Если данный параметр не указан, то используемое по умолчанию значение – 0 ( см.табл. 1);
заголовок — назначение совпадает с соответствующим параметром функции InputBox.
Таблица 1
Описание основных констант диалога MsgBox
Элемент
Значение
Описание
vbOKOnly
0
Кнопка ОК
vbOKCancel
1
Кнопки ОК и Cancel
vbAbortRetryIgnore
2
Кнопки Abort (прервать), Retry (повторить) и Ignore (игнорировать)
vbYesNoCancel
3
Кнопки Yes, No и Cansel
12
vbYesNo
4
Кнопки Yes и No
vbRetryCancel
5
Кнопки Retry и Cansel
vbCritical
16
Знак ошибки
vbQuestion
32
Знак вопроса
vbExclamation
48
Знак восклицания
vbInformation
64
Знак информации
vbDefaultButton1
0
1-я кнопка по умолчанию
vbDefaultButton2
256
2-я кнопка по умолчанию
vbDefaultButton3
512
3-я кнопка по умолчанию
vbDefaultButton4
768
4-я кнопка по умолчанию
vbApplicationModal
vbSystemModal
0
4096
Модальность окна для текущего приложения
Модальность окна для всех приложений системы
Необходимо иметь в виду, что для
нескольких
параметров
кнопок
и
одновременно,
следует
просто
соответствующие константы. Например:
задания
значков
сложить
a = MsgBox("ПРИВЕТ!", 0 + vbExclamation, "Окно сообщений")
В ответ получите диалоговое окно, показанное
на рис. 3.
Рис. 3. Пример диалогового окна
Таблица 2
13
Константы параметров для значков диалогового
окна сообщения
Значок
Константа
Значение
Тип сообщения
vbExclamation
48
Предупреждение
vbQuestion
32
Запрос
vbInformation
64
Информация
vbCritical
16
Ошибка
5. Этапы разработки приложения. В MS Visual Studio 2005, как и во многих других языках,
предназначенных для написания приложений под Windows, используется событийноуправляемая модель программирования. В "старых" версиях бейсика, таких как QBasic, использовалась плоская структура написания программы. Каждая программа начиналась и заканчивалась
в определённых местах. Вся программа выполнялась последовательно, и иногда, возможно, вызывались пользовательские процедуры и функции. Т.е. если программу "запускали", то она сразу
начинала выполняться, и, дойдя до конца, завершалась. В Visual Studio 2005 это происходит совсем иначе. Дело в том, что ОС Windows имеет GUI (Graphical User Interface), т.е. графический интерфейс пользователя, в котором используются стандартные элементы управления, такие, как
окна (они же формы), кнопки, списки, поля, для ввода текста и т.п. В любом языке высокого уровня программа строится на основе этих элементов. Разработка приложения на VB состоит из следующих этапов:
5.1.
Продумывания программы (подумать, что программа должна делать, решить перед собой задачи, реализовать их мысленно, продумать структуру данных, и т.д.).
5.2.
Проектирование интерфейса, т.е. помещение на форму нужных управляющих элементов, кнопок, списков и т.п. Этот этап называется составлением скелета программы.
5.3.
Написание программного кода, связывающего помещённые на форму управляющие элементы, т.е. "наращивание плоти на скелет".
5.4.
дущие.
Отлаживание программы. Этот этап часто занимает больше времени, чем преды-
14
5.5.
Окончательная компиляция и, если это необходимо, создание дистрибутива (т.е.
установочного файла setup.exe).
Эти этапы всегда используются при написании любой программы. Порядок этапов тоже важен. Например, нельзя сначала написать код программы, а только потом разрабатывать интерфейс пользователя (есть конечно редкие исключения, например, когда программа вообще не
имеет интерфейса, или когда вы пишите процедуру, независимую от интерфейса программы). Во
всех языках высокого уровня программный код состоит из:
Переменных
Выражений
Операторов
Управляющих структур
Функций
Классов и объектов
В Visual Studio 2005 переменые хранят информацию (значения). При их использовании
Visual Studio 2005 резервирует область в памяти компьютера для хранения данной информации.
Каждая переменная имеет своё имя. Оно может достигать 255 символов в длину, начинается всегда с буквы латинского алфавита, за которой могут следовать другие буквы, цифры и знак подчёркивания. Регистр символов значения не имеет. Приведём несколько примеров имён переменных:
numOfLetters – подходит
2Bottle - неверно, т.к. начинается не с буквы
ThisIsVeryLongName - подходит, длина 18 символов
sng.Cos - не подходит, т.к. используется точка
Рекомендуется придерживаться венгерского соглашения:
Тип
Константа
Схема именования
Пример
Имя константы должно состоять
HWND_BROADCAST
только из заглавных букв.
Имя переменной должно начиПеременная наться с маленькой буквы, далее numOfFonts
следующий слова с большой.
Функция
Имя функции должно начинаться
с заглавной буквы, далее сле- SetForegroundWindow
дующие слова тоже с заглавной.
15
Каждая переменная имеет определённый тип. Всего в VB 14 типов переменных. Кроме того,
программист может определить и свой тип. Перечислим основные типы переменных VB:
Byte - предназначен для хранения целых чисел от 0 до 255. Если переменной такого типа
присвоить значение, выходящее за эти пределы, то Visual Studio 2005 сгенерирует ошибку.
Integer - предназначен для хранения целых чисел в диапазоне -32768 до +32767, т.е. размер памяти, выделяемой под такую переменную составляет 2 байта. (256*256=65536). Символ
для обозначения - "%".
Long - предназначен для хранения целых чисел в диапазоне -2147483648 до +2147483647,
т.е. размер памяти, выделяемой под такую переменную составляет 4 байта.
(65536*65536=4294967296). Символ для обозначения - "&".
String - предназначен для хранения строковой (символьной) информации, т.е. попросту говоря - текста. Может хранить до 2 Гб. текста. Символ для обозначения - "$".
Single - предназначен для хранения дробных чисел, с точностью до 7 цифр. Диапазон отрицательных значений от -3.402823Е38 до -1.401298Е-45. Диапазон положительных значений от
1.401298Е-45 до 3.402823Е38. Длина числа может достигать 38 знаков. Занимает 4 байта памяти.
Вычисления с данными переменными будут приблизительными и менее быстрыми, чем с переменными целого типа. Символ для обозначения - "!".
Double - предназначен для хранения дробных чисел, с точностью до 16 цифр. Диапазон отрицательных
значений
от
1.79769313486232Е308
до
-4.94065645841247Е-324.
Диапазон положительных значений от 4.94065645841247Е-324 до 1.79769313486232Е308.
Длина числа может достигать 300 знаков. Занимает 8 байта памяти. Вычисления с данными переменными будут приблизительными и менее быстрыми, чем с переменными целого типа. Используется для научных расчётов. Символ для обозначения - "#".
Currency - Данный тип создан для того, чтобы избежать ошибок при преобразовании чисел
из десятичной формы в двоичную и наоборот (Невозможно представить 1/10 как сумму 1/2, 1/4 и
т.д). Данный тип может иметь до 4 цифр после запятой, и до 14 перед ней. Внутри данного диапазона вычисления будут точными. Вычисления выполняются так же медленно, как и в случае переменных Single и Double. Данный тип очень подходит для финансовых расчётов. Символ для
обозначения - "@".
Date - Этот тип данных позволяет хранить значения времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года. Если переменной присваивается только значение даты, то время равняется 00:00.
Boolean - очень важный и распространённый тип данных. Позволяет хранить так называемые булевы значения, т.е. только два значения - True и False. (По русски Правда и Ложь). Используется тогда, когда вам нужно хранить только значение Да или Нет.
Variant - Переменная типа Variant может содержать данные любого типа. Visual Studio 2005
автоматически производит необходимые преобразования данных, поэтому не стоит беспокоиться
об этом. Использование такого типа данных замедляет работу программы, т.е. требуется время и
16
ресурсы для преобразования типов. Поэтому рекомендуется всегда воздерживаться от применения этого типа данных, за исключением специфических случаев, например, возвращение функцией массива возможно только при использовании типа Variant.
В Visual Studio 2005 переменные объявляются с помощью оператора Dim, после которого следует As и Имя_Типа переменной. Например:
Dim a As Long
Dim b As Byte
Dim c As Long
Dim numOfLetters As Long
Dim myString As String
Dim isLoaded As Boolean
Если не указывать As Имя_Типа, то переменная будет объявлена как Variant.
После объявления переменной ей присваивается значение по умолчанию. Для строки это "" (пустая строка). Для чисел - 0. Для Boolean - False. Переменная может быть использована сразу
после объявления.
Переменные можно объявлять и в одной строчке, разделяя объявления запятыми:
Dim a As Long, Dim b As Integer
Здесь очень важно заметить следующую особенность. Логично было бы объявить 3 переменные типа Long следующим образом:
Dim a, b, c As Long
В результате такого объявления VB объявит 3 переменные, первая и вторая будут иметь тип
Variant, и только третья - Long! А вообще, лучше объявлять каждую переменную в отдельной
строчке. И, если необходимо, то логически отделить эти объявления можно просто вставив пустую строку между теми объявлениями, которые вы хотите отделить логически. Например, так:
Dim a As Long
Dim b As Long
Dim myString1 As String
Dim myString2 As String
Такие логические пробелы между строчками необходимы для избавления кода от его монотонности.
Присвоить значение переменной можно при помощи знака равно "=". Например:
a = 1234567
b = 234
c = 133
myString = "Visual Studio 2005 рулит"
isLoaded = True
В данном примере переменным присваивались константы. Но часто бывает необходимо
присвоить одной переменной значение другой. Это делается следующим образом:
a=b
' можно, т.к. переменная b "умещается" в тип Long (234<4294967296)
a=b+c
' теперь в a хранится сумма b + c.
17
b=c
тоже возможно (133 < 255)
b=a
нельзя, т.к. переменная a не укладывается в диапазон [0-255]. Произойдёт ошибка.
myString = a
' Visual Studio 2005 сам преобразует число 1234567 в строку "1234567", а потом присвоит это
значение
' переменной myString. Также возможно обратное действие.
isLoaded = True
' всё ОК
myString = myString & " однозначно!"
' здесь происходит слияние двух строк, в результате чего переменная myString содержит
строку:
' "Visual Studio 2005 рулит однозначно!".
isLoaded = a
' возможно, т.к. Visual Studio 2005 сам преобразует тип Long в тип Boolean. isLoaded будет
содержать True.
' Почему не False? Потому, что в VB False - это нуль, а любое, не нулевое значение - True
Выше, при описании типов переменных указывался символ для обозначения. Этот символ
можно (а иногда и нужно) использовать для объявления переменной, но без использования зарезервированных слов As Тип. Т.е. к примеру:
Dim myLongParam&
Dim myString$
Здесь объявлены 2 переменные, первая имеет тип Long, вторая - String. Также можно употреблять эти спец. символы для явного указания типа константам.
Выше отмечалось, что Visual Studio 2005 часто, незаметно для разработчика, занимается
преобразованием типов переменных на лету. К примеру, мы рассматривали такой пример:
myString = a
Переменная a имеет тип Long, а myString - String. Visual Studio 2005 сам преобразует переменную a в тип String, а затем присвоит значение переменной MyString. Это необходимо знать.
Также, Visual Studio 2005 предоставляет в ваше распоряжение несколько функций преобразования типов: CLng, CBool, CDate, CStr и т.д. Каждая функция преобразует выражение к соответствующему типу. Рассмотрим распространённую ошибку программиста на VB. Пусть у нас есть код
типа:
Dim a As Byte
Dim b As Byte
Dim c As Long
a = 200
b = 200
c=a+b
18
Казалось бы, что если запустить такой код на выполнение, то в переменной c будет находиться значение 400 (200 + 200). Но не тут-то было :(. Visual Studio 2005 на строке c = a + b сгенерирует ошибку Overflow (Переполнение). Дело в том, что в выражении справа от знака равно
складываются 2 переменные типа Byte, и Visual Studio 2005 решает, что после вычисления этого
выражения, должен остаться тот же тип - Byte. Но если вспомнить то, что тип Byte может хранить
значения в диапазоне 0-255, можно понять почему VB генерирует Overflow (Переполнение). 400
далеко выходит за диапазон Byte... Здесь может возникнуть вопрос: "А как же быть? Объявлять
переменные a и b типом Long?". Можно поступить и так. А можно воспользоваться функций преобразования типа CLng. Тогда работоспособный код будет выглядеть следующим образом:
Dim a As Byte
Dim b As Byte
Dim c As Long
a = 200
b = 200
c = CLng(a) + CLng(b) 'Всё в порядке, 400 - входит в тип Long
Немного о константах:
В Visual Studio 2005 можно объявлять не только переменные, но и константы. Константа как
и переменная, тоже хранит некоторое значение, но в отличие от переменной хранимое значение
не может изменяться. Чтобы объявить константу необходимо использовать зарезервированное слово Const, за которым следует имя и значение (и возможно тип) константы:
Const PI = 3.1415
Здесь объявлена константа c именем pi и значением 3.1415. После объявления она может
быть использована по назначению.
Можно отметить следующую особенность VB: для констант с плавающей точкой тип по
умолчанию - Double, для целых чисел - Integer. (Это легко можно проверить встроенной функций
VB - VarType). Для того, чтобы явно задать тип константы, необходимо после имени задать тип, к
примеру
Const PI As Long = 3 ' PI = 3, PI имеет тип Long
В Visual Studio 2005 существует очень много встроенных констант, которые с легкостью могут быть использованы в ваших программах. Например, константа vbNewLine - содержит 2 символа, с ASCII кодами 13 и 10, т.е. переход на новую строку. Список констант можно посмотреть в
Object Browser'е. Для его вызова необходимо нажать F2, находясь в среде Visual Studio 2005.
"Видимость" переменных:
Объявлять переменные можно в самых разных местах
1. Внутри процедуры (или функции). В этом случае переменная будет "видна" только в коде этой процедуры (или функции). Если вы попытаетесь обратиться к такой переменной внутри
кода другой процедуры, то Visual Studio 2005 сгенерирует ошибку.
2. В самом верху кода формы, т.е. сразу после оператора Option Explicit. Это место называется разделом General Declarations (раздел Глобальных Объявлений). Такие переменные будет
"видны" в любом месте кода формы. Т.е. в любой процедуре (или функции) формы. Переменные
19
в данном месте могут быть объявлены с помощью зарезервированных слов Private и Public. Рассмотрим 3 определения:
Dim myLocalVar1 As Byte
Private myLocalVar2 As Integer
Public myGlobalVar1 As Long
Первые 2 определения абсолютно эквивалентны. Переменные объявленные таким образом будут видны в любом месте кода формы. Но только той формы, где они объявлены. В других
формах обратиться к таким переменным будет нельзя.
1. Третья переменная будет видна всему приложению в любом месте. Правда, чтобы добраться к такой переменной из кода другой формы, необходимо перед именем переменной указать ещё и имя формы, где эта переменная объявлена, например:
Form1.myGlobalVar1 = 234
2. В разделе General Declarations модуля. Здесь действуют те же правила, что и в разделе
General Declarations формы. Private (или Dim) будут "видны" только в коде модуля. А Public - везде. Отличие наблюдается только в способе доступа к переменной. Здесь не обязательно указывать имя модуля перед такой переменной. Можно просто указать её имя и всё. Хотя я не рекомендую этого делать, т.к. теряется наглядность. И, к тому же, если у вас 2 модуля, в которых объявлены переменные с одинаковыми именами, то добраться к ним можно только указав имя соответствующего модуля перед именем переменной.
Период существования переменных:
Период существования переменной означает, как долго переменная является доступной.
Переменные, объявленные в процедуре (или функции) будут "живы" только пока выполняется эта процедура (или функция). При выходе из процедуры - переменная удаляется. При очередном вызове этой процедуры - переменная заново инициализируется. Кстати, к словам Private,
Public и Dim, в процедурах и функциях можно использовать зарезервированное слово Static. Такая
переменная при повторном вызове этой процедуры не будет заново инициализироваться. Она
будет сохранять то значение, которое было в ней после предыдущего вызова. (такие переменные
очень удобно использовать в обработке события Timer'а). Например:
Static myStat As String ' Private Static переменная
Переменные уровня формы будут "живы" только пока "жива" форма. Как только объектная
переменная формы будет установлена в Nothing (или после выполнения оператора Unload), все
переменные уровня этой формы удаляются
Переменные уровня модуля "живы", пока "живёт" ваше приложение. Т.е. "живы" всегда.
Некоторые замечания:
Перед использованием переменной, её обязательно нужно объявить. Это избавит вас от
лишних ошибок.
20
Переменным нужно давать осмысленные имена. Т.е. старайтесь не использовать имена
типа a1,a2,a3,ab,ccc и т.п. Поверьте, рано или поздно вы запутаетесь в своей же программе! Лучше всего переменным давать английский эквивалент того, что хранит данная переменная. Например, для хранения некоторой суммы денег, переменная может быть названа как cashMoney.
Если у вас английским не очень, то можете использовать транслит, т.е. переменную назвать, например как summaDeneg. Ну и т.п. Кириллицу в имени переменной использовать нельзя.
Операторы.
В Visual Studio 2005 операторы бывают следующих типов:
Арифметические:
o
^ оператор возведения в степень.
o
* оператор умножения.
o
/ оператор деления
o
\ оператор целочисленного деления
o
Mod оператор вычисления остатка от деления
o
+ оператор сложения
o
- оператор вычитания
Сравнения:
o
< меньше
o
> больше
o
<= меньше или равно
o
>= больше или равно
o
= равно
o
<> не равно
Конкатенации:
o
+ оператор конкатенации
o
& оператор конкатенации
Логические:
o
And оператор логического умножения
21
o
Eqv оператор логической эквивалентности
o
Imp оператор логической импликации
o
Not оператор логического отрицания
o
Or оператор логического сложения
o
Xor оператор логического исключающего сложения
Каждый оператор имеет свой приоритет, и любое выражения вычисляется с учётом этих
приоритетов.
Арифметические
Сравнения
Логические
Возведение в степень(^)
Равно (=)
Not
Отрицание (–)
Неравно (<>)
And
Умножение и деление (*, /)
Меньше чем (<)
Or
Целочисленное деление (\)
Больше чем (>)
Xor
Остаток от деления (Mod)
Меньше или равно (<=)
Eqv
Сложение и вычитание (+,-)
Больше или равно (>=)
Imp
Конкатенация (&)
Удовлетворение маске (Like)
Принадлежность к типу (Is)
В этой таблице сверху вниз показан порядок следования приоритетов операторов Visual
Studio 2005. Сверху вниз приоритет убывает. Операторы (* и /) имеют одинаковый приоритет, и в
выражении вычисляются слева направо. Это же относится к операторам сложения и деления.
Если в выражении встречаются операторы из разных категорий, то вычисляются они в порядке
столбцов слева направо. Т.е. сначала арифметические, затем операторы сравнения и лишь затем
логические операторы.
Пример разработки приложения
Создание любой программной системы (проекта) на Visuai Basic состоит из следующих этапов»
создания интерфейса (создания окна диалога и размещения в нем элементов
22
управления),
установки параметров (свойств) элементов управления;
ввода текста программ и их отладки;
сохранения проекта в удобном для последующего использования виде
Пример программы, находящей сумму двух чисел. В этом примере в форме созданы три
надписи, три поля ввода и одна кнопка рис. 7
Процедура Command1_Click() по нажатию кнопки Ок считывает данные из полей ввода слагаемых и находит сумму и выводит результат в поле ввода Сумма. Пользовательский интерфейс
показан на рис 1.5.
Проект включает :
формы (фон, Windows, диалоговые окна);
элементы
управления ((графические объекты, помещенные на форму);
программный
код (процедуры и объявления).
При запуске Visual Studio 2005 по умолчанию открывается новый проект с именем Project 1
и относящаяся к нему форма Form1 (рис. 1.6). На форме разместим элементы управления: три
текстовых окна, три метки и кнопку «ОК», используя окно шаблонов. После ввода всех элементов
и редактирования форма принимает вид, показанный на рис. 1.6.
Рисунок 5.
Рисунок 6.
По умолчанию последовательно вводимым одинаковым элементам присваиваются
одинаковые имена, отличающиеся последней цифрой (текстовым окнам последовательно присваиваются имена Textl, Text2 и Text3, меткам последовательно присваиваются
имена Label1, Label2 и Label3, кнопке Command1).
23
В Visual Studio 2005 свойства большинства объектов представлены в окне свойств Properties
и легко доступны для изменений.
Видимые или визуальные объекты Visual Studio 2005 используются для создания средства
общения оператора (пользователя) и приложения. Это средство принято называть пользовательским интерфейсом. Большинство объектов служат для организации ввода данных в программу,
вывода данных на печатающие устройства или экран, для изменения хода работы программы. В
конечном счете. Каждый из объектов передает в приложение сообщение о произошедшем событии – нажатии клавиши, щелчке мыши, т.е. о действии оператора. В связи с этим их называют еще
элементами управления. Это, например, командные кнопки, клавиши, текстовые поля, рамки и
окна для рисунков и пр. Элементы управления, расположенные на панели объектов - называют
стандартными. Каждый из объектов обладает определенным наборов свойств, изменяя которые
мы можем воздействовать на эти объекты и, тем самым, использовать их для назначенной цели.
Свойства объектов можно разбить на несколько групп. Одни из свойств управляют внешним видом самих объектов - высота Height, ширина Width, цвет BackColor и ForeColor, шрифт надписи и
т.д. Другие свойства управляют расположением объектов на окне форм: Top - расстояние от верхнего края формы и Left - расстояние от левого края, взаимным расположением на форме и т.д.
Наконец есть группа свойств, предназначенных для воздействия одних объектов на другие.
Так, например свойство Picture объекта PictureBox позволяет поместить в рамку рисунок из выбранного файла.
Как все визуальные объекты, окно форм обладает определенным набором свойств Properties. Свойства, перечисленные в окне Properties, поддаются изменению. Изменения производятся
приданием свойствам некоторых новых значений. Убедитесь, что в окне Properties выбрана
вкладка Alphabetic (Алфавитный).
►Измените название заголовок окна Caption. Для этого в окне свойств Properties, нужно
найти слово Caption и дважды щелкнуть по нему мышью. Заголовок окна Form1 в правом поле
строки Caption подсветится, после этого, синим прямоугольником. Это означает, что выделенное
слово подготовлено к удалению. Прямо поверх старого заголовка Form1 можно набрать новый Форма1. Заголовок на самом окне форм должен после этого измениться на Форма1. Аналогично
нужно изменить и имя окна Name.
► Сделайте окно объемным. Для этого выберите свойство Appearance (Внешний вид) и
дважды щелкните по нему мышью. В правом поле окна свойств, в строке Appearance появится
указатель – кнопка с треугольной стрелкой. Щелчок на кнопке открывает список из двух возможных значений свойства Appearance: Flat - плоский и 3D - трехмерный, объемный. В зависимости от
выбранного значения, вид окна форм изменится.
►Измените цвет фона. Для этого нужно выбрать свойство BackColor и дважды щелкнуть по
нему мышью. Все действия выполняются аналогично предыдущему пункту. Из списка возможных
значений фона, можно выбрать поочередно понравившиеся цвета и оттенки, одновременно наблюдя за изменениями в окне форм. Цвет фона не должен быть слишком ярким, иначе трудно
будет разглядеть детали объектов, помещенных на окне форм.
► Измените свойство Font (Шрифт). Найдите свойство Font в окне Properties и щелкните по
нему мышью. В правом поле строки Font появится кнопка с многоточием (тремя точками). Щел-
24
чок на этой кнопке откроет стандартное диалоговое окно Windows под названием Выбор шрифта.
Можете выбрать любой шрифт - никаких изменений в окне форм не произойдет. Шрифт предназначен для выполнения надписей на объектах, которые будут в дальнейшем расположены на
окне форм.
►Измените свойство Icon (Иконка). Щелкните мышью на названии свойства, в открывшемся диалоговом окне поиска файлов выберите одну из папок с иконками, например Flags (Флаги). Иконки расположены в каталоге C:\Program Files\Microsoft Visual Studio\common\graphics\icons. Выберите флаг России - Flgrus. Иконка установится перед заголовком окна форм.
Замечание относительно необходимого количества щелчков. Для появления кнопки в правом поле окна свойств достаточно щелкнуть по нему один раз. Второй щелчок приведет к открытию диалогового окна или окна со списком свойств независимо от того, где он будет произведен на названии свойства или на появившейся кнопке.
Внимание: на экране может быть размещено несколько видимых объектов – окон, рамок,
кнопок. Один из объектов (это может быть и окно форм!) обязательно является активным. Окно
свойств Properties всегда содержит свойства того объекта, который находится в активном состоянии.
Для удаления видимого элемента с окна форм, выберите его, щелкнув мышью (элемент
окажется помеченным 8-ю черными квадратиками), затем щелкните правой кнопкой мыши –
появится контекстное меню, выберите Cut (Вырезать) и щелкните левой кнопкой мыши.
Определим теперь свойства введенных элементов, используя окно свойств
(Properrties). Активизируем элемент Label], при этом активизируются свойства в окне
свойств, относящиеся к этому элементу (заголовок Labell Label). Выберем свойство Caption (Название) и определим его как Первое слагаемое, используя строку ввода. Это название появляется на форме (рис. 7).
Рисунок 7
25
Свойство Caption (Название) для Label2 зададим - Второе слагаемое. Свойство Caption (Название) для Label3 зададим Сумма. Остальные оставим по умолчанию. Определим свойства тестовых окон. Активизируем сначала первое окно, очистим окно (удалим значение Textl свойства
Text) и присвоим ему имя а (свойство Name (Имя), которое будем использовать при написании
текста программ (рис. 8). Очистим также второе окно и третье окна и присвоим ем имена b и sum
соответственно. Остальные свойства окон оставим по умолчанию.
Рисунок 8
Для ввода текста необходимых программ щелкните мышью на кнопке View Code
(вид/код) окна «проекты» (окно Piojektl mak) Откроется окно FORM1 (имя проектируемой
формы по умолчанию Form1) Откроем слева раскрывающийся список General и выберем
в нем объект (в качестве объекта выбирается кнопка Ок, по умолчанию у неё осталось
имя Command1) или же дважды щелкнем по кнопке ОК в окне форм.
Private Sub Command1_Click()
Dim per As Integer
Dim vtor As Integer
Dim s As Integer
per = a.Text
vtor = b.Text
s = per + vtor
sum.Text = s
End Sub
26
Если бы мы не присвоили объекту имя а, то в программе вместо per = a.Text писали бы per=Text1.text. И аналогично бы с остальными переменными.
Порядок выполнения работы
1. Изучить общую методику выполнения работы и выполнить ее указания (прежде всего,
создать рабочий каталог для сохранения файлов).
2. Получить у преподавателя задание по лабораторной работе (описание создаваемого
проекта интерфейса пользователя).
3. Произвести загрузку MS Visual Studio 2005.
4. Изучить содержание вспомогательного файла «Калинин Разработка приложений в среде Microsoft Visual Studio 2008 .pdf» с методическими указаниями по работе в среде MS Visual
Studio 2005.
5. Создать решение и проект программного приложения в соответствии с заданием.
6. Предъявить разработанный проект преподавателю для контроля.
7. Составить отчет по работе в соответствии с прил. 2.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Виды диалоговых окон.
2. Этапы разработки приложения.
3. Функции преобразования типов.
4. Свойства которого из объектов, размещенных на форме, отображаются в окне Properties?
5. Какими свойствами характеризуется положение объекта на окне форм?
6. Как задаётся цвет фона?
7. Какие свойства определяют размеры объекта?
8. Как изменить заголовок объекта?
9. Как перевести проект в режим выполнения?
10. Какое свойство объекта включается в название процедуры?
11. Как задается свойство объектов «цвет»?
Лабораторная работа №4. Программирование
разветвляющихся вычислительных процессов
Цель работы: познакомиться с основными средствами программирование разветвляющихся вычислительных процессов при создании проектов MS Visual Basic. Научиться создавать простые программные Windows-приложения на алгоритмическом языке Visual Basic в среде Visual
Studio 2005.
Общие сведения
1.
Разветвляющиеся структуры. Операторы управления.
27
Зачастую в определённом месте программы необходимо выполнять те или иные
операторы, в зависимости от некоторых условий. Эта возможность в Visual Basic реализуется при помощи так называемых управляющих конструкций (или структур), которые в
свою очередь состоят из структур принятия решений и циклов.
1.1. Условный оператор If...End If
Он необходим для принятия решений, нужно ли выполнять то или иное действие или нет.
Другими словами если Логическое_выражение истинно, то Оператор выполнится. Если ложно, то
выполнение не произойдёт.
If Логическое_выражение Then Оператор
или сложнее
If Логическое_выражение Then
Группа_операторов
End If
В первом случает оператор может быть только один. Во втором сколько угодно (в том числе
и один).
Пример:
If (a = b) And (c <> d) Then
b=d
a = 20
End If
Скобки здесь не обязательны, но они повышают читабельность кода.
1.2. Условный оператор If...Else...ElseIf...End If
Такая конструкция используется для более сложных ветвлений:
If Логическое_выражение 1 Then
Группа_операторов
ElseIf Логическое_выражение 2 Then
Группа_операторов
Else
Группа_операторов
End If
Эта схема может быть и в укороченном виде If...Then...Else...End If. При этом операторы после Else выполняются только в том случае, если ни одно из условий не выполнено.
Пример:
If (a = b) Or (c <> d) Then
b = d
a = 20
Else
c = d
End If
Выражение c=d будет выполнено только в том случае, если a<>b или c=d.
28
1.3. Условный оператор Select Case...End Select
Когда существует несколько операторов (или блоков операторов), которые необходимо выполнять в случае истинности того или иного условия, то запись конструкции If…Then окажется
достаточно громоздкой. Поэтому в подобных случаях следует использовать структуру Select Case,
которая улучшает читаемость программы. Конструкция Select Case "принимает решение" на основе анализа значения одного выражения. При этом это выражение указывается в строке Select
Case:
Select Case Анализируемое_выражение
Case Значение№1
Группа операторов
Case Значение№2
Группа операторов
Case Значение№N
Группа операторов
Case Else
Группа операторов
End Select
Конечно, анализируемое выражение должно возвращать значение типа, совместимого с
типом значений в строка Case.
Пример:
В зависимости от значения переменной iTest, строковой переменной strResult присваиваются различные значения
Select Case iTest
Case 1
strResult = "iTest = 1"
Case 2, 3, 4
strResult = "iTest = 2, 3 или 4"
Case 5 To 9
strResult = "iTest находится в диапазоне от 5 до 9"
Case iTest < 0
strResult = "iTest меньше 0"
Case Is > 9
strResult = "iTest больше 9"
Case Else
strResult = "iTest равно 0"
End Select
В качестве значения для блока Cаse можно указывать не только одно значение (1),
но и несколько разделённых запятой (2,3,4).Можно также задать диапазон (5 То 9) или
воспользоваться относительным сравнением (Is>9). Вместо непосредственного проверочного выражения можно использовать ключевое слово Is. Если условию Select Case
соответствует несколько блоков Case, то выполняется первый из них:
Select Case a
29
Case 0
Print “Равно 0”
Case –10 To 10
Print”Между –10 и 10, кроме 0”
End Select
Пример программы.
Программа должна определять количество десятичных цифр в вводимом числе от 0
до 1000. Запуск программы осуществляется щелчком мыши по форме (операторы программы помещаются в процедуру обработки события Form_Click):
Private Sub Form_Click()
Dim X As Integer
Dim Y As Integer 'Объявление переменных
X = InputBox("введите число больше 0 и меньше 1000.")
If X < 10 Then
Y=1
ElseIf X < 100 Then
Y=2
Else
Y=3
End If
If Y > 1 Then Unit = "цифры."
If Y = 1 Then Unit = " цифру."
MsgBox "Введённое число имеет" & Y & Unit
End Sub
2. Переключатель (OptionButton)
30
Объекты типа OptionButton называются переключателями, так как, располагаемые в группах, они позволяют выбрать одно из нескольких значений. Установка одного переключателя в
группе (присвоение его свойству value значения True) автоматически сбрасывает другие переключатели, присваивая аналогичным свойствам значения False. Элемент управления Переключатель позволяет выбрать одну из нескольких взаимоисключающих альтернатив. Переключатель
(Option Button) используется в тех случаях, когда пользователь должен выбрать или отметить на
форме некоторое условие (да или нет). Условий, которые помечаются переключателями на форме, может быть несколько и только одно из них может быть выбрано (т.е. если одно условие, заданное переключателем, выбрано или отмечено, то другие переключатели на форме не помечены или не выбраны). Переключатели обычно отображаются группами. Группировка производится
при помощи элемента управления Рамка (Frame), который будет рассмотрен позже.
Рис. 1. Переключатель в форме
31
Рис. 2. Окно программы Сумма и
произведение двух чисел
Основные свойства переключателя перечислены ниже.
Свойства элемента Переключатель
Таблица 1
Свойство
Описание
Value
Возвращает значение True, если переключатель выбран, и False – в
противном случае
Caption
Надпись, отображаемая рядом с переключателем
Visible
Логическое свойство, определяющее, отображается ли переключатель
во время выполнения программы
Style
Устанавливает вид переключателя. Допустимые значения:
VbButtonStandard – (стандартный)
VbButtonGraphical – (допускает вывод графического изображения на поверхность элемента управления)
Picture
Отображает растровое изображение на поверхности переключателя
В качестве примера использования переключателя создадим программу, которая позволяет
пользователю выбрать одну из альтернатив: суммировать или перемножать вводимые числа.
32
Private Sub Command1_Click()
Dim per As Integer
Dim vtor As Integer
Dim rez As Integer
per = a.Text
vtor = b.Text
If Option1.Value = True Then rez = per + vtor
If Option2.Value = True Then rez = per * vtor
p.Text = rez
End Sub
При размещении в форме нескольких групп переключателей каждая логическая группа
должна помещаться в объект-контейнер, например Frame или pictureBox (рис. 3.). В этом случае,
для создания в форме группы переключателей необходимо сначала поместить в форму рамку, а
затем разместить в ней поочередно необходимое количество переключателей, используя для этого
кнопку OptionButton на панели элементов управления.
Рис. 3. Переключатель, помещенный в объект-контейнер
Предупреждение
При создании группы переключателей необходимо придерживаться вышеназванного порядка размещения элементов, т. к. только в этом случае элементы будут являться группой.
При запуске приложения на выполнение, содержащего группу переключателей, первый из
них устанавливается по умолчанию. Вы можете во время разработки любой переключатель группы сделать используемым по умолчанию. Для этого выделите требуемый переключатель и в окне
Properties присвойте свойству value значение False. Вы можете переключатель сделать недоступным. Для этого необходимо значение свойства Enabled (Доступный) установить в False. В этом
случае переключатель выделяется серым цветом.
Элемент управления Frame является контейнером и служит для объединения других
элементов в группу, после чего помещенными в него объектами можно управлять как единым
33
целым. Например, элемент управления Frame можно использовать для объединения в группу размещенных в форме и функционально связанных переключателей.
Для настройки внешнего вида элемента управления Frame применяются свойства, указанные в табл.2.
Таблица 2. Свойства элемента управления Frame
Свойство
Назначение
Appearance
Свойство может принимать значения 0-Flat или 1-3D, задающие плоский или объемный вид рамки
BorderStyle
Определяет, будет ли вокруг группы присутствовать рамка. Может принимать значения 0-None (рамка и ее заголовок отсутствуют) и 1-Fixed Single (рамка присутствует)
Caption
Определяет текст, располагающийся в левом верхнем углу рамки. Если из свойства
удалить текст, то группа будет объединена сплошной рамкой
Элемент управления Frame (Рамка) используется в формах в основном для объединения
элементов в группы. Например, вы хотите разместить в форме две группы переключателей, чтобы
с помощью первой группы переключателей выбирать страну, а используя вторую группу — наименование города. Все добавляемые в форму переключатели автоматически объединяются в
одну группу, если только вы предварительно не разместите в форме два объекта типа Frame и не
будете помещать создаваемые переключатели в соответствующую рамку.
При использовании рамки для создания группы элементов выполните следующую последовательность действий:
1. Создайте в форме объект типа Frame с помощью кнопки Frame (Рамка) на панели элементов управления.
2. Разместите в рамке объединяемые в группу элементы (рис. 4). Для этого щелкните соответствующую кнопку на панели элементов управления, поместите указатель мыши в рамку и перемещайте его, не отпуская кнопку мыши, до получения требуемого размера создаваемого объекта.
Совет
Чтобы проверить, создана ли группа из расположенных в рамке элементов, выделите
элемент управления Frame и переместите его. Если вместе с рамкой переместились расположенные внутри нее объекты, то они все объединены в группу.
Рис.4. Размещенные внутри объекта Frame элементы являются группой
34
Нельзя поместить в группу элемент управления, размещенный в форме, простым перемещением. Если вы хотите переместить в группу находящийся в форме элемент, выполните следующие
действия:
1. Выделите перемещаемый элемент.
2. Выполните команду Cut (Вырезать) меню Edit (Правка).
3. Установите указатель внутрь объекта Frame.
4. Выполните команду Paste (Вставить) меню Edit (Правка).
5. Переместите вставленный объект внутри рамки в требуемое место.
Рассмотрим пример простого проекта для преобразования значений температуры
по Цельсию в значения по Фаренгейту и наоборот. Преобразование производится соответственно по формулам
F=(C*9/5)+32, C=(F-32)*5/9
Пользовательский интерфейс показан на рис 5.
Рис. 5
При вводе значения температуры по Цельсию (окно Celsius) и нажатии клавиши
Ввода (Enter) в окне Fahreheit выводится значение по Фаренгейту. При аналогичном вводе
значения
по
Фаренгейту
выводится
значение
по
Цельсию.
При запуске Visual Basic по умолчанию открывается новый проект с именем Project 1 и
относящаяся к нему форма Form1 . На форме разместим элементы управления: два текстовых окна и две метки, используя окно шаблонов. После ввода всех элементов и редактирования форма принимает вид, показанный на рис.6. По умолчанию последовательно
вводимым одинаковым элементам присваиваются одинаковые имена, отличающиеся последней цифрой (текстовым окнам последовательно присваиваются имена Textl и Text2,
меткам последовательно присваиваются имена Label! и Label2).
35
Рис.6
Для ввода текста необходимых программ щелкните мышью на кнопке View Code
окна «проекты» (окно Piojektl mak) Откроется окно FORM1 (имя проектируемой формы по
умолчанию Form1)
Dim c As Integer
Dim f As Integer
____________________________________________
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii = 13) Then
c = (Text1.Text)
f = (C*9/5)+32
Text2.Text = f
End If
End Sub
__________________________________________
Private Sub Text2_KeyPress(KeyAscii As Integer)
If (KeyAscii = 13) Then
f = Text2.Text
36
c = (F-32)*5/9
Text1.Text = c
End If
End Sub
Keypress (нажатие клавиши) - процедуру обработки события. Имя процедуры
Text1_KeyPress формируется автоматически (первая часть имени определяется именем
выбранного элементом - верхним текстовым окном, вторая - именем выбранной процедуры обработки события) Параметром процедуры является значение кода нажатой клавиши (KeyAscii), определенное как целый тип (Integer).
1.
2.
3.
4.
5.
6.
Порядок выполнения работы
Изучить общую методику выполнения работы и выполнить ее указания (прежде всего,
создать рабочий каталог для сохранения файлов).
Получить у преподавателя задание по лабораторной работе (описание создаваемого проекта интерфейса пользователя).
Произвести загрузку Microsoft Visual Studio 2005.
Создать решение и проект программного приложения в соответствии с заданием.
Предъявить разработанный проект преподавателю для контроля.
Составить отчет по работе в соответствии с прил. 2.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1.
Какие управляющие структуры вы знаете?
2.
В чём отличие оперторов If…Then от Select Case?
3.
Для чего используется ключевое слово Is?
4.
Для чего служит переключатель?
5.
Свойства переключателя.
6.
Для чего нужен объект рамка?
7.
Как создать группу объектов?
8.
Как переместить в группу находящийся в форме элемент?
Лабораторная работа №5. Программирование
циклических вычислительных процессов
Цель работы: познакомиться с основными средствами программирование циклических вычислительных процессов при создании проектов MS Visual Basic. Научиться создавать простые
программные Windows-приложения на алгоритмическом языке Visual Basic в среде Visual Studio
2005. Изучить способы многократного повторения операторов.
37
Общие сведения
1. Циклы.
В алгоритмах обработки информации и реализующих их программах широко используются
циклы — повторяющиеся одинаковые вычисления. В программах Visual Basic для выполнения
повторяющихся действий используются циклы. Они бывают следующих типов:
For...Next
While…Wend
Do. . . Loop
Рассмотрим перечисленные конструкции
1.1. Цикл с использованием конструкции For...Next
Конструкция For...Next выполняет последовательность команд определенное число раз. Такую конструкцию называют циклом, а выполняемые ею программные коды — телом цикла.
Синтаксис конструкции For.. .Next следующий:
For счетчик = начЗначение То конЗначение [Step шаг]
конструкции
Next[счетчик]
Первый аргумент конструкции — счетчик — определяет имя переменной, которая будет
"считать" количество выполнении цикла. Параметр начЗначение указывает числовое значение,
которое присваивается переменной-счетчику перед первым проходом цикла. Цикл выполняется
до тех пор, пока значение счетчика не превысит конечного значения, указанного после ключевого
слова то. После каждого прохода цикла значение счетчика изменяется на величину шаг, указанную за ключевым словом step. Ключевое слово Next обозначает конец тела цикла и является обязательным.
Перед каждым проходом цикла Visual Basic сравнивает значения счетчика и аргумента конЗначение. Если значение счетчика не превышает установленного значения конЗначение, выполняются конструкции тела цикла. В противном случае управление переходит к следующей за Next
конструкции. Например:
For nCountVar = 1 То 10 Step 2
nNextWeek= nCountVar * 2
Next
Здесь цикл выполняется пять раз при значениях счетчика nCountVar 1, 3, 5, 7 и 9. Обратите
внимание, что переменная-счетчик используется в теле цикла в качестве обычной переменной.
Шаг изменения счетчика может быть отрицательным. Например:
For nCounter = 100 То 1 Step -10
nDecades= nCounter *2
Next
В этом случае цикл будет выполняться до тех пор, пока nCountVar больше 1. Если значение
шага цикла отрицательно, то начальное значение счетчика должно быть больше конечного.
38
Ключевое слово step можно опустить. В этом случае значение шага по умолчанию принимается равным 1.
1.2. Цикл с использованием конструкции While…Wend
Используется в том случае, когда число повторений операторов тела цикла заранее неизвестно.
While условие
Операторы
Wend
Если результатом проверки условия является значение Истина, то блок операторы выполняется, иначе осуществляется переход на оператор расположенный после служебного слова
Wend. Если первая проверка условия даст результат Ложь, то цикл не будет выполнен ни разу.
While a<15
z=z*a
a=a+1
Wend
1.3. Цикл с использованием конструкции Do...Loop
Цикл, задаваемый конструкцией Do... Loop, выполняется до тех пор, пока истинно задаваемое в цикле условие.
Синтаксис конструкции DO. . .Loop следующий:
Do While условие
конструкции
Loop
Аргумент конструкции условие является логическим выражением, значение которого проверяется перед каждым проходом цикла. Если это значение равно True, то выполняется последовательность команд, которые расположены между Do while и ключевым словом Loop. Эти конструкции образуют тело цикла. Если при очередном проходе цикла условие равно False, то происходит выход из цикла и управление передается конструкции, следующей за Loop. Возможна ситуация, при которой операторы цикла не выполняются ни разу. Она возникает в том случае, если
при первой проверке условия оно оказывается ложным.
В Visual Basic существует еще один вид цикла конструкции DO... Loop. Он отличается от рассмотренного ранее местом расположения условия. Если в предыдущей конструкции условие, по
которому выполняется цикл, расположено в заголовке, то в этой конструкции условие располагается в конце цикла:
Do
конструкции
Loop While условие
При использовании этой формы оператора тело цикла выполняется хотя бы один раз, после
чего осуществляется проверка заданного условия.
39
Есть еще две разновидности конструкции цикла Do. . .Loop. Они аналогичны рассмотренным ранее, но
отличаются тем, что цикл выполняется до тех пор, пока условие ложно, а не истинно. Данные операторы имеют следующий синтаксис:
Do Until условие
конструкции
Loop
и
Do
конструкции
Loop Until условие
Пример использования конструкции приведен ниже.
nCounter = 2
Do While nCounter < 10
nDecades(nCounter) = nCounter * 2
nCounter = nCounter * 2
Loop
Отличие от оператора Do While...Loop от While… Wend заключается в том, что здесь не используется слово Do, и вместо слова Loop используется Wend. В общем выбирайте какой хотите.
Пример:
Dim Counter
Counter = 0 ' Инициализируем переменные
While Counter < 20 ' Проверяем значение счётчика
Counter = Counter + 1 ' Увеличиваем счётчик
Wend ' Заканчиваем цикл, если Counter > 19
Debug.Print Counter ' Печатаем 20 в окно Debug
' Этот же пример, только с циклом Do While:
Dim Counter
Counter = 0 ' Инициализируем переменные
Do While Counter < 20 ' Проверяем значение счётчика
Counter = Counter + 1 ' Увеличиваем счётчик
Loop ' Заканчиваем цикл, если Counter > 19
Debug.Print Counter ' Печатаем 20 в окно Debug
1.4. Оператор Exit
В некоторых случаях необходимо прервать выполнение цикла до его завершения. Это можно сделать с помощью команды безусловного перехода Exit.
Команда Exit завершает выполнение цикла и передает управление следующей за циклом
конструкции. Синтаксис этого оператора внутри цикла For выглядит так: Exit For. Внутри цикла Do
синтаксис оператора Exit Do.
40
For счетчик = начЗначение То конЗначение [Step шаг]
[конструкции]
[Exit For]
[конструкции]
Next[счетчик[, счетчик] [,...]]
Do [{While ¦ Until} условие]
конструкции
[Exit Do]
конструкции
Loop
Например:
For nCounter=100 To 1 Step -10
nDecades(nCounter) = nCounter *2
If nDecades(nCounter) > 20 Then Exit For
Next
Оператор Exit служит также для выхода из процедур sub и Function. Синтаксис операторов в
этом случае соответственно Exit Sub и Exit Function. Эти операторы могут находиться в любом месте тела процедуры. Они используются в том случае, когда процедура выполнила нужные действия и из нее необходимо выйти.
2. Пример программы
По ходу использования этой программы пользователь будет вводить в текстовое поле число, а программа в специальном окне будет выводить, на какие числа это число делится без остатка и что при этом получится.
На форме должны быть элементы, которые отображены на рисунке 1. Ниже приведён текст
кода.
рис.1.
41
Dim delimoe As Long
‘объявляем переменные
Dim delitel As Long
‘ long – если кто-то будет использовать большие числа.
Dim resultat As Double
‘Например, 1000000
________________________________
Private Sub Command1_Click()
Text2.Text = ""
‘очищаем поле TEXT
If Not IsNumeric(Text1.Text) Then
‘ если не число, то
MsgBox "Это разве число?", vbCritical
‘ сообщить об этом
Exit Sub
‘ выйти из кода кнопки посчитать
End If
‘закончить проверку свойства TEXT
delimoe = Text1.Text
Form1.Caption = "Считаю"
больших чи-
‘ изменяем заголовок программы. Это нужно для
сел, пока компьютер считает
For delitel = 1 To delimoe
‘задаём цикл
resultat = delimoe / delitel
If resultat = Int(resultat) Then
ная resultat
‘программа проверяет: является ли перемен-
‘целым числом
Text2.Text = Text2 + Str(delimoe) + ":" + Str(delitel) + "=" + Str(resultat) + vbCrLf
‘ где vbCrLf переход на другую строку
End If
‘заканчиваем проверку целочисленности переменной resultat
Next
‘конец цикла
Form1.Caption = "Числа"
‘ возвращаем заголовок программы
End Sub
42
____________________________________
Private Sub Command2_Click()
End
‘заканчиваем работу программы
End Sub
Замечание.
По умолчанию предполагается, что текстовое поле служит для ввода одной строки текста.
Свойства Multi-Line и ScrollBar элемента управления TextBox позволяют настроить объект таким
образом, что он будет использоваться для ввода нескольких строк или даже большого блока текстовой информации.
Таблица 1
Предназначение свойств MultiLine и ScrollBar
Свойство
Назначение
MultiLine
Определяет способ отображения поля. При установленном значении True текст
автоматически переносится по словам на несколько строк. При вводе информации
в поле для перехода на новую строку необходимо использовать клавишу <Enter>
ScrollBar
Данное свойство используется, если свойство MultiLine имеет значение True и размер поля не позволяет отобразить заданный в свойстве Text текст. Свойство может
принимать одно из следующих значений:
0-None — полоса прокрутки отсутствует 1-Horizontal — горизонтальная полоса прокрутки 2-Vertical — вертикальная полоса прокрутки 3-Both — горизонтальная и вертикальная полосы прокрутки
Объект TextBox, так же как и метка, отличается большим набором свойств.
Для задания стиля рамки текстового поля применяется свойство Borderstyle (Стиль рамки).
Оно содержит два значения. По умолчанию используется значение Fixed Single, при котором поле
выделено рамкой. При установке значения None рамка вокруг поля отсутствует. Свойство
Appearance позволяет придать объемность текстовому полю, имеющему рамку.
Свойства Backcolor и ForeColor позволяют соответственно задать цвет фона и цвет текста,
размещаемого в элементе управления TextBox.
С помощью свойства Alignment (Выравнивание) можно задать вариант выравнивания информации в поле: по центру, по левому или правому краю.
Для задания наименования, размера и начертания шрифта, отображаемого в текстовом поле, используется свойство Font (Шрифт).
Порядок выполнения работы
43
1. Изучить общую методику выполнения работы и выполнить ее указания (прежде всего,
создать рабочий каталог для сохранения файлов).
2. Получить у преподавателя задание по лабораторной работе (описание создаваемого проекта интерфейса пользователя).
3. Произвести загрузку Microsoft Visual Studio 2005.
4. Создать решение и проект программного приложения в соответствии с заданием.
5. Предъявить разработанный проект преподавателю для контроля.
6. Составить отчет по работе в соответствии с прил. 2.
1.
2.
3.
4.
5.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Какие виды циклов вы знаете? В чём их различие?
Как прервать выполнение цикла до его завершения?
Как ввести несколько строк в текстовое поле?
Какими свойствами обладает объект ТextBox?
Можно ли применить эти свойства для объекта метка?
Лабораторная работа №6. Программирование
двумерной графики
Цель работы: познакомиться с основными средствами программирования двумерной графики при создании проектов MS Visual Basic. Научиться создавать простые программные
Windows-приложения на алгоритмическом языке Visual Basic в среде Visual Studio 2005. Изучить
способы рисования графических объектов.
Общие сведения
1 В Visual Basic 2005 для работы с графикой используется интерфейс GDI (Graphics Device
Interface), позволяющий с помощью различных графических методов и свойств создавать графические объекты, текст, управлять графическими изображениями как объектами, размещать графические объекты на форме или элементах управления. Пространство имен System. Drawing
обеспечивает доступ к базовым средствам GDI и предоставляет в распоряжение программиста
большой набор инструментов для программирования двухмерной векторной графики. Для того
чтобы что-нибудь нарисовать, нужно:
а) Создать так называемый объект Graphics, связанный с Windows-формой или элементом
управления, предоставляющими поверхность для рисования. В качестве поверхности для рисования может выступать кроме Windows-формы, специально предназначенный для рисования элемент управления PictureBox, а также многие другие, порой самые неожиданные элементы управления (например, метки, кнопки).
44
б) Выбрать (создать) инструмент рисования. В технологии GDI существуют два вида инструментов, предназначенных для рисования, — это Реn (Перо) и Brush (Кисть). С помощью пера изображается контур интересующего нас объекта, с помощью кисти можно организовать заливку его
внутренней области, которую можно закрасить с использованием кисти. Для инструмента Реn
используется метод Draw, в то время как для заливок применяется инструмент Brush с методом
Fill.
в) Выбрать объект рисования и соответствующий метод класса Graphics для того, чтобы его нарисовать. Далее будут рассматриваться следующие возможные объекты и
методы рисования: прямая линия - DrawLine, прямоугольник — DrawRectangle, эллипс — DrawEllipse, сектор эллипса — DrawArc.
2 Структуры Point, Rectangle, Color. Для программирования двухмерной векторной графики с клиентской областью Windows-формы или элемента управления сопоставляется декартова
система координат (см. рис.6.1). Клиентская область Windows-формы или элемента управления
определяется их размерами за вычетом таких элементов, как полосы прокрутки, границы, заголовок окна и меню.
Рис. 6.1
У каждой точки клиентской области есть свои x- и у- координаты. Началом отсчета (0, 0) является левый верхний угол клиентской области. Значение абсциссы растет при движении вправо,
значение ординаты увеличивается при движении вниз. По умолчанию координаты измеряются в
пикселях. Для описания координат точки далее будем использовать структуру Point с целочисленными координатами.
Для точки A с координатами x = 100 и y = 200 создадим pointA - экземпляр структуры Point с
помощью конструктора Point(x, y), где переменные x, y типа Integer.
Point(100, 200) В этом случае координаты (x, y) точки A есть (pDim pointA As New ointA.X,
pointA.Y), причем pointA.X = 100 и pointA.Y = 200.
45
Аналогично для описания четырехугольника используем структуру Rectangle с конструктором Rectangle(x, y, width, hight), где x, y - координаты верхнего левого угла, width — ширина,
hight — высота четырехугольника, причем x, y, width, hight — переменные типа Integer. Создадим
четырехугольник RectA — экземпляр структуры Rectangle с координатами верхнего левого угла
(10, 20), шириной — 100 и высотой 200 пикселей. Имеем Dim RectA As New Rectangle (10, 20, 100,
200) В этом случае (RectA.X=10, RectA.Y=20) — координаты верхнего левого угла, RectA.Width =
100 - ширина, RectA.Hight = 200 — высота четырехугольника RectA. Перечисленные выше свойства X, Y структуры Point и свойства X, Y, Width, Hight структуры Rectangle могут быть изменены
присвоением новых значений в ходе работы программы. Структуры Point и Rectangle обладают
целым рядом других свойств, а также методами и конструкторами, которые здесь не описаны,
поскольку далее в примерах не используются. Важным компонентом любого графического объекта является цвет. Структура Color предоставляет в наше распоряжение огромное количество цветов, которые явно присутствуют в перечислении свойств структуры Color (например, Color.Blue —
синий, или Color.Red — красный), но существует возможность создавать с ее помощью и свои
собственные цвета. Данная структура позволяет работать с цветами, представляющими собой
ARGB-модель, где А — альфа-компонент, R, G, В — красная, зеленая и синяя составляющие (соответствующие им переменные имеют тип Integer). Альфа-компонент определяет прозрачность
цвета, когда его значение 0 цвет будет полностью прозрачным (невидим), а при значении 255 —
полностью непрозрачным. Второй, третий и четвертый параметры имеют привычный нам смысл
количества красной, зеленой и синей краски и изменяются в пределах от 0 до 255, при этом, чем
меньше каждой краски мы положим, тем темнее будет цвет, чем больше – тем светлее. Кроме
того, можно использовать для создания собственного цвета RGB-модель, когда неявно альфакомпонент равен 255, и используются только свойства R, G, B. Свойства A, R, G, B структуры Color
возвращают соответствующие компоненты цветовой модели. Для создания собственного цвета
применяется метод FromArgb, который смешивает основные цвета. В примерах приведенным
ниже создается цвет, описываемый переменной, greenColor для обеих моделей с помощью метода FromArgb:
1) ARGB-модель
Dim greenColor As Color = Color.FromArgb(120, 0, _ 255, 0)
2) RGB-модель
Dim greenColor As Color = Color.FromArgb(0, 255, 0) Для приведенных примеров в случае
ARGB-модели свойства цвета greenColor есть greenColor.A = 120 (прозрачность), greenColor.R =
255 (красный), greenColor. G = 0 (зеленый), redColor.B = 0 (синий). Для RGB-модели прозрачность
greenColor.A = 255 по определению, остальные свойства совпадают. Нужно отметить то обстоятельство, что свойства цвета пера, в частности, greenColor нельзя менять присвоением им других
значений по ходу работы программы, поскольку они определены только для чтения.
3 Объект Graphics можно создать несколькими способами. Далее будет использоваться метод CreateGraphics элемента управления или формы. Например, рисуем на форме Dim g As
46
Graphics g = Me.CreateGraphics или рисуем на поверхности элемента управления PictureBox1 Dim
g As Graphics g = PictureBox1.CreateGraphics Данный способ обычно применяется, когда форма
или элемент управления уже существуют. Когда объект класса Graphics создается методом
CreateGraphics, он в момент создания запоминает размеры поверхности, на которой будет рисовать. Поэтому объявлять и создавать графический объект рекомендуется прямо в той процедуре,
которая рисует. После того, как использование объекта Graphics в программе закончено, необходимо освободить ресурсы с ним связанные. Это делаетcя помощью метода Dispose().
g.Dispose() Размеры клиентской области (прямоугольника) Windows-формы или элемента
управления определяются с помощью свойства ClientRectangle. Например, для формы Dim r As
Rectangle = Me.ClientRectangle или для элемента управления PictureBox1 Dim r As Rectangle =
PictureBox1.ClientRectangle Выведем параметры клиентской области формы (области рисования
на форме) — прямоугольника r на экран с помощью элемента TextBox1. Согласно, оператору
TextBox1.Text = "x=" & r.X & " y=" & r.Y & " _ Width=" & r.Width & " Height=" & r.Height имеем x=0
y=0 Width=959 Height=357
4 Типы линий. Прежде чем приступать к построению линий и фигур, необходимо познакомиться с классом Реn пространства имен System.Drawing, позволяющим задавать цвет, ширину,
вид линии, стиль оформления ее краев. Для создания экземпляра данного класса воспользуемся
конструктором, первым аргументом которого является цвет, то есть переменная типа Color, а вторым аргументом — ширина линии в пикселях (переменная типа Single). Соответственно, цвету
пера в классе Реn отвечает свойство Color, а ширине линии свойство Width. Создадим два пера,
цвет у которых задается с помощью метода FromArgb. Dim blackPen As New
Pen(Color.FromArgb(255, 0, _ 0, 0), 1) 'Получаем ручку с черным пером blackPen.Color =
Color.FromArgb(255, 0, 0, 0), 'и толщиной 55
blackPen.Width = 1 '(пиксель). Dim greenPen As New Pen(Color.FromArgb _ (255, 0, 255, 0),
10) 'Получаем ручку с зеленым пером greenPen.Color = Color.FromArgb_ (255, 0, 255, 0) ' и толщиной greenPen.Width = 10 '(пикселей). Теоретическая линия имеет ширину 0. Когда вы рисуете линию шириной в 1 пиксель, пиксели сосредоточены на теоретической линии. Если вы рисуете линию, которая имеет более чем один пиксель в ширину, пиксели по ширине располагаются либо,
имея центром теоретическую линию, либо имея теоретическую линию с одной из сторон рисуемой линии. Вы можете установить свойство пера Alignment (выравнивание), чтобы определить,
как пиксели рисуемой линии будут позиционироваться по отношению к теоретической линии.
Перечисление PenAlignment содержит следующие элементы: Center, Inset, Outset, Left, Right и
используется, чтобы задать значение свойству Alignment. Например, greenPen.Alignment =
PenAlignment.Center В этом случае пиксели рисуемой линии по ширине располагаются, имея центром теоретическую линию. Аналогичную роль играют и другие константы перечисления. Для
задания вида линии используется свойство DashStyle. Оно может принимать любое значение из
перечисления DashStyle пространства имен System.Drawing.Drawing2D. Поскольку в списке пространств имен по умолчанию не содержится пространство имен System.Drawing.Drawing2D, то в
47
программе обращение
Drawing2D.DashStyle.
к
перечислению
DashStyle
следует
записывать
в
виде
Перечисление DashStyle содержит следующие элементы: Solid ( сплошная линия), Dash
(пунктирная линия), Dot (точечная линия), DashDot (тире-точка), DashDotDot (тире-точка-точка),
Custom
(определяется
пользователем).
Например,
greenPen.DashStyle
=
Drawing2D.DashStyle.Dash 'Перо greenPen рисует пунктирную линию.
После того, как перо использовано, необходимо освободить ресурсы с ним связанные. Это
делаетcя для пера с помощью метода Dispose(). greenPen.Dispose()
5 Методы рисования. Пусть объект Graphics создан. Обозначим его в соответствии с определением Dim g As Graphics
Для рисования прямых линий предназначен метод DrawLine класса Graphics. Данный метод
позволяет нарисовать отрезок по двум точкам и виду линии. Приведем пример, используя ручку с
черным пером blackPen.
Point(10, 20) Dim point1 As New
Point(100, 200) g.DrawLine(blackPen, pDim point2 As New oint1, point2)
Для рисования прямоугольников предназначен метод DrawRectangle класса Graphics. Данный метод позволяет нарисовать прямоугольник, задавая его параметры с помощью структуры
Rectangle, выбрав нужное перо. Приведем пример, используя ручку с зеленым пером greenPen.
Dim rect As New Rectangle(10, 20, 100, 200) g. DrawRectangle(greenPen, rect)
Для построения кругов и эллипсов существует метод DrawEllipse класса Graphics пространства имен System. Drawing. Эллипс характеризуется структурой Rectangle, задающей расположение, ширину и размер эллипса. В примере задается перо redPen, рисующее линии типа тире- точка-точка.
Dim rect As New Rectangle(10, 20, 200, 100) Dim redPen As New Pen(Color.Red, 3)
redPen.DashStyle = Drawing2D.DashStyle.DashDotDot g.DrawEllipse (redPen, rect)
Для рисования сектора эллипса существует метод DrawPie класса Graphics. Сектор эллипса
характеризуется структурой Rectangle, задающей расположение, ширину и размер эллипса, сектор которого рисуется, и углами в градусах от оси абсцисс по часовой стрелке, определяющими
начальную точку сектора и конечную точку сектора. В примере задается перо redPen, рисующее
линии типа тире-точка-точка.
48
Рис. 6.2
Рис. 6.3
49
Dim rect As New Rectangle(10, 20, 200, 100) Dim angle1 As Single = 6.0F Dim angle2 As Single =
200.0F Dim redPen As New Pen(Color.Red, 3) pen.DashStyle = Drawing2D.DashStyle.DashDot
g.DrawPie(redPen, rect, angle1, angle2)
6 Кисти для заливки фигур. Графический интерфейс GDI позволяет не только создавать
рамки фигур, но и закрашивать их различными способами. Самым простым способом заливки
является однородная заливка. Для создания соответствующей кисти используется класс
SolidBrush пространства имен System.Drawing.
Пример. Создадим кисть с помощью полупрозрачного цвета для однородной заливки.
'Создаем цвет Dim color As Color = Color.FromArgb(50, Color.Gray) 'Создаем кисть Dim solidBrush
As SolidBrush = New _ SolidBrush(color)
Пусть требуется заштриховать фигуру. Для создания соответствующей кисти применяется
класс HatchBrush пространства имен System.Drawing.Drawing2D. Перечисление HatchStyle пространства имен System.Drawing.Drawing2D имеет множество значений, задающих вид штриховки
(54 различных стиля). Приведем некоторые из них.
HatchStyle
Тип штриховки
Horisontal
Горизонтальная
Vertical
Вертикальная
ForwardDiagonal
Диагональная (из верхнего
левого угла к нижнему правому углу)
BackwardDiagonal
Диагональная (из верхнего
правого угла к и нижнему левому углу)
Cross
Пересекающиеся горизонтальные и вертикальные линии.
DiagonalCross
Пересекающиеся
ные линии.
диагональ-
Порядок выполнения работы
1. Изучить общую методику выполнения работы и выполнить ее указания (прежде всего,
создать рабочий каталог для сохранения файлов).
2. Получить у преподавателя задание по лабораторной работе (описание создаваемого проекта рисования графического объекта).
50
3.
4.
5.
6.
Произвести загрузку Microsoft Visual Studio 2005.
Создать решение и проект программного приложения в соответствии с заданием.
Предъявить разработанный проект преподавателю для контроля.
Составить отчет по работе в соответствии с прил. 2.
6.
7.
8.
9.
10.
11.
12.
КОНТРОЛЬНЫЕ ВОПРОСЫ
Какие основные этапы создания изображения графического объекта существуют?
Объясните графическую систему координат клиентской области.
Объясните свойства структур Point, Rectangle, Color.
Как осуществляется работа с цветом изображения в интерфейсе GDI?
Как создается объект Graphics?
Как создаются типы линий в интерфейсе GDI?
Какие методы рисования фигур существуют в интерфейсе GDI?
Библиографический список
1. Калинин А.А. Информатика. Разработка приложений в среде Microsoft Visual Studio 2008
на языке Visual Basic. Учебное пособие / Калинин А.А.; Мос. гос. ун-т печати — М.: МГУП, 2009.—
99 с.
2. Пауэре Л. Microsoft Visual Studio 2008 / Л. Пауэре, М. Снелл: Пер. с англ. — СПб.: БХВПетербург, 2009. — 1200 с.
3. Шевякова Д. А., Степанов А. М., Карпов Р. Г. Самоучитель Visual Basic 2005 / Под общ.
ред. А. Ф. Тихонова. — СПб.: БХВ-Петербург, 2006. - 576 с: ил.
4. Ивьен, Билл, Берес, Джейсон. Visual Basic .NEТ. Библия пользователя. : Пер. с анrл. — М.:
Издательский дом "Вильяме", 2002. — 1024 с.
5. Дацко Т.Г., Карташов И.Н., Марголин Л.Н., Петрова В.В., Рудяк Ю.В. Информатика. Разработка приложений в среде Microsoft Visual Basic: Учебное пособие / Т.Г. Дацко, И.Н. Карташов,
Л.Н. Марголин, В.В. Петрова, Ю.В. Рудяк; Мос. гос. ун-т печати — М.: МГУП, 2007.— 88 с.
51
Прил ож ени е 1
Общая методика выполнения работ
Перед началом выполнения лабораторных работ создать подкаталог учебной бригады в каталоге учебной группы, например, ...\10Эб_2\BR1, где сохранять все результаты. Для сохранения
результатов использовать файлы с именами, позволяющими их идентифицировать, например,
lbta_1.doc, где lbta означает лабораторная работа по дисциплине "Теория алгоритмов", 10Эб_2
учебная группа 10Эб, номер лабораторной работы 2, BR1 бригада номер 1. Возможны и другие
способы идентификации результатов выполнения лабораторных работ, принятые в организации
учебного процесса.
Выполнение лабораторных работ проводится по следующей общей методике:
1. Изучить описание лабораторной работы.
2. Получить у преподавателя задание по лабораторной работе.
3. Изучить содержание соответствующих данной работе разделов пункта Помощь или ?
(Справка) главного меню приложения.
4. Ответить на контрольные вопросы по данной лабораторной работе.
Примечание: обратить внимание на то, что ответ на некоторые контрольные вопросы содержится либо в разделах пункта Помощь или ? (Справка) главного меню приложения, либо в
специальных файлах, указанных в пособии.
5. Выполнить задание по работе, используя средства Microsoft Visual Studio 2005.
6. Составить отчет по работе в соответствии с прил. 2.
Прил ож ени е 2
Требования к оформлению отчета
Отчет по лабораторной работе оформляется в соответствии с ГОСТ ЕСКД 2.105-95 "Общие
требования к текстовым документам" и должен содержать:
1. Титульный лист с указанием названия и номера лабораторной работы, номеров учебной
группы и бригады, Ф.И.О. студентов и преподавателя.
52
2. Формулировку цели работы.
3. Задание на выполнение работы.
4. Краткий порядок выполнения работы.
5. Результаты выполнения работы с комментариями и иллюстрациями в виде распечаток
документов и текстов макрокоманд (если это предусмотрено заданием).
6. Выводы.
Прил ож ени е 3
Типовые задания по лабораторным работам
Лабораторная работа №1. Среда разработки Microsoft Visual Studio 2005
Для следующих вариантов заданий создать проект MS Visual Basic в среде Visual Studio 2005
и обеспечить требуемое функционирование:
1.1. Проект «Учебная дисциплина». При запуске программы появляется форма проекта с
тремя объектами: текст «Дисциплина», кнопка «Пуск» и кнопка «Отмена». После нажатия командной кнопки «Пуск» в окне формы дополнительно проявляется текст с названием дисциплины «Теория алгоритмов (кафедра Информатики)» и изображение компьютера или стопки книг. После нажатия командной кнопки «Отмена» текстовое окно и
изображение исчезают, после нажатия командной кнопки «Пуск» опять появляются и
т.д.; работа с проектом завершается после нажатия кнопки «Закрыть» (
проекта.
) в заголовке
1.2. Проект «Рисунок – текст». При нажатии кнопки «Рисунок» в центре формы появляется
только изображение предмета, при нажатии кнопки «Текст» – только его название.
1.3. Проект «Расписание». При нажатии кнопки с названием дня недели в текстовом окне
TextBox1 показывается учебное расписание этого дня.
1.4. Проект «Позитив – негатив». При нажатии кнопки «Позитив» текст в текстовом окне
TextBox1 показывается темным шрифтом на светлом фоне, при нажатии кнопки «Негатив» – наоборот: светлым шрифтом на темном фоне.
1.5. Проект «Обмен цветов». После начального заполнения разными цветами текстовых
окон TextBox1 и TextBox2 каждое нажатие кнопки «Обмен цветов» вызывает закрашивание левого поля цветом правого поля и наоборот.
53
1.6. Проект «Размер шрифта». После выбора числового значения из списка комбинированного окна ComboBox1 и нажатия кнопки «Изменить размер шрифта» размер шрифта
текста, введенного в текстовое окно TextBox1, изменяется в соответствии с выбранным
значением.
Лабораторная работа №2. Создание проектов MS Visual Basic с использованием изменений
свойств объектов
Для следующих вариантов заданий создать проект MS Visual Basic с использованием изменений свойств объектов и обеспечить требуемое функционирование программного приложения:
2.1. При нажатии на одну из командных кнопок: «Имя», «Фамилия», «Отчество», «Ф.И.О»
(фамилия с инициалами) в текстовом окне появляется соответствующий текст. Тип
шрифта, его начертание и кегль в каждом появляющемся тексте должны быть различными.
2.2. При нажатии на одну из командных кнопок: «ВУЗ», «Факультет», «Курс», «Группа» в
текстовом окне появляется соответствующий текст. Тип шрифта, его начертание и кегль
в каждом появляющемся тексте должны быть различными.
2.3. При нажатии на одну из командных кнопок: «Город», «Индекс», «Улица», «Адрес» в
текстовом окне появляется соответствующий текст. Тип шрифта, его начертание и кегль
в каждом появляющемся тексте должны быть различными.
2.4. При нажатии на одну из командных кнопок: «Животное», «Птица», «Рыба», «Насекомое» в текстовом окне появляется соответствующий текст. Тип шрифта, его начертание
и кегль в каждом появляющемся тексте должны быть различными.
2.5. При нажатии на одну из командных кнопок в центре формы появляется рисунок, соответствующий тексту этой кнопки, и исчезает предыдущий.
2.6. При нажатии на одну из командных кнопок с названием дисциплины в текстовом окне
появляется соответствующая фамилия с инициалами преподавателя. Тип шрифта, его
начертание и кегль в каждом появляющемся тексте должны быть различными.
2.7. При нажатии на одну из командных кнопок с названием государства в текстовом окне
появляется название соответствующей столицы. Тип шрифта, его начертание и кегль в
каждом появляющемся тексте должны быть различными.
2.8. При нажатии на одну из командных кнопок с названием цвета в текстовом окне соответственно изменяется цвет фона.
54
2.9. При нажатии на одну из командных кнопок со стрелками текст, показанный в текстовом окне, смещается в соответствующую сторону относительно заданного центра, либо
помещается в центр при нажатии центральной кнопки.
2.10.
При нажатии на одну из командных кнопок с названием вида издания в текстовом
окне появляется соответствующее ему конкретное название. Тип шрифта, его начертание и кегль в каждом появляющемся тексте должны быть различными.
2.11.
При нажатии на одну из командных кнопок: «080116.65», «080502.65»,
«080801.65» в текстовом окне появляется название соответствующей специальности
(«Математические методы в экономике», «Экономика и управление на предприятии
(по отраслям)», «Прикладная информатика в экономике»). Тип шрифта, его начертание
и кегль в каждом появляющемся тексте должны быть различными.
2.12.
При нажатии на одну из командных кнопок: «Курсив», «Полужирный», «Подчеркнутый», «Обычный» текст в текстовом окне принимает соответствующее начертание.
Лабораторная работа №3. Программирование линейных вычислительных процессов
Для следующих вариантов заданий создать проект MS Visual Basic с использованием линейных вычислительных процессов и созданием окна ввода/вывода информации, обеспечить требуемое функционирование программного приложения:
3.1. Составить программу перевода введенной денежной суммы в монгольских тугриках в
доллары. Курс валюты: 1034 к 1$.
3.2. Составить программу перевода введенной скорости, заданной в км/ч, в м/с.
3.3. Составить программу, для которой вводятся 3 числа, а выводится сумма их квадратов.
3.4. Составить программу, для которой вводится число тараканов в комнате, печатается
общее число их ножек и общее число их усов.
3.5. Вычислить периметр и площадь прямоугольного треугольника по заданным длинам
двух катеров a и b.
3.6. Найти произведение цифр заданного четырёхзначного числа.
3.7. Найти площадь равнобедренной трапеции с основаниями a и b и углом
основании а.
при большом
3.8. Дано действительное число а. Не используя никаких функций и никаких операций,
кроме умножения, получить а 8 за три операции; а 10 и а 16 за четыре операции.
55
3.9. Дана величина А, выражающая объём информации в байтах. Перевести А в более
крупные единицы измерения информации.
3.10.
Организацией приобретено n принтеров и m компьютеров. Ввести необходимые
данные с клавиатуры. Получить стоимость всей покупки.
3.11.
Длина отрезка задана в дюймах (1 дюйм = 2,54 см). Перевести значение длины в
метрическую систему, то есть выразить ее в метрах, сантиметрах и миллиметрах. Так,
например, 21 дюйм = 0 м 53 см 3,4 мм.
3.12.
Заданы уравнения двух пересекающихся прямых на плоскости:
у2
tg
k2
b2 . Найти (в градусах и минутах) угол
(k1 k 2 )
.
( 1 k1 k 2 )
у1
k1
b1 ;
между ними, используя формулу:
3.13.
Русские не метрические единицы длины: 1 верста = 500 саженей; 1 сажень = 3 аршина; 1 аршин = 16 вершков; 1 вершок = 44,45 мм. Длина некоторого отрезка составляет р метров. Перевести ее длину в русскую не метрическую систему меры.
3.14.
Треугольник задается координатами своих вершин на плоскости:
B x2 , y 2
,
C x3 , y3
A x1 , y1
,
. Найти площадь треугольника ABC.
3.15.
Составить программу вычисления площади и периметра некоторого треугольника
по координатам 3-х его вершин.
3.16.
Составить программу вычисления объема куба и площади его боковой поверхности, если задана длина ребра куба.
Лабораторная работа №4. Программирование разветвляющихся вычислительных
процессов
Варианты заданий
1. Как известно, число делится на 3 тогда и только тогда, когда сумма его цифр делится на
3. Проверить этот признак на примере заданного трехзначного числа.
2. Суточный рацион коровы составляет и кг сена, v кг силоса и w кг комбикорма. В хозяйстве, содержащем стадо из k голов, осталось s центнеров сена, r тонн силоса и f мешков комбикорма по 50 кг. Сколько еще дней хозяйство сможет кормить коров по полному рациону? Какой
из кормов кончится раньше других?
56
3. Написать программу, которая после введенного с клавиатуры числа (в диапазоне от 1
до 999), обозначающего денежную единицу, дописывает слово "рубль" в правильной форме.
Например, 12 рублей, 21 рубль и т. д.
4. Написать программу, которая после введенного с клавиатуры числа (в диапазоне от 1
до 99), обозначающего денежную единицу, дописывает слово "копейка" в правильной форме.
Например, 5 копеек, 41 копейка и т.д.
5. С клавиатуры вводится сегодняшняя дата. Написать программу, которая вычисляет дату
следующего дня.
6. Написать программу, которая вычисляет оптимальный вес для пользователя, сравнивает его с реальным и выдает рекомендацию о необходимости поправиться или похудеть. Оптимальный вес вычисляется по формуле: Рост в см - 100.
7. Даны действительные числа x и y, не равные друг другу. Меньшее из этих двух чисел
заменить половиной их суммы, а большее - их удвоенным произведением.
8. Даны целые числа m, n. Если числа не равны, то заменить каждое из них одним и тем
же числом, равным большему из исходных, а если равны, то заменить числа нулями.
9. Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц оплачиваются В р., а разговоры сверх установленной нормы оплачиваются из расчета
С р. в минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц.
10. Составить программу, определяющую результат гадания на ромашке - “ любит - не любит”, взяв за исходное данное количество лепестков n.
11. Написать программу нахождения суммы большего и меньшего из 3 чисел.
12. Составить программу, проверяющую будет ли сумма двух первых цифр заданного четырёхзначного числа равна сумме двух его последних.
13. Составить программу, проверяющую будет ли сумма цифр данного трёхзначного числа N
являться чётным числом.
14. Составить программу, проверяющую будет ли квадрат заданного трехзначного числа равен кубу сумме цифр этого числа.
15. Проверить будет ли данная тройка натуральных чисел a, b, c являться тройкой Пифагора,
т.е. c =a2+b2.
2
16. Написать программу проверяющую будет ли произведение натуральных чисел а и b
кратно числу с.
57
17. Написать программу вычисления сопротивления электрической цепи, состоящей из двух
сопротивлений. Сопротивления могут быть соединены последовательно или параллельно
18. Напишите программу, которая запрашивает у пользователя номер месяца и затем выводит соответствующее название времени года. В случае, если пользователь введет недопустимое
число, программа должна вывести сообщение «Ошибка ввода данных».
19. Имеется пронумерованный список деталей: 1 - шуруп, 2 - гайка, 3 - винт, 4 - гвоздь, 5 болт. Составить программу, которая по номеру детали выводит на экран ее название.
20. Написать программу, которая бы по введенной букве (первая буква сезона з - зима, в весна, л - лето, о - осень) выдавала соответствующие этому времени года месяцы.
21. Даны три угла. Проверить могут ли они быть углами треугольника, если да, то проверить
будет ли этот треугольник остроугольным.
22. Написать программу, которая запрашивает у пользователя номер дня недели и выводит
одно из сообщений: "Рабочий день", "Суббота" или "Воскресенье".
23. Написать программу вычисления стоимости разговора по телефону с учетом 20% скидки,
предоставляемой по субботам и воскресеньям.
24. Для данного аргумента х вычислить значение функции:
f ( x)
x 2 3x 9, если
1
, если
3
x 6
x
3
x
3
Лабораторная работа №5. Программирование циклических вычислительных процессов
Варианты заданий
1. Вывести в виде таблицы значение функций у = х4, у = tgx, на отрезке [-5; 5] с шагом
0,1.
2. Известно время начала и окончания (например, 6:00 и 24:00) работы некоторого пригородного автобусного маршрута с одним автобусом на линии, а также протяженность маршрута
в минутах (в один конец) и время отдыха на конечных остановках. Составить суточное расписание
этого маршрута (моменты отправления с конечных пунктов) без учета времени на обед и пересменку.
3. Получить таблицу пересчета миль в километры и обратно (1 миля = 1,609344 км) для
расстояний, не превышающих k км, в следующем виде
58
мили
Км
0,6214
1,0000
1,0000
1,6093
1,2428
2,0000
…
…
4. Числа последовательно вводят с клавиатуры. После ввода каждого числа необходимо
вычислить и вывести на экран среднее значение всех введенных чисел (все числа хранить в памяти нет необходимости).
5. Дано натуральное число n и действительное x. Найти сумму n членов ряда:
S
x
x2
2
x3
3
...
xn
n .
6. Дано натуральное число n и действительное x. Найти сумму n членов ряда:
S
x
x3
3
x5
5
7. Дано
S 1
1
2
1
4
8. Дано
P
... ( 1) n
x 2n 1
(2n 1) .
натуральное
число
n.
Вычислить
сумму
n
членов
ряда:
1
1
... ( 1) n n
8
2 .
натуральное
число
n.
Вычислить
произведение
n
членов
ряда:
2 4 6
2n
...
3 5 7
2n 1 .
P
1
1
22
P
1
1
2
9. Дано натуральное число n. Вычислить:
10. Дано натуральное число n. Вычислить:
1
1
1
32
1
4
... 1
1
1
6
1
n 2 , где n>2.
... 1
1
2n
11. Дано натуральное число S. Дана последовательность 5, 9, 13, 17,... Сколько слагаемых
следует взять, чтобы получить сумму, равную либо превышающую S? Результат вывести на экран.
59
12. Даны натуральные числа M, N, k. Написать программу для вычисления суммы целых
положительных чисел, больших M, меньших N и кратных k. Полученное число вывести на экран.
13. Написать программу, которая вычисляет сумму первых n членов ряда: 1, 3, 5, 7... Количества суммируемых членов ряда задается во время работы программы.
14. Написать программу, которая выводит на экран ваши имя и фамилию 10 раз.
15. Написать программу, которая выводит таблицу квадратов первых десяти целых положительных чисел.
16. Написать программу, которая выводит таблицу квадратов первых пяти целых положительных нечетных чисел.
17. Написать программу, которая выводит таблицу степеней двойки от нулевой до десятой.
18. Написать программу, которая выводит таблицу значений функции у = -2,4x2+5х-3 в диапазоне от -2 до 2, с шагом 0,1.
19. Написать программу проверки знания таблицы умножения. Программа должна вывести
10 примеров и выставить оценку: за 10 правильных ответов - "отлично", за 9 и 8 — "хорошо", за 7
и 6 — "удовлетворительно, за 6 и менее — "плохо".
20. Напишите программу, которая выводит на экран таблицу значений функции у= 2х2-5х-8 в
диапазоне от -4 до 4. Шаг изменения аргумента 0,2.
21. Напишите программу, которая из десяти введенных с клавиатуры чисел считает количество простых чисел.
22. Ввести в программе n чисел с клавиатуры и определить, сколько среди них положительных, отрицательных и равных 0. Вывести результат на экран.
23. Подсчитать количество песен в коллекции по направлениям: 1- рок, 2-джаз, 2- альтернативная музыка, а так же общее их общее число.
24. Из аэропорта вылетают самолеты следующего направления: Москва – 855р., Ленинград
– 965 р., Уфа - 1060 р., Владивосток – 2020 р. Определить кол-во проданных мест каждого типа и
сумму вырученных денег от продажи.
25. Задано натуральное число n. Найти количество натуральных чисел, не превышающих n и
не делящихся ни на одно из чисел 2, 3, 5.
60
Лабораторная работа №6. Программирование двумерной графики
Задание по лабораторной работе состоит из общей и индивидуальной частей для каждой
лабораторной бригады.
Общее задание (для каждой лабораторной бригады)
Разработать приложение, реализующее выбор пользователем вида геометрической фигуры
и различных параметров для нее и для метки с названием этой фигуры. Дополнительно предусмотреть изменение цвета надписи, формы, типа обрамления фигуры и т.п. в соответствии со
своим вариантом. Для создания проекта необходимо использовать элементы управления типа
GroupBox, RadioButton, CheckBox, ComboBox, Label, PictureBox (для создания рисунка), Button.
Следует иметь в виду, что прежде чем переносить на форму переключатели, входящие в группы,
необходимо сначала перенести на форму рамку, а затем, выбрав на панели элементов очередной
переключатель, поместить его внутрь рамки. При выполнении программы в поле Label1 будет
появляться название фигуры, поэтому необходимо на стадии проектирования очистить это поле
от слова Label1 и установить по своему усмотрению шрифт, цвет, выравнивание. Форма для общей части проекта может иметь следующий вид (см. рис. 6.4):
Рис. 6.4
Флажки «Полужирный» и «Курсив» находятся внутри рамки «Начертание», но даже объединенные в группу, они будут работать самостоятельно, т.е. может быть установлен один из них,
могут оба, а может быть ни один не установлен. Рамка в данном случае лишь визуально объединяет их. Элемент ComboBox1 (комбинированный список) позволит пользователю в режиме выполнения программы выбрать из раскрывающегося списка название шрифта и в результате текст
в поле Label1 будет отображаться этим шрифтом. Внешний вид списка определяется свойством
DropdownStyle. В данном случае надо установить значение этого свойства DropdownList (раскрывающийся список), т.е. пользователь имеет право только выбирать тип шрифта из заданного набора, не имея возможности во время работы программы ввести собственное значение. Для за-
61
полнения списка названиями шрифтов (Arial, Courier New, Times New Roman) надо использовать
свойство Items. Программный код будет состоять из трех групп процедур:
1) 11 процедур, связанных с 9 переключателями, 2 флажками, обусловленные изменением
состояния переключателя или флажка (событие CheckedChanged);
2) 1 процедура, связанная с выбором шрифта из комбинированного списка (событие
SelectedIndexChanged);
3) 2 процедуры, обусловленные щелчком мыши по командными кнопками (событие Click).
После прорисовки для данной конфигурации параметров кнопка "Прорисовка" делается
недоступной (свойство кнопки Enable = False), пока не будет изменен хотя бы один параметр,
относящийся к рисунку. То же самое имеет место для кнопки "Шрифт", после изменения шрифта,
которым написан заголовок рисунка. Первые две группы процедур возвращают кнопкам доступность (свойство кнопки Enable = True), после того как было изменено элементов управления первых двух групп с помощью соответствующих процедур.
Например, Private Sub RadioButton8_CheckedChanged (ByVal _ sender As System.Object,
ByVal e As _ System.EventArgs) Handles RadioButton8.CheckedChanged Button1.Enabled = True End
Sub или Private Sub CheckBox1_CheckedChanged (ByVal sender _ As System.Object, ByVal e As System.EventArgs) _ Handles CheckBox1.CheckedChanged Button2.Enabled = True End Sub
Процедура, отвечающая кнопке "Прорисовка" (Name = Button1) при ее вызове создает рисунок в клиентской области элемента управления PictureBox1 с параметрами (типом рисунка,
пером, кистью), которые задаются на форме при работе программы с помощью переключателей.
То же самое имеет место для процедуры, связанной с кнопкой "Шрифт" (Name = Button2), только
для нее параметры шрифта устанавливаются флажками и списком элемента управления
ComboBox1. Отметим, что выбранное название шрифта находится в свойстве Text этого элемента.
Выбор параметров производится посредством свойства Checked как переключателей, так и
флажков, которое, являясь булевской переменной, принимает два значения True и False в зависимости от состояния объекта. С помощью свойства Checked формулируются условия для условного оператора для конкретных параметров. Следует отметить, что рисунку соответствует три
группы переключателей "Фигура", "Тип заливки", "Цвет заливки", каждая из которых объединена
элементом управления GroupBox (рамка). В этом случае в каждой группе один и только один переключатель задействован, то есть его свойство Checked = True. У остальных переключателей в
группе Checked = False. Это облегчает запись условий для вышеупомянутых групп переключателей, поскольку в каждой группе всего три возможных варианта параметра. Поскольку в группу
флажки были объединены формально, для параметров шрифта в группе "Начертание" возможны
любые комбинации флажков. Что должно быть учтено при записи условий. Создание объектов
для рисунка (контур, перо, кисть), как и создание шрифта, с помощью конструкторов классов было рассмотрено выше в теме двумерной графики и в примере выполнения задания 6.2. Процеду-
62
ра для кнопки «Выход» должна содержать оператор End. Далее в соответствии с вариантом надо
перенести на форму дополнительные элементы: переключатели, флажок или комбинированный
список, написать для них программные коды, запустить на выполнение программу и проверить
работу всех процедур.
Варианты заданий (индивидуальные для лабораторной бригады)
Вариант №6-1 Предусмотреть изменение цвета надписи в элементе Label1 с помощью переключателей.
Вариант №6-2 Предусмотреть изменение цвета фона надписи Label1 с помощью переключателей.
Вариант №6-3 Предусмотреть изменение цвета линии, обрамляющей фигуру, с помощью
переключателей.
Вариант №6-4 Предусмотреть изменение цвета линий штриховки фигуры с помощью переключателей.
Вариант №6-5 Предусмотреть изменение типа линии, обрамляющей фигуру, с помощью
переключателей.
Вариант №6-6 Предусмотреть выравнивание названия фигуры в элементе Label1 по центру,
левому или правому краю с помощью переключателей.
Вариант №6-7 Предусмотреть возможность изменения способа отображения поля Label1 –
с рамкой или без рамки с помощью переключателей.
Вариант №6-8 Предусмотреть возможность изменения объемности поля Label1 с помощью
переключателей.
Вариант №6-9 Предусмотреть изменение цвета формы с помощью переключателей. Вариант №6-10 Предусмотреть возможность изменения размера шрифта в поле Label1 с названием
фигуры с помощью комбинированного списка.
Вариант №6-11 Предусмотреть возможность подчеркивания названия фигуры с помощью
элемента CheckBox1.
Вариант №6-12 Предусмотреть возможность изменения толщины линии, обрамляющей
фигуру, с помощью комбинированного списка.
63
Содержание
ВВЕДЕНИЕ ........................................................................... 3
ЛАБОРАТОРНАЯ РАБОТА №1. СРЕДА РАЗРАБОТКИ MICROSOFT
VISUAL STUDIO 2005 ................................................................... 3
ЛАБОРАТОРНАЯ РАБОТА №2.
СОЗДАНИЕ ПРОЕКТОВ MS VISUAL
BASIC С ИСПОЛЬЗОВАНИЕМ ИЗМ ЕНЕНИЙ СВОЙСТВ ОБЪЕК ТОВ ............. 6
ЛАБОРАТОРНАЯ РАБОТА №3
ПРОГРАММИРОВАНИЕ
ЛИНЕЙНЫХ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ .................................... 10
ЛАБОРАТОРНАЯ
РАБОТА
№4.
ПРОГРАММИРОВАНИЕ
РАЗВЕТВЛЯЮЩИХСЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ ........................ 27
ЛАБОРАТОРНАЯ РАБОТА №5. ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ
ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ .................................................... 37
ЛАБОРАТОРНАЯ РАБОТА №6. ПРОГРАММИРОВАНИЕ ДВУМЕРНОЙ
ГРАФИКИ ................................................................................. 44
БИБЛИОГРАФИЧЕСКИЙ СПИСОК .............................................. 51
ПРИЛОЖЕНИЕ 1 .................................................................. 52
ПРИЛОЖЕНИЕ 2 .................................................................. 52
ПРИЛОЖЕНИЕ 3 .................................................................. 53
64