- •Лабораторна робота № 5_6_7
- •Int main(){
- •Int main(){
- •Int main(){
- •Int main(){
- •Int main(){
- •Int main() {
- •Int main(){
- •Int main(){
- •Int main() {
- •Int main(){
- •Int main(){
- •Int main(){
- •Int main(){
- •Int main() {
- •Int main() {
- •Int main() {
- •Завдання до виконання лабораторних робіт
- •Контрольні питання
Int main(){
int i;
i = 1;
for ( ; ; ) {
cout << "i = " << i << endl;
if ( ++i > 10 )
break;
}
}
Приклад програми: знаходження суми ряду 1/1+1/2+1/3+… Суму будемо знаходити двома способами: з заданою точністю і підсумовуванням певної кількості елементів ряду.
#include <iostream>
using namespace std;
Int main(){
double s, t, e;
int i;
s = 0;
e = 1e-5;
i = 1;
for ( t = 1/ i; t >= e; t = 1. / i ) {
s += t;
i++;
}
cout << s << endl;
s = 0;
t = 1;
for ( i = 1; i <= 100000; i++ ) {
t = 1. / i;
s += t;
}
cout << s << endl;
}
Недоліком цієї програми можна вважати ініціалізацію змінних в різних місцях програми, так само, як і збільшення параметрів циклу. В таких випадках зручно використовувати операцію «кома». Вона має найнижчий пріоритет серед операцій мови С++ і призначена для об’єднання декількох послідовно записаних виразів в один загальний вираз. Вирази, об’єднані з допомогою операції кома, виконуються зліва на право, значенням загального виразу стає значення самого правого під виразу.
Знайдемо значення факторіалу з допомогою оператора for.
#include <iostream>
using namespace std;
Int main(){
int f, i, n;
cin >> n;
f = 1;
for (i = 2; i <= n; ++i )
f *= i;
cout << f << endl;
}
Знайдемо суму ряду 1/1!+1/2!+1/3!+1/4!+1/5!+…
#include <iostream>
using namespace std;
Int main(){
int f, i, n, j;
double s;
cin >> n; // кількість елементів ряду
for ( s = 0, i = 1; i <= n; ++i ) {
for ( f = 1, j = 2; j <= i; ++j )
f *= j;
cout << s << " + 1 / " << f << endl;
s += 1. / f;
}
cout << s << endl;
}
Внутрішнього циклу для обчислення факторіала можна позбавитись, якщо зберігати значення факторіалу, знайдене для попереднього елементу ряду.
#include <iostream>
using namespace std;
Int main() {
int f, i, n, j;
double s;
cin >> n; // кількість елементів ряду
for ( s = 0, i = 1, f = 1; i <= n; ++i, f *= i ) {
cout << s << " + 1 / " << f << endl;
s += 1. / f;
}
cout << s << endl;
}
Схожий метод можна використовувати для програм, в яких необхідно отримати послідовність виду 1, -1, 1, -1, 1, … Зробимо це двома способами: з допомогою піднесення до степеня n числа -1 і з допомогою множення попереднього значення на -1.
#include <iostream>
using namespace std;
Int main(){
int i, n = 10, t;
for ( i = 0; i < n; i++ )
cout << i << " : " << pow( -1., i ) << endl;
for ( i = 0, t = 1; i < n; i++, t *= -1 )
cout << i << " : " << t << endl;
}
Знайти
максимальне значення функції
на
інтервалі від 0 до Пі. Графік функції
представлений на мал. 2. Вивести на екран
таблицю значень цієї функції з заданим
користувачем кроком зміни х.
Мал. 2 Графік функції
#include <iostream>
using namespace std;
Int main(){
const double PI = 3.14159;
const double X1 = 0.;
const double X2 = PI;
double xmax, fmax, d, t, f;
cin >> d;
xmax = X1;
fmax = sin( pow( X1, 2 ) ) + pow( cos( X1 ), 2 );
for ( t = X1; t <= X2; t += d ) {
f = sin( pow( t, 2 ) ) + pow( cos( t ), 2 );
cout << t << "\t" << f << endl;
if ( fmax < f ) {
xmax = t;
fmax = f;
}
}
cout << xmax << " : " << fmax << endl;
}
Знайти перше нульове значення функції для значень х більше нуля.
#include <iostream>
using namespace std;
