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

Для організації циклу з відомим числом повторень використовується оператор циклу з параметром, котрий формально записується таким чином:

for (вираз 1; логічний вираз 2; вираз 3) команда 1;

 

У виразах 1,2,3 використовується спеціальна змінна, котра називається керуючою або параметром циклу. За її значенням встановлюється необхідність повторення циклу чи виходу з нього. Вираз 1 використовується для присвоєння початкового значення керуючої змінної, вираз 2 - для перевірки умови продовження циклу, вираз 3 - для зміни значень керуючої змінної.

Дія команди.

1.Обчислюється значення виразів 1 та 2.

2.Якщо значення виразу 2 істине виконується тіло циклу, а потім знаходиться значення виразу 3.

3.Потім повторно визначається значення виразу 2 і пункт 2 повторюється до тих пір, поки значення виразу 2 істине. Як тільки значення виразу 2 стане хибне, відбувається вихід з тіла циклу.

Будь-який з трьох виразів може бути відсутній, але крапка з комою повинна залишатись. Якщо відсутні вирази 1 або 3, то керуюча змінна не використовується. Якщо ж пропущено вираз 2, то вважається, що умова істина і цикл не закінчується. Таким чином,

for (;;) { ... }

є нескінчений цикл, вихід з якого треба забезпечити іншими засобами.

Приклад .Протабулювати функцію y = 2sinx на проміжку [0; 1.5] з кроком h = 0.1 та обчислити середнє арифметичне значень функції більших 0.5, але менших 1.5.

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

clrscr();

cout<<"--------------\n"

<<"x\t2sin(x)\n"

<<"----------------\n";

float sum=0, h=0.1; int n=0;

for (float x=0.0,y=2*sin(x);x<=1.5+h/2;y=2*sin(x),x+=h)

{

cout<<x<<"\t"<<y<<endl;

if ((y>=0.5)&&(y<=1.5),sum+=y,n++);

}

sum/=n;

cout<<"Середне = "<<sum<<endl;

getch();

}

В циклі замість логічного виразу x<=1.5 ми записали умову x<=1.5+h/2. Це пов’язано з специфікою комп’ютерної арифметики. Справа в тому, що значення дійсних змінних співпроцесором комп’ютера хоч обчислюються і з великою точністю, але все ж наближено. Тому щоб не втратити останнього значення х = 1.5 ми і записали умову у вигляді x<=1.5+h/2 – додали зміщення h/2.Взагалі кажучи в логічних виразах бажано уникати порівнянь змінних дійсних типів. Але якщо все ж таки порівняння дійсних типів неминуче, то необхідно додавати деяке зміщення.

Приклад. Знаходження кількісті та добутку лише парних чисел з діапазону 4..11

void main()

{

for (int n=4,prod=1,k=0;n<=11;n+=2)

{

prod*=n; k++;

}

}

 








Дата добавления: 2015-08-26; просмотров: 547;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.