Лабораторная_работа на тему Вычисление суммы бесконечного ряда с точностью епсилон
Работа добавлена на сайт bukvasha.net: 2015-06-30Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
Государственный университет информатики и искусственного интеллекта
Д050103.1.01.10/080.ЛР
Кафедра программного обеспечения интеллектуальных систем
Лабораторная работа №1
по дисциплине «Основы программирования»
на тему: «Вычисление суммы бесконечного ряда»
Вариант №14
Проверил:
ст. преп. Р.А. Сорокин
асс. Е. В. Курило
Выполнила:
ст. гр. ПО-10а Ю.Ю.Красавина
Донецк-2010
Задание: Написать программу на языке программирования С++
Вычисление суммы бесконечного ряда с точностью эпсилон.
Вид уравнения:
Постановка задачи:
Входные данные: e – вещественное число.
Выходные данные:S – вещественное число.
Промежуточные данные:k – вещественное, a – вещественное,i- целое.
Ограничение на входные данные:0<е<1
Метод решения задачи:
На первом шаге присвоим значение i:=1, а S:=0. значение a рассчитаем по общей формуле приведенной выше.
Рассчитаем k.
k = =>
Следующие а будем вычислятьa:= a *k, а значение i будем увеличивать на каждом шагеi:=i+1;
Алгоритм решения задачи:
Контрольный просчет для первых 5 итераций:
Общая формула
Значение переменной i | Число в результате просчета по формуле «в лоб»,а |
1 | |
2 | |
3 | |
4 | |
5 |
Расчет с коэффициентом:
Значение i | Значение k | a начальное | результат |
1 |
| |||
2 | |||
3 | |||
4 | |||
5 |
Примечания:
Под а начальным имеется ввиду значение переменной, с которой начинается просчет по ниже приведенным формулам:
(а1 берется с просчета по начальной формуле, расчет k приведен ниже.)
а2=а1*k1;
a3=a2*k2;
a4=a3*k3;
a5=a4*k4.
Расчет k:
Подставляем в формулу значение i
Значение i | Переменная k (номер коэффициента.) |
1 | (k1) |
2 | (k2) |
3 | (k3) |
4 | (k4) |
Листинг программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void)
{
int i;
float a,s,e;
clrscr();
do
{
printf("Write e");
scanf("%f", &e);
}
while(e<=0||e>=1);
s=0;
i=1;
a=0.7;
while(fabs(a)>=e)
{
s=s+a;
a=a*(-sqrt(float(i)/(float(i)+2.0)));
i++;
}
printf("Sum of infinite series =%f",s);
getch();
}
Контрольный пример:
Write e 0.0003 Write e 0.0025
Sum of infinite series =0.458940 Sum of infinite series =0.460040