Visual basic script - коротко для вирішення завдань в системі вектор

Деякі правила VBscript

Процедура це загальна назва функцій або підпрограм. Має синтаксис:

sub name
подія
end sub

де:
name - ім'я процедури.
подія - те, що може "статися" в процесі виконання програми (обчислення, отрисовка).

Щоб змінні x була перетворена в цілі числа, використовується функція Cint (змінна):
а = Cint (x)

Якщо код не вміщується в одному рядку, то можна використовувати символ продовження рядка: Перенесення ж рядки, при друку тексту і обчислень на екран, виконується процедурою vbCrLf в наступній конструкції:
Складемо таблицю виведених значень магічного кварата Ло-Шу
VBSMsg "1-й ряд, n1 =" n1 "N2 =" n2 "N3 =" n3 "І їх сума =" m1 _
vbCrLf "2-й ряд, n4 =" n4 "N5 =" n5 "N6 =" n6 "І їх сума =" m2 _
vbCrLf "3-й ряд, n7 =" n7 "N8 =" n8 "N9 =" n9 "І їх сума =" m3 _
vbCrLf "Сума по верикалі: 1-й СТЛБ. =" m4 "2-й СТЛБ. =" m5 "3-й СТЛБ. =" m6 _
vbCrLf "Сума по діагоналях: 1-я =" m7 "2-я =" m8
VBSMsg - спеціальна в VBS для "Вектор" процедура виведення тексту на екран дисплея.

Ідентифікатори Visual Basic

- Перший символ ідентифікатора обов'язково є буквою або символом підкреслення. Наприклад, ідентифікатори First, _Var є правильними, а 1st, 100 - неправильними. В середині або на кінці ідентифікатора допускається використовувати цифри, наприклад: A1, A1B2 і ін.
- У ідентифікатори не допускається використовувати прогалини, а також спеціальні символи: розділові знаки, а також @, #, $, . Ідентифікатори My Var, New є неправильними.
- Максимальна довжина ідентифікатора не може перевищувати 255 символів.
- Ідентифікатор не може збігатися з зарезервованими словами мови програмування Visual Basic Script.
- В межах одного модуля або проекту неприпустимо оголошувати один і той же ідентифікатор двічі.

Зарезервовані слова - це стандартні інструкції, що дозволяють вирішувати певні дії: описувати процедури, відкривати цикли, оголошувати змінні і ін. Жодне з цих слів неприпустимо використовувати в якості ідентифікатора.

За допомогою змінних можна тимчасово зберігати значення виразів, щоб використовувати їх в подальшому.

Присвоєння значення змінної

Початкове значення змінної дорівнює 0 для числових типів даних. У більшості випадків це значення цілком відповідає вимогам завдання. Так, можна скласти програму підсумовування рядків масиву A, що не обнуляючи значення змінної S:

Dim S
For I = 1 To 5
S = S + A [I]
Next

Така програма при виконанні не видасть помилки і правильно підсумовує п'ять елементів масиву. Але правила хорошого тону в програмування все-таки змушують перед використанням нової змінної привласнити їй початкове значення. До програми для підсумовування елементів масиву слід додати ще один рядок:

Dim S
S = 0
For I = 1 To 5
S = S + A [I]
Next

Присвоїти значення змінної можна двома способами: в явній формі або в неявній формі. У наступних прикладах показані різні способи присвоєння значень змінним:

'Розрахунок значення виразу
B = (3 * (3 + 4)) / 4

Dim <массив> (<размерность1, размерность2.>) [As тип]
При описі масиву можуть використовуватися такі символи:
<массив> - ім'я масиву, що утворюється як і інші ідентифікатори.
<размерность, размерность2.> - довжина кожної розмірності масиву.
<тип> - необов'язковий при описі масиву тип даних.

Dim FirstArray (4) As Integer
FirstArray (0) = 20
FirstArray (1) = 16
FirstArray (2) = 15
FirstArray (3) = 23
FirstArray (4) = 11

Для маніпуляції елементами масиву найбільш підходящим є цикл For, в якому, наприклад, можна підсумувати елементи масиву FirstArray:

For I = 0 To 4
S = S + FirstArray (I)
Next I

Щоб швидше вивчити особливості використання змінних, констант і масивів, треба скористатися будь-якою книгою по Бейсік, де наведені приклади різних програм, а потім спробувати реалізувати їх в середовищі Visual Basic Scrept for Vector. З інших питань звертатися до Help мови VBS. Так наприклад, перенесення рядка при виведенні на екран будь-яких повідомлень був знайдений в Help і використаний в програмі VbsBox.

Безпосередньо робота в системі "ВекторW"

Вище дано стандартні функції VBS. В "Вектор", крім безпосередньо різних графічних побудов і перетворень, що записуються в сценарій, реалізовані свої процедури:
otrezok.s (x1, y1, z1, x2, y2, z2) - побудова відрізка через точки р1, р2;
krug.s (x1, y1, z1, R) - побудова кола радіусом R з центром в точки р1.

