Помощничек
Главная | Обратная связь


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

Відмінності у роботі циклів на перед- та післяумовою

Питання для вивчення

1. Цикл з передумовою WHILE … DO.

2. Цикл з післяумовою REPEAT… UNTIL.

3. Відмінності у роботі циклів на перед- та післяумовою.

 

Теоретичні відомості

Цикл з передумовою WHILE … DO

Розглянемо третю форму оператора циклу - WHILE…DO.

While умова do

Begin

Оператор 1;

Оператор 2;

оператор N;

end;

 

Приклад 6_1. Підрахувати суму чисел від 1 до 50.

 

Program summing_1;

Var

i,sum:integer;

Begin

Sum:=0;

I:=0;

while i <50 do

begin

i:=i+1;

Sum:=sum+i;

end;

Writeln (‘Сума чисел від 1 до 50 дорівнює :’,sum);

End.

В рамках прикладу 6 умова виконання циклу формулюється по іншому( необхідно додати всі числа від 1 до 50 (включно), тобто додати всі цілі числа які <= 50 ). Необхідно в кожному циклі збільшувати число i на одиницю і додавати його до вже відомої суми, тобто можна сказати: ” До тих пір, поки значення змінної не перебільшить визначенної величини, виконувати слідуючі операції.

 

Цикл з післяумовою REPEAT… UNTIL

При використанні в програмі циклічної конструкції REPEAT … UNTILпослідовність операторів (тіло циклу) обрамляється зарезервованими словамиREPEATіUNTIL. В будь-якому випадку послідовність операторів, що входять в тіло циклу, виконується один раз, після чого перевіряється умова завершення циклу, що записується після зарезервованого слова UNTIL. Якщо ця умова виконується, цикл завершується. В іншому випадку – тіло циклу повторюється ще раз, після чого знову перевіряється умова завершення циклу. Загальна форма запису оператора REPEAT … UNTILпоказана нище:

REPEAT

Оператор 1;

Оператор 2;

Оператор N;

UNTIL умова;

 

Приклад 6_2. Підрахувати суму чисел від 1 до 50.

Якщо ми повернемся до нашого прикладу підрахунку суми від 1 до 50 і перетворимо програму так, щоб в ній використовувався цикл REPEAT … UNTIL, то ми отримаємо слідуючу програму:

 

Program summing_up_2;

Var

i,sum: integer;

Begin

Sum:=0;

i:=0;

Repeat

i:=i+1;

Sum:=sum+i;

Untili=50

Writeln (‘Сума чисел від 1 до 50 дорівнює :’,sum);

End.

Тут необхідно врахувати, що для збільшення на 1 значення змінної і на кожному кроці циклу потрібен окремий оператор. Це пов’язано з тим, що цикл REPEAT … UNTIL не робить це автоматично( зверніть увагу на те, що змінна і, як і змінна Sum, ініціалізується на початку програми. Це необхідно для того, щоб лічба чисел в циклі REPEAT … UNTILпочиналася з відповідної величини). При кожному виконанні циклу в прикладі змінна і буде збільшуватися на 1. Коли до змінної Sum додається перший доданок, змінна імає значення 1. При останьому виконанні циклу зміннаі збільшується з 49 до 50 і додається до суми. В результаті змінна Sum містить суму всих чисел від 1 до 50 включно.

 

Відмінності у роботі циклів на перед- та післяумовою

Між конструкціями REPEAT … UNTIL і WHILE … DOмаються три істотні відміни:

· в конструкції WHILE … DO перевірка умови виходу виконується на початку, а не на початку циклу, тому, якщо умова не задовольняється до початку виконання циклу, то тіло циклу ігнорується і виконується оператор, що стоїть зразу ж після закінчення тілу циклу;

· в конструкції WHILE … DO умова виходу задовольняється, якщо вираз, що визначає умову виходу, хибний, а в конструкції REPEAT … UNTIL - якщо цей вираз істинний;

· між за резервованими словами REPEAT … UNTIL може розміщуватися декілька інструкцій, в той час як конструкція WHILE … DO може мати максимум одну конструкцію.

 

Приклад 7. Підрахувати нескінченну суму з заданою точністю e (e>0).

Вважати, що потрібна точність досягнута, якщо розрахована сума деяких перших доданків і наступний доданок став по модулю меншим за e, - цей і всі інші доданки можна не враховувати.

Підрахувати: .

Виберемо оператор циклу з післяумовою. Він характеризюється тим, що перевірка умови відбувається після проходження циклу, а послідовність операторів, що знаходятись між службовими словами repeatіuntil, виконується один або більше разів. Процес завершується, коли логічний вираз вперше прийме значення True. Іншими словами, цикл виконується до тих пір, поки умова хибна.

 

Program pruklad;

var a,s,add,eps:real;

begin

write(‘введіть потрібну точність exp=?’,#8);

readln(eps);

a:=1;add:=1;

s:=0;

repeat

s:=s+add;

a:=a*4;

add:=1/a;

until add<eps;

writeln(‘s=‘,s);

readln

end.

 

 

Ділення поточного доданка на слідуючий з метою знайти правило, по якому одне отримується з іншого, в цьому випадку нічого не дає. В знаменнику поточного доданку –сума степенів, розпишемо дану суму:

І представимо її поточний доданок add у вигляді. Тоді i=0,1,2,3,…a=1,4,16,64,…; очевидні початкові присваювання a:=1, add:=1 те, що ці велечини змінюються в тілі циклу a:=a*4, add:=1/a. Cумування в циклі виконується до тих пір, поки поточний доданок не менший заданої точності ( всі доданки додатні, тому модуль в умові опускаємо ).

 

Завдання

Скласти програму для розв’язання задачі. Зробити два варіанти задачі через цикли While та repeat

1. Знайти и–перший від’ємний член послідовності cos(ctg n ), n=1,2,3,

2. Знайти член послідовності натуральних чисел 1,2,3,…, добуток яких D=1*2*3* …*n перевищує 1000

3. Знайти член послідовності натуральних чисел 1,2,3,…, сума яких S=1+2+3+ …+n перевищує 100

4. Дано дійсні C та e (e>0, X¹0 Підрахувати наближене значення нескінченної суми з точністю до e

5. Дано дійсні Х та e (X¹0,e>0). Підрахувати наближене значення нескінченної суми з точністю до e

6. Дано додатнє дійсне число a (a<1). Знайти серед чисел виду перше таке, що менше за а.

7. Знайти найменше n (в градусах), при якому сума sin1°+ sin2°+ sin3°+ … + sinN° перевищить задане число а.

8. Дано число n, 1<n<3 Знайти член послідовності натуральних чисел 1,2,3,…, сума яких … перевищує n.

9. Дано натуральне число n Обчисліть суму квадратів натуральних членів послідовності від 1 до n.

10. Дано натуральне число n, n<10 Обчисліть добуток натуральних членів послідовності від 1 до n.

 

Контрольні запитання

1. В яких випадках використовують умовні цикли?

2. Записати загальний вигляд циклу з передумовою. Як він працює?

3. Записати загальний вигляд циклу з післяумовою. Як він працює?

4. Чим цикл WHILEвідрізняється від REPEAT?

 

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.