• тіло циклу виконується, поки умова хибна ( false );
• у тілі може знаходитися будь-яка кількість операторів без операторнихдужок ( begin... end );
• принаймні один оператор у тілі циклу повинен змінювати значенняумови, інакше цикл буде виконуватися нескінченно.
Для передчасного виходу з циклу можна присвоїти параметру циклу значення, що виходить за діапазон дозволених значень.
Приклад програми з оператором Repeat
Умова задачі. Перевірка коректності введення. Дано три числа, що задають величини кутів трикутника. Визначити, чи можна побудувати трикутник, що має задані кути. Якщо ні, користувач повинен ввести інші дані.
Program Example_2;
Uses crt;
Var a,b,c: integer;
Begin
Clrscr;
Repeat
Write(*Введіть величини кутів трикутника: ‘);
Readln(а,b,с);
Until (a>0)and(b>0)and(c>0)and(a+b+c)=180;
End.
Оператор повторення while . Оператор whileаналогічний оператору repeat , але перевірка умови виконання тіла циклу виконується на самому початку оператора, тому цикл інакше називається циклом із предумовою.
Формат опису:
while < умова > do
begin
<���серія>;
end;
Умова —булівський вираз, а серія —простий або складений оператор. Перед кожним виконанням тіла циклу обчислюється значення виразу умови. Якщо результат є істинним ( true ), тіло циклу виконується, а інакше відбувається вихід із циклу і перехід до першого після whileоператору. Якщо перед першим виконанням циклу значення виразу було хибним ( false ), то тіло циклу взагалі не виконується і відбувається перехід на наступний оператор.
Як і в попередньому випадку, програміст сам повинен подбати про переприсвоєння значення змінної, що визначає умову виходу з циклу, інакше він буде нескінченним.
Приклад програми з оператором While
Умова. Дано натуральне число N. Визначити кількість цифр у числі.
Program Example_3;
Uses crt;
Var N: longint; Counter: integer;
Begin
Clrscr;
Write(‘Введіть число: ‘);
Readln(N);
Counter:= 0;
While N > 0 do
Begin
Counter:=Counter+1; {Підрахунок кількості цифр}
N:=N div 10; {Відкидання останньої, цифри}
End;
Writeln(«Кількість цифр у заданому числі дорівнює’, N);
Readkey;
End.
Домашнє завдання:
• Прочитати сторінки 83 — 89 із запропонованого підручника;
• Вивчити означення, що прочитані на лекції.
УРОК 19. Цикли з параметром
Мета уроку: навчити використовувати цикл з параметром для розв’язування типових задач.
На початку уроку рекомендується провести письмове опитування по матеріалах попереднього уроку. Далі можна розглянути деякі типові задачі з використанням циклу з параметром. Нагадуємо, що в усіх цих задачах кількість повторень буде відома заздалегідь.
ЗАДАЧА №183
Умова задачі: Компанія бабусь поїхала на мотоциклах на курси комп’ютерної грамотності. Попереду на мотоциклі без глушника їхала одна бабуся, за нею - дві, потім - три і т.д. Скільки бабусь їхало на заняття, якщо приголомшені пішоходи всього нарахували N рядів? Чи змогли бабусі зайняти всі місця у класі, якщо там стояло k рядів по / комп’ютерів у кожному? Скільки вільних місць залишилося?
Розв’язання: Зверніть увагу на те, що фактично ця задача зводиться до знаходження суми всіх натуральних чисел від 1 до N. У кінці задачі для повторення команди розгалуження учням пропонується визначити кількість зайнятих бабусями та вільних місць. Програма розв’язання даної задачі має такий вигляд:
Program Example_183;
Uses crt;
Var I,N,Sum:word;{I - параметр циклу, N - кількість рядів мотоциклів. Sum - кількість бабусь, що приїхали на курси} Place,k,l:word;{k - кількість рядів у комп’ютерному класі, 1 - кількість комп’ютерів у кожному ряду, Place - кількість місць, якої вистачило для бабусь}
Begin
Clrscr;
Sum:=0;
Write(‘Введіть кількість рядів мотоциклів: ‘);
Readln(N);
For I:=1 to N do Sum:=Sum+I;
Writeln(‘Кількість бабусь, що приїхали на курси ‘,Sum);
Writeln(‘Кількість комп’ютерів на курсах ‘,к*1) ;
If Sum
Then writeln(‘Бабусі не змогли зайняти всі місця.’)
Читать дальше