Головна » Статті » Pascal » Цикли |
Цикли з перед- та післяумовою Pascal
Інколи нам доводиться запрограмовувати такі задачі, у яких треба використовувати такі цикли, які завершуються, за певної умови. За допомогою циклу з параметром це може бути проблематично, так як його використання передбачає заздалегіть прораховану кількість повторів, чого ми в таких ситуаціях, кажучи взагальному, собі дозволити не можемо. Чи можна це обійти? Так, використовуючи цикли з перед- та післяумовою.
В чому суть цих операторів? Перш за все, задається певне твердження, яке перевіряється. Цикл з передумовою буде "в ділі", поки дана йому умова - правильна, а цикл з післяумовою - коли умова правильна. Перед тим, як переходити до більш-менш глибокого аналізу, треба вияснити синтаксис. Цикли з передумовою у Паскалі реалізовуються таким чином: while <умова> do <команди>; а цикли з післяумовою - таким: repeat <команда1>; ... <команда n> until <умова>; Давайте розперемося з першим видом, так як другий по своєму змісту дуже подібний. Розглянемо приклад. Нехай дано числову послідовність із загальним членом an=1/(n^2+n+sqrt(n)). Потрібно знайти суму її членів з точністю ε=10-6. Таку задачу можна реалізувати наступним фрагметном коду. while ( abs(S_old-S_new)>=0.000001 ) do begin S_old:=S_new; S_new:=S_new+1/(sqr(i)+i+sqrt(i)); i:=i+1; end; Що ми бачимо? Спочатку йде перевірка умови на правильність. Якщо вона правильна, то виконуються команди в блоці, що відноситься до циклу, інакше цикл припиняє свою роботу. В даному випадку перевіряється чи не є, випадково, модуль різниці суми з i та i-1 елементів меншою за дане число ε (тобто чи ai<ε). Якщо ні, то виконуються команди між begin та end. Якщо все ж таки менша, то обрахунок завершується. Це розглянутий цикл з передумовою. А що стосовно циклу з післяумовою? Ситуація, як вже говорилося вище, з ним подібна. Єдина різниця заключається в тому, що спочатку виконуються команди, а потім уже перевіряється дана умова, а не навпаки. Це, по суті, єдина між ними (цими циклами) відмінність. Надіюсь, інформація була Вам корисна. Думаю, згодиться. | |
Переглядів: 294 | | |
Всього коментарів: 0 | |