Основы информатики
Особенности операционного, процедурного и логического программирования. Разработка интерфейса пользователя. Описание алфавита, типов данных, констант и переменных языка Бейсик. Алгоритм нахождения наибольшего общего делителя двух натуральных чисел.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | шпаргалка |
Язык | русский |
Дата добавления | 09.10.2011 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Редактор VBA активизируется из рабочей книги MS Excel через исполнение команд <Сервис Макрос Редактор Visual Basic> или комбинацией клавиш <Alt> + <F11>. Выйти из редактора в рабочую книгу можно через исполнение комбинации клавиш <Alt> + <F11> или другим способом.
Интерфейс редактора VBA включает следующие основные компоненты: окно проекта (Project Explorer), окно свойств (Properties Window), окно редактирования кода (Code), окно редактирования форм (UserForm), окно просмотра объектов (Object Browser), меню и панели инструментов.
Окно проекта (Project Explorer)
Окно проекта в редакторе VBA предназначено для быстрого получения информации о различных составляющих проекта. Такими составляющими являются формы (Forms), модули (Modules) и ссылки (References). Это окно активизируется исполнением команды <View?Project Explorer > или нажатием кнопки < Project Explorer> на панели инструментов, или комбинацией клавиш <Ctrl> + <R>. В окне проекта (VBAProject) представлена иерархическая структура файлов форм и модулей текущего проекта. В проекте автоматически создается модуль для каждого рабочего листа и для всей книги. Кроме того, модули создаются для каждой пользовательской формы, макросов и классов.
Модули, связанные с рабочей книгой, рабочими листами, формами, и модули класса относятся к модулям объектов.
Модули, содержащие макросы, добавляются в проект командой < Insert Module >.
Формы создаются командой < Insert UserForm>, а модули класса - командой < Insert Class Module >.
По мере создания, добавления и удаления файлов из проекта эти изменения отображаются в окне проекта.
С помощью окна проекта можно добавить или удалить какой-либо объект из проекта. Для добавления в проект модуля, кроме рассмотренных выше способов, достаточно нажать правую кнопку мыши в окне проекта и в появившемся контекстном меню выбрать нужную команду (< Insert Module >,< Insert Class Module >). Удаление файла из окна проекта производится выбором значка файла с последующим выполнением команды < Delete >.
В окне проекта выводится проект всех открытых рабочих книг. Это позволяет легко копировать формы и коды из одного проекта в другой, что ускоряет процесс создания новых приложений.
Окно проекта можно использовать также для быстрой навигации по формам проекта или программному коду. Для этого достаточно нажать кнопки <View Object> или <View Code> в окне проекта или в контекстном меню. Контекстное меню вызывается нажатием правой кнопки мыши при нахождении её указателя в поле окна проекта.
Окно свойств (Properties window)
В окне свойств перечисляются основные установки свойств выбранной формы или элемента управления.
Используя это окно, можно просматривать свойства и изменять их установки. Для просмотра свойств выбранного объекта достаточно щёлкнуть кнопку < Properties window > на панели инструментов или выбрать команду < View Properties window >.
Окно свойств состоит из двух составных частей: верхней и рабочей. В верхней части окна свойств располагается раскрывающийся список, из которого можно выбрать любой элемент управления текущей формы или саму форму.
Рабочая часть состоит из двух вкладок: <Alphabetic> (По алфавиту) и <Categorized> (По категориям), отображающих набор свойств в алфавитном порядке или по категориям. В обеих вкладках свойство Name (имя элемента управления) будет первым.
Значения свойств изменяются одним из следующих способов:
- вводом с клавиатуры значения свойства в соответствующее поле;
- выбором из раскрывающегося списка свойств, который активизируется щелчком в соответствующем поле окна свойств.
Окно редактирования кода (Code)
Окно Code (Программа) представляет текстовый редактор, предназначенный для написания и редактирования текста программы. Это окно появляется на экране, например, при создании нового модуля. Для его вызова достаточно выполнить двойной щелчок мышью на форме или модуле в окне проекта. Вызов окна Code можно также осуществить выполнением команд: <View Code> или <View Project Explorer View Code>.
В верхней части окна программы присутствуют два раскрывающихся списка: Object (Объект) и Procedure (Процедура). Их содержимое зависит от того, с каким модулем в данный момент идет работа. В случае модуля формы список Object позволяет выбрать объект, для которого в окне программы будут отображаться процедуры. Список Procedure позволяет указать процедуру объекта, выбранного в списке Object. При этом в окне программы отобразится текст процедуры.
Некоторые свойства списка Object:
- если работа ведется со стандартным модулем, то в списке
Object выбрать объекты нельзя;
- если работа ведется с модулем класса, то в этом списке можно выбрать элементы General и Class. При этом если в списке Object выбран элемент Class, то в списке Procedure автоматически становятся доступными процедуры Initialize и Terminate;
- если в списке Object выбран элемент General, а в списке Procedure - Declarations, то в данном разделе устанавливаются некоторые режимы работы редактора Visual Basic и объявляются переменные уровня модуля.
Два раскрывающихся списка в верхней части окна редактора кода облегчают ориентацию в процедурах. Левый раскрывающийся список позволяет выбрать управляющий элемент или форму, а правый - содержит список событий, допустимых для выбранного в левом списке объекта. При выборе элемента управления в форме посредством двойного щелчка кнопкой мыши или при перемещении указателя на элемент управления и нажатии кнопки <View Code> (Программа) открывается окно редактирования кода как раз в том месте, где располагается процедура, связанная с этим элементом управления. Обратный переход от процедуры к объекту управления быстрее всего осуществляется нажатием кнопки < Object > (Объект).
Окно редактирования кода служит также в качестве редактора для ввода и изменения кода процедур приложения. Код внутри модуля организован в виде отдельных разделов для каждого объекта, программируемого в модуле. В окне редактирования доступны два режима представления кода: просмотр отдельной процедуры и всего модуля. Переключение режимов работы окна редактирования кода осуществляется выбором одной из двух кнопок в нижнем левом углу окна редактирования кода <Procedure view> и <Full Module view>, либо установкой или снятием флажка <Default to Full Module View> (Просмотр всего модуля) вкладки < Editor > (Редактор) диалогового окна < Options > (Параметры), отображаемого на экране командой <Tools Options > (Сервис, Параметры).
Написание программ существенно облегчается за счёт способности редактора кода автоматически завершать написание операторов, свойств и параметров. При написании кода редактор сам предлагает пользователю список компонентов, логически завершающих вводимую инструкцию. Например, набирая код Dim abc As, после As на экране отобразится список наименований типов данных, которые логически завершают данную инструкцию. Двойной щелчок на выбранном элементе из этого списка или нажатие клавиши <Tab> вставляет выбранное имя в код программы. Автоматическое отображение списка компонентов происходит только при установленном флажке <Auto List Members> (Список компонентов) вкладки <Editor> диалогового окна <Options> (Параметры), отображаемого на экране после ввода команды <Tools Options> (Сервис, Параметры).
Список компонентов можно выводить на экран нажатием комбинации клавиш <Ctrl> + < J >, при этом список отображается как при установленном, так и при снятом флажке < Auto List Members> (Список компонентов).
После набора имени процедуры, функции, свойства или метода, так же как и в предыдущем случае, происходит автоматическое отображение сведений о процедурах, функциях, свойствах и методах. Автоматическое отображение этих сведений происходит только при установленном флажке <Auto Quick Info> (Краткие сведения) вкладки <Editor> (Редактор) диалогового окна <Options> (Параметры), отображаемого на экране после выполнения команды <Tools Options> (Сервис, Параметры).
Описанную выше всплывающую подсказку можно получить также нажатием комбинации клавиш < Ctrl > + < I >. При этом всплывающая подсказка отображается как при установленном, так и при снятом флажке <Auto Quick Info> (Краткие сведения).
Редактор кода также производит автоматическую проверку синтаксиса набранной строки кода сразу после нажатия клавиши <Enter>. Если после набора строки и нажатия клавиши <Enter> строка выделяется красным цветом, то это указывает на наличие синтаксической ошибки в набранной строке. Эту ошибку необходимо найти и исправить. Кроме того, если установлен флажок <Auto Syntax Check> (Проверка синтаксиса) вкладки <Editor> (Редактор) диалогового окна <Options> (Параметры), отображаемого на экране посредством выполнения команды < Tools Options > (Сервис, Параметры), наряду с выделением красным цветом фрагмента кода с синтаксической ошибкой, на экране отображается диалоговое окно, поясняющее, какая возможная ошибка произошла.
Если курсор расположить на ключевом слове языка VBA, имени процедуры, функции, свойства или метода и нажать клавишу <F1>, то на экране появится окно со справочной информацией. Обычно в справке имеется пример использования кода, что позволяет быстро разобраться в ситуации, которая возникла при написании программы.
Окно макета формы (Form1 Layout)
Показывает, как выглядит форма и где она находится во время выполнения программы.
БИЛЕТ №9. Объявления простых переменных и констант. Области действия (видимости) переменных, время жизни
В VBA, как и в других языках программирования высокого уровня, для хранения значений используют переменные и константы.
Переменная - именованная область памяти, используемая для хранения значения, которое можно изменить при выполнении программы.
Переменные подразделяются на простые и индексированные (переменные с индексом). Индексированными переменными являются элементы массивов. Все подробности о массивах будут рассмотрены в параграфе 2.4.6. Константа - именованная область памяти, используемая для хранения фиксированного значения, которое невозможно изменить при выполнении программы. Имена переменных и констант должны удовлетворять следующим правилам:
- первым символом всегда должна быть буква;
- в составе имени нельзя использовать символы: !, @, &, $, # , пробел;
- в качестве имени нельзя использовать ключевые (зарезервированные) слова, входящие в конструкции языка VBA;
- длина имени не может быть более 255 символов;
- имя нельзя повторять в пределах области его видимости (действия).
Объявление (описание) переменных и констант.
Переменная объявляется (описывается) с помощью ключевых слов Private, Public, Static, Dim. Чтобы явно указать тип переменной, используется ключевое слово As.
Примеры описания простых переменных:
Private X
Public i As Integer, r As Long, c As Date
Static Строка As String
Dim Y
Dim Z As Single `Явный способ объявления переменной.
Самый простой и надёжный.
Примеры описания индексированных переменных:
Dim Массив1() As Integer
Dim Массив2(12) As String
Dim Массив3(1 to 20) As Single
Dim Массив4(1 to 5, 1 to 7) As Byte
Константа объявляется с помощью ключевого слова Const.
При этом можно указать её тип, область действия и присвоить ей значение.
Синтаксис объявления:
Const <имя константы> As <тип> = <значение>
или
Const <имя константы> = <значение>
Если в константе явно не указан тип данных, то VBA назначает ей тип, который соответствует значению выражения.
Примеры:
Private Const q = 44,55
Public Const pi = 3,1459
Static Const QWER=2,54
Const y = 34
Const Con As Byte = 34
Const z As Single = -3,8374E-22
Все строковые константы указываются в кавычках.
Примеры:
Const prv As String = "Язык программирования VBA"
Public Const prv= "Язык программирования VBA"
Область действия переменных и констант.
Область действия переменных и констант определяется с помощью ключевых слов: Private, Public и Static.
Private - область действия в пределах конкретного модуля. После завершения выполнения модуля память, отведенная под эти переменные, освобождается.
Public - область действия в пределах приложения.
Static - область действия в пределах конкретного модуля и внешних процедур, используемых в данном модуле. После завершения выполнения модуля значения этих переменных сохраняются и могут быть использованы при повторном выполнении модуля.
Переменные и константы, в зависимости от области действия, подразделяются на глобальные и локальные.
Если переменная или константа описана внутри процедуры, то она является локальной, то есть она определена и может использоваться только в пределах данной процедуры.
Если переменная или константа описана вне процедуры, то она будет глобальной. Такая переменная или константа может быть использована в нескольких процедурах.
Область видимости переменных
Весьма важной характеристикой переменных является область их определения. В VB есть три вида областей определения, характеризующих доступность переменной:
· локальная: переменная доступна только внутри процедуры или функции, в которой она объявлена;
· контейнера: переменная доступна только внутри той формы или того модуля, где она объявлена;
· глобальная: переменная доступна во всем проекте.
Локальные переменные
Локальными являются переменные, объявленные внутри процедуры или функции. Они доступны только внутри этой процедуры или функции.
Переменные контейнера
Переменные контейнера определяются в главной секции (General) и доступны только внутри соответствующего контейнера, т.е. формы, или модуля.
Глобальные переменные
Глобальные переменные определяются в главной секции (General) модуля. При этом вместо оператора Dim используется зарезервированное слово Public. Глобальные переменные доступны во всех модулях и формах проекта.
Время жизни переменных
Инструкции тела процедуры или функции выполняются, когда происходит вызов соответственно процедуры или функции. Память для локальных переменных отводится при выполнении вызова и освобождается после его завершения. Таким образом, локально объявленные переменные при выходе из процедуры удаляются из памяти, а при новом вызове процедуры инициализируются заново. Их содержимое при этом не сохраняется, что не всегда желательно.
Статические переменные
VB дает возможность объявлять переменные как статические. При выходе из процедуры содержимое статической переменной сохраняется. При новом вызове этой процедуры переменная имеет значение, которое она имела при последнем выходе из этой процедуры. Содержимое статической переменной сохраняется в течение всего времени, пока существует в памяти форма или модуль.
Для объявления переменной как статической нужно просто вместо зарезервированного слова Dim использовать слово Static:
Private Sub Commandl_Click()
Static A As Integer
Dim В As Integer
A = A + 1
В = В + 1
.
End Sub
В одной строке можно объявить несколько переменных, но при этом следует для каждой указывать имя типа:
Dim a As Integer, b As Integer, c As Long
Dim e As Integer, f, g
В первой строке объявлены две переменные типа Integer и одна переменная типа Long. Во второй строке - одна переменная типа Integer, а две другие - типа Variant по умолчанию.
При объявлении переменной одного из числовых типов ей не только отводится ячейка памяти, но она еще получает значение 0.
При объявлении переменной типа Boolean она получает значение False.
При объявлении переменной типа String она получает значение пустой строки "".
Можно вообще не объявлять переменные. Переменная может появиться в программе, хотя она не была объявлена. Такой случай называется объявлением по умолчанию. Она будет иметь тип Variant.
Однако такая практика является источником ошибок и ее следует избегать. Чтобы VB расценивал любую необъявленную явно переменную формы или модуля как ошибочную, в главной секции формы или модуля первой должна следовать инструкция Option Explicit. Эта инструкция налагает требование явного объявления всех переменных этой формы или модуля. Если модуль содержит инструкцию Option Explicit, при попытке использования неописанного или неверно введенного имени переменной возникает ошибка во время исполнения программы.
Можно так настроить среду VB, что инструкция Option Explicit будет автоматически помещаться системой VB в главной секции создаваемой формы или модуля. Для этого следует выполнить команды меню Tools (сервис), затем Options (свойства), затем на вкладке Editor (редактор) установить флажок в окошке Require Variable Declaration (требовать объявления переменных) и, наконец, щелкнуть на кнопке ОК. Но это следует сделать до создания формы или модуля.
БИЛЕТ № 10. Объектно-ориентированное программирование: инкапсуляция, наследование, встраивание, полиморфизм
ООП -- парадигма программирования, в которой основными концепциями являются понятия объектов и классов.
Класс -- это тип, описывающий устройство объектов - экземпляров
Инкапсуляция -- это механизм, связывающий вместе код и данные, которыми он манипулирует и одновременно защищает их от внешних помех и некорректного использования. Иными словами, инкапсуляцию можно представить в виде защитной оболочки, предохраняющей свойства и методы класса от изменения извне.
Наследованием называется возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя, иногда его называют суперклассом) и добавляя, при необходимости, новые свойства и методы. Наследование -- это понятие, поддерживающее концепцию иерархической классификации, которая используется в реальном мире для систематизации большинства знаний.
Полиморфизм - называют явление, при котором один и тот же программный код (полиморфный код) выполняется по-разному в зависимости от того, объект какого класса используется при вызове данного кода. Полиморфизм обеспечивается тем, что в классе-потомоке изменяют реализацию метода класса-предка с обязательным сохранением сигнатуры метода. Это обеспечивает сохранение неизменным интерфейса класса-предка и позволяет осуществить связывание имени метода в коде с разными классами -- из объекта какого класса осуществляется вызов, из того класса и берётся метод с данным именем. Такой механизм называется динамическим (или поздним) связыванием -- в отличие от статического (раннего) связывания, осуществляемого на этапе компиляции программы
БИЛЕТ № 11. Использование свойств и методов объекта (на примерах). Получение значений свойств в период выполнения
В группе Appearance (Оформление) окна Properties содержатся свойства объекта, которые задают атрибуты его внешнего вида. Основные свойства данной группы приведены в табл. 1.16.
Назначает значок, картинку для объекта. Используя данное свойство формы, можно задать фоновое графическое изображение
Свойства объектов, отвечающие за их поведение, собраны в группе Behavior (Поведение). Основные свойства данной группы приведены в табл. 1.17.
Группа Font (Шрифт) содержит всего одно свойство Font, позволяющее с помощью диалогового окна Выбор шрифта задать шрифт текста объекта, размер, начертание.
Свойства группы Misc задают общие атрибуты объекта, в том числе для его идентификации. Основные свойства этой группы указаны в табл. 1.18.
По имени, указанному в свойстве Name (Имя), объект идентифицируется в форме и в тексте программы. Поэтому необходимо иметь в виду, что в одной форме не может быть двух объектов с одинаковыми именами. По умолчанию это свойство устанавливается автоматически. Вместо имени, заданного по умолчанию, лучше использовать имя, отражающее его смысловое значение.
Группа Position (Расположение) окна Properties служит для позиционирования объектов в системе координат формы и установки размеров объектов. Основные свойства этой группы указаны в табл. 1.19.
Свойства группы Scale (Масштаб) устанавливают шкалу максимальных размеров объектов в системе координат формы. Основные свойства этой группы указаны в табл. 1.20.
БИЛЕТ № 12. Массив элементов управления (на примерах)
Массив элементов управления - это группа элементов управления, которые имеют одни и те же имя, тип и совместно используют общие процедуры обработки событий и операторы. Рассмотрим пример создания массива элементов Кнопка, на которых написаны цифры 0, 1, 2, 3, … , 7:
Создаём на форме кнопку, устанавливаем её размеры
Для удобства работы со стандартными цветами используется функция QBColor, которая возвращает числовое представление одного из 16 цветов и копируем в буфер обмена. Вставляем копию кнопки в форму - на экране отобразится диалоговое окно с вопросом о создании массива элементов управления. Отвечаем Да (Yes) и в левом верхнем углу формы получаемвторой элемент управления Кнопка с именем Command1(1). Перемещаем его в нужное место. И т. д. - еще 15 копий. Все созданные кнопки образуют массив Command из 16-ти элементов. Индексы элементов:от 0 до 15. Для задания цвета кнопки BackColor = QBColor(i), размера шрифта FontSize = 16, полужирного начертания символов FontBold = True и заголовка на кнопках Caption = i напишем код:
Private Sub Form_Load()
For i = 0 To 15
Command1(i).BackColor = QBColor(i)
Command1(i).FontSize = 16
Command1(i).FontBold = True
Command1(i).Caption = i
Next i
End Sub
Функция QBColor, возвращает числовое представление одного из 16 стандартных цветов: 0(Черный), 1(Синий), 2(Зеленый), …, 15(Ярко-белый
Массив элементов управления это группа идентичных элементов управления (командные кнопки, текстовые поля и т.д.) имеющие общие процедуры обработки событий.
Работа с массивами элементов управления требует меньших затрат на написание программы и придает ей большую гибкость в работе.
Почти все элементы управления (но только идентичные) могут организовываться в массивы.
На данный момент времени существует два способа создания массива элементов управления:
· Создание массива элементов управления во время разработки;
Создание массива элементов управления во время выполнения программы;
Рассмотрим процесс создания массива элементов управления.
Создание массива элементов управления во время разработки
Если Вам известно конкретное количество тех или иных элементов управления, то будет целесообразней создать их во время разработки. Сделать это очень просто.
Создаем на форме, к примеру, элемент управления CommandButton1, убеждаемся, что он он выделен и копируем его в буфер обмена (Ctrl+C). Далее выполняя операцию Ctrl+V, получаем на форме еще один элемент управления CommandButton1. В результате этих действий Вы создали массив элементов из двух командных кнопок! Теперь внимательно просмотрите окно `Properties', там Вы увидите,
что созданные командные кнопки, которые отличаются друг от друга только своим индексом. Index - это то свойство, которое позволяет элементам управления организовываться в массивы. Открыв окно кода, Вы увидете, что несмотря на то, что на форме находятся две командные кнопки, в разделе Object присутствует только - Command1. Выбрав ее Вы попадете в процедуру обработки события
Click, обратите внимание, что в данном случае процедура содержит аргумент Index. Аргумент Index указывает на индекс того элемента управления, для которого сгенерировано событие.
Если Вы следовали описанию и создали на форме командные кнопки, то впишите следующий код в процедуру обработки Click и Вам станет ясно как это работает.
Private Sub Command1_Click (Index As Integer)
'В заголовке формы отображаем индекс нажатой кнопки
Me.Caption = "Нажата кнопка с индексом - " & Index
End Sub
Создание массива элементов управления во время выполнения программы
Если Вам заранее не известно количество тех или иных элементов управления, которое необходимо будет создать, то не волнуйтесь, т.к. и это очень просто. Создаем на форме, к примеру, элемент управления CommandButton1, в окне `Properties' для свойства Index устанавливаем значение 0 (нуль). В результате выполненых Вами действий создается массив элементов управления с одним элементом. Для создания последующих элементов управления (в данном случае командных кнопок) Вам необходимо будет ввести соответствующий код в процедуру обработки события выполнении при которой должен (или должны) возникнуть новые элементы управления. В данном случае мы вставляем код в процедуру обработки события Form_Load формы.
Private Sub Form_Load ()
'Создаем новую командную кнопку в существующий массив
Load Command1(1)
'Размещаем ее там, где Вам необходимо...
Command1(1).Top = Command1(0).Top + Command1(0).Height
Command1(1).Left = Command1(0).Left
'Делаем новую кнопку видимой
Command1(1).Visible = True
End Sub
Вот и все !
Если Вы следовали описанию и создали на форме командные кнопки, то впишите следующий код в процедуру обработки Click и Вам станет ясно как это работает.
Private Sub Command1_Click (Index As Integer)
'В заголовке формы отображаем индекс нажатой кнопки
Me.Caption = "Нажата кнопка с индексом - " & Index
End Sub
БИЛЕТ № 13. Графика в среде VB : Line, Shape, Image, PictureBox
Графика в приложениях служит для создания мультфильмов или видеоклипов. При помощи графики можно выполнять следующие основные действия:
1. Группировать и выделять информацию в формах, используя линии, рамки, фреймы.
2. Дополнять информацию графическими изображениями.
3. Улучшить интерфейс, дополнить его анимацией.
Элементы управления для работы с графикой:
На панели элементов управления имеются кнопки, позволяющие создавать в форме простые элементы графики: Line, Shape, Frame.
Элемент управления Line - это линия, имеющая по умолчанию толщину =1
Для изменения вида линии используется свойство BorderStyle объекта Line. Оно может принимать следующие значения: 0-Transparent (невидимая линия); 1-Solid (сплошная линия); 2-Dash (штриховая линия); 3-Dot (пунктирная линия); 4-Dash-Dot (штрихпунктирная линия); 5-Dash-Dot-Dot (штрихпунктир с двойным штрихом); 6-Inside Solid (непрерывная линия).
Цвет линии задается свойством BorderColor.
Для создания рамок различной формы используется элемент управления Shape. Он является только графическим контейнером обведенных элементов управления, но не контейнером в настоящем смысле этого слова. При этом форма рамки задается свойством shape объекта shape и может быть следующей: 0-RectangIe (прямоугольник); 1-Square (квадрат); 2-Oval (эллипс); 3-Circle (круг); 4-Rounded Rectangle (прямоугольник с закругленными углами); 5-Rounded Square (квадрат с закругленными углами). При этом для элемента управления shape, как и для Line, можно установить тип линии рамки, ее толщину и цвет.
Элемент управления Frame имеет вид рамки с заголовком. Заголовок, размещаемый в рамке, задается свойством caption. Если вы не хотите, чтобы объект Frame содержал заголовок, установите для значения этого свойства пустую строку. Объект Frame является полноценным контейнером и управляет общими свойствами объектов, помещенных в рамку. Если, например, сделать Frame невидимым, присвоив свойству visible значение False, то все объекты в рамке тоже станут невидимыми. Используя это свойство объекта Frame, и учитывая, что оно переопределяется и в режиме выполнения приложения, можно организовать, например, многостраничный ввод данных.
Свойство BorderStyle элемента управления Frame задает тип линии рамки и принимает одно из следующих значений: 0-None (без рамки); 1-Fixed Single (сплошная тонкая линия). При установке для свойства BorderStyle значения 0-None рамка будет отсутствовать, а соответственно, не будет и заголовка рамки. Объекту Frame можно придать объемный вид, установив для свойства Appearance значение 1-3D. Если установить значение 0-Flat, то объект принимает плоский вид. Для объекта Frame можно установить разные цвета для фона и заголовка рамки, используя свойства BackColor и ForeColor, соответственно.
Чтобы разместить в форме графическое изображение, не обязательно выбирать графические объекты. Можно просто воспользоваться свойством picture формы. Для вставки графического изображения в форму необходимо нажать кнопку с тремя точками в свойстве picture, а затем в открывшемся диалоговом окне Load Picture (Загрузить изображение) выбрать файл требуемого изображения. Данное свойство формы используют для размещения фонового изображения. При этом необходимо учесть, что размер формы должен соответствовать размеру исходного изображения. Если изображение меньше формы, то оно размещается в левом верхнем углу формы и в дальнейшем не перемещается. Поэтому такой способ хотя и прост, но очень неудобен. Свойство picture доступно и в режиме выполнения приложения. Простым присвоением можно заменить или убрать изображение из формы.
Для размещения в форме графических изображений используются объекты - Image и - Picture.
В качестве изображений, помещаемых в эти объекты, можно использовать файлы следующих типов: bmp, dib, ico, cur, wmf, emf, gif, jpg, Jpeg
Изображение размещается в объекте Image так же, как объект в форме, то есть при помощи свойства Image. Однако в отличие от размещения изображения непосредственно в форме, изображение в объекте Image пропорционально изменяет свои размеры.
Изменением размера управляет свойство Stretch. Если это свойство имеет значение False, то объект Image принимает размеры в соответствии с размером изображения. Если значение равно True, то размеры изображения изменяются в соответствии с размерами объекта.
В отличие от Image, элемент управления picture может работать как полноценный контейнер. Он может содержать другие элементы управления, в нем можно рисовать, используя графические методы Line, circle, point, pset, или выводить текст, используя метод print.
Элемент управления Picture обладает свойством visible. При этом все изображения, помещенные в picture, становятся видимыми или невидимыми в зависимости от установленного значения этого свойства. При помощи объекта picture можно организовать простую анимацию, используя метод PaintPicture. Изображение в элемент управления picture загружается полностью. При этом если оно больше размеров picture, то видна только часть изображения, если меньше, -- то изображение размещается в левом верхнем углу. Если установить для свойства AutoSize объекта Picture значение True, то изображение будет пропорционально вписываться в объект Picture.
Определить графическое изображение в приложении можно как в режиме проектирования (режим Design Time), так и в режиме выполнения (режим Run Time). Чтобы задать графическое изображение в режиме проектирования, используется свойство Picture объекта. Для этого необходимо выполнить следующие действия:
1. Открыть окно Properties объекта.
2. Выбрать свойство picture.
3. Нажать кнопку с тремя точками в правом столбце свойства.
4. В открывшемся диалоговом окне Load Picture найти требуемый файл.
5. Дважды щелкнуть на файле мышью или установить на него курсор и нажать кнопку Открыть.
В режиме выполнения программы существует больше возможностей для определения изображения объекта. Изображение можно задать следующими способами: загрузить изображение при помощи функции LoadPicture с указанием файла изображения. При этом изображение помещается в свойство picture объекта. Например, Object.Picture = LoadPicture("С:\...\Картинка.bmp) загрузить изображение из ресурсного файла приложения при помощи функции LoadResPicture с указанием идентификатора ресурса и его типа:
Set Object.Picture = LoadResPicture(Resident, vbResBitMap)
скопировать изображение из одного объекта в другой с помощью обычного присвоения: ObjectTo.Picture = ObjectFrom.Picture.
Скопировать изображение из объекта clipboard.
Для удаления изображения из объекта необходимо воспользоваться загрузкой в свойство Picture пустого значения:
Set Объект.Picture = LoadPicture("")
БИЛЕТ № 14. Создание процедур обработки событий (примеры)
Процедура - это программный объект, представляющий некоторый самостоятельный этап обработки данных. Процедура имеет входные и выходные параметры; называемые формальными. При использовании процедуры формальные параметры заменяются на фактические
Общие процедуры - это процедуры Sub или Function, создаваемые для выполнения определенных задач. В отличие от процедур обработки событий, чтобы выполнить общую процедуру, ее нужно явно вызвать. Чтобы создать общую процедуру, следует открыть окно кода и выбрать Add Procedure в меню Tools. Можно также создать новую процедуру, печатая на пустой строке в окне кода заголовок процедуры Sub, сопровождаемый именем процедуры. Если в нескольких процедурах обработки события имеется дублирование кода, этот код можно поместить в общую процедуру и затем вызывать общую процедуру из процедур обработки событий.
Событие и процедура обработки события
Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести в поля редактирова_ния исходные данные и сделать щелчок на кнопке Пересчет. Щелчок на изображении командной кнопки -- это пример того; что называется событием.
Событие (Event) -- это то, что происходит во время работы про граммы. У каждого события есть имя. Например, щелчок кнопкой мыши на изображении командной кнопки-- это событие clic нажатие клавиши в процессе ввода строки текста в поле компонента TextBox -- событие KeyPress.
Реакцией на событие должно быть какое-либо действие. В Visual I Basic реакция на событие реализуется как процедура обработки \ события. Таким образом, для того чтобы программа выполняла некоторую работу в ответ на действия пользователя, програм_мист должен написать процедуру обработки соответствующего события. Следует обратить внимание на то, что значительную часть обработки событий берет на себя компонент. Поэтому про_граммист должен разрабатывать процедуру обработки события только в том случае, если реакция на событие отличается от стандартной или не определена. Например, если по условию за-| дачи ограничений на символы, вводимые в поле редактирования (компонент TextBox), нет, то процедуру обработки события Keypress для этого компонента писать не надо, так как во время работы программы будет использована стандартная (скрытая от программиста) процедура обработки этого события.
Методику создания процедур обработки событий рассмотрим н! примере процедуры обработки события click для командной кнопки Пересчет. Процедура обработки этого события должна получить исходные данные из полей редактирования Textl (цена в долларах) и Text2 (курс), выполнить расчет (пересчитать цену из долларов в рубли) и вывести результат в поле отображения текста(Label4).
Чтобы создать процедуру обработки события click на команд_ной кнопке, надо в окне дизайнера формы сделать двойной щел_чок мышью на изображении этой кнопки. В результате этого ста_нет доступным окно редактора кода, в которое будет добавлена сформированная средой разработки процедура обработки собы_тия (рис. 2.13). Имя процедуры обработки события формирует среда разработки. Оно состоит из двух частей.
Чтобы создать процедуру обработки другого события, надо акти_визировать окно редактора кода (выбрать в меню View команду Code), выбрать объект (рис. 2.14), для которого надо создать процедуру обработки события, и затем из раскрывающегося спи_ска событий, который находится в верхней части окна редактора кода, справа от списка объектов, выбрать событие. Например, ЧТОбы Создать процедуру Обработки события KeyPress для поля редактирования Texti, надо сначала выбрать объект Texti, за_тем -- событие KeyPress (рис. 2.15).
В листинге 2.1 приведена процедура обработки события click Для командной кнопки Пересчет. Обратите внимание на то, как представлена программа. Ее общий вид соответствует тому, как °на выглядит в окне редактора кода: ключевые слова выделены полужирным, комментарии -- курсивом (выделение выполняет Редактор кода).
Процедура Commandl_ciick выполняет пересчет цены из долла_ров в рубли и выводит результат расчета в поле Label4. Исход_ные данные вводятся из полей редактирования Textl и Text2 пу_тем обращения к свойству Text. Доступ к свойству осуществляется путем указания имени объекта (Textl или Text2) и свойства (Text). Имя свойства от имени объекта отделяется точкой. Свойство Text (символьного типа) содержит строку сим_волов, которую ввел пользователь. Для правильной работы про_граммы строка должна представлять собой изображение дробно_го числа, то есть содержать только цифры и, возможно, запятую (разделитель целой и дробной частей числа). Преобразование строки символов в дробное число выполняет функция, кото_рой в качестве параметра передается значение свойства Text -- строка символов, находящаяся в поле редактирования. Значение Функции -- число, изображением которого является строка-параметр.
После того как исходные данные будут помещены в переменные k и usd, выполняется расчет.
Вычисленное значение цены в рублях выводится в поле Labei4 путем присваивания значения свойству caption. Для преобразо_вания числа в строку символов используется функция str.
В результате нажатия кнопки Завершить программа должна за_вершить работу. Чтобы это произошло, надо закрыть главное ок_но программы. Делается это путем вызова процедуры End. Про_цедура обработки события click для кнопки Завершить приведена в листинге 2.2.
БИЛЕТ № 15. Общие процедуры: Процедуры Sub. Процедуры Function. Передача аргументов
Процедура - это программный объект, представляющий некоторый самостоятельный этап обработки данных. Процедура имеет входные и выходные параметры, называемые формальными. При использовании процедуры формальные параметры заменяются на фактические.
Общие процедуры - это процедуры Sub или Function, создаваемые для выполнения определенных задач. В отличие от процедур обработки событий, чтобы выполнить общую процедуру, ее нужно явно вызвать. Чтобы создать общую процедуру, следует открыть окно кода и выбрать Add Procedure в меню Tools. Можно также создать новую процедуру, печатая на пустой строке в окне кода заголовок процедуры Sub, сопровождаемый именем процедуры. Если в нескольких процедурах обработки события имеется дублирование кода, этот код можно поместить в общую процедуру и затем вызывать общую процедуру из процедур обработки событий.
Процедуры Sub не возвращают значений -- они только выполняют некоторую обработку или действие. Вызвать процедуру Sub можно, специфицируя только имя процедуры или используя, оператор Call с именем процедуры и параметрами.
Если используется оператор Call, список параметров следует заключить в круглые скобки: Call Сортировка (МассивА).
Если Call опускается, опустить нужно также скобки вокруг списка параметров: Сортировка МассивВ
Процедуры Function- это программный объект, задающий вычислительную процедуру определения значения, зависимого от некоторых аргументов. В VB имеется большой набор встроенных функций: математических, проверки типов, преобразования форматов, обработки строк, времени и даты, финансовых.
Использование именованных аргументов позволяет передавать часть или все аргументы в любом порядке.
Для этого при вызове процедуры указывается имя аргумента и его значение, разделяемые специальным знаком -- двоеточием со знаком равенства (:=). Аргументы разграничиваются запятыми; порядок их следования значения не имеет.
При вызове процедур можно передавать именованные и неименованные аргументы комбинированно.
Как только в списке передачи появляется именованный аргумент, все последующие аргументы должны передаваться также именованными. Использование именованных аргументов имеет два преимущества: во-первых, имя аргумента разъясняет его назначение, поэтому не нужны дополнительные комментарии; во-вторых, это может предотвратить ошибочное присваивание значений не тем аргументам.
Последнее проявляется при вызове процедур, для которых не обязательно указывать все аргументы.
Если при вызове процедуры указать не все аргументы, то последует сообщение об ошибке.
Однако в процессе описания процедуры можно определить, что не все аргументы указываются при вызове. Такие аргументы называются необязательными. Для того чтобы аргумент стал необязательным, перед именем аргумента ставится ключевое слово Optional. После первого необязательного аргумента все последующие должны быть также необязательными.
БИЛЕТ №16. Управляющие структуры языка (условные операторы): Оператор цикла For...Next
Оператор цикла For Each...Next. Выход из цикла Exit For
Инструкция For...Next
Инструкция For...Next используется для выполнения наборов инструкций указанное число раз. Циклы For используют в качестве счетчика переменную, значение которой увеличивается или уменьшается при каждом выполнении цикла. . Следующая процедура заставляет компьютер подавать звуковой сигнал 50 раз. Инструкция For определяет счетчик x и его начальное и конечное значения. Инструкция Next изменяет счетчик с шагом 1.
Sub Beeps()
For x = 1 To 50
Beep
Next x
End Sub
Умолчательное значение шага (Step) для цикл For...Next равно 1. Имеется возможность увеличивать или уменьшать значение счетчика на указанную величину с помощью ключевого слова Step.
В следующем примере счетчик j изменяется с шагом 2 при каждом выполнении цикла. По завершении цикла Сум равняется сумме 2, 4, 6, 8,10 , т.е. 50.
Sub СумЧёт()
For j = 2 To 10 Step 2
Сум = total + j
Next j
MsgBox "Сумма равна " & Сум
End Sub
Оператор цикла For Each...Next
Эта специфическая форма цикла For предназначена для выполнения некоторой операции с каждым объектом, входящим в состав некоторой коллекции объектов (например, вызов метода или присваивание значения свойству)
Изменения свойства BackColor у всех надписей (Label) на форме.
For Each ИмяОбъекта In ИмяКоллекции
Операции
Next ИмяОбъекта
Изменения свойства BackColor у всех надписей (Label) на форме:
Dim x As Object
For Each x In Me.Controls
If TypeName(x) = "Label" Then x.BackColor = 0
Next x
Для безусловного выхода из конструкции For…Next используется команда Exit For.
VStop = InputBox ("Введите значение останова")
VInput = CInt(VStop)
For iCounter = 1 to 10
MsgBox "Счетчик: " & iCounter
If iCounter =VInput Then Exit For
Next
Немедленный выход с помощью оператора Exit For
Обычно этот оператор используется в условном выражении (If…Then и Select ...Case), вложенном в главный цикл For…Next. например, при появлении недопустимого значения:
For p = 1 To varДлинаМассива
If varЦена (p) = "Здесь был Ваня!" Then
MsgBox "Данные испорчены."
Exit For
End If
varЦена (p) = varЦена (p) * sngCOLA
Next p
Пример:
Sub TestForNumbers()
For Each myObject In MyCollection
If IsNumeric(myObject.Value) = False Then
MsgBox "Объект не содержит числового значения."
Exit For
End If
Next c
End Sub
БИЛЕТ № 17. Оператор цикла Do While...Loop / Do...Loop While
Оператор цикла Do Until...Loop / Do...Loop Until.
Выход из цикла Exit Do (показать на конкретных примерах)
Do While...Loop / Do...Loop While.
Эти две разновидности цикла тесно взаимосвязаны, и их часто рассматривают как один из базовых видов цикла. Циклы While предназначены для ситуаций, когда количество проходов цикла заранее не известно, но зато известно условие выхода из цикла.
Do While Условие_выхода Группа операторов Loop |
Do Группа операторов Loop While Условие_выхода |
Отличие между ними заключается в том, что условие выхода проверяется в одном случае перед очередным проходом, а в другом случае - после выхода.
Оператор цикла Do Until...Loop Do...Loop Until
По своей логике цикл Until подобен циклу While с той лишь разницей, что проходы цикла выполняются до тех пор, пока условие выхода не выполняется.
Dim n As Integer
n = 100
Do
n = n - 1
Debug.Print n
Loop Until n < 11
Оператор Exit... позволяет осуществить досрочный выход из цикла:
Dim n As Integer
n = 10
Do While n > 1
n = n - 1 : Debug.Print n
If n = 5 Then Exit Do
' Если счётчик = 5, то выходим из цикла
Loop
БИЛЕТ № 18. Условный оператор If…Then.Оператор Select Case...End Select
Допускаются многократно вложенные инструкции If...Then...Else, имеющие столько уровней вложения, сколько потребуется. Однако для облегчения чтения программы вместо многократно вложенных инструкций If...Then...Else иногда предпочтительнее использовать инструкцию Select Case. Для выполнения только одной инструкции, когда условие имеет значение True, используется однострочный синтаксис инструкции If...Then...Else:
Sub Поздравление(Now)
ДеньРождения = #12/30/1943#
Приветствие = "ПОЗДРАВЛЯЕМ С ДНЁМ РОЖДЕНИЯ!!!"
If Format(Now, "dd mm") = _
Format(ДеньРождения, "dd mm") Then Print Приветствие
End Sub
Для выполнения нескольких строк программы используется многострочный синтаксис. Этот синтаксис содержит инструкцию End If:
Sub Поздравление(Дата)
ДеньРождения = #12/30/1943#
Приветствие = "ПОЗДРАВЛЯЕМ С ДНЁМ РОЖДЕНИЯ!!!"
If Format(Дата, "dd mm") = Format(ДеньРождения, "dd mm") Then
'Format определяет формат представления даты
Form1.ForeColor = vbRed
Form1.FontBold = True
Form1.FontItalic = True
Form1.FontSize = 18
Print Приветствие
End If
End Sub
Private Sub Command1_Click()
Поздравление (Now)
'Now-встроенная функция возвращает текущее
'значение даты и времени
End Sub
Инструкция If...Then...Else используется также для задания двух блоков исполняемых инструкций: один блок выполняется, если условие имеет значение True, а другой - если оно имеет значение False.
Sub Поздравление(Дата)
ДеньРождения = #12/30/1943#
Приветствие1 = "ПОЗДРАВЛЯЕМ С ДНЁМ РОЖДЕНИЯ!!!"
Приветствие2 = " ДЕНЬ РОЖДЕНИЯ - ВПЕРЕДИ!!!"
If Дата = ДеньРождения Then
Print Приветствие1
Else
Print Приветствие2
End If
End Sub
AlertLabel.Forecolor = vbBlack
AlertLabel.Font.Bold = False
AlertLabel.Font.Italic = False
End If
End Sub
Select Case...End Select
При наличии многовариантного выбора удобно использовать инструкцию Select Case. Требуется определить налог на некоторую сумму в зависимости от значения параметра, влияющего на значение ставки налога (0; 0,05; 0,10; 0,15; 0,20):
Function Налог(Сумма As Single, Параметр As Integer)
Select Case Параметр
Case 0
Налог = Сумма * 0
Подобные документы
Поиск взаимно простых чисел. Алгоритм Евклида для целых чисел. Описание выбранного языка программирования. Алгоритм решения задачи. Обзор средств программирования. Текст и описание программы. Руководство оператора, программа и методика испытаний.
курсовая работа [843,5 K], добавлен 15.06.2011Создание базы данных и СУБД. Структура простейшей базы данных. Особенности языка программирования Турбо Паскаль. Описание типов, констант, переменных, процедур и функций. Описание алгоритма базы данных (для сотрудников ГИБДД), листинг программы.
курсовая работа [26,3 K], добавлен 26.01.2012Этапы подготовки и решения реальных задач. Словесно-формульное, графическое описание, псевдокоды. Программа нахождения квадрата числа на языке Бейсик. Разветвляющийся и циклический алгоритм. Общие положения программирования. Базовые конструкции.
презентация [308,3 K], добавлен 31.10.2016Процедура изучения программы нахождения большего из четырех чисел, основанной на использовании подпрограммы нахождения большего из двух чисел. Практические навыки работы в MS Excel. Структура и основы создания базы данных при использовании конструктора.
отчет по практике [22,4 K], добавлен 26.01.2011Применения языка логического программирования Пролог и языка программирования Haskell для реализации алгоритма поиска оптимального каркаса графа. Алгоритм Прима, преимущество перед другими алгоритмами нахождения оптимального каркаса, близких к полным.
курсовая работа [230,2 K], добавлен 13.06.2012Разработка программы, которая выявляет в прямоугольной матрице все подматрицы, состоящие только из m-значных целых чисел. Использование компилируемого языка программирования общего назначения C/C++. Обработка алгоритмов, кодирование программных средств.
курсовая работа [980,1 K], добавлен 05.03.2015Язык программирования как система обозначений, применяемая в описании алгоритмов для ЭВМ. Разработка программы на языке программирования Бейсик. Освоение приемов работы с электронными таблицами MS Excel. Создание базы данных с помощью СУБД MS Access.
контрольная работа [2,6 M], добавлен 15.02.2010Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и выбор структур данных для ее хранения, разработка основных алгоритмов. Проектирование интерфейса пользователя. Выбор стратегии тестирования и разработка тестов.
курсовая работа [332,3 K], добавлен 09.12.2014Разработка программного продукта - базы данных "Экскурсия" в интегрированной среде программирования C++ Builder 6. Определение порядка просмотра данных базы, их редактирования и удаления. Особенности руководства пользователя и общего интерфейса программы.
курсовая работа [2,4 M], добавлен 03.11.2013Составление программы для зашифровки текста (не более 255 символов), с использованием одного перемешанного алфавита, полученного случайной перестановкой всех букв исходного алфавита. Создание меню-интерфейса для навигации пользователя по программе.
курсовая работа [496,2 K], добавлен 17.05.2015