I.Информ. Программирование языком VB(кр1)
.pdf21
Цикл – частина алгоритму, що повторюється багаторазово при виконанні визначеної умови.
Змінна, котра змінює своє значення в циклі, зветься параметром циклу.
Тіло циклу – група блоків алгоритму чи операторів програми, які багаторазово повторюється при роботі циклу.
Розрізняють два види циклічних алгоритмів: цікл з відомим числом повторень – арифметичний (рахунковий), і з невідомим числом повторень – ітераційний. Приклад задачі, що приводить до арифметичного циклу, - табулювання функції на заданому проміжку з відомим кроком.
Приклад задачі, що приводить до ітераційного циклу, - визначення наближеного значення функції з заданою точністю за допомогою розкладення її в ряд Тейлора.
Опису для циклу використовується базова структура повторення. Є три види цієї структури :
x =a,b,h |
умова |
ні |
оператори |
|
так |
|
|
оператори |
оператори |
|
умова так |
|
|
|
ні |
1) арифметичний цикл (повторення по параметру)
2)ітераційний цикл (повторення з передумовою)
3)ітераційний цикл (повторення з постумовою)
В мові Visual Basic відповідно є три різних оператора за допомогою яких можливо реалізувати ці циклічні структури.
Оператор циклу з параметром має вигляд:
For x = a To b Step h
оператори (тіло циклу)
Next x
Де x - параметр циклу;
a - початкове значення параметру циклу;
22
b – кінцеве значення параметру циклу; h - крок змінювання параметру циклу.
Коли крок змінювання |
параметру циклу = 1 оператор циклу |
|
має вигляд: |
For x = a To |
b |
|
оператори (тіло циклу) |
Next x
З циклу можна вийти достроково до його завершення
(оператор Exit For).
Оператор циклу з передумовою має вигляд: While
оператори (тіло циклу)
Wend
Де - логічний вираз, який приймає значення TRUE або FALSE.
Оператор(тіло циклу) постійно виконуються, доки логічний вираз має значення TRUE.
Другий оператор циклу з передумовою має вигляд: Do While
оператори (тіло циклу)
Loop
З цього циклу можна вийти достроково до його завершення
(оператор Exit Loop).
Оператор циклу з постумовою має вигляд:
Do
оператори (тіло циклу) Loop Until умова
Тіло циклу завжди виконується хоча б один раз.
Умова – логічний вираз, який після обчислення приймає значення TRUE або FALSE . Якщо результат обчислення умови FALSE – цикл продовжується ,а якщо TRUE – перестає робити.
З цього циклу можна вийти достроково до його завершення
(оператор Exit Loop).
Структури повторення можуть бути вкладеними, тобто тілом циклу є структура повторення. Такі цикли називають складними.
23
4.2.2 Приклад виконання завдання
Задача 1
Постановка задачі.
Дано число n та числа x1, x2, …,xn послідовно вводяться з клавіатури. Знайти суму усіх елементів цієї послідовності, для яких виконується умова:
3 sin(2x)-2 cos(3x)>=0.
Рішення
I етап. Математичний опис рішення задачі. Дано: n – натурально число;
x1, x2, …,xn – дійсні числа.
Знайти: s - сума усіх елементів послідовності чисел, для яких виконується умова:
3 sin(2x)-2 cos(3x)>=0.
Для обчислення суми необхідно використати арифметичний цикл (цикл повторюється n раз), у якому:
-ввести число x;
-обчислювати змінну b за формулою
b=3 sin(2x)-2 cos(3x)
-перевірити умову b>=0, коли так, обчислювати суму s=s+b.
-після циклу вивести s.
24
II етап. Блок-схема алгоритму рішення задачі
початок
n
s = 0
i = 1,n
x
b=3 sin(2x)-2 cos(3x)
так
b>=0
ні
s=s+b
s
кінець
25
IІІ етап. Складання програми мовою Visual Basic
1) Графічний інтерфейс користувача.
Використовуються елементи керування та їхні властивості. Форма (Form1): її властивість
Caption: Задача 2(Арифметичний цикл).
Написи (Label). Текстові поля (Textbox) і командна кнопка (Command Button). У процесі конструювання змінені їхні властивості.
Значення властивостей елементів керування
№ |
Елемент |
Назва |
Значення властивості |
|
керування |
властивості |
|
1 |
Label1 |
Caption |
введи n |
2 |
Label2 |
Caption |
Послідовність чисел X |
3 |
Label3 |
Caption |
Результат S= |
4 |
Text1 |
Name |
txtN |
|
|
Text |
порожньо |
5 |
Text2 |
Name |
txtX |
|
|
Text |
порожньо |
|
|
MultiLine |
True |
|
|
ScrollBars |
1 |
6 |
Text3 |
Name |
txtS |
|
|
Text |
порожньо |
7 |
Command1 |
Name |
cmdRun |
|
|
Caption |
Пуск |
26
2) Програмний код мовою Visual Basic.
Програмний код для кнопки cmdRun (подія Click):
Private Sub cmdRun_Click() Dim n As Integer
Dim i As Integer
Dim x As Single
Dim s As Single
Dim b As Single txtX.Text=”” n=CInt(txtN.Text) s=0
For i = 1 To n
x =InputBox(“Веди “ & CStr(i) & “-е число x ”) txtX.Text= txtX.Text & Str(x) & “, “ b=3*sin(2*x)-2*cos(3*x)
If b>=0 Then s=s+b Next i txtS.Text=CStr(s)
End Sub
ІV етап. Результати розрахунку.
Задача 2 Постановка задачі.
Послідовність а0, a1, …, an , ... визначається формулою
ak +1 = ak |
+ |
|
x |
+ |
, де k = 0, 1, 2, .... |
||
|
1 |
ak |
Знайти перший елемент цієї послідовності, що відповідає умові: ak +1 − ak < ε . Вважати, що значення a0 , x, ε дані.
Рішення
I етап. Математичний опис рішення задачі. Дано: a0, x, E – дійсні числа.
27
Знайти: an - перший елемент послідовності, що відповідає умові:
|
a k+1 − ak |
|
< E , де ak +1 |
|
= ak |
+ |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
+ |
, k = 0, 1, 2, ..... |
|
|
|
||||||||
|
|
|
|
|
|
|
1 |
ak |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Нехай k=0, тоді a = a |
|
+ |
|
x |
|
; |
k=1, тоді a |
|
= a |
+ |
|
x |
; |
||
|
|
+ |
|
|
|
+ |
|
|||||||||
1 |
0 |
1 |
a |
0 |
|
|
2 |
1 |
1 |
|
a |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
a1 − a0 < E - логічний вираз, який після обчислення приймає
значення TRUE або FALSE . Якщо результат обчислення умови FALSE – цикл продовжується ,а якщо TRUE – перестає робити: печать a1, кінець програми.
Якщо FALSE, продовжуємо обчислення:
k=2 тоді a 2 |
= a1 |
+ |
+ |
x |
. |
Перевірка умови |
|
a 2 − a1 |
|
< E . |
|
|
|||||||||
|
|
|
||||||||
|
|
1 |
|
a1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Якщо результат обчислення умови FALSE – цикл продовжується ,а якщо TRUE – перестає робити: печать a2, кінець програми.
Якщо FALSE, продовжуємо обчислення:
k=3, тоді a3 |
= a 2 |
+ |
+ |
x |
. Перевірка умови |
|
a3 |
− a 2 |
|
< E . |
|
|
|||||||||
|
|
|
||||||||
|
|
1 |
|
a 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Наперед кількість повторювань циклу не відома. Позначимо a0 - попередній елемент послідовності, an – наступний елемент послідовності. Знаходимо наступний елемент послідовності за
формулою |
an = a0 + |
x |
Перевіряємо умову an − a0 < E , якщо |
1+ a0 . |
результат обчислення умови FALSE – цикл продовжується, але a0=anнаступний елемент послідовності необхідно зробити попереднім, а якщо TRUE – печать an, кінець програми.
Це ітераційний цикл. Будемо використати оператор циклу з передумовою.
28
II етап. Блок-схема алгоритму рішення задачі
початок
a0, x,E
an = |
a 0 + |
x |
|
a 0
ні
an− a0 ≥ E
так
a0=an
an = |
a 0 + |
x |
|
a 0
an
кінець
29
IІІ етап. Складання програми мовою Visual Basic
1) Графічний інтерфейс користувача.
Використовуються елементи керування та їхні властивості. Форма (Form1): її властивість
Caption: Задача 2(Ітераційний цикл).
Написи (Label). Текстові поля (Textbox) і командна кнопка (Command Button). У процесі конструювання змінені їхні властивості.
Значення властивостей елементів керування
№ |
Елемент |
Назва |
Значення властивості |
|
керування |
властивості |
|
1 |
Label1 |
Caption |
введи a0 |
2 |
Label2 |
Caption |
введи x |
3 |
Label3 |
Caption |
введи E |
4 |
Label4 |
Caption |
Результат an= |
5 |
Text1 |
Name |
txtA0 |
|
|
Text |
порожньо |
6 |
Text2 |
Name |
txtX |
|
|
Text |
порожньо |
7 |
Text3 |
Name |
txtE |
|
|
Text |
порожньо |
8 |
Text4 |
Name |
txtAn |
|
|
Text |
порожньо |
|
|
|
30 |
|
|
|
|
9 |
Command1 |
Name |
cmdRun |
|
|
Caption |
Пуск |
2) Програмний код мовою Visual Basic.
Програмний код для кнопки cmdRun (подія Click):
Private Sub cmdRun_Click() Dim a0 As Single
Dim x As Single
Dim E As Single
Dim an As Single a0=CSng(txtA0.Text) x=CSng(txtX.Text) E=CSng(txtE.Text) an=a0+x/(1+Sqr(a0))
Do While Abs(an-a0)>=E a0=an an=a0+x/(1+Sqr(a0))
Loop txtAn.Text=CStr(an) End Sub
ІV етап. Результати розрахунку.
4.3 Завдання 3 4.3.1 Короткі теоретичні довідки
Тема завдання – виконання операцій з одновимірними масивами.
Організація даних у вігляді масивів необхідна в більшості задач, які обчислюються на ЕОМ. З масивами даних ми зустрічаємось, коли початкові дані подані у вигляді сукупності чисел, для якої важко знайти закономірність їх змінення. На відміну від простої змінної, для якої виділяється одна комірка пам’яті, для масиву виділяється скільки комірок, скільки чисел в масиві.
Масив це множина послідовних пронумерованих об’єктів одного типу, що мають одне і те саме базове ім’я. Щоб мати доступ до