Методичні вказівки до виконання практичних та лабораторних робіт з курсу «Обчислювальна техніка та програмування», страница 7

Мова С++ підтримує три оператори циклу while, do... while і for.

Оператор while у загальному вигляді записується:

while (вираз)

Оператор;

Наступний за циклом while оператор;

Оператор While забезпечує реалізацію циклу з передумовою. Це означає, що оператор у тілі циклу взагалі не обчислюється, якщо обчислене вираження мало нульове значення (лож), а управління передається наступному за циклом while оператору. Якщо вираження відмінно від нуля (істинно), тоді обчислюється оператор, і управління передається назад до початку циклу. В результаті тіло циклу оператора while-оператор, виконується до тих пір, доки вираз прийме значення нуль (лож), а управління буде передано наступному за циклом оператору.

Приклад:

int i=0, p=1;

while (i<=10) {//Обчислення 10!

if (i==0) p=i;

else p*=i;

i++;

}

Оператор do.. while у загальному вигляді записується:

do

Оператор;

while (вираз);

Наступний за оператором do оператор;

В відзнаку від попереднього, оператор do реалізує цикл з постумовою, що гарантує виконання тіла циклу хоча б один раз, після чого виконується обчислення виразу. Якщо значення виразу відмінно від нуля (істинно), тоді управління передається назад до початку оператора do і процес обчислення повторюється. В тому випадку коли значення «виразу» нуль (лож) управління передається наступному за оператором do оператору.

Приклад:

void main()

{

 int chislo,p1,p2,s=0;

 cout<<"vvedite chislo\n";

 cin>>chislo;

 do

 {p1=chislo%10;

 p2=chislo/10;

 chislo=p2;

 s+=p1;

 } while(chislo);

  cout<<"sum = "<<s<<"\n";

 cin>>s;

}

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

for (оператор1; вираз1; вираз2)

Оператор2;

Оператор;//- наступний за оператором For оператор;.

Оператор for працює таким чином. Спочатку виконується оператор1 (звичайно це оператор ініціалізації), що в приватному випадку може бути порожнім. Після Цього обчислюється вираз1. Якщо значення вираз1 має значення нуль (ложь), то управління передається наступному за оператором for оператору, і оператору2, коли значення выраз1 має не нульове значення. Після цього виконується вираз2 і управління передається на выраз1. Таким чином оператор2-тіло циклу повторюється до тих пір доки выраз1 не прийме

значення 0.

Приклад:

int min=а [0]

for (int i=0, i<100, i++)

if (min>a [i]) min=a [i];

При підготовці до роботи слідує вивчити засоби організації ітераційних циклів [1, c. 101-103],  засоби програмної реалізації ітераційних циклів на мові С++.

В даній роботі навики організації ітераційних циклів набуваються при складанні лейбніцівських рядів з необхідною точністю.

Нагадаємо, що лейбніцівським називається ряд вигляду

S=                        (1)

Де  ,     і   .

Відомо, що ряд (1.1) завжди сходиться. Якщо обмежитися кінцевим числом членів ряду (1.1), то модуль залишку ряду не перевищить абсолютної величини свого першого члена.

Ця властивість часто використовується при близьких обчисленнях. Точність складання лейбніцевського ряду вважається досягнутою, якщо Cn< для деякого n. На практиці значення Cn задаються як функції n, т. ч.

                                  (2)

Як правило, обчислювальні алгоритми, в яких Cn обчислюється безпосередньо за формулою (2), виявляються неефективними, бо на їхню реалізацію витрачається багато машинного часу.