Контрольная работа по предмету "Информатика"


Вычисление суммы бесконечного ряда с точностью епсилон

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ


Государственный университет информатики и искусственного интеллекта


Д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();


}


Контрольный пример:


Writee 0.0003 Writee 0.0025


Sum of infinite series =0.458940 Sum of infinite series =0.460040



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :