Читайте также:
|
|
#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;
int main() {
double f; // Значення функції
double d = 1e-5; // Крок зміни х
double x = 0.; // Поточне значення х
double e = 1e-5; // Допустима помилка розрахунків
int n = 10000000; // Максимально допустима кількість ітерацій
int i;
f = sin(pow(0, 2.)) + pow(cos(0.), 2.);
for (x = d, i = 1;! (-e < f && f < e); x += d, ++i) {
f = sin(pow(x, 2.)) + pow(cos(x), 2.);
if (i >= n) {
cout << "Not found" << endl;
break;
}
}
cout << "x = " << x << endl; // 1.78519
cout << "f = " << f << endl; // 1.02908e-006
}
Дата добавления: 2015-07-11; просмотров: 118 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Тема: Реалізація циклічного обчислювального процесу | | | Циклічний процес з передумовою |