Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по QBasic.doc
Скачиваний:
4
Добавлен:
29.04.2019
Размер:
5.12 Mб
Скачать

Лабораторна робота № 6

Метод половинного ділення

Мета роботи — оволодіння прийомами програмування для знаходження коренів рівняння методом половинного ділення

Теоретична частина

Умовні цикли

Ви знайомі з умовними операторами та операторами циклів. Тепер ви дізнаєтеся, як задати цикл, який виконується при певних умовах.

Оператор while...Wend

Оператор WHILE...WEND – управляючий оператор, що виконує блок операторів доти, поки вказана умова істинна.

Формат оператору WHILE...WEND наступний:

WHILE умова

(тіло циклу)

WEND,

де умова - логічний вираз;

(тіло циклу) - послідовність операторів.

Цей цикл управляється умовами, які можуть мати значення «істина» або «неправда». Доки умова має значення «істина», виконуються оператори, що стоять в тілі циклу. Якщо умова — «неправда», управління передається на перший оператор, наступний за WEND. Це ключове слово завжди повинно завершувати тіло циклу. Перед тим, як будуть виконуватися оператори, що складають тіло циклу, QBASIC визначає результат умови в рядку WHILE. Якщо умова має значення «істина», то виконуються оператори тіла циклу, після чого управління повертається на початок оператору WHILE, де знову перевіряється умова. Виконання операторів, що складають тіло циклу, будуть повторюватися доти, поки умова залишається істинною. Як тільки результат перевірки умови змінюється на «неправда», QBASIC обходить цикл і передає управління рядку програми, наступному за WEND.

Оператор WHILE...WEND працює аналогічно оператору FOR...NEXT. Різниця в тому, що в конструкції FOR...NEXT ви повинні визначити початкові та кінцеві значення до початку циклу. Після цього лічильник циклу пробіжить усі значення без вашої допомоги. На кожному кроці циклу QBASIC збільшує лічильник на величину кроку та перевіряє, чи не перебільшив лічильник кінцеве значення. Конструкцію WHILE...WEND ви застосовуєте тоді, коли ви не знаєте, скільки раз повинен повторюватися цикл. Щоб умова припинення роботи циклу будь-коли здійснилась, ви повинні самі змінювати значення змінної, що використовується у перевірці.

Оператор do...Loop

Оператор DO...LOOP – управляючий оператор, який повторює блок операторів, доки умова істинна, або коли вона стане неправдою.

Оператор DO...LOOP схожий на оператор WHILE...WEND, але він більш гнучкий і в цьому його перевага. Управляюча умова в даному випадку може бути розміщена як на початку циклу, так і в кінці. Таким чином, оператор має чотири різні форми запису:

Перевірка - вгорі

DO WHILE умова DO UNTIL умова

(тіло циклу) (тіло циклу)

LOOP LOOP

Перевірка - внизу

DO DO

(тіло циклу) (тіло циклу)

LOOP WHILE умова LOOP UNTIL умова

Тут:

умова логічний вираз;

(тіло циклу) — послідовність операторів.

Обидві форми запису починаються з ключового слова DO і закінчуються ключовим словом LOOP. Кожний логічний вираз починається зі слів WHILE або UNTIL. Якщо ви використовуєте слово WHILE, цикл буде виконуватися до тих пір, доки умова буде мати значення «істина». При записі через слово UNTIL цикл виконується тільки тоді, коли умова має значення «неправда».

Наступна програма показує, як застосовується цей оператор:

REM Програма1

REM Форма “Перевірка вгорі” оператора DO...LOOP

CLS

PRINT "Форма “Перевірка вгорі” оператора DO...LOOP

PRINT

'Визначення початкового значення

N = 1

'Початок циклу

DO WHILE KV < 25

'Піднесення до квадрату

KV = N ^ 2

'Вивід результату

PRINT "Число", N; "Квадрат цього числа доівнює", KV

PRINT

'Збільшення числа на 1

N = N + 1

LOOP

E ND

Звісно, ця програма може бути переписана з використанням оператора WHILE...WEND. І навпаки, форма «перевірка-зверху» оператора DO...LOOP може використовуватися замість оператора WHILE...WEND.

REM Програма2

CLS

PRINT "Використання WHILE...WEND замість DO...LOOP

N = 1

'Початок циклу

WHILE KV < 25

'Піднесення до квадрату

KV = N ^ 2

'Вивід результату

PRINT "Число", N; "Квадрат цього числа дорівнює", KV

PRINT

'Збільшення числа на 1

N = N + 1

WEND

END

Результат цієї програми такий же, як і в попередній. Далі розглянемо, який має вид програма з використанням умови UNTIL:

REM Програма3

CLS

PRINT "Форма “Перевірка вгорі” оператора DO...LOOP

PRINT

'Визначення початкового значення

N=1

'Початок циклу

DO UNTIL KV < 25

'Піднесення до квадрату

KV = N ^ 2

'Вивід результату

PRINT "Число", N; "Квадрат цього числа", KV

PRINT

'Збільшення числа на 1

N = N + 1

LOOP

END

Результат аналогічний до попереднього.