Каждый последующий член ряда можно определить через предыдущий, используя рекуррентную формулу:
yk+1 = yk·x / k
Текущая погрешность вычислений ε определяется последним просуммированным членом ряда:
ε =|yn|
Эту погрешность необходимо сравнить с заданной погрешностью ε0для реализации условия окончания суммирования:
- если ε > ε0 , то заданная точность еще не достигнута, и суммирование ряда необходимо продолжить, прибавив к имеющейся сумме еще один член,
- если ε <= ε0 , то заданная точность достигнута, и суммирование необходимо прекратить.
Пусть s – искомая сумма,
y – очередной член ряда,
k - номер члена ряда,
eps_0 – заданная точность вычислений,
x – вводимый аргумент.
Схема алгоритма:
Программа:
#include <stdio.h>
#include <conio.h>
#include <math.h>
{
const floor eps_0 = 0.001;
int k = 0;
printf(“\nx =”);
scanf(“%f”, &x);
y = 1.0;
{
y *= x / k;
}
while (fabs(y)>eps_0);
printf(“\nСумма = %5.3f”, s);
}
Циклы с постусловием обычно используются в фильтрах входных данных – исходные данные вводятся до тех пор, пока они не будут корректными, а некорректные исходные данные отвергаются.
Пример: по введенному месяцу года определить количество дней в нем.
Программа: Схема фильтра (month – номер месяца)
#include <stdio.h>
#include <conio.h>
#include <math.h>
{
{
printf(“\nВведите номер месяца: ”);
scanf(“%d”, &month);
}
while ((month < 1) || (month > 12));
{
case 1: case 3: case 5:
case 7: case 8: case 10:
case 12: printf(“\n31 день”);
case 4: case 6: case 9:
case 11: printf(“\n30 дней”);
case 2: printf(“\n28 дней”);
default: printf(“\nТакого месяца нет\n”);
}
}
Циклы с пред- и постусловиями используются тогда, когда заранее неизвестно количество их повторений (итераций). Если количество итераций известно заранее, то используются циклы с параметром.
Управление работой циклов с параметром осуществляется не только условием, но и значением специальной переменной – параметра цикла (счетчика).
Циклы этого типа получили наиболее широкое распространение в алгоритмических языках.
Схему цикла с параметром можно представить в следующем виде:
где x – параметр цикла – любая переменная,
x_нач – его начальное значение,
x_кон – его конечное значение,
x_шаг – шаг его изменения (не только целое число).
В Си циклы с параметром реализуются оператором цикла: