|
ЛР 4 отчет. Лабораторная работа по теме Программирование алгоритмов итеративных циклических структур. Вычисление членов заданной последовательности, значения которых по модулю больше заданного числа Студент Чегодаев А. С
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра информатики
Отчёт
Лабораторная работа по теме
«Программирование алгоритмов итеративных циклических структур. Вычисление членов заданной последовательности, значения которых по модулю больше заданного числа»
Студент: Чегодаев А.С.
группа УБВТ-1901
Вариант № 23
Москва, 2020
Тема и название лабораторной работы:
Программирование алгоритмов итеративных циклических структур. Вычисление членов заданной последовательности, значения которых по модулю больше заданного числа. Задание на разработку проекта:
Вычислить при |x|>1 с точностью до ε = 0.0001, воспользовавшись разложением в ряд:
Сравнить результат со значением, полученным с помощью соответствующей библиотечной функции.
Формализация и уточнение задания:
Для решения поставленной задачи необходимо вывести рекуррентную формулу вычисления члена последовательности. Очевидно, что выражение для n-го члена заданной последовательности имеет вид:
Тогда формула для (n+1) члена последовательности имеет вид:
Откуда получаем следующую рекуррентную формулу:
; - начальный член последовательности при n=1.
Для решения поставленной задачи необходимо реализовать процедуру Pos(), которая в качестве входных параметров получает значение x, точность ε=10-4 и максимальное допустимое число итераций. Во время работы процедуры выводятся значения членов ряда, удовлетворяющие заданной точности и их номера. Процедура не имеет никаких выходных параметров.
Разработана схема алгоритма процедуры Pos(), представленная на рисунке 4.
Pos()
a=2/x
n=1
t=a
|a|>E и n<=Nmax
Нет
Да
a =a * (2 * n + 1)/ (2 * n + 3
t = t + a
n = n + 1 Вывод n, a
Вывод t * 2
Конец
Рисунок 4 – Схема алгоритма процедуры Pos() Вычисление членов заданной последовательности, значения которых по модулю больше заданного числа
Программный код проекта:
Разработанный программный код проекта приведен на рисунок 5.
//файл Pos #include
#include
using namespace std;
void Pos(double x, double E, int Nmax)
{
int n= 1;
double a = 2 / x;
double t = a;
cout << "\tВычисление членов последовательности:" << endl;
cout << "\tНомер \tЗначение " << endl;
while (abs(t) > E && n <= Nmax)
{
cout << '\t' << n << '\t' << a << endl;
a = a*(2 * n + 1) / ((2 * n + 3)*pow(x, 2));
t = a + t;
n++;
}
cout << "Результат равен:" < } //Файл GetXEN
#include
using namespace std; void GetXEN(double& x, double& E, int& Nmax)
{
setlocale(LC_ALL, "rus");
cout << "Введите x ";
cin >> x;
E = 0, 0001;
cout << "Введите макс. число итераций ";
cin >> Nmax;
} //файл Main #include void GetXEN(double& x, double& E, int& Nmax);
void Pos(double x, double E, int Nmax); int main()
{
double x, E;
int Nmax;
GetXEN(x, E, Nmax);
Pos(x, E, Nmax);
system("PAUSE");
return 0;
}
|
Рисунок 5 – Программный код проекта 2-го примера
Вычисление членов заданной последовательности, значения которых по модулю больше заданного числа
Результат выполнения проекта
Результат выполнения проекта приведен на рисунок 6.
Рисунок 6 - Результаты выполнения проекта 2-го примера
Доказательство правильности работы программы:
Все выведенные значения последовательности больше 0.0001. |
|
|