您的位置:首页 > 其它

第三周作业

2014-03-20 15:45 323 查看
实验作业
1.输入课本各个例题,调试运行程序,并分析程序,将每一个程序改写2到3个版本,自己分析程序结果,然后再调试运行,核对分析结果的对错。
2.编写程序输入一个三角形的三条边,计算其面积和周长;
3.编写程序计算并输出课本本章习题3表达式的值并分析结果。
4.编写一个程序,输入一个一元二次方程的三个系数,并计算其方程的解,然后输出。
5.编写程序,自己确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果,请注释你的加密算法。
6.在一个自动控制设备中,控制字位数16位,控制设备产生机械动作(如削,压等)的是指令字的低8位,其中保护强制停机动作的控制命令是低8位是全为0,控制报警声音是指令的高第1位,0为报警,1为不报警。请编写程序,在紧急状况启动时,向控制器输入控制指令。
7.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。
1.个人觉得第一题,是为了让我们自己能够举一反三,熟悉例题。上传太占页面,所以我只把例题上传,自己私下改写。
1.1为了知道pc的变量所占的内存单元的大小,本来就只有整型变量,以下我再添加几行其他的变量

/*******************************************************
**        功能:显示输出各变量所占的字节数       **
*******************************************************/

#include<iostream>
using namespace std;

int main()
{
cout<<"number of bytes in int is:"<<sizeof(int)<<endl;
cout<<"number of bytes in long int is:"<<sizeof(long)<<endl;
cout<<"number of bytes in short int is:"<<sizeof(short)<<endl;
cout<<"number of bytes in float is:"<<sizeof(float)<<endl;
cout<<"number of bytes in double is:"<<sizeof(double)<<endl;
cout<<"number of bytes in long double is:"<<sizeof(long double)<<endl;
cout<<"number of bytes in char is:"<<sizeof(char)<<endl;

return 0;
}


1.2布尔类型的使用

/****************************************
**       功能:布尔类型使用实例        **
****************************************/

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

int main()                               //主函数
{
bool flag=true;                      //定义布尔型变量flag,并初始化为true
cout<<flag<<endl;                    //默认情况下,为非bool字母,输出整型值1
cout<<boolalpha<<flag<<endl;         //使用输出格式控制符boolalpha,输出布尔型值
cout<<flag + 5<<endl;                //在算术运算中,把布尔数据当作整型数据,输出6
flag = 0;                            //可以给bool类型的变量赋任意类型的值
cout<<"执行语句flag=0;后flag的值为:"<<boolalpha<<flag<<endl;
flag = 0.0;                          //0.0为double类型的数值
cout<<"执行语句flag=0.0;后flag的值为:"<<boolalpha<<flag<<endl;

return 0;
}


1.3赋值表达式语句举例 我再加上了一个e的赋值表达式

#include<iostream>
using namespace std;

int main()
{
int a,b,c,d,e;
a=4;
b=a;
a=5;
c=d=6;
c*=a;
d%=a+b;
e=a*b;
cout<<"a="<<a<<endl
<<"b="<<b<<endl
<<"c="<<c<<endl
<<"d="<<d<<endl
<<"e="<<e<<endl;

return 0;
}


1.4 数据溢出举例

#include<iostream>
using namespace std;

int main()
{
long i,j,m,n;
i=1000;
j=1000;
m=i+j;
n=i*j;
cout<<"m="<<m<<endl;
cout<<"n="<<n<<endl;
return 0;
}


一开始,n定义为短整型,超出了n=i*j的值,所以后来定义为长整型。

1.5++运算符使用举例

#include<iostream>
using namespace std;

int main()
{
int i=6,j,k,temp;
j=++i;
k=i++;
++i=1;
cout<<"i="<<i<<endl;
cout<<"j="<<j<<endl;
cout<<"k="<<k<<endl;

return 0;
}
1.6小写字母转换成大写字母

#include<iostream>
using namespace std;

int main()
{
char ch;
cout<<"please input a character:";
cin>>ch;
ch=ch>='a'&&ch<='z'?ch-'a'+'A':ch;
//上述语句等价于 ch = ch >='a'&&ch<='z'?ch-32:ch;
cout<<"The result is:"<<ch<<endl;

return 0;
}
1.7强制类型转换

#include<iostream>
using namespace std;

int main()
{
int ab,ac;
double b= 3.14;
char c='A';
ab=int(b);
ac=int(c);
cout<<"b="<<b<<endl;
cout<<"ab="<<ab<<endl;
cout<<"c="<<c<<endl;
cout<<"ac="<<ac<<endl;

return 0;
}
2.一开始,我没有想到还要判断三角形是否成立,所以没有写上判断三边长,只是写上计算周长和面积,后来经朋友指点,才恍然大悟,经过修改后,下面是最终的程序.

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

