Лабораторная работа №3
Студенты Кохно Константин Сергеевич
Группа РМС7-71
Дата выполнения 16.04.2008
Преподаватель Усольцев Н.В.
Отметка о защите
Задание 2
Разработать программу для расчета сумм и произведения
; ; .
Код программы:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
// Описание переменных
double S1,S2,P,k,n,id,fakt,x;
// Ввод данных
clrscr();
cout<<"n = ";
cin>>n;
cout<<endl;
cout<<"x = ";
cin>>x;
cout<<endl;
// Сумма 1
S1=0;
for (k=1; k<=n; k++)
S1=S1+1/(k*k);
// Сумма 2
S2=0;
for (k=1; k<=n; k++)
{
//Вычисляем факториал
fakt=1.0;
for (id=1; id<=k; id++)
fakt=fakt*id;
S2=S2+(pow(x,k))/fakt;
}
// Суммма 3
P=0;
if (n>0)
P=(1.0+1.0/2.0);
for (k=2; k<=n; k++)
P=P*(1.0+1.0/(pow(2,k)));
// Выводим ответ
cout<<"Ответ: S1="<<S1<<endl;
cout<<" S2="<<S2<<endl;
cout<<" P="<<S3<<endl;
getch();
}
На входе:
Double n;
На выходе: double S1,S2,P;
Примеры работы программы:
1)
n = 2
x = 2
Ответ: S1=1.25
S2=4
P=1.875
2)
n = 0
x = 1000
Ответ: S1=0
S2=0
P=0
3)
n = 5
x = 1
Ответ: S1=1.46361
S2=1.71667
P=2.31125
Вывод: используя калькулятор и пошаговое исполнение легко убедиться что программа работает верно
Задание 3
Разработать программу для вывода на дисплей всех простых чисел, находящихся в интервале от n до m и нахождения их суммы.
Задание 4
Разработать программу для расчета по заданному целому n > 0 суммы
, где
Модифицировать программу для расчета зависимости S от значения верхнего предела суммы, изменяющегося от до .
Код программы:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
// Описание переменных
double n,i,xi,yi,S;
// Ввод переменных
clrscr();
cout<<"n = ";
cin>>n;
cout<<endl;
//
S=0;
xi=1;
yi=1;
for(i=1; i<=n;i++)
{
S=S+(xi/(1.0+yi));
yi=xi+yi;
xi=0.3*xi;
}
cout<<"‘㬬 = "<<S<<endl;
getch();
}
На входе:
double n;
На выходе
double S;
Примеры работы программы:
1)
n = 2
Сумма = 0.6
2)
n = 0
Сумма = 0
Задание 4-модификация
Код программы:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
// Îïèñàíèå ïåðåìåííûõ
double n,n1,n2,i,xi,yi,S;
// Ââîä ïåðåìåííûõ
clrscr();
cout<<"n1 = ";
cin>>n1;
cout<<"n2 = ";
cin>>n2;
cout<<endl;
//
for (n1=n1; n1<=n2; n1++)
{
S=0;
n=n1;
xi=1;
yi=1;
for(i=1; i<=n;i++)
{
S=S+(xi/(1.0+yi));
yi=xi+yi;
xi=0.3*xi;
}
cout<<"S"<<n1<<" = "<<S<<endl;
}
getch();
}
На входе:
double n1,n2;
где n – используется для просчёта текущей суммы
На выходе:
double S;
причём выводится (n2-n1+1) раз
Примеры работы программы:
1)
n1 = 3
n2 = 5
S3 = 0.627273
S4 = 0.635237
S5 = 0.637608
2)
n1 = 1
n2 = 10
S1 = 0.5
S2 = 0.6
S3 = 0.627273
S4 = 0.635237
S5 = 0.637608
S6 = 0.638317
S7 = 0.63853
S8 = 0.638594
S9 = 0.638613
S10 = 0.638619
Вывод: Программа наглядно показывает зависимость суммы от пределов интегрирования.
Задание 5
Разработать программу для расчета бесконечной суммы . Суммирование следует прекращать, когда очередное слагаемое по абсолютной величине станет меньше заданной погрешности .
Код программы:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
// Îïèñàíèå ïåðåìåííûõ
double k,id,numb;
float S,s,ms,fakt,eps;
// Ââîä ïåðåìåííûõ
clrscr();
cout<<"e = ";
cin>>eps;
cout<<endl;
// Öèêë
k=1;
S=0;
s=0;
ms=eps+1;
numb=1;
while (1==1)
{
fakt=1;
for (id=1; id<=k; id++)
fakt=fakt*id;
s=pow(-2.0,k)/fakt;
ms=sqrt(s*s);
if (ms<eps) break;
S=S+s;
++k;
++numb;
}
// Âûâîä ðåçóëüòàòà
cout<<"The number of repetitions = "<<numb<<endl;
cout<<"s = "<<s<<endl;
cout<<"S = "<<S;
getch();
}
На входе:
float eps;
На выходе:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.