:
#include "locale.h"
setlocale (LC_ALL, "Russian")
: (a), (b), (d) (N). , .
data.xls, . , . .
, : 1 ; 2 sin(mx). switch(f), f .
n.
.
, j 0 N. h - h=(a+b)/(int (pow(2.0,j))*d). pow , , , . , i 0 (int (pow(2.0,j))*d). , double. x= a+i*h. i=0, , t=1, t=2. y=t*(h/2)*1/pow(x,n). , .. , s[j]=s[j]+y, .. . coa=abs(s[j]-s[j-1])/s[j-1]). abs . , j>0.
, . , y=t*(h/3)*1/pow(x,n) , t=2, t=4, . .
sin(mx) m. y=t*(h/2)*sin(m*x)y=t*(h/3)*sin(m*x), . , .
.
PCc IntelCore 2 DuoT5250 1.8 , 1 Windows 7 Ultimate.
lap.exe.
|
|
. Enter. 5.2.6.
// lap.cpp: .
//
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "math.h"
#include <conio.h>
#include <io.h>
#include <stdlib.h>
#include <iostream>
#include "locale.h"
int _tmain(int argc, _TCHAR* argv[])
{
setlocale (LC_ALL, "Russian"); //
FILE *fp;
int d,f,i,j,t,N;
float a,b,h,n,m,x,y,s[100],coa;
printf(" \n\n");
printf(" a=");
scanf("%f",&a);
printf(" b=");
scanf("%f",&b);
printf(" n=");
scanf("%d",&d);
printf(" N=");
scanf("%d",&N);
//
while((fp=fopen("data.xls","w"))==NULL)
{
puts("! !\n :\n");
}
h=(b-a)/d;
printf("\n h=%.5f\n",h);
printf("\n :\n");
printf("1) f(x)=1/x^n\n");
printf("2) f(x)=sin(m*x)\n");
scanf("%d",&f);
if (f<1 || f>2)
{
printf("! !\n");
scanf("%d",&f);
}
switch(f)
{
case 1:
printf(" n=");
scanf("%f",&n);
printf("\n :\n");
for(j=0;j<=N;j++)
{
h=(b-a)/(int (pow(2.0,j))*d);
s[j]=0;
for(i=0;i<=(int (pow(2.0,j))*d);i++)
{
x=a+i*h;
if(i==0)
t=1;
else
t=2;
y=t*(h/2)*1/pow(x,n);
s[j]=s[j]+y;
}
if (j>0)
{
coa=abs((s[j]-s[j-1])/s[j-1]);
printf(" %.7f %d\n",coa,j);
fprintf(fp,"%.7f\t",coa);
fprintf(fp,"%d\t\n",j);
}
}
printf(" S= %.7f\n",s[1]);
fprintf(fp,"%.7f\n",s[1]);
printf("\n :\n");
for(j=0;j<=N;j++)
{
h=(b-a)/(int (pow(2.0,j))*d);
s[j]=0;
for(i=0;i<=(int (pow(2.0,j))*d);i++)
{
x=a+i*h;
if(i==0||i==d)
t=1;
else
{
if(i%2==0)
t=2; //
else
t=4; //
}
y=t*(h/3)*1/pow(x,n);
s[j]=s[j]+y;
}
if (j>0)
{
coa=abs((s[j]-s[j-1])/s[j-1]);
printf(" %.7f %d\n",coa,j);
fprintf(fp,"%.7f\t",coa);
fprintf(fp,"%d\t\n",j);
}
}
printf(" S= %.7f\n",s[1]);
fprintf(fp,"%.7f\n",s[1]);
break;
case 2:
printf(" m=");
scanf("%f",&m);
printf("\n :\n");
|
|
for(j=0;j<=N;j++)
{
h=(b-a)/(int (pow(2.0,j))*d);
s[j]=0;
for(i=0;i<=(int (pow(2.0,j))*d);i++)
{
x=a+i*h;
if(i==0)
t=1;
else
t=2;
y=t*(h/2)*sin(m*x);
s[j]=s[j]+y;
}
if (j>0)
{
coa=abs((s[j]-s[j-1])/s[j-1]);
printf(" %.7f %d\n",coa,j);
fprintf(fp,"%.7f\t",coa);
fprintf(fp,"%d\t\n",j);
}
}
printf(" S= %.7f\n",s[1]);
fprintf(fp,"%.7f\n",s[1]);
printf("\n :\n");
for(j=0;j<=N;j++)
{
h=(b-a)/(int (pow(2.0,j))*d);
s[j]=0;
for(i=0;i<=(int (pow(2.0,j))*d);i++)
{
x=a+i*h;
if(i==0||i==d)
t=1;
else
{
if(i%2==0)
t=2; //
else
t=4; //
}
y=t*(h/3)*sin(m*x);
s[j]=s[j]+y;
}
if (j>0)
{
coa=abs((s[j]-s[j-1])/s[j-1]);
printf(" %.7f %d\n",coa,j);
fprintf(fp,"%.7f\t",coa);
fprintf(fp,"%d\t\n",j);
}
}
printf(" S= %.7f\n",s[1]);
fprintf(fp,"%.7f\n",s[1]);
break;
}
//
fclose (fp);
printf("\n ...\n");
_getch();
}