Приклад побудови відрізка різним способом завдання змінних
otrezok.s 1, 4, 5, 7, 7, 10 '- безпосередньо завданням значень при зверненні до otrezok.s

x2 = 7
y2 = 6
z2 = 9
otrezok.s x1, y1, z1, x2, y2, z2 '- через регістри змінних

Dim p1, p2
p1 = Array (1,2,3)
p2 = Array (7,5,8)
otrezok.s p1 (0), p1 (1), p1 (2), p2 (0), p2 (1), p2 (2) 'елементами масивів

Приклад розрахунок дини відрізка р1-р2

VbsBox "Довжина відрізка р1-р2 =" s - виведення тексту (що в лапках) і ціфровоих значень (змінної s).

Перетворення геометричних об'єктів

obj.xAngle, obj.yAngle, obj.zAngle - змінні в які передаються кут обертання навколо тієї чи іншої осі, наприклад: obj.zAngle = 10 - просто присвоюються кут в 10 градусів, або obj.zAngle = 10 * n - привласнення використовується для циклу, в якому n змінний параметр.
obj.origin (0) = 1 '- зсув по х на 1
obj.origin (1) = 1 '- зсув по y на 1
obj.origin (2) = 1 '- зсув по z на 1
obj.scale - масштаб (наприклад, obj.scale = 0.5)
obj.All = True (або obj.All = 1) - перетворити всі об'єкти
obj.All = 0 - скасувати перетворення всіх об'єктів
obj.SetH - встановити матрицю перетворення і отрисовать.
приклад
otrezok.s 0,0,0,5,5,0
obj.zAngle = 10
obj.SetH
Що означає: відрізок задати, повернути його на кут і отрисовать.

OrtTrans a, b - перетворення відрізка в проецирующее положення тієї чи іншої к. Площині
де
a - до якої коорд. площині перетворимо об'єкт 0 - до горизонтальної площини проекцій,
1 до фронтальної площини проекцій,
2 - до профільної площини проекцій, b - номер відрізка, який перетворимо
приклад
OrtTrans 0, 0
Чи означає: зробити ортогональное перетворення до горизонтальної площини координат нульового відрізка.

Приклад зображення відрізка прямої, що обертається навколо початку координат

For n = 0 To 36 step 1
otrezok.s 0,0,0,5,5,0
obj.zAngle = 10 * n
obj.SetH
Next
або
For s = 0 To 360 step 10
otrezok.s 0,0,0,5,5,0
obj.zAngle = s
obj.SetH
Next

Імпорт ліній .dxf формату
Приклад зображення обертається "Rnew12.dxf" лінії імпортується з поточної директорії (там де знаходиться vector.exe)

For s = 0 To 360 step 5
Import "Rnew12.dxf" 'імпортування кривої
obj.yAngle = s 'змінна - кут обертання
obj.SetH 'матриця перетворень і зображення
Next

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

For s = 0 To 360 step 10
Import "C: \ cg8n \ krug1.dxf"
obj.scale = 0.1 '- масштаб
obj.zAngle = s '- змінна - кут обертання
obj.origin (0) = 1 '- змінна - зсув по х
obj.origin (1) = 1 '- змінна - зсув по y
obj.origin (2) = 1 '- змінна - зсув по z
obj.SetH 'матриця перетворень і зображення працює
'По умочанію: масштаб. поворот, зсув
Next

* Примітка: обертання кола заданої в центрі координат навколо осі Oz нічого не дасть

Приклад зображення імпортованої лінії в масштабі, СВІГА і потім повороті - все ще в циклі.

For s = 0 To 360 step 10
Import "C: \ cg8n \ krug1.dxf"
obj.zAngle = s
obj.origin (0) = 20 '- зсув по х на 20 з урахуванням масштабу насправді буде зрушення на 2 см
obj.origin (1) = 0 '- зсув по y (якщо на 0, то можна не ставити)
obj.origin (2) = 0 '- зсув по z
obj.scale = 0.1 '- масштаб
obj.SetH 'матриця перетворень діє після повороту
Next

For s = 0 To 360 step 10
Import "C: \ cg8n \ krug1.dxf"
obj.scale = 0.1 '- масштаб
obj.origin (0) = 1 '- зсув по х на 1
obj.origin (1) = 1 '- зсув по y на 1
obj.origin (2) = 1 '- зсув по z на 1
obj.SetH 'матриця перетворень на зрушення
obj.zAngle = s '- повернули
obj.SetH 'матриця перетворень діє після повороту
Next


SetInvisibleAll 'очищення екрана

Нижче наведена програма розрахунку довжини відрізка p1-p2 і виведення його значень на екран діспея.
У макропрограми pointline - показано, як визначається найліпший відстань від точки р3 до прямої р1-р2. Визначається і точка p, до якої відстань мінімально. На друк видається повідомлення:
Найліпший відстань від точки р3 до прямої р1-р2 = 10
Координати точки р наступні:
x = 5
y = 7
z = 4

Приклад 1. Написати програму, яка б випадковим чином загадувала число від 1 до 100, і виводила це число в робоче вікно системи "Вектор".

Dim a 'визначаємо змінні
randomize 'включення генератора випадкових чисел
a = int (rnd (1) * 100 + 1) 'присвоювання змінної (a) випадкового значення
krug.s a / 10, a / 10,0,0.1 'отрисовка сучайних чисел (координати центру) колами
VBSMsg "Cлучайное число =" a

Що б сталося, якби ми на початку програми не оголосили змінну. А нічого. Оголошувати змінну потрібна для того, щоб вона була "видно" в інших процедурах (sub, function).

Приклад 2. На якому етапі вгадаєте наперед заданий число?
Для написання програми необхідно організувати:
- завдання наперед заданого числа,
- циклу перебору чисел,
- виходу з програми при вгадуванні числа,
- виведення повідомлень, на який раз сталося вгадування.
При цьому послідовність вгадується чисел можна зображувати колами, координати центрів яких: абсциса - номер ітерації, ордината - значення вгадується числа.

'Отже на якому етапі "i" випаде наперед заданий число "k"?

k = 23 'наперед задається число

For i = 1 To 150 Step 1
randomize 'включення генератора випадкових чисел
a = int (rnd (1) * 100 + 1) 'присвоювання змінної (a) випадкового значення
krug.s i / 10, a / 10,0,0.1 'відображаємо значення (a), де а - ординатою точки, i - абсциса
if a = k Then exit For 'умова виходу
Next

'Висновок повідомлень на екран
VBSMsg "число" a vbCrLf "Отримано на кроці" i

Visual Basic сьогодні став повноправним інструментом для професіоналів. Дискусія про мови частіше зводиться до дилеми "Visual C ++ або Delphi". А як же VB, що перевершує за популярністю в світі все решта коштів саме в професійній сфері? Не кажучи вже про те, що використання різних інструментів в одному проекті є досить звичним явищем: одного для розробки користувальницького інтерфейсу, другого - для створення розрахункових модулів, третього - для забезпечення доступу до баз даних і т.д. Так було і двадцять років тому, але сьогодні це стало особливо актуально в умовах компонентної моделі створення додатків. Проблеми розробки вже давно перемістилися з області написання кодів в сферу вміння використовувати засоби макропрограмування.

Так Delhpi є одним з кращих і елегантних засобів розробки. Але лідерство VB на ринку визначається його масовістю, яка породила небачений раніше ринок різних доповнень і розширень, в результаті чого він стає фактично стандартом макромови для широкого кола бізнес-додатків. Зрозуміло, головним питанням при виборі засобу розробки є принципова можливість реалізації на ньому поставленої задачі.В цьому плані вельми характерним є поява мови Java. Його технологія, орієнтована більше на нові області застосування і методи реалізації (Internet, аплети, байт-код і ін.) Однак областю застосування Java є аж ніяк не тільки спеціальні області Internet - основний обсяг розробок зміщується в область традиційних прикладних систем.

Як вчать і як вчити програмування

Найбільш характерним підходом було і залишається навчання при принципом "що знаємо, то і викладаємо", не піклуючись про питання, "а навіщо це потрібно". Сьогодні програмування є частиною проблеми комп'ютерного грамоти, а методика його викладання повинна змінитися самим рішучим чином. Технологія розробки програм: візуальне програмування, подієва логіка програми, компонентна технологія, використання макросредств тощо. Повинно докорінно відбитися на методиці навчання. А що ж робиться зараз? Найчастіше взагалі просто вивчається теорія мов? Але така постановка питання нагадує відомий анекдот про басейн, який обіцяють наповнити водою, коли все навчаться плавати. Класична схема навчання програмуванню раніше виглядала наступним чином: спочатку теоретичне вивчення синтаксису деякого мови, а вже потім виконання деяких практичних завдань. Сьогодні ж для написання перших програм для Windows взагалі не потрібно знати про особливості мови - потрібно розуміти загальну логіку розробки програми та вміти працювати в середовищі інструменту. І тільки після цього можна переходити до вивчення мови для "вишуканого програмування". Який засіб розробки годиться для вирішення такого завдання? Відповідь - Visual Basic. По-перше, це дозволить в максимальному ступені абстрагуватися від мовних проблем. По-друге, - познайомитися з середовищем програмування, характерною для всіх засобів розробки Microsoft. Освоєння ж мови реально можливо тільки в ході практичної роботи і самонавчання. Для комп'ютерної галузі, як найбільш динамічно розвивається сфери, як ніде актуальна основна мета освіти - закласти основи для майбутнього навчання все своє життя.