作业2

本文详细介绍了编程作业的六个部分,包括输入课本例题、三角形计算、公式求解、加密算法实现、自动控制设备编程及程序错误分析。通过实例操作与调试,旨在提升读者的编程技能和逻辑思维能力。

实验作业:

1.输入课本各个例题,调试运行程序,并分析程序,将每一个程序改写2到3个版本,自己分析程序结果,然后再调试运行,核对分析结果的对错。

2.编写程序输入一个三角形的三条边,计算其面积和周长;

3.编写程序计算并输出课本本章习题3表达式的值并分析结果。

4.编写一个程序,输入一个一元二次方程的三个系数,并计算其方程的解,然后输出。

5.编写程序,自己确定一个加密算法,将自己的音标姓名(英文)加密,并输出加密后结果,请注释你的加密算法。

6.在一个自动控制设备中,控制字位数16位,控制设备产生机械动作(如削,压等)的是指令字的低8位,其中保护强制停机动作的控制命令是低8位是全为0,控制报警声音是指令的高第1位,0为报警,1为不报警。请编写程序,在紧急状况启动时,向控制器输入控制指令。

7.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。

(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)
#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;
}
(3)
#include<iostream>
using namespace std;
int main()
{
	int i=6,j,k,temp;
	j=++i;//先对变量i自增,i的值变为7,之后把i的值7赋给变量j
	k=i++;//先把变量i的值7赋给变量k,然后i的值自增,i的值变为8
	++i=1;//++i可以作为左值,执行完该语句后变量i的值为1
	cout<<"i="<<i<<endl
	    <<"j="<<j<<endl
		<<"k="<<k<<endl;

	return 0;
}
(4)
#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;
}
(5)
#include<iostream>
using namespace std;
int main()
{
	char ch='c';//定义字符型变量ch,并进行初始化
	int a,b=13;//定义基本整型变量a和b,并对变量b进行初始化
	float x,y;//定义float型变量x和y
	x=y=2.0;/*变量x和y均赋值为float型的2.0,此处把double类型的2.0自动转换成
	            float型的2.0,编译时会有警告信息*/
	a=ch+5;/*a赋值为104,ch先转为int型几(即取字符c的ASCII值),再参与运算*/
	x=b/2/x;//x赋值为3.0,先做整除运算,然后再转换成double与x运算
	y=b/y/2;/*y赋值为3.25,b和y先转换成double型在做除法,同时2也转换成double型,然后做除法运算*/
	cout<<"a="<<a<<endl
	    <<"b="<<b<<endl
		<<"ch="<<ch<<endl
		<<"x="<<x<<endl
		<<"y="<<y<<endl;
		
	return 0;
}
(6)
#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;
}

(7)
/************************
**功能:布尔类型使用举例**
*************************/
#include<iostream>//编译预处理命令
#include<iomanip>//使用控制符boolalpha需使用此头文件
using namespace std;//使用标准名空间std
int main()//主函数
{
	bool flag=true;//定义布尔型变量flag,并初始化为true
	cout<<flag<<endl;//默认情况下为非bool字母(noboolalpha),输出整型数值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;
}
#include<iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
   while(1)   
      
   {  
      
    double a,b,c,s,m,D;  
    cout<<"输入三角形的三条边:"<<endl;  
    cin>>a>>b>>c;  
    D=a+b+c;  
    m=D/2;   
    s=sqrt(m*(m-a)*(m-b)*(m-c));  
    if(a+b>c)  
        
       cout<<"三角形的面积:"<<s<<endl
	       <<"三角形的周长:"<<D<<endl;  
           
    else  
      cout<<"a,b,c不能构成三角形"<<endl;  
  
      
       
   }  
   return 0;  
}  

(1)
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

#include <iostream>  
#include <cmath>  
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="<<k<<endl; 
	
    return 0;  
  
}
k为13.7

(2)

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

#include <iostream>  
using namespace std;  
int main()  
{  
    float x = 2.5, y = 4.7,z;  
    int a = 7 ;  
    z=x+a%3*(int(x+y)%2)/4;  
    cout << "z= " << z << endl;
	
    return 0;  
}  
z为2.5

#include <iostream>  
#include <cmath>  
using namespace std ;  
int main()  
{
	double a, b, c ,x1,x2,disc,p,q;
	cout<<"请输入方程三个系数a,b,c的值:";
	cin>>a>>b>>c;
	disc=b*b-4*a*c;
	p=-b/(2*a);
	q=sqrt(disc)/(2*a);
	x1=p+q;
	x2=p-q;
	cout<<"方程的根为:"<<x1<<'\t'<<x2<<endl;

	return 0;
}
#include <iostream>    
#include<cstring>
using namespace std ;  
int main()
{
    char s[20];
	cout<<"请输入您需要加密的字符:"<<endl;
	cin.get(s,20);
    cout<<"加密结果为:"<<endl;
	for (int i=strlen(s)-1;i>=0;i--)
    cout<<s[i];
	cout<<endl;

}
只是简单地反向输出加密,别的不会

6不会。。。。

7经常遇到的问题是忘了“;”

还有有时会不自觉的用中文的空格

还有那个一元二次函数似乎考虑不周,没考虑无解和只有一解,参考同学的现补充如下

#include<iostream>    
#include<math.h>    
using namespace std;    
    
int main()    
{    
    double a, b, c ,x1,x2,disc,p,q;
	cout<<"请输入方程三个系数a,b,c的值:";
	cin>>a>>b>>c;
	disc=b*b-4*a*c;
	p=-b/(2*a);
	q=sqrt(disc)/(2*a) ;
	
    if(disc>=0)    
    {        
      if(disc>0)     
      {  
             x1=p+q;
	         x2=p-q;   
             cout<<"一元二次方程的两个实数根是:"<<endl;    
             cout<<"x1= "<<x1<<"\t\t"<<"x2= "<<x2<<endl;    
      }   
    else    
        
         x1=x2=p;    
         cout<<"一元二次方程有且仅有一个实数根:"<<"x1=x2= "<<x1<<endl;    
    }    
    else   
    {        
       cout<<"此方程无实解"<<endl;   
                
    }    
          
      return 0;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值