实验六模块化设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六模块化设计

实验目的

(1)体验结构化程序设计方法要点,理解模块化设计的思想,划分子模块的原则

(2)掌握is函数的定义和调用

实验内容

任务一改错求PI值error02_02.cpp

打开程序文件error02_02.cpp改正程序中的错误。根据下式求PI值,直到某一项小于10-6 PI/2=1+1!/3 +2!/(3*5)+…… +n!/(3*5*…*(2n-1))

正确运行结果

PI=3.14159

#include

#include

double fact(int n);

double multi(int n);

int main(void)

{

int i;

double sum, item, eps;

eps =1e-6;

sum = 1.0;

item = 1.0;

for(i = 1;item>=1e-6;i++)

{

item = fact(i) / multi(2*i + 1);

sum = sum + item;

} /* 调试时设置断点*/

printf("PI=%0.5lf\n", sum * 2);

system("pause");

return 0;

}

double fact(int n)

{

int i;

double res;

res = 1;

for(i = 1; i <= n; i++)

{

res = res * i;

}

return res; /* 调试时设置断点*/

}

double multi(int n)

{

int i;

double res;

res = 1;

for(i = 3; i <= n; i = i+2)

{

res = res * i;

}

return res; /* 调试时设置断点*/

}

任务二改错输出逆序数error02_03.cpp

打开程序文件error02_03.cpp改正程序中的错误。输入2个整数,分别将其逆向输出,要求定义并调用函数fun(n),它的功能是返回n的逆向值

正确运行结果

123 -910

123的逆向是321

-910的逆向是-19

#include

#include

int fun(int n);

int main(void )

{

int m1,m2;

scanf("%d%d", &m1, &m2);

printf("%d的逆向是%d\t", m1, fun(m1));

printf("%d的逆向是%d\n", m2, fun(m2));

system("pause");

return 0;

}

int fun(int n)

{

int m,y;

y = 0;

if(n<0)

{

m =-n;

}

else

{

m=n;

}

while(m!=0)

{

y = y* 10 + m%10;

m =(m-m%10)/10;

}

if(n>=0)

return y;

else

return -y;

}

任务三改写输出m-n之间所有的素数(ex6_1.cpp)

改写(sample02_07.cpp )保存为ex6_1.cpp:输出m-n之间所有的素数,调用int isprime(int n)函数,每行输出10个素数。

1.源程序清单:ex6_1.cpp

#include

#include

#include

int isprime(int n);

int main(void)

{

int count, a, b,m,n;

printf("输入m=");

scanf("%d",&m);

printf("输入n=");

scanf("%d",&n);

count = 0; /* count记录素数的个数,用于控制输出格式*/ for(a =m; a <=n; a++)

{

b=isprime(a) ;

if(b==1) /* 如果是素数*/

{

printf("%6d", a); /* 输出*/

count++; /* 累加已经输出的素数个数*/

if(count % 10 == 0) /* 如果是10的倍数换行*/

printf("\n");

}

}

printf("\n");

system("pause");

return 0;

}

int isprime(int n)

{

int i;

for(i =2; i <= n-1; i++)

if(n % i == 0) break;

if (i

else {return 1;}

}

2。实现算法(自然语言描述)

1.输入m,n

2.调用函数判断a是否为素数

若a是素数:输出a,累加已经输出的素数个数若a不是素数:不做处理

3.每输出10个素数换行

相关文档
最新文档