Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
іНФОРМАТИКА 1.doc
Скачиваний:
15
Добавлен:
15.08.2019
Размер:
13.85 Mб
Скачать

3. Ітераційні цикли.

В деяких задачах необхідно знайти послідовність значень x0 , x1,…xn. Кожне наступне значення послідовності обчислюється через попереднє. Цикли, що реалізують таку послідовність наближень називаються ітераційними. Ітераційний цикл закінчується коли не виконується деяка умова.

П р и к л а д. Обчислення суми ряду , yn= !. Yn= yn-1*pn,

Pn=-x2/((2n-1)*2n); виконувати поки yn<= ;

Program ryad;

Var

X,yn,pn,s,eps:real;

n:integer;

begin

read(x,eps);

s:=0;yn:=1;n:=0;

while abs(yn)>=eps do

begin

s:=s+yn;n:=n+1;

pn:=-sqr(x)/(2*n*(2*n-1));

yn:=yn*pn;

end;

writeln(s);

end.

4. Вкладені цикли.

Тілом циклу може бути знову циклічна структура. Такі цикли називають вкладеними. Цикл, що містить у собі інший цикл, називається зовнішним, а цикл, що міститься у тілі іншого циклу-внутрішнім. Внутріші та зовнішні цикли можуть бути циклами з параметром, постумовою та передумовою. Вкладені цикли характеризуються рівнями вкладення, зовнішній цикл має рівень –0 , внутрішній –1. Параметри циклів у випадку вкладених циклів змінюються так: спочатку змінюється параметр внутрішнього циклу, набуаючи всіх своїх значень. Потім зовнішній цикл змінить значення на один крок і знову параметр внутрішнього циклу набуде всіх значень. Так триває доти, поки параметр зовнішнього циклу не набуде всіх своїх значень.

П р и к л а д. Відомо, що сума квадратів a та b катетів прямокутного трикутника дорівнює квадратові гіпотенузи c:

а2 + b2 = c2 .

Трійка чисел, котра задовольняє таку рівність, називається "піфагоровими" числами. Скласти програму визначення "піфагорових" чисел в діапазоні від 1 до 100.

PROGRAM Pifagorovi_chysla;

USES crt;

CONST n=100;

VAR a,b,c,count,cx:LONGINT;

wait:CHAR;

BEGIN

CLRSCR;

WRITELN(' Пiфагоровi числа');

count:=0;

FOR a:=1 TO n DO

FOR b:=a TO n DO

BEGIN

cx:=a*a+b*b;

c:=1;

WHILE (c*c<=cx) DO

BEGIN

IF c*c=cx THEN BEGIN

count:=count+1;

WRITELN('a=',a:5,' b=',b:5,' c=',c:5);

END; {if}

c:=c+1;

END; {while}

END; {for b}

WRITELN;

WRITE('В діапазоні від 1 до ',n:5,' знаходиться ');

WRITELN(count:4,' трiйки піфагорових чисел');

END. {program}

Використання операторів циклу дозволяє складати різноманітні і достатньо складні програми.

Умова задачі. Знайти суму всіх натуральних чисел від 1 до 100.

Program Example_1;

Uses crt;

Var Sum, i : integer;

Begin

Clrscr;

Sum := 0;

For i := 1 to 100 do

Sum := Sum + i;

Writeln(‘Sum = ‘, Sum);

Readkey;

End.

Умова задачі. Перевірка коректності введення. Дано три числа, що задають величини кутів трикутника. Визначити, чи можна побудувати трикутник, що має задані кути. Якщо ні, примусити користувача ввести інші дані.

Program Example_2;

Uses crt;

Var a,b,c : real;

Begin

Clrscr;

Repeat

Write(‘Введіть довжини сторін трикутника: ’);

Readln(a,b,c);

Until (a>0)and(b>0)and(c>0)and(a+b+c)=180;

End.

Умова задачі. Дано натуральне число 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.

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

  1. Що таке цикл і як він працює?

  2. Які види циклів існують і чим вони відрізняються?

  3. Що таке цикл з передумовою і післяумовою? Чим вони відрізняються?

  4. Які різновиди циклу FOR існують?

  5. Що таке тіло циклу? Коли відбувається вихід з нього?

Домашні самостійні завдання:

  1. Скласти блок-схему та написати програму на мові Pascal:

  2. Знайти суму всіх натуральних чисел від 1 до 100.

  3. Перевірка коректності введення. Дано три числа, що задають величини кутів трикутника. Визначити, чи можна побудувати трикутник, що має задані кути. Якщо ні, примусити користувача ввести інші дані.

  4. Дано натуральне число N. Визначити кількість цифр в числі.