Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Оператор 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

END

 

 

Звісно, ця програма може бути переписана з використанням оператора 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

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

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

 

Розглянемо теорію методу половинного ділення для розв’язання трансцендентного рівняння. Формулювання задачі: при зміні аргументу X від A (ліва границя) до B (права границя) на відрізку [A,B] функція y=f(x) має корінь X0 , що обертає функцію Y на нуль (y=f(x0)=0). Треба визначити значення кореня X0 з точністю , яка може дорівнювати: 0,1; 0,01; 0,001.

Сутність методу половинного ділення полягає в поступовому зменшенні відрізка [А; В] шляхом його багаторазового поділу навпіл і переносу правої чи лівої границі в точку поділу S=(А+В)/2. Якщо f(S)=0, то знайдена точка і є значенням кореня, однак так трапляється не часто. В основному ж має місце один з двох випадків: точка S знаходиться на графіку функції y=f(x) зліва (рис. 6.2а) чи справа (рис. 6.2б) від значення кореня x0. В першому випадку (значення yA і yS мають однаковий знак або, що те ж саме,yА * yВ >0) ліва границя А переміщується в точку поділу S. У другому випадку (значення yA і yS мають різні знаки або, що те ж саме,yА * yВ <0) права границя В переміщується в точку поділу S. Далі процедура звуження інтервалу повторюється, поки модуль різниці між значеннями А і В не стане менше .

 







Дата добавления: 2015-09-07; просмотров: 408. Нарушение авторских прав; Мы поможем в написании вашей работы!


Рекомендуемые страницы:


Studopedia.info - Студопедия - 2014-2021 год . (0.006 сек.) русская версия | украинская версия