{і - параметр циклу, п - кількість доданків}

Rez_Pi:real; {Rez_Pi - обчислене значення числа Рі}

Begin

Clrscr;

Rez_Pi:=0;

і: =1; {і — значення знаменника першого доданkа}

п:=0; {п - доданків ще нема}

while round(pi*1000)=round(Rez_Pi*4000) do

Begin

If n mod 2=0 Then Rez_Pi:=Rez_Pi+1/i

Else Rez_Pi:=Rez_Pi-1/i;

i:=i+2;

n:=n+1;

End;

Writeln(vКількість необхідних доданків - ‘,n);

Writeln(“Порівняйте значення Рі: ‘);

Writeln(‘Результат обчислень програми: ‘,Rez_Pi:8:3);

Writeln(‘Вбудована функція: ‘ ,Рі:8:3) ;

Readkey; {Затримка зображення на екрані}

End.

Домашнє завдання

• Виконати задачі № 185, № 198 (3), № 200 (1), № 203 (3), № 205, № 208 (2).

УРОК 21. Цикли з післяумовою

Мета уроку: навчити використовувати цикл з післяумовою для розв’язування типових задач.

На початку уроку рекомендується повторити типи циклів, формати опису та порівняльну характеристику циклів. Далі можна розглянути деякі типові задачі з використанням циклу з післяумовою. Нагадуємо, що в усіх цих задачах кількість повторень заздалегідь невідома і тому, фактично, основним длярозв ‘язку цієї задачі є правильно підібрати умову виходу з циклу.

ЗАДАЧА №179

Умова задачі: На дверях ліфта висіло загрозливе попередження про те, що двері самі зачиняються в той самий момент, коли зайвий за вагою пасажир переступить поріг ліфта. Котрий пасажир постраждає, якщо ліфт витримує вагу не більше S кг, а вага пасажирів, що стоять у черзі до ліфта, дорівнює відповідно a1, а2, а3, ... ап?

Розв’язання: У цій задачі зручніше використовувати цикл з післяумовою, тому що спочатку необхідно дати можливість «увійти» пасажиру в ліфт, а потім перевіряти, чи витримає його ліфт. Умовою виходу з циклу буде перевищення сумарної ваги пасажирів, що увійшли в ліфт, деякого заданого критичного значення. Для зберігання ваги чергового пасажира в цій задачі ми будемо використовувати одну й ту саму змінну (А), оскільки після перевірки вага пасажира нас уже не цікавить. Програма має вигляд:

Program Ехаmрlе_179;

Uses crt;

Var N:word; {I - номер пасажира, що увійшов у ліфт}

Sum,A,S:real; {Sum - сумарна вага пасажирів, що знаходяться в ліфті, А - вага чергового пасажира, що увійшов до ліфта, S - критична вага, що може бути піднята ліфтом}

Begin

Clrscr;

Sum:=0;

N:=0; {На початху роботи програми в ліфті немає пасажирів}

Write(‘Введіть критичну вагу, що піднімає ліфт: ‘);

Readln(S);

Repeat

Write(‘Введіть вагу чергового пасажира: ‘);

Readln(A);

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату