
Лекция_vb_онокой.ppt
- Количество слайдов: 53
Программирование в среде Visual Basic 6. 0.
Язык программирования Microsoft Visual Basic Язык программирования Basic (Bigginer's All-Purpose Simbolic Instruction Code), был создан в начале 60 -х годов для разработки простых программ и использовался в качестве учебного языка. – – – С появлением MS Windows пользователи получили возможность работать в удобной графической среде. Графический интерфейс (GUI) упростил работу пользователя, но писать программы стало значительно сложнее. С принятием графического интерфейса возникли языки событийно-управляемого программирования (event-driven programming) (визуального программирования), такие как Visual Basic (Basic), Delphi (Pascal), Power Station (Fortran), Visual C++ (C++). 2
Язык программирования Microsoft Visual Basic - это интегрированная среда разработки – IDE(Integrated Development Environment). l l 3 В Visual Basic интегрирован набор инструментов, облегчающих и значительно ускоряющих процесс разработки приложения. Visual Basic относится к средам быстрой разработки приложений. Возможность создавать приложения любого назначения (бизнес-приложения, игры, мультимедиа, базы данных). Упрощается рутинный процесс создания программного кода. Visual Basic использует современные методы программирования.
Интегрированная среда разработки языка Visual Basic предоставляет пользователю удобный графический интерфейс и необходимый набор инструментов для разработки приложения: – – – 4 Визуальный редактор экранных форм, Редактор программного кода приложения, Отладчик, Трансляторы ( компилятор и интерпретатор), Редактор ресурсов и средства создания справочной системы, Библиотеки программного кода и стандартные элементы управления.
Технология создания приложений l l l l 5 Постановка задачи ( определение исходных данных и результатов которые надо получить) Разработка алгоритма решения задачи Создание интерфейса (создание окна (окон) диалога (формы) и размещение на нём элементов управления); Установка параметров (свойств) элементов управления; Ввод текста программы; Отладка программы; Тестирование программы; Сохранение проекта.
Структура проекта Все приложения разрабатываются как проекты и хранятся в файлах *. vbp; l Проект – это контейнер, в котором хранятся все формы приложения и другие визуальные элементы вместе с программным кодом. Программы хранятся в программных модулях. l Существует три типа программных модулей: l – – – 6 Модуль формы (*. frm), Модуль кода - содержит программный код, выполняемый в нескольких формах (*. bas), Модуль класса используется при разработке пользовательских классов (*. cls).
Пример разработки простейшего приложения 7
Синтаксис и семантика Visual Basic
Переменные Переменная – зарезервированное место в оперативной памяти компьютера для временного хранения данных. – Каждая переменная имеет собственное имя. – После того, как переменной присвоено значение, она может использоваться в программе вместо самого значения. Правила формирования имен переменных: l содержит не более 255 символов, l используются любые буквы, цифры и знаки подчеркивания, l первый символ в имени должен быть буквой, l нельзя использовать пробелы, l имя должно быть уникальным. l не может быть ключевым словом 9 Примеры: Current. Num, Data_of_birth
Простые типы данных Данные Арифметические n n n 10 Byte Integer Long Single Double Currency Логические n Boolean Символьные n String
Типы данных Тип данных Объем памяти Диапазон значений Integer Целые числа 2 байта От -32786 до 32767 Long Целые числа 4 байта От -2147483648 до 2147483648 Single Десятичные числа с плавающей точкой 4 байта От -3, 438 до -1, 4 -45 для отрицательных чисел и от 1, 4 -45 до 1, 438 для положительных чисел Double 11 Описание Десятичные числа с плавающей точкой 8 байта От -1, 7 -308 до -4, 9 -324 для отрицательных чисел и от 4, 9 -324 до 1, 7308 для положительных Currency Числа с фиксированной точкой 8 байта Целая часть числа до 15 цифр, дробная до 4
Типы данных Тип данных Объем памяти Диапазон значений String Строки фиксированной (до 216 символов) и переменной длины (до 231 символов) ASCCII -1 байт на символ UNICODE -2 байта на символ + 10 байт для строки в целом Строка дополняется пробелами или обрезается (при использовании фиксированной длины) Date Хранение даты и времени 8 байт Byte Хранение двоичных данных 1 байт Boolean Логический тип 2 байта Variant 12 Описание Универсальный тип (для любого типа данных) Переменная длина не менее 16 байт Object Хранение ссылок на объекты 4 байта True False по умолчанию присваивается значение False
Объявление переменных Явное объявление переменных Оператор: Dim имя. Переменной [As тип. Данных] Примеры: Dim Name As String*15 Dim Sur. Name As String, A As Single, I As Integer Dim Money As Currency, Alfa As Boolean Name - строка фиксированной длины (15 симв. ); Sur. Name -строка переменной длины (любое количество символов); A - вещественный; I - целый; Money - арифметическое данное для коммерческих расчетов, Alfa - логическое 13
Область действия переменных Private имя. Переменной [As тип. Данных] Static имя. Переменной [As тип. Данных] Public имя. Переменной [As тип. Данных] Dim, Private, Static, Public – определяют область действия переменной. l Public – глобальная (уровень проекта, доступна из всех модулей и процедур, описание в разделе General Declarations главного модуля приложения). l Dim – локальная (уровень модуля или процедуры описание в разделе General Declarations модуля или формы; уровень процедуры - описание внутри процедуры). l Private - локальная (уровень модуля или процедуры) l Static – статическая (не обнуляется при выходе из процедуры, локальная) 14
Выражения l l 15 Выражение - это набор операндов, объединенных между собой знаками операций. Операнд - это объект, над которым выполняется операция. Операндом может быть константа, переменная, выражение, вызов функции, обращение к элементу массива. Набор допустимых операций определяется типом операндов. Выражения делят на арифметические, логические, выражения отношения и символьные.
Арифметические выражения + - сложение (5+2); - - вычитание (34 -2); * - умножение (5*5); / - деление (3/5 = 0. 6); - деление нацело (52 = 2); Mod - остаток от деления ( 7 Mod 2 = 1); ^ - возведение в степень (2^2 = 4, 25 ^ (1/2) = 5); Приоритет операций в порядке убывания: 1. ^ 2. * / 3. Mod 4. + -. 16 Операнды арифметического выражения могут быть следующих типов: Integer, Long, Currency, Double, Single, Variant. Примеры выражений: A^2+2*A*B+3. 5 I+1 (1+RT)*0. 5 (P 21*SIN(X)-B)/(D+C)
Логический тип данных Boolean l l 17 Переменные логического типа принимают только два значения : Да (Истина) Нет (Ложь) Для обозначения логических значений в языке программирования Vbasic используются константы: True (Истина) и False (Ложь) В операторе описания типа используется ключевое слово Boolean Dim F 1 As Boolean, F 2 As Boolean - переменные F 1, F 2 логического типа
Логическое выражение l l l 18 Для логических данных определены логические операции; Для логических операций операнды должны принимать значения или «истина» True или «Ложь» False. Логическим выражением называется выражение составленное с использованием логических операций и результатом вычисления которого является или TRUE или FALSE.
Логические операции l l Not - логическое отрицание (НЕ); And - логическое умножение (И); Or - логическое сложение (ИЛИ); Xor - логическое исключающее ИЛИ; Также как для чисел существует таблица умножения, так же для любой логической операции существует таблица значений ( «таблица истинности» ) , показывающая результат выполнения логической операции в зависимости от значений операндов. 19
Таблица истинности Значения операндов A B Not A A AND B A OR B A XOR B True False True True False 20 Результат операций False
Основные логические операции в порядке убывания приоритета l l 21 Not - логическое отрицание (НЕ); And - логическое умножение (И); Or - логическое сложение (ИЛИ); Xor - логическое исключающее ИЛИ; 2 1 3 True And Not False Or False = True
Операции сравнения n l l l > больше >= больше или равно < меньше <= меньше или равно = равно <> не равно n n 22 Операции сравнения генерируют логические значения Операции сравнения имеют больший приоритет чем логические операции Ещё большим приоритетом обладают арифметические операции
Операции сравнения "А" < "B" = True (сравнение строк) чем ближе буква к началу алфавита(кодовой таблицы), тем она меньше l 2>4 = False Двойные неравенства записываются с помощью логических операций: l A > 5 And A < 10 соответствуют математической записи (5 < A < 10). l 23
Символьные данные l l 24 Символьные данные или строка символов - любая последовательность символов. В Visual Basic строка символов заключается в кавычки. “ 12345678” ; “Иванов” ; “Фамилия И. О. ”; В операторе описания типа используется ключевое слово String. В Visual Basic символьные данные (строки символов) могут быть постоянной или переменной длины. Это определяется в операторе описания типа. Примеры: Dim Name As String*15, Sur. Name As String Для работы с символьными данными используется оператор конкатенации (объединения) и встроенные функции.
Операции со строками. Объединение строк Операция & - соединение строк (конкатенация ). Строка - "Иванов " & "Иванович" Результат - "Иванович" (пробелы между словами вставлены в исходные строки). Dim Sur. Name As String*15 Dim Name As String Dim Author As String*30 Sur. Name = "Иванов" ‘В Sur. Name - "Иванов " -15 Name = "Иван" ‘длина равна 4 символам Author = Sur. Name & Name В переменной Author будет храниться значение "Иванов Иван " - длина равна 30 символам. До заданной длины строка дополняется пробелами. 25
Встроенные функции для работы со строками. Преобразование данных Строка S Число X Val Число X Str$ Строка S X = Val("12. 5") ‘Результат: число 12. 5 S = Str$(12. 5) ‘Результат: строка "12. 5" Чаще всего такие преобразования необходимо использовать при работе с элементами управления (Label, Text. Box, …) и с функциями Msg. Box или с Input. Box. Dim x As Integer x = Val(Input. Box("Введите x")) Text 1. Text = str$(x) 26
Константы – элементы выражения, значения которых не меняется в процессе выполнения программы. Примеры 76. 33 – числовая константа, “Ошибка доступа к БД” – символьная константа False –логическая константа VB содержит огромное количество встроенных констант (цвета, клавиши, сообщения и т. д. ). Имеют префикс vb. 27
Массивы 10 12 44 77 46 78 3 Различные данные часто представляются таблицами. В языках программирования несколько однотипных и одноразмерных данных, обозначенных одним именем, называется массивом. – Каждый элемент массива имеет порядковый номер (индекс), по которому его можно выбрать. – Каждый массив содержит данные только одного типа. – Все используемые в программе массивы должны быть определены с помощью оператора Dim. Синтаксис: Dim имя (нижняя_граница To верхняя_гр) As тип 28
Массивы Примеры: l Dim Tab(1 To 10) l Dim AA 2(1 To 5) l Dim C(1 To 25) l Dim Crab(1 To 5) символов As Single As Integer As Boolean As String * 10 'длина строки - 10 В этом примере определены: l массив с именем Tab, состоящий из 10 элементов и каждый элемент арифметического типа Single; l массив с именем AA 2, состоящий из 5 элементов и каждый элемент арифметического типа Integer, т. е. может иметь только целые значения; l массив с именем С, состоящий из 25 элементов и каждый элемент логического типа, т. е. может иметь только значения True или False; l массив с именем Crab, состоящий из 5 элементов и каждый элемент типа строки символов длиной 10 символов. 29
Массивы При использовании в программе некоторого элемента определенного массива указывается имя массива и в скобках индекс элемента этого массива. Примеры: – – 30 Tab(7) - используется 7 ой элемент массива Tab; AA 2(3) + AA 2(4) - сложение 3 -го и 4 -го элемента массива AA 2; С(I) - используется I-ый элемент массива С (значение I должно быть определено и не может быть более 25); Crab(J+1) - в качестве значения индекса используется арифметическое выражение (его значение не может быть более 5).
Массивы 31 В VB используются массивы фиксированного размера и динамические массивы (могут менять размер в процессе выполнения программы). Позволяют эффективно управлять памятью. Порядок использования динамического массива: 1. Объявляется массив с помощью ключевых слов, используемых при создании массива фиксированного размера. Список размерностей остается пустым. Dim int. Count () As Integer 2. С помощью выполняемого оператора Re. Dim указывается размерность массива в виде числа или выражения. Re. Dim int. Count (х) Re. Dim int. Count (20) Re. Dim int. Count (1 To 20) При выполнении оператора Re. Dim данные, размещенные в массиве теряются. Для изменения размера массива без потери данных Re. Dim используется с ключевым словом Preserve Re. Dim Preserve int. Count (х+1)
Базовые конструкции VB. Операторы следования Базовые конструкции определяют последовательность выполнения фрагментов алгоритма. К их числу относятся операторы, выполняющиеся последовательно сверху-вниз, операторы ветвления (условные операторы) и операторы цикла. S 1 S 2 32 Следование предписывает последовательное выполнение операторов. Первой выполняется оператор S 1, а после ее завершения – оператор S 2, далее S 3 и т. д. К таким оператором относятся операторы присваивания и вызова процедур.
Оператор присваивания переменная = выражение Переменной присваивается значение выражения (т. е. в область памяти, выделенной для переменной записывается значение выражения). При использовании оператора присваивания должны соблюдать следующие правила: – тип переменной должен соответствовать типу выражения (если переменная типа String, то и выражение должно быть типа String); – если в правой и левой частях оператора используются числовые типы данных, то тип правой части преобразуется к типу левой части (для I типа Integer результатом оператора I=2. 5 будет 2, т. е. в области памяти, выделенной под I будет хранится значение 2). 33 Пример: count = 2*a+b N=N+1
Операторы ветвления l l 34 Ветвление предписывает выбор одного из двух блоков (операторов) в зависимости от того, выполняется условие P или нет. В приведенной конструкции при положительном результате выполняется блок (оператор) S 1, а при отрицательном – S 2. В VB ветвление реализуется с помощью операторов IF и Select Case. да нет P? S 1 S 2
Условный оператор IF (ветвление, обход , выбор) IF «логическое выражение» THEN «then – последовательность» [ELSE «else – последовательность» ] или IF логическое выражение THEN [блок операторов - 1] [ELSEIF логическое выражение THEN [блок операторов - 2]] [ELSE [блок операторов - n]] END IF Блок операторов - это один оператор или последовательность операторов, расположенных на одной строке и разделенных": ". 35
Операторы ветвления. Если в качестве оператора S 2 также используется оператор ветвления, то два ключевых слова Else и If можно объединить в одно Else. If. Получим конструкцию If. . . Then. . . Else. . . End If Пример If A>B And C=1 Then count = 2*a+b N=N+1 Else. If A<B And C=0 Then count = (a-b)/3 N=N-1 Else N=0 End If 36
Сокращенное ветвление Обход (Сокращенное ветвление) предписывает выполнить блок S при положительном результате проверки условия P. Пример: If A>B And C=1 Then count = 2*a+b N=N+1 End If 37 нет P? да S
Множественное ветвление (переключатель) определяет выбор одного из n блоков (n>2). Для исполнения выбирается тот блок, условие которого совпадает со значением переключателя. На рисунке показана блок-схема для выбора одного из трех блоков. 38 Select Case управляющая_переменная Case список_значений 1 [операторы_1] [Case список значений_2 [операторы_2] ]. . . [Case Else [операторы_n] ] End Select Переключатель P 1 S 1 P 2 S 2 Pn Sn
Оператор множественного выбора Select Case 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Select Case выражение [ Case список выражений 1 [блок операторов 1] [ Case список выражений 2 [блок операторов 2] … [ Case список выражений n [блок операторов n] [Case Else [блок операторов n+1] End Select l l 39 Select Case позволяет обрабатывать в программе несколько условий и аналогичен блоку конструкций if… Then…Else. Состоит из анализируемого выражения и набора операторов Case на каждое возможное значение выражения. Сначала вычисляется значение выражения, затем она сравнивается со значениями, заданными в операторах Case. Если найдено искомое значение, выполняются блок операторов, приписанных соответствующему Case. Затем управление передается оператору, следующему за оператором End Select.
Примеры использования оператора Select Case Dim x As Integer x = Val(Input. Box("Введите x")) Select Case x Case 1 To 9 Label 1. Caption = "Значение больше нуля" Case 0 Label 1. Caption = "Значение равно нулю" Case -9 To -1 Label 1. Caption = "Значение меньше нуля" End Select 40
Циклы Для выполнения повторяющихся действий используются циклы. l При работе с массивами типичным алгоритмом является: l последовательный перебор элементов массива, l выполнение для каждого элемента какого-либо действия, l прекращение перебора при достижении конца массива. Начало Взять первый элемент массива (индекс равен 1) Выполнить действие над элементом нет Проверить достижение конца массива да Конец 41 Перейти к следующему элементу (увеличить индекс а 1)
Операторы циклы Так как циклические вычисления очень распространены, то в языках программирования существуют специальные средства для организации циклических вычислений операторы цикла. В Visual Basic существует несколько операторов цикла: l For … Next l Do … Loop 42
Цикл с использованием конструкции For … Next Конструкция For … Next выполняет последовательность команд определенное количество раз. Синтаксис: For параметр_цикла = начальное_знач To конечное_знач [Step шаг] Операторы Next [параметр_цикла] l параметр_цикла – имя переменной, которая «считает» количество повторов. l начальное_знач – числовое значение, которое присваивается переменной – параметру цикла перед первым проходом цикла. l конечное_знач – числовое значение переменной – параметра цикла, после превышения которого выполнение цикла прерывается. l шаг – величина, на которую меняется значение параметра цикла при каждом проходе цикла (если шаг не задан, меняется на 1, может быть отрицательным). l Операторы - это тело цикла, которое выполняется несколько раз. 43
Пример использования оператора For…Next Суммирование элементов массива: Dim M(1 To 5) As Single Dim S As Single Dim I As Integer For I=1 To 5 Step 1 M(I) = Input. Box("Введите элемент массива " & I) Next S=0 For I=1 To 5 S = S + M(I) 'Этот оператор выполняется 5 раз Next Msg. Box "Сумма элементов массива равна " & S, , "Ответ" 44
Цикл с использованием конструкции Do … Loop Цикл выполняется до тех пор, пока истинно заданное в цикле условие. Синтаксис: Do While условие Операторы Loop Условие – логическое выражение, значение которого проверяется перед каждым проходом цикла. Цикл с предусловием – может не выполняться ни разу. Do Операторы Loop While условие Цикл с постусловием выполняется хотя бы один раз. 45
Цикл с использованием конструкции Do … Loop Цикл выполняется до тех пор, пока ложно заданное в цикле условие. Синтаксис: Do Until условие Операторы Loop Условие – логическое выражение, значение которого проверяется перед каждым проходом цикла. Цикл с предусловием – может не выполняться ни разу. Do Операторы Loop Until условие Цикл с постусловием выполняется хотя бы один раз. 46
Пример использования оператора Do…Loop Dim M(1 To 5) As Single Dim S As Single Dim I As Integer I=1 Do While I<=5 'Этот оператор выполняется, если I<=5 - истина M(I) = Input. Box("Введите элемент массива " & I) I=I+1 Loop 47
Примеры циклических вычислений Вычисление факториала N! N!=1 * 2 * 3 *. . . * (N-1) * N; 0! = 1 Умножаем числа с конца к началу, используя While. Dim N As Integer Dim N 2 As Integer Dim Nf As Long N = Input. Box("Введите N для вычисления факториала") N 2 = N Nf = 1 If N 2 >1 Then Do While N 2>1 Nf = Nf * N 2 = N 2 - 1 Loop End If Msg. Box "Факториал " & N & " равен " & Nf 48 ' с начала к концу + For Dim N As Integer Dim i As Integer N = Input. Box(. . . ) Nf = 1 If N >1 Then For i = 1 To N Nf = Nf * i Next End If
Примеры циклических вычислений Поиск максимального элемента в массиве: Dim M(1 To 8) As Single, Max As Single Dim i As Integer, i. Max As Integer For i=1 To 8 'Step 1 M(i) = Input. Box("Введите элемент массива " & i) Next Max = M(1) i. Max = 1 For i=2 To 8 If Max < M(i) Then Max = M(i) i. Max = i End If Next Msg. Box "Максимальный элемент " & i. Max & " массива равен " & Max, , "Ответ" 49
Процедуры и функции Visual Basic позволяет выделить повторяющиеся, функционально законченные фрагменты программы и сделать из них подпрограммы. Подпрограммы можно использовать без их повторного написания и отладки, собирая из них требуемую программу. Любая подпрограмма является процедурой или функцией. Особенностью функции является то, что вычисленное значение подставляется вместо ее вызова. Как правило, функция используется в правой части оператора присваивания. Пример использования функции: Y = Sin(X) + 8 50
Процедуры и функции Для вызова процедуры используется оператор Call. Пример вызова процедуры: Call Min. Max(massiv, min, max) Такое различие связано с тем, что, если функция возвращает только одно значение, которое подставляется вместо вызова, то процедура может возвратить несколько значений (или ни одного), которые вместо вызова подставить невозможно. Эти значения присваиваются переменным, указанным в спиcке параметров. В вызове функции и процедуры указываются аргументы. Список аргументов определяет данные, которые передаются в процедуру и функцию из другой программы (входные аргументы) или наоборот передаются из нее в другую программу (выходные аргументы). 51
Процедуры и функции Синтаксис процедур и функций Функция содержит в первой строке ключевое слово Function и имеет вид: Function имя_функции (список_параметров) As тип операторы имя_функции = выражение End Function Процедура содержит в первой строке ключевое слово Sub и имеет вид: Sub имя_процедуры (список_параметров) операторы End Sub 52
Процедуры и функции Процедуры Sub подразделяются на общие процедуры и процедуры событий. l Общие процедуры – служат для размещения повторяющихся операторов, используемых процедурами по обработке событий (разгружают процедуры событий, исключают дублирование программного кода, облегчается поддержка приложения). Private Sub Proc(X 1 as single, X 2 as single, Y as single) l Процедуры обработки событий связаны с объектами (элементами управления), размещенными в формах VB. Выполняются при наступлении события, с которым они связаны. Private Sub имя. Элемента. Управления_имя события(агрументы) Private Sub Form_Load() 53
Лекция_vb_онокой.ppt