Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Samostoyatelnye_po_S.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
672 Кб
Скачать
☆

Оператори циклу

У мові C, як і в інших мовах програмування, оператори циклу служать для багатократного повторення послідовності операторів до тих пір, поки виконується деяка умова. Цикл складається з заголовка і тіла циклу. Вхід в цикл і вихід з циклу здійснюються через заголовок циклу. У C існують три види циклів: for, while, do-while.

Оператор while

Ключове слово while дозволяє виконувати оператор або групу операторів до тих пір, поки умова не перестане бути істинним.

Синтаксис: while (ЛВ) ОP;

де ЛВ - логічне вираження, ОP - тіло циклу (простий або складений оператор).

Отже:

якщо ЛВ - істинно, виконується ОР, потім знову перевіряється ЛВ і так далі;

якщо ЛВ - помилково, ОР пропускається, і управління передається на оператор, наступний за тілом циклу.

Оскільки перевірка ЛВ виконується перед тілом циклу, цикл while називають циклом з передумовою.

Якщо ЛВ спочатку хибно, тіло циклу while не виконається жодного разу.

Приклад програми

Обчислити значення sin (x) для деякого x із заданою точністю шляхом розкладання в степеневий ряд, за умови, що x> e:

# Include <stdio.h>

# Include <math.h>

# Define EPS 0.001

int main (void)

{ float x, S = 0, U;

int i = 0;

printf («\ n Input x →");

scanf ("% f", & x);U=x;

while (fabs (U)> EPS) / * fabs - функція обчислення

абсолютного значення, оголошена в math.h * /

{S + = U;

+ + I;

U * = (-x) * x;

U / = 2 * i * (2 * i +1);

}

printf ("\ n sin (% f) =% 7.3f", x, S);

return 0;}

Оператор for

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

Загальна форма оператора

for (V1; ЛВ; V2) ОP;

де V1 - вираз, в якому проводиться присвоювання змінної, званої параметром циклу, початкового значення (ініціалізація); ЛВ - умова, що визначає, чи слід в черговий раз виконувати оператор (тіло циклу); V2 - вираз, в якому проводиться зміна змінної циклу ( прирощення); ОР - оператор або група операторів.

Принцип роботи:

  • обчислюється V1;

  • обчислюється ЛВ;

  • якщо ЛВ істинно, виконується ОР, потім обчислюється V2;

  • перевірка ЛВ → ОP → V2 і т. д.

Коли ЛВ стає помилковим, здійснюється перехід до оператора, наступного за ОP. Якщо ОP - складений оператор, то його треба укласти в {}.

Якщо ЛВ відразу помилково, то ні ОР, ні V2 не виконуються жодного разу.

Відзначимо дві додаткові можливості оператора for в порівнянні з оператором while:

  • Про можливість включення ініціалізує вираження V1, використовуваного один раз перед тим, як буде зроблено оцінку умови;

  • прo можливість включення вирази V2, яке буде використовуватися після кожної ітерації оператора ОР.

Приклад 1. Обчислити значення функції sin (x) в рівновіддалених точках на інтервалі [0, 4π]. Кількість розрахункових точок вводиться з клавіатури:

#include <stdio.h>

#include <math.h>

int main(void)

{int n;

float x, y;

float x1=0, x2=4*M_PI;

printf("Введіть кількість точок\n");

scanf("%d",&n);

x=x1;

float step=(x2−x1)/(n−1);

for (int i=1; i<=n; i++)

{y = sin(x);

printf("%3d %8.3f %8.3f\n",i,x,y);

x+=step;}

return 0;

}

У цьому прикладі кількість точок задається в цілочисельний змінної n, межі інтервалу зміни x - в змінних x1 і x2, які мають дійсний тип і ініціалізувалися при оголошенні. M_PI - макрос, який представляє число π, оголошений в заголовному файлі math.h. Там же оголошена функція sin ().

Слід мати на увазі, що всі три вирази - V1, ЛВ, V2 є необов'язковими. В якості ОP може бути використаний порожній оператор.

Можливі конструкції:

for (V1;; V2) ОP (нескінченний цикл); for (; ЛВ ;) ОP і навіть for (; ;).

Зауважимо, що за допомогою операторів for і while можна створювати нескінченні цикли, якщо опустити всі три вирази в операторі for і використовувати завжди істинне ЛВ в while. Такі програми не можна назвати коректними, але існують способи завершення самих некоректних циклів.

Допускається використання оператора for, коли є декілька початкових виразів виду V1, перерахованих через кому, і кілька виразів виду V2, також перерахованих через кому. Конструкція такого виду носить назву - операція кома.

Використовуючи операцію кома, складемо програму обчислення все того ж sin (x):

# Include <stdio.h>

# Include <math.h>

# Define EPS 0.001

int main (void)

{

float x, S, U;

int i;

printf ("\ n Input x?");

scanf ("% f", & x);

for (S = 0, U = x, i = 0; fabs (U)> EPS; S + = U, i + +, U * = (-x / 2 * i +1)));

printf ("\ n sin (% 6.3f) =% 7.3f", x, S);

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]