int main()                                            //主函数
{
float a,b,c;                                      //定义单精度形变量a,b,c
cout<<"请输入三角形的边长a:";                     //屏幕输出“请输入三角形的边长a:”
cin>>a;                                           //输入a的长度
cout<<"请输入三角形的边长b:";                     //屏幕输出“请输入三角形的边长b:”
cin>>b;                                           //输入b的长度
cout<<"请输入三角形的边长c:";                     //屏幕输出“请输入三角形的边长c:”
cin>>c;                                           //输入c的长度
while(a+b<=c||a+c<=b||b+c<=a)                     //循环结构程序
{
cout<<"输入错误,请重新输入三角形的边长\n";
cout<<"请输入三角形的边长a:";                 //屏幕输出“请输入三角形的边长a:”
cin>>a;                                       //输入a的长度
cout<<"请输入三角形的边长b:";                 //屏幕输出“请输入三角形的边长b:”
cin>>b;                                       //输入b的长度
cout<<"请输入三角形的边长c:";                 //屏幕输出“请输入三角形的边长c:”
cin>>c;                                       //输入c的长度
}
float y,p,s;                                      //定义单精度形变量y,p,s
y=a+b+c;                                          //y为三角形的周长
p=y/2;                                            //p为三角形周长的二分之一
s=sqrt(p*(p-a)*(p-b)*(p-c));                      //s为三角形的面积
cout<<"三角形的面积为:"<<s<<endl;                //屏幕显示输出三角形的面积大小
cout<<"三角形的周长为:"<<y<<endl;                //屏幕显示输出三角形的周长大小

return 0;
}

3.我把课后习题两道小题合在一起,第一道题的计算结果为13.7,第二道题的计算结果为2.5.

#include<iostream>
#include <math.h>
using namespace std;

int main()
{
int e=1,f=4,g=2;
float m=10.5,n=4.0,k;
k=(e+f)/g+sqrt((double)n)*1.2/g+m;
cout<<k<<endl;

float x=2.5,y=4.7,z;
int a=7;
z=x+a%3*(int(x+y)%2)/4;
cout<<z<<endl;

return 0;
}


4.这是求一元二次方程的解。由于一开始对if语句不是很熟用,对判断方程是否存在实数根,调试了很久,因为用vc编译时,没有显示错误,但是在输入几个系数时,得出的结果总是大跌眼镜。后来经过几次修改,在if语句中再嵌套一个if语句,才得以解决。

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
double x1,x2,i,a,b,c;
cout<<"输入方程 ax2+bx+c=0 中的a:";
cin>>a;
cout<<"输入方程 ax2+bx+c=0 中的b:";
cin>>b;
cout<<"输入方程 ax2+bx+c=0 中的c:";
cin>>c;
i=sqrt(b*b-4*a*c);
if(i>=0)
{
x1=(-b+i)/(2*a);
x2=(-b-i)/(2*a);
cout<<"方程的两个根为:x1="<<x1<<" ,x2="<<x2<<endl;
}
else
cout<<"此方程无解!"<<endl;

return 0;
}








以上为随意输入三个系数得出的解。

5

这个为加密程序

#include<iostream>                                  //编译预处理命令
using namespace std;                                //使用标准名空间 std
/*以下是主函数*/
int main()
{
char a[20],b[20],c[20];                         //定义数组a,数组b和数组c为字符型变量,每组数组有20个数组元素
int i;                                          //定义整型变量i
cout<<"请输入你的姓名拼音进行加密"<<endl;       //显示输出“请输入你的姓名拼音进行加密”
cin.get(a,20);                                  //cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
cout<<"加密完成"<<endl;                         //显示输出“加密完成”
for(i=0;i<20;i++)                               //对所输入的字符串进行加密
{
if(a[i]==0)                                 //当数组a[i]==0时,结束循环
{
break;
}
c[i]=a[i];                                  //把数组a中的每一个元素一一赋值给相对应数组c中的元素
c[i]=c[i]+5;                                //数组c中每个元素加上5后再一一赋值给数组c,也就是说这里就是进行加密
b[i]=c[i];                                  //把数组c中的每一个元素一一赋值给相对应数组b中的元素
cout<<b[i];                                 //输出数组b中的字符
}
cout<<endl;

return 0;
}
这是加密后的结果



这个是解密的程序

#include<iostream>                                  //编译预处理命令
using namespace std;                                //使用标准名空间 std
/*以下是主函数*/
int main()
{
char a[20],b[20],c[20];                         //定义数组a,数组b和数组c为字符型变量,每组数组有20个数组元素
int i;                                          //定义整型变量i
cout<<"请输入你所要解密的字母"<<endl;            //显示输出“请输入你所要解密的字母”
cin.get(a,20);                                  //cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
cout<<"解密完成"<<endl;                         //显示输出“解密完成”
for(i=0;i<20;i++)                               //对所输入的字符串进行加密
{
if(a[i]==0)                                 //当数组a[i]==0时,结束循环
{
break;
}
c[i]=a[i];                                  //把数组a中的每一个元素一一赋值给相对应数组c中的元素
c[i]=c[i]-5;                                //数组c中每个元素减去5后再一一赋值给数组c,也就是说这里就是进行解密
b[i]=c[i];                                  //把数组c中的每一个元素一一赋值给相对应数组b中的元素
cout<<b[i];                                 //输出数组b中的字符
}
cout<<endl;

return 0;
}
解密的结果



6.暂时还没做,等周末再把第6题做好.

7.一般出现的问题是有时候语句缺少";'。其他的基本上没什么问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: