- •1. Краткие теоретические сведения
- •1.1. Понятие ицвп
- •1.2. Алгоритмы вычисления сумм и произведений в цикле
- •А) суммы; б) произведения
- •1.3. Выбор типа общего члена суммы (произведения) при вычислении сумм и произведений в цикле
- •1.4. Вывод рекуррентных формул
- •А) вариант 1; б) вариант 2
- •1.4. Оператор цикла со спецификацией итерационного типа (типа условия)
- •А) выполнения оператора while ; б) функции примера 8.6
- •1.5. Уточнение корней уравнений
- •1.6. Использование оператора цикла do … while в ицвп
- •1.7. Использование операторов break и continue в ицвп
- •2. Задание
- •2.4.1.2. Пример
- •2.4.1.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Использование рекуррентных формул в цикле
- •2.4.3.1. Условие задания
- •Варианты заданий
- •Варианты заданий
- •2.4.3.2. Пример
- •2.4.3.3. Программа
- •Варианты заданий
- •2.4.4.2. Пример
- •2.4.4.3. Программа
- •2.5.1.2. Пример программы
- •2.5.1.3. Программа
- •2.5.1.4. Тестирование
- •2.5.1.5. Типичные ошибки при выполнении работы
- •2.5.2. Задание 2. Накопление произведений в цикле
- •2.5.2.2. Пример 8.4
- •2.5.2.3. Программа
- •2.5.3.2. Пример для варианта 30
- •2.5.3.3. Программа
- •2.5.3.4. Тестирование
- •2.5.4. Задание 4. Вычисление значения функции с помощью разложения в ряд
- •2.5.4.1. Условие задания
- •Варианты заданий
- •2.5.4.2. Пример для варианта 30
- •2.5.4.3. Программа
- •2.5.4.4. Тестирование
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие ицвп 2
Варианты заданий
№ |
x |
S(x) |
n |
Y(x) |
16 |
0,5 |
|
160 |
|
17 |
0,5 |
|
120 |
|
18 |
0,5 |
|
100 |
|
19 |
0,5 |
|
80 |
|
20 |
0,5 |
|
60 |
|
21 |
0,5 |
|
140 |
|
22 |
0,5 |
|
150 |
|
23 |
0,5 |
|
130 |
|
24 |
0,5 |
|
110 |
|
25 |
0,5 |
|
90 |
|
26 |
0,5 |
|
100 |
|
27 |
2,5 |
|
80 |
|
28 |
0,3 |
|
70 |
|
29 |
0,7 |
|
60 |
|
30 |
0,5 |
|
160 |
|
31 |
0,3 |
|
120 |
|
32 |
0,6 |
|
140 |
|
33 |
0,7 |
|
100 |
|
2.5.4.2. Пример для варианта 30
Провести вычисления значения функции Y(x) с помощью ее разложения в ряд S(x)
.
Вычисление суммы ряда S(x) провести с использованием рекуррентной формулы. Сравнить значения S(x) и Y(x). Близость значений S(x) и Y(x) для конкретного x указывает на правильность вычисления S(x) и Y(x). Вывести число итераций, необходимое, для достижения заданной точности. Вычисления произвести: вариант а) – с точностью ε; вариант б) – для заданного количества членов ряда n.
2.5.4.3. Программа
а) для случая с точностью ε = 10-5 и х=0,5
//Лабораторная работа № 8
//Домашнее задание 8-4-1d
//Вычисление значения функции с помощью разложения в ряд
//Число членов ряда неизвестно
//Вариант 30
//Автор Петрова Мария гр. ИНФО-101
// 10.04.2012
//= = = = = = = = = = = = == = = = == = = = ==
# include <stdio.h>
# include <conio.h>
#include <iostream.h>
# include <math.h>
int main ()
{
int k;
float x,y, ak, ck, ck1,s, chisl,eps;
// k - счетчик членов ряда
// znam - значение знаменателя
// аk - k-й член ряда
// eps - заданная погрешность
cout << " Введите значение для x: "; cin >> x;
cout << " Введите погрешность вычислений eps: "; cin >> eps;
s = 1;
k = 1;
ck = 1;
do
{
chisl = cos(k*x);
ak = chisl/ck;
s = s + ak;
ck1 = ck*(k + 1);
ck=ck1;
k=k + 1;
}
while(k<=20);
y= exp(cos(x))*cos(sin(x));
/* вывод результата */
cout << "\n Результаты решения:" << endl;
cout << " Значение x = " << x << endl;
cout << " Сумма ряда равна s = " << s << endl;
cout << " Количество итераций k = " << k << endl;
cout << " Расчет по формуле y = " << y << endl;
getch();
return 0;
}
б) для случая с заданным n = 20 и х=0,5
//Лабораторная работа № 8
//Домашнее задание 8-4-2d
//Вычисление значения функции с помощью разложения в ряд
//Число членов ряда известно заранее
//Вариант 30
//Автор Петрова Мария гр. ИНФО-101
// 10.04.2012
//= = = = = = = = = = = = == = = = == = = = ==
# include <stdio.h>
# include <conio.h>
#include <iostream.h>
# include <math.h>
int main ()
{
int k,i,n;
float x,y, ak, ck, ck1,s, chisl,eps;
// k - счетчик членов ряда
// znam - значение знаменателя
// аk - k-й член ряда
// eps - заданная погрешность
// n - число членов ряда
cout << " Введите значение для x :"; cin >> x;
cout << " Введите число членов ряда n :"; cin >> n;
s = 1;
k=1;
ck = 1;
ak=1;
for(i=1;i<=n;i++)
{
chisl = cos(k*x);
ak = chisl/ck;
s = s + ak;
ck1 = ck*(k + 1);
ck=ck1;
k=k + 1;
}
y= exp(cos(x))*cos(sin(x));
/* вывод результата */
cout << "\n Результаты решения:" << endl;
cout << " Значение x = :" << x << endl;
cout << " Число членов ряда n = " << n << endl;
cout << " Сумма ряда равна s = " << s << endl;
cout << " Расчет по формуле y = " << y << endl;
getch();
return 0;
}