Лекция: 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;

}

 

 

еще рефераты
Еще работы по информатике