Программирование на C / C++ / Лабораторные работы2 / УГАТУ АСОИ-136 пр-ние на ЯВУ лаб.№4 вар.№18_Артур
.docУфимский государственный авиационный технический университет
Кафедра АСУ
Отчёт по лабораторной работе №4
по дисциплине ”Программирование на ЯВУ”.
вариант №18.
Выполнил: студент группы АСОИ-136
Гильмутдинов А. Проверила: доцент кафедры АПРиС
Фёдорова Н.И.
Уфа 2007.
Тема: Циклы, использующие рекуррентные соотношения.
Цель работы: Знакомство и получение навыков работы с рекуррентными соотношениями в языке С.
Вариант №18.
Задание:
а) С точностью до вычислить сумму S=1+
Решение:
,
Где |сk|;
при k=1 ;
при k=2 ;
при k=3 ;
сn+1=cn*l;
l=;
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{float eps,c,s,x,a;
int k;
clrscr();
cout<<"введите переменные a,x и eps\n";
cout<<"a=";
cin>>a;
cout<<"x=";
cin>>x;
cout<<"eps=";
cin>>eps;
s=1;c=-a*x/4;
cout<<"pri k="<<1<<" c="<<c<<" s="<<s<<endl;
for(k=2;fabs(c)>=eps;k++)
{
s+=c;
c*=(-(a-k+1)*x)/(pow((2*k-1)*2*k,2));
cout<<"pri k="<<k<<" c="<<c<<" s="<<s<<endl;
}
cout<<endl<<"сумма s="<<s;
getch();
}
Проверка:
При а=2, х=2 eps=0.01
c1=-=-1; c2==(2*1*22)/576=0.013889
S=1+c1+c2 =1-1+0.013889=0.013889;
При а=4, х=6 eps=0.01
c1=-=-6; c2==(4*3*62)/576=0.75;
c3==(4*3*2*216)/(518400)=-0.01;
S=1+c1+c2 +c3=1-6+0.75-0.01=-4.26;