Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

I.Информ. Программирование языком VB(кр1)

.pdf
Скачиваний:
10
Добавлен:
07.02.2016
Размер:
409.81 Кб
Скачать

21

Цикл – частина алгоритму, що повторюється багаторазово при виконанні визначеної умови.

Змінна, котра змінює своє значення в циклі, зветься параметром циклу.

Тіло циклу – група блоків алгоритму чи операторів програми, які багаторазово повторюється при роботі циклу.

Розрізняють два види циклічних алгоритмів: цікл з відомим числом повторень – арифметичний (рахунковий), і з невідомим числом повторень – ітераційний. Приклад задачі, що приводить до арифметичного циклу, - табулювання функції на заданому проміжку з відомим кроком.

Приклад задачі, що приводить до ітераційного циклу, - визначення наближеного значення функції з заданою точністю за допомогою розкладення її в ряд Тейлора.

Опису для циклу використовується базова структура повторення. Є три види цієї структури :

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

ні

ana0 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 Короткі теоретичні довідки

Тема завдання – виконання операцій з одновимірними масивами.

Організація даних у вігляді масивів необхідна в більшості задач, які обчислюються на ЕОМ. З масивами даних ми зустрічаємось, коли початкові дані подані у вигляді сукупності чисел, для якої важко знайти закономірність їх змінення. На відміну від простої змінної, для якої виділяється одна комірка пам’яті, для масиву виділяється скільки комірок, скільки чисел в масиві.

Масив це множина послідовних пронумерованих об’єктів одного типу, що мають одне і те саме базове ім’я. Щоб мати доступ до