Оператор 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 'Визначення початкового значення N = 1 'Початок циклу DO WHILE KV < 25 'Піднесення до квадрату KV = N ^ 2 'Вивід результату PRINT "Число", N; "Квадрат цього числа доівнює", KV 'Збільшення числа на 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 'Збільшення числа на 1 N = N + 1 WEND END Результат цієї програми такий же, як і в попередній. Далі розглянемо, який має вид програма з використанням умови UNTIL: REM Програма3 CLS PRINT "Форма “Перевірка вгорі” оператора DO...LOOP 'Визначення початкового значення N=1 'Початок циклу DO UNTIL KV < 25 'Піднесення до квадрату KV = N ^ 2 'Вивід результату PRINT "Число", N; "Квадрат цього числа", KV 'Збільшення числа на 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. Далі процедура звуження інтервалу повторюється, поки модуль різниці між значеннями А і В не стане менше .
|