|
Програмирование на Visual Basicвыход с подтверждением. Закрытие формы не обеспечивает корректного завершения приложения. В этом случае присвоение Cancel =1 предотвращает закрытие формы и обеспечивает корректный выход через процедуру mnuFileExit_Click. [pic] Рис. 2.30 Разработанная программа имеет меню пользователя и обеспечивает функции удаления, вставки и копирования при редактировании и выдачу сообщения о программе (рис. 2.30—2.32). [pic] Рис. 2.31 [pic] Рис. 2.32 Глава 3. Программирование на VISUAL BASIC 4 3.1. АЛФАВИТ Visual Basic является языком программирования. Как любой другой язык, например, русский, английский или язык программирования Pascal, он имеет свой алфавит, используемый для написания операторов или предложений Visual Basic. Алфавит Visual Basic включает: . 26 латинских букв: А, В, С, D, Е, F, G, H, I, J, К, L, М, N, О, Р, Q, R, S, Т, U, V, W, X, Y, Z; . 10 арабских цифр: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0; . 26 символов: !#$%&л*()+-/\<>=?@_|:'.,“ ” пробел. Другие символы, определенные на клавиатуре, включая русские, можно использовать только в строках символов. 3.2. ДАННЫЕ 3.2.1. Классификация данных Данные характеризуются типом и организацией. Тип данных обобщает следующие понятия: . размещение в ЭВМ; . способ представления; . прикладной смысл. Размещение. Данные и программа в момент выполнения размещаются в оперативной памяти (ОП) ЭВМ, которая состоит из пронумерованных ячеек, каждая из которых вмещает 1 байт данных (1 байт состоит из 8 битов, каждый из которых может содержать элемент двоичных данных - 0 или 1). Номер определенной ячейки называется адресом. Одного байта для хранения данного как правило недостаточно и данное занимает непрерывную последовательность байтов (2, 4, 8 байтов). Способ представления. Последовательность битов в байтах данного кодирует всю необходимую информацию, определяющую данное. Правила кодирования и их реализация в разных ЭВМ определяют способ представления данного. Так, для числовых данных существует способ представления с фиксированной точкой и с плавающей точкой. Прикладной смысл. Определяет возможность использования данных для тех или иных целей (с арифметическими данными можно производить вычисления, из символов можно строить слова и предложения). В Visual Basic 4 определены следующие типы данных: . байт (BYTE); . логический (BOOLEAN); . дата (DATE); . короткий целый ( INTEGER); . длинный целый (LONG); . простой вещественный (SINGLE); . удвоенной точности вещественный (DOUBLE); . коммерческий (CURRENCY); . строковый (STRING); . объект (OBJECT); . переменный (VARIANT). В табл. 3.1 приводятся характеристики этих типов данных: Таблица 3.1 |Тип |Описание |Диапазон |Занимаема| |данных| |значении |я память | |Byte |Двоичные |От 0 до 255 |1 байт | | |данные | | | |Boolea|Логический |True или False |2 байта | |n | | | | |Intege|Целые числа |От -32768 до |2 байта | |r | |32767 | | |Long |Целые числа |От -2 147 483 |4 байта | | |(длинные) |648 до +2 147 | | | | |483 647 | | |String|Символьный |От О до |10 байт +| |(varia|(переменной |2000000000 |длина | |ble-le|длины) |символов |строки | |ngth) | | | | |String|Символьный |От 0 до |1 байт на| |(fixed|(фиксированн|2000000000 |1 символ | |-lengt|ой длины) |символов | | |h | | | | |Curren|Число с |От |8 байтов | |cy |фиксированно|-22337203685477,| | | |й десятичной|58 до | | | |точкой |922337203685477,| | | | |58 | | |Date |Дата |От January 1, |8 байтов | | | |100 до December | | | | |31, 9999 | | |Object|Объект | |4 байта | | | | | | |Single|Вещественные|От± 1.4* Ю-45 до|4 байта | | |числа |+ 3.4*104-38 | | |Double|Вещественные|От+ 4.94* Ю-324 |8 байтов | | |числа |до+ 1.79* Ю-“308| | |Varian|Произвольный|Любой из |Зависит | |t |тип |перечисленных |от | | | |выше |значения | Data (Дата) - определяет дату (месяц, день, год). Object (Объект) - ссылка на объект (OLE). String (Строка) - последовательность ASCII-символов. Саггепсу (Валюта) предназначен для финансовых расчетов и имеет фиксированную точность до четвертого знака после запятой (округляется). Variant (Варьируемый) способен принимать любые значения (состоят из двух частей: собственно значения и кода, указывающего исходный тип данного). Под организацией данных понимается независимость отдельных данных (хранятся в отдельных непоследовательных ячейках памяти) или их связанность (хранятся в связанной последовательности ячеек памяти). Связанными данными в Visual Basic 4 являются массивы (совокупность связанных данных одного типа) и записи (совокупность связанных данных разных типов). 3.2.2. Константы Константа - данное, значение которого однозначно определяется написанием и не может быть изменено. Пример: 3.1415926 6.02ЕЗ (значение 60200) 123 “Visual Basic “ “Иванов “ Для хранения постоянных величин Visual Basic позволяет объявить константы, т.е. выделить участки памяти, содержимое которых не меняется (при попытке модификации выдается сообщение об ошибке). Объявление констант осуществляется оператором [Public | Private] Const имя [As type] = выражение Имя констант принято записывать прописными буквами (правила записи имен см. ниже). Значения ключевых слов следующие: Public - константу можно использовать в любых процедурах и функциях; Private - константу можно использовать только внутри модуля (см. ниже), в котором она определена. Пример: Const /V= 3.1415926 Const MY_NAME = “Юра “ Тип константы можно не объявлять (устанавливается на основе значения — Const CODE = 35 автоматически получит тип integer). Однако константа PI в примере может быть любого из трех типов: single, double или currency. По умолчанию принимается тип, занимающий наименьший объём памяти. Поэтому лучше явно указывать тип специальными символами в операторах объявления констант. Используемые символы показаны в таблице: |Символ |Тип данных | |объявления типа| | |% |integer | |& |long | |1 |single | |# |double | |@ |currency | |$ |string | Пример: Const ONE& = / (резервирует 4 байта) Const ONE# = 1 (резервирует 8 байтов, хранится в виде числа двойной точности с плавающей точкой). В Visual Basic имеется большое число встроенных констант, значения которых определены заранее и их можно использовать без предварительного определения. Примерами таких констант являются: vbOKCancel = 1 — аргумент функции MsgBox для вывода в диалоговом окне командных кнопок ОК и Cancel; vbYesNoCancel = 3 — аргумент функции MsgBox для вывода в диалоговом окне командных кнопок Yes, No, Cancel; vbOk = 1 — значение, которое возвращает MsgBox, если пользователь щелкнул по кнопке ОК в диалоговом окне; . vbCancel = 2 - значение, которое возвращает MsgBox, если пользователь щелкнул по кнопке Cancel в диалоговом окне. Полную информацию о встроенных константах можно найти в Object Browser. Кроме того, в комплекте Visual Basic имеется файл CONSTANT.TXT, содержащий десятки часто используемых констант. Необходимые константы могут быть скопированы в программу. 3.2.3. Имена Имена используются для обозначения объектов в программе (константа является объектом программы). Правила образования имен: . первым символом имени должна быть латинская буква; . имя может включать только латинские буквы, цифры и знак подчеркивания (_); . имя может содержать не более 40 символов; . ключевые слова или Reserved word (Зарезервированные слова) не могут использоваться в качестве имен (список ключевых слов содержится в справочной системе Visual Basic в разделе Reserved word). Примеры: Правильные имена Неправильные имена StartTime CM*PER*INCH А2 23В color File (ключевое слово) • VariableName BMW_360 Хорошим тоном при программировании на любом языке является осмысленный выбор имен для объектов программы (присваивать объектам имена, соответствующие контексту и несущие описательную нагрузку). В качестве примера можно привести имя процедуры обработки события, связанного с щелчком мыши по командной кнопке, запускающей программу btnStart_CUck: первая часть имени состоит из сокращения слова кнопка (button — btn) и слова Start, вторая часть определяет событие — Click. 3.2.4. Оператор объявления Оператор объявления резервирует в памяти место для хранения данных определенного типа и организации и присваивает ему имя, по которому производится обращение к данным. Оператор имеет вид: Global имя [({описатель})} [As [New] тип} [, имя [([описатель])] [As [New]w“n] ] . . . Dim, Global, As, New — ключевые слова (Global используется для объявления глобальных данных (см. ниже). New используется для создания нового объекта на основе существующих объектов, например формы); имя — имя объекта (имя переменной, массива); тип - тип данных; описатель — определяет организацию данных (например, массива, см. ниже). Пример: Dim Name, YourName As String, N As Integer, Money As Currency, SiirName As String* 15 (переменная SurName определена как символьная фиксированной длины в 15 символов). При описании имен прописные и строчные буквы воспринимаются одинаково. Однако после определения ссылки на эту переменную должны соответствовать последней форме записи (производится автоматическое преобразование текста программы). Visual Basic допускает использование имен без объявления их типа (в этом случае автоматически определяется тип, требующий для размещения минимальной памяти), однако целесообразно и является признаком хорошего тона явно объявлять типы используемых данных. Из рассмотренных в предыдущей главе примеров программ для работы с формами и управляющими элементами известно, что любая программа состоит из формы и элементов управления, которым поставлены в соответствие процедуры. Более сложные программы могут включать несколько форм. Существует понятие области действия (scope) данных, определяющее возможность доступа к тем или данным (например, к переменной) в отдельных процедурах одной формы или в процедурах, относящихся к разным формам одной программы. Если оператор объявления какой-либо переменной находится внутри процедуры обработки события, то доступ к этой переменной (возможность ее использования) возможен только в рамках данной процедуры. Такая переменная называется локальной (local). Для того чтобы одна и та же переменная могла использоваться в разных процедурах одной формы, оператор объявления переменных должен быть помещен в раздел общих объявлений (general), доступ к которому открывается щелчком мыши по элементу “general” раскрывающегося списка окна Object формы. Объявленная таким образом переменная имеет статус действующей на уровне модуля (modul-level variable) и может использоваться (доступна) в любой процедуре данной формы. Для того чтобы одна и та же переменная могла использоваться в процедурах разных форм одной программы она должна быть объявлена как глобальная переменная (global variable). Используется ключевое слово Global вместо Dim. Пример: Global Name, YourName As String, N As Integer, Money As Currency, SurName As String* 75 Операторы объявления глобальных переменных помещаются в-модулях кода (code modules, см. ниже) и эти переменные могут использоваться во всей программе. Схема, иллюстрирующая области действия переменных, показана на рис. 3.1. В Форме 1 переменная Р объявлена в разделе общих объявлений (general) формы и может быть использована как в Процедуре X, так и в Процедуре Z. Изменение значения переменной в одной из процедур влечет за собой изменение и в другой процедуре. [pic] Рис. 3.1 Объявленные переменные И в Процедуре Х и G в Процедуре Z Формы 1 определены только внутри этих процедур, аналогично переменной G в Процедуре_У Формы 2. Эти переменные определены только в рамках своих процедур. Более того, для одноименных переменных G в Процедуре Z и в Процедуре Y выделяются разные ячейки памяти и изменение значения переменной G в одной из процедур не влечет изменения значения в другой процедуре. Переменные А и В определены как глобальные для всей программы и доступны во всех процедурах Формы 1 и Формы 2. Изменение значения переменных в одной из процедур одной из форм влечет изменение значений в других процедурах и формах. Рассмотренные области действия переменных справедливы и для других объявляемых данных (констант, пользовательских типов данных, массивов и др.). Как было сказано выше, описания глобальных данных помещаются .в модуль кода. Определения формы и все связанные с ней программы хранятся в отдельном файле с расширением .FRM. Программы, состоящие из нескольких форм и соответственно из нескольких таких файлов, размещаются в файлах модулей кода с расширением. Такие файлы создаются при выборе в меню Insert (Вставить) команды Module (Создать модуль) или при щелчке мыши на одноименной кнопке панели инструментов. 3.2.5. Пользовательские типы данных (записи) Данные различных типов можно сгруппировать по какому-либо признаку в удобную для использования одну структуру. В ряде языков программирования такие структуры называются записями (records). Оператор объявления пользовательского типа данных (записи) помещается в модуль и имеет вид: Type имя записи имя элемента записи [(описатель)} As тип [имя элемента записи [(описатель)} As тип} End Type [pic] Оператор создает указанную структуру данных, но не выделяет под неё память. Память выделяется рассмотренным оператором описания, в котором в качестве типа указывается имя записи (имя пользовательского типа данных). Пример: Dim Student_l, Student_2 As Student Описаны два имени (Student_l, Student_2 ), для каждого из которых определены заданные в структуре компоненты (Familia, Name, Voyast, Birthdate, Length, Wegith) и для хранения значений которых выделяется память соответственно заданному типу (длине и способу представления). Для обращения к конкретному свойству (элементу структуры) определенного объекта используется составная запись имя переменной.элемент структуры Например, Student'_]. Birthdate определяет дату рождения студента Student_7. 3.2.6. Массивы Массив - упорядоченный набор однотипных данных, обозначенный одним именем. Массив может строится из однотипных переменных, однородных пользовательских типов данных (одинаковых записей), однотипных элементов пользовательских типов данных. Массив объявляется уже рассмотренным оператором {Dim | Global [ Static) имя [({описатель})} [As [New] тип} [, имя [([описатель])} [As [NewJ/гаил] ] . . . где описатель имеет следующий синтаксис: [нижняя граница То ]верхняя граница[,[нижняя граница То] верхняя граница] . . нижняя граница определяет минимальное значение индекса массива (целого типа); верхняя граница определяет максимальное значение индекса массива (целого типа); То — ключевое слово. Количество повторений [нижняя граница То [верхняя граница определяет размерность массива (количество индексов, используемое для определения элементов массива). Максимальное число индексов равно 60. Static в процедурах и функциях позволяет сохранить значения элементов объявленного таким образом массива между вызовами этих процедур или функций. Пример различного способа объявления одного и того же массива: . Dim A(8,3) As Double Dim A(6>To 8, О То 3) As Double Dim A(8, OTo 3} As Double Объявляется двухмерный массив (два индекса). Нижняя граница обоих индексов равна 0 (принимается по умолчанию). Верхняя граница первого индекса равна 8, второго — 3. Массив состоит из 36 элементов (9*4=36) одинакового типа (вещественный) и каждый элемент занимает 8 байтов. Границы значений индексов: от —32768 до 32767. Примеры: Dim A(—4 То 10} As Integer Dim B(—99 То —5, —3 То 0) As String Элементы массива занимают связанную последовательную область в памяти машины. Массив А в примере занимает в памяти машины последовательность из 15 ячеек памяти, каждая из которых имеет длину 2 байта (тип Integer имеет длину 2 байта, рис. 3.2). [pic] Многомерные массивы также занимают линейную последовательную область памяти. При этом важное значение имеет способ упорядочения элементов многомерных массивов, который отличается для различных языков программирования. В Visual Basic многомерные массивы упорядочиваются в памяти машины так, что быстрее всего меняется левый индекс. Например, двумерный массив (в прикладных математических программах матрицы представляются двумерным массивом) А (2,3), состоящий из 12 элементов, располагается в памяти машины следующим образом: А(0,0), А(1,0), А(2,0), А(0,1), А(1,1), А(2,1), А(0,2), А(1,2), А(2,2), А(0,3), А(1,3), А(2,3) (если данный массив представляет матрицу, то в памяти машины она упорядочивается по столбцам). Для рассмотренного пользовательского типа данных (записи) Student можно также объявить массив оператором Dim MasStudent (25) As Student Объявляется одномерный массив MasStudent, состоящий из 26 элементов, каждый из которых является одной записью: Type Student Familia As String * 20 Name As String * 10 Voyast As Integer Birthdate As Double Length As Integer Wegith As Integer End Type рассмотренной выше. Записи располагаются последовательно в памяти машины и занимают каждая 44 байта. 20 байт занимает Familia (один символ занимает 1 байт), 10 байт - Name, 2 байта -Voyast (целый тип занимает 2 байта), 8 байт - Birthdate (вещественный двойной точности занимает 8 байт) и по 2 байта -Length и Wegith (целый тип). Элемент пользовательского типа данных (записи) может являться массивом. Например, можно объявить массив записей для хранения результатов экзаменов студентов группы. Туре Rezultat Familia As String * 20 NameExam (4) As String * /5 RewltExam (4) As Integer End Type Dim Sesia(25) As Reyiltat Объявлен пользовательский тип данных Rewltat, элементами которого являются Familia фиксированной длины 20 символов (фамилия студента не может состоять более чем из 20 символов), массив NameExam (4) из пяти элементов (число экзаменов в сессии не более 5) для хранения названия экзаменов (название каждого экзамена не может состоять более чем из 15 символов), массив RewltExam (4) из пяти элементов для хранения оценок по каждому экзамену (целого типа). Длина записи Rewltat 105 байтов. На базе пользовательского типа данных Requital объявлен массив Seпъ1 | | | | | | |Binary |Двоичные |До 1,2 Гбайт | |OLE |OLE — объекты |До 1.2 Гбайт | Кроме механизма Jet можно также использовать драйверы связи открытых баз данных (ODBC — Open Database Connectivity) для доступа к другим базам данных. Существуют также разнообразные механизмы баз данных других фирм, которые можно использовать с Visual Basic. Система Visual Basic позволяет хранить и использовать информацию в реляционных системах управления базами данных (английская аббревиатура — RDBMS). 5.2. РЕЛЯЦИОННАЯ СТРУКТУРА ДАННЫХ В подавляющем большинстве существующие СУБД построены на основе реляционной модели данных, которая, несмотря на свою внешнюю простоту, базируется на прочном фундаменте масштабных теоретических исследовании, основы которых были заложены Э. Коддом в 1969 г. Результаты этих теоретических исследований позволяют сделать данные полными непротиворечивыми и не избыточными, чтобы все факты оказав лись учтены, но при этом каждый из них хранился только один' раз. Специалисты в области создания и сопровождения баз данных должны знать и уметь использовать эту теорию. Реляционная база данных это такая база данных, которая состоит из таблиц (и ничего иного, кроме таблиц). Ссылка из одной таблицы на другую через какое- нибудь общее поле (common field) называется отношением (relation) ( отсюда и название реляционная). Рассмотрим пример реляционной базы данных состоящей из трех таблиц или отношений, таблица поставщиков, таблица деталей и таблица поставки деталей. Таблица поставщиков |Номер |Фамилия |Состояние |Город | |постав | | | | |щика | | | | |si |Смит |20 |Лондон | |s2 |Джонс |10 |Париж | |s3 |Блеик |30 |Париж | |s4 |Кларк |20 |Лондон | |s5 |Адаме |30 |Атенс | Каждый поставщик имеет уникальный номер, фамилии могут повторяться. Каждый поставщик находится только в одном городе. Таблица деталей |Номер |Название|Цвет |Вес |Город | |детали | | | | | |Pi |Гайка |Красный |12 |Лондон | |р2 |Болт |Зеленый |17 |Париж | |РЗ |Винт |Голубой |17 |Рим | |р4 |Винт |Красный |14 |Лондон | |р5 |Кулачок |Голубой |12 |Париж | |Р5 |Заклепка|Красный |19 |Лондон | Каждый вид детали имеет уникальный номер. Город — место хранения детали. Предполагается, что каждый вид детали имеет только один цвет и хранится на складе только одного города. Таблица поставки деталей |Номер |Номер детали |Количесшо | |поставщика | | | Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
|
|||||||||||||||||||||||||||||
|
Рефераты бесплатно, реферат бесплатно, сочинения, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |