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

Посмотреть архив целиком

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

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


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





Алгоритм решения задачи:



Начало





e







e<0 или e>1





i: =1;

S: =0;

a =-









1



1







Контрольный просчет для первых 5 итераций:

|a|>=e





k:= ;

S: = S + a;

i:=i+1;

a := a * k





S

Конец

Общая формула



Значение переменной 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

#include

#include


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


Случайные файлы

Файл
174003.rtf
23125.rtf
150166.rtf
33197.rtf
31069-1.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.