第三周作业

n      实验作业

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

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

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

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

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

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

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


1例题分析

2.1

/*******************************
**   功能:布尔类型使用举例   **
*******************************/
#include<iostream>                  //编译预处理命令

#include<iomanip>                   //使用控制符 boolalpha 需使用此头文件
using namespace std;                 //使用标准名空间 std

int main ()                         //主函数
{
	bool flag =true;                //定义布尔型变量 flag,并初始化为ture
	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;
}

2.2

/***********************************
**   功能:赋值表达式语句的使用   **
***********************************/
#include<iostream>
using namespace std;

int main()
{
	int a,b,c,d;
	a=4;
	b=a;
	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,temp;
    j=++i;                   //先把变量i的值自增,i的值变为7,之后把i的值7赋给变量j
	k=i++;                   //先把变量i的值7赋给变量k,然后i的值自增,i的值变为8
	++i=1;                   //++1可以作为左值,执行完该语句后变量i的值为1
	cout<<"i="<<i<<endl
	    <<"j="<<j<<endl
		<<"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 rusult is:"<<ch<<endl;

	return 0;

}
2.6

#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;
	cout<<"x="<<x<<endl;
    cout<<"y="<<y<<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;

}

2三角形的面积和周长

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	float a,b,c,d;
	double s,C;

one:                                            
    cout<<"输入三角形的三条边"<<endl;          
    cin>>a>>b>>c;  
  
    if(a+c>b&&a+b>c&&c+b>a)                   //判断输入的边是否构成三角形  
    {  
        d=(a+b+c)/2;                
        s=sqrt(d*(d-a)*(d-b)*(d-c));          //计算面积            
        C=a+b+c;                              //计算周长  
        cout<<"该三角形的面积为"<<s<<endl     //输出结果  
            <<"该三角形的周长为"<<C<<endl;  
        goto one;                             //返回one  
    }  
    else                                 
    {  
        cout<<"不能构成三角形,计算不出结果"<<endl;  
        goto one;  
    }  
  
    return 0;
	
}


3习题3

1

#include<iostream> 
#include<math.h>
using namespace std;
int main()
{
	int e=1,f=4,g=2;
	float m=10.5,n=4.0;
    double k;
	k=(e+f)/g+sqrt((double)n)*1.2/g+m;  //sqrt是一个开平方数学函数
	cout<<"k="<<k<<endl;
	return 0;

}


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

}


4求一元二次方程的解

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	float a,b,c,d,x1,x2;
	cout<<"输入一元二次方程的系数"<<endl;
	cin>>a>>b>>c;
	d=b*b-4*a*c;
	if(d>0)
    x1=((-b)+sqrt(d))/(2*a);
	x2=((-b)-sqrt(d))/(2*a);
	cout<<"x1="<<x1<<endl;
	cout<<"x2="<<x2<<endl;
	if(d<0)
	cout<<"原方程无解"<<endl;

	return 0;

}


 


5、6尚且不懂

7

(1)error C2065: 'sqrt' : undeclared identifier

执行 cl.exe 时出错.在最前面加#include<math.h>就行了


(2)error C2143: syntax error : missing ';' before '}'
执行 cl.exe 时出错.     忘了在}前加;


(3)error C2873: 'nanespace' : symbol cannot be used in a using-declaration 写错了名字空间的英文







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你好!改善深层神经网络的方法有很多,以下是一些常见的方法: 1. 使用更好的激活函数:传统的激活函数如Sigmoid、tanh等可能存在梯度消失或爆炸的问题。可以尝试使用ReLU、Leaky ReLU、ELU等激活函数,以减轻这些问题。 2. 使用批标准化(Batch Normalization):批标准化对网络的输入进行标准化,有助于加快网络的训练速度,并且可以缓解梯度问题,使得更深层的网络也能够训练得更好。 3. 使用残差连接(Residual Connections):残差连接可以帮助信息在网络中更好地流动,从而减轻梯度消失的问题。通过将某些层的输出与输入相加,可以使得网络更易于训练。 4. 使用更好的优化算法:传统的梯度下降算法如随机梯度下降(SGD)可能存在训练速度慢、易陷入局部最优等问题。可以尝试使用更高级的优化算法如Adam、RMSprop等,以加快模型的收敛速度。 5. 添加正则化:过拟合是深层神经网络常见的问题之一。可以通过添加正则化项如L1正则化、L2正则化等来限制模型的复杂度,防止过拟合的发生。 6. 数据增强:通过对训练数据进行一些随机的变换,如平移、旋转、缩放等,可以增加模型的泛化能力,防止过拟合。 这些方法只是改善深层神经网络的一部分,具体的选择和调整需要根据具体问题和数据集来进行。希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值