Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція_Visual Basic.doc
Скачиваний:
9
Добавлен:
05.02.2016
Размер:
6 Мб
Скачать
☆

Оператори обробки масивів.

Масив – це впорядкований набір даних одного типу, кожен з яких має свій порядковий номер, що називається індексом. Розрізняють статичні і динамічні масиви.. При використанні масивів Visual Basic нумерація елементів масивів за замовчуванням починається з нуля. В математиці елементи масивів нумеруються з одиниці. Оператор Options Base 1 дозволяє задавати індексацію масиву з одиниці. Оператор Options Base повинен знаходитись в секції (General) (Declarations) контейнеру (форми, модулю, класу). Допустимими значеннями для оператора є тільки 0 або 1.

Оператор оголошення масиву Dim. Синтаксис:

Dim < ім’я > ( N ) As < тип >

Де < ім’я > - довільний ідентифікатор; N - натуральне число, яке вказує на розмір масиву ( кількість елементів).

Для оголошення багатовимірних масивів

Dim < ім’я > (< нижня границя > To < верхня границя >, ….....,< нижня границя > To < верхня границя >)

Приклади:

  1. Dim A (5) As Single

  2. Dim X (10 to 80, 1 to 25)

Інколи при оголошенні масиву його розмір невідомий. В такому випадку слід оголошувати динамічний масив, що дозволяє його розмір, або розмірність змінювати під час виконання програми. Динамічний масив створюється в два етапи. Спочатку масив визначають в секції (General) (Declarations) контейнеру (форми, модулю) без в казання розміру. Потім за допомогою оператора ReDimвстановлюють фактичний розмір масиву. Синтаксис:

ReDim [ Preserve ] < ім’я > ( границі ) [ As тип даних ]

Приклад. (General) (Declarations)

Dim A () As Variant

Private Sub Command 1_Click

ReDim A (50 To 20)

( тіло процедури )

End Sub

Приклад1. Обчислити добуток та суму від’ємних компонентів масиву чисел А (n). Формування масиву виконується за формулою А (і)= . Позначимо добуток – Р і суму – S.

Private Sub Command2_Click()

n = InputBox (“n=”)

Dim A (n) As Variant

Dim p, s, d1, d2 As Variant

s = 0 : p = 1

For i = 1 To n

d1 = InputBox (“d1=”)

d2 = InputBox (“d2=”)

A (i) = d1 - d2 + Cos (d1 + d2)

If A (i) < 0 Then s = s + A (i) : p = p * A (i)

Next I

MsgBox ( “сума ” + Str (s))

MsgBox ( “ добуток ” + Str (p))

End Sub

Приклад 2. Задана матриця А (4,4). В заданій матриці знайти мінімальний елемент по модулю серед елементів головної діагоналі.

А =

5. Процедури, складні конструкції Процедура типу Function і процедура типу Sub

Процедури обробки подій є локальними процедурами, пов’язаними з певною формою. Для того, щоб зробити певні процедури загальнодоступними, їх потрібно оголосити в одному чи декількох стандартних модулях. Стандартний модуль, або модуль програми, являє собою особливий файл з розширенням bas, який зберігає змінні і процедури, які можуть бути використані у будь-якому місці програми. Стандартний модуль входить до складу проекту, він, як і форми, може бути збережений у зовнішній пам’яті: меню File, команда Save Module1, вказати місце збереження і ім’я модуля. Стандартних модулів, як і форм, у проекті може бути декілька. На відміну від форм, стандартний модуль не містить об’єктів і встановлюваних властивостей об’єктів, а тільки текст програми, який може бути відображеним і відредагованим у вікні редактору коду. В процедурах обробки подій користувач може використовувати власноруч розроблені процедури, оголошені у стандартному модулі даного проекту. Існують такі різновиди процедур стандартного модуля: процедура типу Function (функції) і процедура типу Sub (підпрограми).

Процедури типу Function (функція).Функції створюються тоді, коли деякі дії потрібно виконувати кілька разів у програмі. Такі процедури викликаються з інших процедур, зазвичай вони використовуються для обчислень. Вони мають аргументи, через які одержують вхідні значення.

Синтаксис:

Function < ім’я функції > ( [ аргументи функції ] ) [As < тип > ]

Оператори функції

[ Exit Function ] із процедури.

End Function

Де:

  • ім’я функції - ідентифікатор функції;

  • аргументи – імена змінних, значення яких використовується функцією;

  • тип - це тип значень, які повертає функція

  • Exit Function – достроковий вихід.

Приклад 1. Процедура Sq розраховує плащу ромба при відомих діагоналях d1 та d2. Текст процедури набираємо у вікні модуля (Insert / Module).

Function Sq (d1, d2) As Double

Sq = (d1*d2) / 2

End Function

Після створення такої функції, її можна активізувати у програмі з відомими аргументами необхідну кількість раз задавши у програмі наприклад команди (тобто під час виконання програми модуль функції буде задіємо):

A = Sq (3, 8)

B = Sq (10,15)

Приклад 2.

Function TotalTax(Cost)

StateTax=Cost*0.05 ‘Податки штату 5%

CityTax= Cost*0.015 ‘Міські податки 1,5 %

TotalTax= StateTax + CityTax

End Function

Для активізації процедури типу Function треба ввести в про­граму ім'я процедури з тією кількістю аргументів, які використовувалися при її оголошенні. Зазвичай процедури типу Function (функція) розробляють з метою виконання певних обчислень. Використовуються за тими ж правилами як і стандартні функції: значення функції зазвичай присвоюється змінній чи властивості об’єкта.

Процедура типу Sub (підпрограма). Вона також викликається за ім’ям з інших процедур, може мати аргументи, одержувати вхідні значення, виконувати відповідні дії. На відміну від процедури типу Function процедура Sub використовується для одержання або обробки вхідних даних, відображення вихідних даних або встановлення властивостей значень.

Текст процедури набираємо у вікні модуля (Insert / Module). Синтаксис:

Sub < ім’я > ( [ аргументи ] ) [ As < тип >]

Оператори процедури

[ Exit Sub ]

End Sub

Де:

  • ім’я – ідентифікатор процедури, що створюється;

  • аргументи – імена змінних, значення яких використовується функцією;

  • тип - це т ип значень, які повертає функція;

  • Exit Sub – достроковий вихід.

Приклад. Процедура, що виконує друкування значень:

Sub PR (X,Y)

Printer.FontName = "Arial" ' установлення шрифту

Printer.FontSize = 16 ' установлення розміру шрифту

Print X; Y

End Sub

Конструкція Select Case. Оператор Case дозволяє програмувати набору операцій для виконання вибору з групи можливих варіантів. Синтаксис:

Select Case < вираз >

Case < діапазон значень 1>

< Послідовність операторів 1>

Case < діапазон значень 2>

< Послідовність операторів 2>

………….

Case Else

< Послідовність операторів >

End Select

Вирази можуть бути представлені набором чисел, діапазоном чисел (використовується оператор То), умовою (за допомогою оператора Is).

Приклад 1.

Private Sub Command1_Click ()

Dim k As Integer

X = Int (Rnd * 10) +1

Print X

Select Case X

Case 5

Print “ дорівнює 5”

Case 3 To 10

Print “ між 3 та 10, крім 5”

End Select

End Sub

Приклад 2. Визначити розмір комісійних внесків, в залежності від того яке обере значення змінна NumSales.

Select Case NumSales

Case 1 To 5

Commission = Total * 0.05

Case 6 To 15

Commission = Total * 0.1

End Select