Читайте также:
|
|
Синтаксис оператора такий:
do
оператор
while (вираз);
Оператор – це довільний оператор мови програмування С++, в тому числі блок операторів, який формує тіло циклу. Вираз – довільний вираз, що задає умову виконання циклу. В цьому операторі спочатку виконується тіло циклу, після цього здійснюється перевірка умови продовження циклу. Блок – схема роботи оператора і приклад його використання наведені на мал. 4.
Мал. 4 Блок схема і приклад використання оператора do while
Приклад програми. Користувач вводить послідовність цілих чисел. Кількість чисел заздалегідь не відома, ознакою кінця вводу чисел є нуль. Знайти суму чисел.
#include <iostream>
using namespace std;
int main() {
int t, s = 0;
do {
cin >> t;
s += t;
} while (t!= 0);
cout << s << endl;
}
Знайти перше нульове значення функції для значень х більше нуля. Будемо шукати перше значення функції, яке знаходиться «на відстані» допустимої помилки від нуля, тобто .
#include <iostream>
using namespace std;
int main() {
double f; // Значення функції
double d = 1e-5; // Крок зміни х
double x = 0.; // Поточне значення х
double e = 1e-5; // Допустима помилка розрахунків
do {
f = sin(pow(x, 2.)) + pow(cos(x), 2.);
x += d;
} while (f < -e || f > e);
cout << "x = " << x << endl; // 1.78519
cout << "f = " << f << endl; // 1.02908e-006
}
Знайти перше нульове значення функції для значень х більше нуля. Будемо знаходити два значення функції – для поточного і наступного значень х. Якщо знак цих двох значень функції буде різним, тобто перше додатне, друге – від’ємне, або навпаки, то між цими двома значеннями х функція переходе через нуль.
#include <iostream>
using namespace std;
int main() {
double f1, f2; // Значення функції для x i x+d
double d = 1e-5; // Крок зміни х
double x = 0.; // Поточне значення х
do {
f1 = sin(pow(x, 2.)) + pow(cos(x), 2.);
f2 = sin(pow(x + d, 2.)) + pow(cos(x + d), 2.);
x += d;
} while ((f1 > 0 && f2 > 0) || (f1 < 0 && f2 < 0));
cout << "x = " << x << endl; // 1.78519
cout << "f1 = " << f1 << endl; // 1.02908e-006
cout << "f2 = " << f2 << endl; // -3.04804e-005
}
Дата добавления: 2015-07-11; просмотров: 149 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Циклічний процес з передумовою | | | Я изучаю Microsoft Office Word 2007! |