Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
310_1111.doc
Скачиваний:
3
Добавлен:
20.09.2019
Размер:
404.99 Кб
Скачать

Билет 9

1 Типи змінних.Visual Basic работает с 14 стандартными типами переменных.

Змінні - це важлива складова кожної мови програмування. Вони є щось ніби контейнера з певним вмістом, символами або числами. Цьому контейнеру привласнюється ім'я, тобто ім'я змінної. Щоб послатися на вміст, досить вказати ім'я змінної.У мові VisualBasic 6 змінна може мати один з більш ніж десяти типів. розглянемо лише тільки ті, котрі найчас-тіше вживаються.

Коротке невід’ємне ціле число (Byte). Число (значення змінної цього типу) займає 1 байт пам'яті

Ціле число (Integer). Значення змінної цього типу займає 2 байти пам'яті.

Довге ціле число (Long). Значення змінної цього типу займає 4 байти пам'яті.

Десяткове число звичайної точності (Single). Значення займає 4 байти пам'яті.

Десяткове число подвійної точності (Double).Значення займає 8 байт пам'яті.

Рядок (String). Займана пам'ять лінійно залежить від числа символів у рядку.

Довільне значення (Variant). Власне кажучи, тип Variant типом як таким не є. Змінна цього «типу» може мати будь-який тип! Але за це треба платити дорогу ціну — обсяг пам'яті, займаної значенням цього типу буває різним, але не менше 16 байт!

Явне і неявне оголошення

Visual Basic не вимагає обов'язкового явного оголошення змінних. При неявному оголошенні змінні просто використовуються в програмі, при явному вони заздалегідь повинні бути визначені (наприклад, за допомогою оператора Dim).

Раніше було підмічено що, явне оголошення має деякі переваги: воно наочніше, покращує читабельність програми і тому подібне

Option Explicit

Щоб змінні завжди оголошувалися явно, використовуйте опцію Explicit. В цьому випадку Visual Basic вимагатиме явного оголошення змінних, що усуває можливі помилки при написанні програми:

Dim varName As String ' явне оголошення

var = 7 ' неявне оголошення

Явне оголошення має деякі переваги: воно наочніше, покращує читабельність програми і тому краще.

Щоб змінні завжди оголошувалися явно, використовуйте опцію Explicit. В цьому випадку Visual Basic вимагатиме явного оголошення змінних, що усуває можливі помилки при написанні програми:

Dim Variable As Variant

Variable = 10

Variable = Variabel * 5 'рядок з помилкою

Print Variable

У даному прикладі змінна Variable визначена явно. Але в третьому рядку допущена помилкака, яка приведе до того, що замість значення 50 буде виведено значення 0. Причина в тому, що змінна Variabel (помилково вказана замість Variable) неявно оголошується Visual Basic як нова змінна типу Variant, що виключається при використанні Option Explicit.

Для активізації цієї опції слід відкрити діалогове вікно Options (команда меню Tools\0ptions...) і на вкладці Editor встановити опцію Require Variable Declaration. В результаті у всі новостворювані компоненти (форми, модулі, класи) автоматично вставляється рядок Option Explicit. Але це не виконується для створених раніше компонентів застосування: форм, модулів або класів. Для вирішення цієї проблеми необхідно уручну додати рядок Option Explicit в секцію (General) (Declarations) існуючих форм, модулів або класів.

Після установки цієї опції Visual Basic вимагає явного опису змінних і при використанні в коді неоголошеної змінної видасть повідомлення про помилку компіляції. Видалення вказаного рядка вирішить неявне оголошення змінних.

2.Задает ссылку по индексу на одномерный массив, длина которого совпадает с установкой свойства List элемента управления ComboBox или ListBox.

Применение:

ComboBox, ListBox.

Синтаксис:

Control.ItemData(nIndex)[ = nData]

Установки:

nIndex

Задает индекс элемента, для которого следует произвести операцию записи или выборки. Значение nIndex соответствует порядку отображения элементов в списке.

nData

Число, которое нужно сохранить в списке ItemData или извлечь из него.

Ключевым свойством элемента ListBox является свойство ItemData - массив, подобный массиву List. Однако вместо строк, появляющихся в элементе, он содержит числа. Каждый пункт, отображаемый элементом ListBox. состоит из двух частей: строки задаваемой свойством List(i) и числа, задаваемого свойством ItemData(i) (здесь i- индекс пункта списка).

Свойство ItemData - это значение типа Long, которое может сохранять, числовую информацию любого типа, относящуюся к пункту списка, но не отображаемую в списке. Так в массиве List() можно сохранять список имен сотрудников, а в массиве ItemData() – данные об их зарплате. Доступ к записям о каждом сотруднике можно получать по имени, а зарплату отображать в элементе TextBox, помещенном на ту же форму.

Если установить значение свойства ItemData равным индексу соответствующего элемента массива данных, то при необходимости можно получить немедленный доступ к записям массива.

Этот подход применим и к файлам с произвольным доступом (значение свойства ItemData равно числу совпадающих записей). Такой подход демонстрируется в приложении KeyList.

3. Використання графічного методу Circle, приклад. Цей метод застосовується до тих же об'єктів, що й попередні графічні методи. Синтаксис методу наступний:

[Ім’яОб’єкта.] Circle(X, Y), Радіус [, Колір [, Кут1 , Кут2 [, КоефіцієнтСтиснення ]]]

Ім’яОб’єкта може бути відсутнім. У цьому випадку за замовчуванням метод Circle використовується Екранною формою.

Зміст параметрів методу наступний.

(X, Y) — координати центра  кола чи еліпса, що (або частина якого) буде створювати метод Circle на Об'єкті.

Колір — це вираз, що визначається так само, як і для методу Line.

Кут1 і Кут2 — це початковий і кінцевий кути чи дуги сектори.

Кути вимірюють у радіанах, їхні значення беруться в інтервалі від 0 до 2. Нульовий кут відповідає горизонтальної осі, спрямованій вправо.

Якщо перед ненульовим значенням кута ставиться знак «-» (мінус), це означає, що буде намальована не дуга, a сектор (а зовсім не те, що кут негативний).

При малюванні дуги чи сектора рух «пера» відбувається завжди проти годинникової стрілки, від Кута1 до Кута2 (і коли Кут2 більше Кута1, і коли Кут1 більший Кута2).

Якщо зображується не дуга і не сектор кола чи еліпса, а повне коло чи еліпс, Кути, природно, відсутні.

КоефіцієнтСтиснення — це позитивне число, більше чи менше одиниці. У першому випадку виходить еліпс, витягнутий по вертикалі, а в другому — витягнутий по горизонталі. Ступінь витягнутості визначається значенням Коефіцієнта. Якщо він відсутній, за замовчуванням зображується коло (окружність).

Як і в методі Line, не тільки значення перерахованих параметрів методу Circle впливають на вигляд фігури, що буде побудована цим методом.

В об'єкта, на якому здійснюється малювання, є властивості, що визначають зовнішній вигляд зображуваної фігури — колір її контуру (властивість ForeColor), стиль її заповнення (властивість FillStyle), а також колір її заповнення (властивість FillColor).

4.

Метод Seek

Находит в индексированном объекте Recordset типа таблицы запись, удовлетворяющую заданным условиям для текущего индекса, и делает эту запись текущей записьюрабочей области ядра Microsoft Jet.Объектная переменная, представляющая существующий табличный объект Recordset, имеющий индекс, определенный с помощью свойства Index объекта Recordset. сравнение Одно из следующих строковых выражений: "<", "<=", "=", ">=" или ">". ключ1, ключ2...ключ13 Одно или несколько значений ключевых полей в текущем индексе объекта Recordset, определенных с помощью свойства Index. Допускается указание до 13 аргументов ключ.

Перед вызовом метода Seek следует обязательно с помощью свойства Index указать текущий индекс. Если в индексе используется ключевое поле с повторяющимися значениями, то метод Seek найдет первую из записей, удовлетворяющую заданным условиям. Метод Seek проводит поиск по указанным ключевым полям и находит первую запись, удовлетворяющую условиям, которые заданы с помощью аргументов сравнение и ключ1. Найденная запись становится текущей записью, а свойство NoMatch получает значение False. Если в методе Seek не найдена запись, удовлетворяющая указанным условиям, свойство NoMatch получает значение True, а положение текущей записи становится неопределенным. Если в аргументе сравнение задано условие "равняется" (=), "больше или равняется" (>=) или "больше" (>), то поиск по направлению вперед начинается с начала индекса. Если в аргументе сравнение задано условие "меньше" (<) или "меньше или равняется" (<=), то поиск проводится в обратном порядке и начинается с конца индекса, за исключением случая наличия в конце индекса одинаковых значений. В последнем случае метод Seek начнет поиск с одной произвольной записи из имеющих одинаковые значения в конце индекса. Необходимо указать значения для всех полей индекса. Если метод Seek применяется к составному индексу, и не указано точное значение для каждого поля, то использование оператора "равняется" (=) становится невозможным. Причиной этого станут значения Null, задающиеся по умолчанию для некоторых из полей (ключ2, ключ3 и т.д.). В таком случае оператор "равняется" сможет обнаружить только запись, имеющую пустые значения во всех полях индекса, за исключением тех, для которых заданы значения аргументов метода Seek. Рекомендуется в подобных случаях использовать операторы "больше или равняется" или "меньше или равняется". Аргумент ключ1 должен иметь тот же самый тип данных поля, что и соответствующее поле текущего индекса. Например, если в текущий индекс включено числовое поле (такое как поле "КодСотрудника"), то значение аргумента ключ1 должно быть числом. Аналогично, если текущий индекс описывает текстовое поле (такое как "Фамилия"), то аргумент ключ1 должен иметь строковое значение. При вызове метода Seek не требуется предварительного определения текущей записи Для перечисления существующих индексов можно воспользоваться семейством Indexes. 5. Cls Dim n As Integer, i As Integer, j As Integer INPUT n Dim a(n) As Integer, b(n) As Integer Randomize Timer For i = 0 To n - 1 a(i) = Int(Rnd * 20 - 10) Print a(i); Next i Print For i = 0 To n - 1 If a(i) = 0 Then b(j) = a(i) j = j + 1 End If Next i For i = 0 To n - 1 If a(i) > 0 Then b(j) = a(i) j = j + 1 End If Next i For i = 0 To n - 1 If a(i) < 0 Then b(j) = a(i) j = j + 1 End If Next i For i = 0 To n - 1 Print b(i); Next i

6. Написати фрагмент програми. У таблиці видалити записи по заданій умові. rs.delete  If Not rs.EOF Then rs.MoveNext ElseIf Not rs.BOF Then rs.MovePrevious Else MsgBox "ТаБлица пустая" Exit Sub End If If rs.EOF Then rs.MovePrevious

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]