Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Double y,x,s;



cin>>x;

y=s=x; //множественное присваивание

for (int i=0; fabs(y)>eps; i++)

{ y*=pow(x,2)/(2*i+2)/(2*i+3); //очередной член ряда

s+=y;

if (i>500) //проверка на зацикливание

{ cout<<"\n Ряд расходится!";

Break;

}

}

cout<<"\n Значение s="<<s;

............

Пример 1. Найти значение степенного ряда

Вычисление осуществлять до выполнения условия .

В основе алгоритма лежит рекуррентная формула расчета следующего члена ряда по предыдущему: .

Для решения данной задачи можно использовать циклы, реализуемые операторами while и do (лист. 4.1).

Листинг 4.1. st_ryd.сpp

#include <iostream.h>

#include <math.h>

void main()

{

float x,y,z,eps;

cout<<" Задайте точность вычислений eps=";cin>>eps;

cout<<" Введите переменную x =";cin>>x;

while (fabs(x)>=1) // Цикл проверки правильности ввода

{

cout<<" Введите переменную x в диапазоне |x|<1 ";

cout<<"\nx=";cin>>x;

}

const int MaxIter=100; //Ограничитель количества итераций

y=z=x; //Множественное присваивание

int i=1; //Задание параметра цикла

do

{

z*=-x*i/(i+1); //Определение члена ряда

y+=z; //Текущая сумма ряда

i++; //Модификация параметра цикла

if(i>MaxIter) //Проверка зацикливания

{cout<<"\ nРяд расходится!";

break;

}

}

while (fabs(z)>=eps); //Условие выхода из цикла

cout<<"y="<<y<<" при x="<<x<<" eps="<<eps;

}





Дата публикования: 2014-11-02; Прочитано: 273 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...