您的位置:首页 > 其它

第三章作业(前)

2014-03-30 18:07 309 查看

作业1

嗯 作业1很多呀 还是慢慢来吧 慢慢来调试慢慢来理解
先由习题来吧 第三章第三题
/**************************************
**   自动化1121 李庆典       **
**************************************/

#include<iostream>                      //预编译处理命令
using namespace std;                    //标准名字空间

int main ()                             //主函数
{
int i,j;
for(i=0;i<5;i++)
{
for(j=i;j<5;j++)
cout<<"*";
cout<<endl;
}
return 0;
}
两个for循环控制的输出结果
结果如下啦



第五题
求自然数e的近似值,要求误差小于10e-6,所以,不管三七二十一我就直接把那个i赋值为n<100,然后去计算了,起初计算还是一直有问题结果为2.5多,然后,反复调试才发现是在a值使用之后忘了把它重新初始化值,然后就可以啦,这一也是运用到了iomanip控制头文件,然后复制完才发现忘了注释,再重新注释呗
/**************************************
**   自动化1121 李庆典       **
**************************************/

#include<iostream>                 //预编译处理命令
#include<iomanip>                  //控制符所需头文件
using namespace std;               //标准名字空间

int main ()                        //主函数
{
cout<<"求自然对数e的值"<<endl;

double e=0,e0=0;
double n=0,a=1,b;
while(n<100)
{
for(b=1;b<=n;b++)
{
a*=b;
}
e0=1/a;
e+=e0;                                //计算每个独立的(1/n!)值
a=1;
n++;
}

cout<<"e 的近似值为:"<<setprecision(8)<<e<<endl;
return 0;
}


结果如下



作业2

百钱买鸡的问题,这个程序也是出现了很多错误,包括下面的几个程序很能反应的我目前学习的一个弱点就是循环判断的条件不熟,而且,在实验调试过程中发现了一点错误就是在最初定义值的时刻没有给予赋值,从而导致程序在运行过程中出现错误,我也相信在今后的学习中我会谨记这点,希望能够有所精进。
/**************************************************
**  鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一    **
**  百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?       **
**  自动化1121     李庆典                       **
**************************************************/

#include <iostream>              //预编译处理命令
using namespace std;            //标准名字空间

int main()
{
int y = 100;
unsigned int a=0,b=0,c=0;
cout<<"可购买的公鸡,母鸡,鸡仔的数量为"<<endl;

for(a=0;a<20;a++)
{
for(b=0;b<33;b++)
{
c=100-a-b;
if(c>=0&&5*a+3*b+(1.0/3)*c==y)
cout<<'\t'<<a<<'\t'<<b<<'\t'<<c<<'\t'<<endl;
}

}

return 0;
}


作业3

输入一个数并求其各位数上的数字,并在最后输出各位数之和,这个是今天下午完成的,突然就开窍了,只把条件判断改了几次,然后一直出错的程序就ok了(冷……),算法的话,好像也是有点复杂,对照的是我自己的想法。
/***************************************************
**  输入一个整数并求其位数以及输出各位数之和    **
**  自动化1121  李庆典                          **
***************************************************/

#include<iostream>         //预编译处理命令
#include<math.h>           //调用数学函数
using namespace std;       //标准名字空间

int main ()                //主函数
{
long a;
int b;
int c=0;
double d=0;
int e=0,f=0;
cout<<"请输入所要求的整数"<<endl;        //输入一个整数
cin>>a;

while(d<=a)                              //判断该整数的位数
{
d=pow(double(10),c);
c++;
}
cout<<"该数为"<<c-1<<"位数"<<endl;       //输出位数

cout<<"该数字各位数上的数字为"<<endl;
c=c-2;                                   //循环计算并输出各位数上的数值
while(c>=0)
{
d=pow(double(10),c);
e=a/d;
cout<<e<<endl;
a=a-e*d;
f+=e;
c--;
}
cout<<endl;

cout<<"这些数字的和为"<<f<<endl<<endl;    //输出和

system("pause");                         //结束程序
}


作业4

求圆柱塔的高度问题,这是我这一章作业最早完成的,运用到了qow函数,用来乘方,还好最后还是判断出来,起初用的是if-else if 结构的,然后不知道为什么错了,后来就直接改成或判断形势了,不过,在上完实验课之后我才发现,原来我一直出错的f-else if 结构是忘了在最初的if后面加个语句(再度发冷),不过也好啦,每次最深刻的东西都是那个自己找出来并改正的,错着错着,以后就不会错了嘛

/******************************************************
**   四个圆柱塔求其任意地点高度     **
**   自动化1121  李庆典             **
******************************************************/

#include<iostream>            //预编译处理命令
#include<math.h>              //调用数学函数
using namespace std;          //标准名字空间

int main()                    //主函数
{
double x,y;
cout<<"请输入任意一点的x轴坐标"<<endl;
cin>>x;
cout<<"请输入该点的y轴坐标"<<endl;
cin>>y;

double c1,c2,c3,c4;
c1= pow(double(x-2),2)+ pow(double(y-2),2);
c2= pow(double(x-2),2)+ pow(double(y+2),2);
c3= pow(double(x+2),2)+ pow(double(y-2),2);
c4= pow(double(x+2),2)+ pow(double(y+2),2);

if(c1<1||c2<1||c3<1||c4<1)
cout<<"该点的高度为10米"<<endl;
else
cout<<"该点的高度为0米"<<endl;

return 0;
}


作业5

作业5,编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),用了for和do-while循环,程序不停地出错,很明显是因为对循环的不熟悉才会导致这个问题,so,这一个作业就觉得很有意义,加深了我对循环的理解,不过,后来调试时即使用了long类型的函数,一旦n值太大还是会发生数据溢出的情况,这点也许没法改变吧

/*******************************************
**  计算n阶乘的乘积之和  **
**  自动化1121 李庆典    **
*******************************************/

#include<iostream>       //预编译处理命令
using namespace std;     //标准名字空间

int main()               //主函数
{
int a,b=1,i=1;
long c=0;
cout<<"请输入n阶乘的n值"<<endl;  //输入n的值
cin>>a;

cout<<"for循环计算结果如下"<<endl;   //for循环计算
for(i=1;i<=a;i++)
{
b*=i;                    //计算阶乘
c+=b;                    //计算阶乘和
}
cout<<a<<"阶乘和S=(1!+2!+……n!)为:"
<<c<<endl;

cout<<"do-while循环计算结果如下"<<endl;	  //do-while循环计算
fflush(stdin);               //清除输入缓存
int d=1,e=1;
long f=0;
do{
e*=d;
f+=e;
d++;
}while(d<=a);

cout<<a<<"阶乘和S=(1!+2!+……n!)为:"
<<f<<endl;

return 0;
}


这周的事比较多,作业也因此写得很慢,慢慢来吧,感觉好像这学期头有的觉悟有的热情有点消退了,自己在慢慢调节一下,争取下周能以比较好的状态去对待所有课程吧







                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: