第三周作业

 实验作业

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.一般出现的问题是有时候语句缺少";'。其他的基本上没什么问题。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值