Программирование на C / C++ / Лабораторные работы [18 вариант, 1 семестр] / Лабораторка № 2
.docУфимский государственный авиационный технический университет
Кафедра АПрИС.
Отчёт по лабораторной работе № 2
по программированию
«Циклические алгоритмы».
Выполнил: студент группы САПР -130 Манаев Р. Н.
Проверила: старший преподаватель кафедры АПрИС Бежаева О. Я.
УФА 2006.
Цель работы: Научиться составлять программы используя циклические алгроитмы.
Вариант № 18.
Постановка задачи:
А) Протабулировать функцию на отрезке [xn; xk].
При x+9<0 и b!=0,
F(x)= При x+9>0 и b=0,
Во всех остальных случаях
Б) Найти сумму.
S=
Задание № 1:
-
Блок схем.
x>=xn
нет
да
y=(a*x*x*x)+(b*x*x*x)
нет
y=(x-4*a)/(5*b) y=exp(x)+3
x=x+h
1.2 Листинг программы.
#include<iostream.h>
#include<math.h>
void main()
{
double xn,xk,y,a,b,c,h,x;
cout<<"\n"<<"vvedite a, b, c ";
cin>>a>>b>>c;
cout<<"vvedite shag h ";
cin>>h;
cout<<"vvedite xn, xk ";
cin>>xn>>xk;
for (x=xn; x<=xk; x=x+h)
{
if (((x+9)<0)&&(b!=0))
y=(a*x*x*x)+(b*x*x*x);
else
{
if(((x+9)>0)&&(b==0))
y=(x-4*a)/(5*b);
else
y=exp(x)+3;
cout<<"\n"<<"y= "<<y<<" ";
}}}
-
Тестирование программы.
Задание № 2:
-
Блок схем.
s=0
НЕТ
ДА
n=n_m=m=1
n=n*i
ДА
НЕТ
n_m=n_m*i
НЕТ
m=m*i
НЕТ
-
Листинг программы.
#include<iostream.h>
void main()
{
int i,n,k,m,N,M,n_m;
double c,s;
cout<<"\n"<<"vvedite N i M ";
cin>>N>>M;
s=0;
for (k=M;k<=N;k++)
{
n=n_m=m=1;
for (i=1;i<=N;i++) n=n*i;
for (i=1;i<=N-k;i++) n_m=n_m*i;
for (i=1;i<=k;i++) m=m*i;
c=n/(n_m*m);
s=s+c;
}
cout<<"s= "<<s;
}
-
Тестирование программы.
Вывод: Выполнив данную лабораторную работу мы научились составлять программы используя циклические алгоритмы.