第九周实验报告(四)之循环语句的应用

来源:互联网 发布:python os.environ 编辑:程序博客网 时间:2024/04/29 23:55

报告1:

在老师的帮助下,完成了F,又将F改动了一下,完成了G.
实验目的:学会循环语句的使用
实验内容:编程序,求解1/2-2/3+3/4-…+19/20(或1/3-3/5+5/7-7/9…+19/21)

// 以下是我编制的程序
#include <iostream>
using namespace std;
int main( )
{

 int i,sing=1,n=20; //sign用于控制正负转换
 double d,k;//注意结果和要累加的值都是浮点数
 i=1,k=0;
 while (i<=n-1)
 {
  d=double(i)/(i+2);//这儿做类型转换
  k=k+sign*d;
  sign=sign*(-1);//一次正一次负
  i++;
 }
 cout<<"k="<<k<<endl;
 return 0;
}

 运行结果:



经验积累:
1.在做另一个程序时,要先把前一个程序关掉

2.当计算时,可以设置一个量sign,让它*(-1),然后就可以一正一负的循环了

3.定义int型后,可以在下面定义一个double型,后边再设置一个类型转换,就可以把i转换成int型了

上机感言:本来想用i/i+1乘以-1的(n+1)次方的,还是老师的方法好,定义一个sign,用它乘以(-1),就可以一正一负了,还有,类型转换还是不太会用啊.......得多看看书了....
报告2:
实验目的:学会用循环结构解决实际问题
实验内容:划算的交易?

// 以下是我编制的程序
#include <iostream>
using namespace std;
int main()
{
 int i,k,sum,n=30;
 double j;
 i=1,j=0.01,sum=0;//sum的值是富翁给陌生人钱的总和
 while(i<=n)
 {
  sum=(double)sum+j;
  j=j*2;//此处j乘以2用于计算2的n次方
  i=i+1;
 }
 cout<<"富翁给陌生人的钱是"<<sum<<"元";
 cout<<endl;
 k=100000*n;
 cout<<"陌生人给富翁的钱是"<<k<<"元";
 cout<<endl;
 if(sum>k)
 cout<<"对百万富翁不合算";
 elsecout<<"对百万富翁合算";
 cout<<endl;
  return 0;
}

运行结果:


实验积累:
1.此程序可以定义j,用它乘以2来达到计算2的n次方的目的,这样每次进入函数,只运行一次,提高了效率,而如果用pow函数,每进一次函数,都得计算2*2*2*2*.......*2效率就降低了...
2.在定义数据类型的时候可以定义多个,再用强制类型转换运算符将某个类型转换如 sum=(double)sum+j;将整型定义成浮点型..

上机感言:

 经过不断的修改,终于把这个程序写了出来,各种错误,各种修改,太不容易了...当结果运行出来之后,激动啊..可是,当我看到同学写的程序更简单,运行结果更加精确的时候,真的又有一种挫败感..该向老雷同志学习啊!还有王兴峰,太厉害了!我也会加油,写出一个好的程序!说实话,真的喜欢上了编程,喜欢上了C++,虽然总是出错,有时算法设计错了,但我会努力写好的!


 这是老雷的程序

#include <iostream>
using namespace std;
int main( )
{
 doubled=1,i=1,m=30,k=0.01,x=100000,Rich=0,Poor=0;
 while (i<=m)
 {
  Poor=Poor+k;
    k=2*k;
    Rich=Rich+x;
  cout<<"day="<<i<<",穷人给富人:"<<Rich<<",富人给穷人"<<Poor<<endl;
    i=i+1;
      
 }
   cout<<"Poor="<<Poor<<endl;
   cout<<"Rich="<<Rich<<endl;
    return0;
}