实验作业
1.输入课本各个例题,调试运行程序,并分析程序,将每一个程序改写2到3个版本,自己分析程序结果,然后再调试运行,核对分析结果的对错。
2.编写程序输入一个三角形的三条边,计算其面积和周长;
3.编写程序计算并输出课本本章习题3表达式的值并分析结果。
4.编写一个程序,输入一个一元二次方程的三个系数,并计算其方程的解,然后输出。
5.编写程序,自己确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果,请注释你的加密算法。
6.在一个自动控制设备中,控制字位数16位,控制设备产生机械动作(如削,压等)的是指令字的低8位,其中保护强制停机动作的控制命令是低8位是全为0,控制报警声音是指令的高第1位,0为报警,1为不报警。请编写程序,在紧急状况启动时,向控制器输入控制指令。
7.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。
习题2.1 布尔类型的举例:
/****************************************
** 功能:布尔类型使用实例 **
****************************************/
#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;
}
习题2.1 赋值表达式语句的举例
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d;
a=4;
b=a;
a=5;
c=d=6;
c*=a;
d%=a+b;
cout<<"a="<<a<<endl
<<"b="<<b<<endl
<<"c="<<c<<endl
<<"d="<<d<<endl;
return 0;
}
习题2.3 数据溢出举例
#include<iostream>
using namespace std;
int main()
{
short i,j,m,n;
i=1000;
j=1000;
m=i+j;
n=i*j;
cout<<"m="<<m<<endl;
cout<<"n="<<n<<endl;
return 0;
}
习题2.4 ++运算符使用举例
#include<iostream>
using namespace std;
int main()
{
int i=6,j,k;
j=++i;
k=i++;
++i=1;
cout<<"i="<<i<<endl;
cout<<"j="<<j<<endl;
cout<<"k="<<k<<endl;
return 0;
}
习题2.5
#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;
}
习题2.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;
}
1.输入三角形的三条边长,计算出三角形的周长和面积,利用海伦公式可计算三角形的面积
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
float a,b,c;
cout<<"请输入三角形边长a:\t";
cout<<"请输入三角形边长b:\t";
cout<<"请输入三角形边长c:\t";
cin>>a>>b>>c;
while(a+b<=c||a+c<=b||b+c<=a)
{
cout<<"输入错误,请重新输入:";
cout<<"请输入三角形边长a:\t";
cout<<"请输入三角形边长b:\t";
cout<<"请输入三角形边长c:\t";
cin>>a>>b>>c;
}
float s,l,p,k;
k=a+b+c;
p=k/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
l=a+b+c;
cout<<"三角形周长:"<<l<<endl;
cout<<"三角形面积:"<<s<<endl;
return 0;
}
2.求下列表达式的值
(1)小题的值为13.7
#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;
return 0;
}
(2)的值为7
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
float x=2.5,y=4.7;
int a=7;
x+a%3*(int(x+y)%2)/4;
cout<<a<<endl;
return 0;
}
3.解一元二次方程要用到很多条件公式,所以在编程过程中就要插入IF语句
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
double a,b,c,g,x1,x2;
cout<<"请输入函数变量a:";
cout<<"请输入函数变量b:";
cout<<"请输入函数变量c:";
cin>>a>>b>>c;
g=sqrt(b*b-4*a*c);
if(g>=0)
{
x1=(-b+g)/(2*a);
x2=(-b-g)/(2*a);
cout<<"方程的两个解为x1="<<x1<<",x2="<<x2<<endl;
}
else
cout<<"此方程无解!"<<endl;
return 0;
}
5,6题暂且不会,迟点补回!!!!!!!!
7.尽量多敲代码,调试,找错误,执行这些才是硬道理!!!!