- •Застосування мови
- •Visual Basic щодо розв’язування фахових задач
- •Верстка макету: Салипа л.М.
- •1 Інтегроване середовище visual basic
- •1.1 Практична робота №1 (Project 1)
- •1.2 Практична робота № 2 (Project 2)
- •2 Основи проектування додатків
- •2.1 Етапи проектування задач
- •2.2 Алгоритмізація задач
- •Елемента одновимірного масиву
- •3 Особливості проектування vb-програм
- •3.1 Об’єкти та їх властивості
- •3.2 Методи
- •3.4 Синтаксис мови vb
- •3.5 Типи даних
- •3.6 Кодування блоків алгоритму
- •3.6.1 Оператор присвоювання
- •3.6.2 Оператор введення-виведення інформації
- •3.6.3 Оператори переходу
- •3.6.4 Оператори циклів
- •4. Виконання програми
- •4.1 Проектування кнопки та написання тексту програми
- •4.2 Приведення програми до читабельного вигляду
- •4.3 Технологія друкування
- •4.4 Оформлення звіту
- •Література
- •Додаток а Завдання для ргр
- •1 Інтегроване середовище visual basic 3
3.6.4 Оператори циклів
Цикли з невизначеною кількістю повторень розрізняються на цикли з передумовою, в яких перевірку кінця циклу здійснюють перед операторами тіла циклу тацикли з постумовою, в яких ця операція виконується після виконання операторів тіла. В обох випадках умову кінця циклу можна перевіряти оператором If. Але в мові VB додатково є можливість виконувати таку перевірку з допомогою структури DO.
<Початкове значення змінної циклу>
DO While <умова>
<Оператори
тіла
циклу>
Loop
При виконанні цього циклу VB спочатку перевіряє <умову> і якщо вона істинна, виконує оператори тіла циклу. В середині тіла циклу потрібно передбачити зміну змінної циклу, нове значення якої знову перевіряється на предмет закінчення циклу. Цикл закінчується при хибному значенні <умови> і наступний оператор буде записаний після оператора Loop.
Цикл з постумовою відрізняється від розглянутого тим, що перевірка кінця циклу відбувається після виконання операторів тіла циклу. Тому ці оператори завжди виконуються хоч би один раз.
<Початкове значення умови кінця циклу>
DO
<Оператори
тіла
циклу>
Loop While <умова>
Замість службового слова While в цих програмних фрагментах можна проставити слово Repeat. В цьому випадку цикл буде продовжуватися не при істинному (True) значенні умови, а при хибному (False).
Приклад.Запрограмуємо алгоритм знаходження першого числа, факторіал якого більший числа Z (рис. 4).
Варіант 1
Z=InputBox(“Введіть число Z”, “Факторіал”, 1)
I=0: F=1
Do While F<Z
I=I+1: F=F*I
Loop
Print I; “!=”; F; “> числа ”; Z
Варіант 2
Z=InputBox(“Введіть число Z”, “Факторіал”, 1)
I=0: F=1
Do
I=I+1: F=F*I
Loop While F<Z
Print I; “!=”; F; “> числа ”; Z
Варіант 3
Z=InputBox(“Введіть число Z”, “Факторіал”, 1)
I=0: F=1
Do Until F>Z
I=I+1: F=F*I
Loop
Print I; “!=”; F; “> числа ”; Z
Варіант 4
Z=InputBox(“Введіть число Z”, “Факторіал”, 1)
I=0: F=1
Do
I=I+1: F=F*I
Loop Until F>Z
Print I; “!=”; F; “> числа ”; Z
Для реалізації циклічних алгоритмів з визначеною кількістю повторень (рис. 5) застосовують оператор For, що має такий синтаксис:
For <змінна циклу> = nпTo nк[<Step кр>]
<Оператори
тіла
циклу>
Next
Якщо параметр <Step кр> відсутній, крок переадресації вважається рівним 1.
Приклад.Запрограмуємо знаходження найбільшого по модулю елемента в одновимірному масиві (рис. 6).
‘ Найбільший по модулю елемент вектора
‘
T = ABS(A(1)): R = 1
For i=2 To N
If T < ABS(A(i)) Then T = ABS(A(i)): R = i
Next
Print “Найбільший елемент масиву ”; A(R)
Print “Він знаходиться на ”; R; “- тому рівні масиву”
Зрозуміло, що для успішної роботи такого програмного фрагменту, потрібно спочатку ввести масив в пам’ять комп’ютера:
N = InputBox(“Введіть розмірність масиву ”, “масив”,1)
For i=1 to n
A(i)=InputBox(“Введіть А(”+Str(i)+”) елемент масиву”, “Введення”, 0)
Next
Для програмування алгоритмів обробки елементів числових таблиць (матриць) застосовуються вкладені оператори For, що працюють аналогічно алгоритмічним фрагментам рис. 7.
Розглянемо програмування алгоритму знаходження добутку додатніх елементів в стовпцях матриці (рис. 8), прив’язавши його до кнопки 2:
Sub Command2_Click()
n%=InputBox(“Скільки рядків в матриці?”, “Рядки”, 1)
m%=InputBox(“Скільки стовпців має матриця?”, “Стовпці”, 1)
For i%=1 To n%: For j%=1 To m%
InputBox(“Введіть А(”+Str(i%)+“,”+Str(j%) + ”):”, “Матриця”, 0)
Next j%, i%
Print “Знаходження добутку елементів матриці”
Print: Print “Робота студента групи У-41 Яцківа А.Я.”
Print: Print “ Початкова матриця:”
For i%=1 To n%: For j%=1 To m%
Print A(i%,j%);
Next j%: Print: Next i%
Print: Print “ Результати роботи програми:”
For i%=1 To n%: For j%=1 To m%
If A(i%,j%)>0 Then D=D*A(i%,j%)
Next i%
Print “В ”; j%; “- тому стовпці добуток додатніх елементів = ”; D
Next j%
Print: Print Tab(15); “Кінець програми”
EndSub