码迷,mamicode.com
首页 > 其他好文 > 详细

南京信息工程大学实验报告(二)

时间:2018-03-25 20:45:11      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:分享图片   数学   参数传递   延伸   主函数   end   else   输出   har   

四、实验结论
1.验证性实验部分
结合你自己的理解,以你自己的语言,提炼总结你对以下几点的认识和理解(可以借助图、表、手绘图画等一切你认为可以更清晰表达自己的方式):
① 函数声明和函数定义各自的作用,二者的区别;
函数声明:告明用到哪一个函数。
函数定义:函数的类型和具体内容。

② 什么是形参?什么是实参?函数参数和返回值在函数中起到什么作用?
形参:函数被调用时用于接收实参值,用到的时候才分配内存,用完释放内存。离开函数体不能使用
实参:有确定的值和分配的内存,在主函数中,被调函数中不能使用。

③ 函数参数传递过程中,值传递和引用传递区别是什么?
值传递:用实参的值初始化形参,参数单项传递,之后形参的改变不会影响实参的值。
引用传递:对形参的改变对主函数中的实参有效。

  1. 编程实验部分
    (1)习题2-28
    用switch

include

using namespace std;
int main(){

char a;
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit)"<<endl;
cout<<"Select one:";
cin>>a;
switch(a){
    case ‘A‘:cout<<"数据已增加"<<endl; break;
    case ‘D‘:cout<<"数据已删除"<<endl; break;
    case ‘S‘:cout<<"数据已排序"<<endl; break;
    case ‘Q‘:break;     
} 

return 0;

}

技术分享图片

技术分享图片

技术分享图片

技术分享图片

用if……else break和continue

include

using namespace std;
int main(){
int i;
char a;
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit)"<<endl;
cout<<"Select one:";

for (i=0;;i++){   //之前的错误 for(i=0;i++;)   
                 //i++ 是第三个条件,后面不应该有; 
    cin>>a;
        if (a!=‘Q‘){
        
            if (a==‘A‘){
               cout<<"数据已增加";continue;} 
            if (a==‘D‘){
               cout<<"数据已删除";continue;}
            if (a==‘S‘){
            cout<<"数据已排序";continue;}
        }
        else
            break;
     }
return 0;

}

技术分享图片

(2)习题2-29
①简洁描述「判断一个数为质数」的算法:如有整除,终止内部循环,外部进行下一次循环判断下一个数,如果内部循环中间没有终止说明只有1和本身可以整除,说明是质数,这时候j与i相等,那么输出这个数。
②源代码及运行结果截图
用for

include

using namespace std;
int main(){
int i,j;

for (i=2;i<101;i++)
{
    for(j=2;j<i;j++){
        if (i%j==0){
            break;
        }
    
    }
    
    if (j==i)
       cout<<i<<" ";        
}
return 0;

}

技术分享图片

用while

include

using namespace std;
int main(){
int i=2,j=2;

while (i<101)
{
    while(j<i)
    {
        if (i%j==0){
            break;
        }
       j++;
    }
    
    if (j==i){
    
       cout<<i<<" ";}
    i++;
    j=2;        
}
return 0;

}

技术分享图片

用do……while

include

using namespace std;
int main(){
int i=2,j=2;
do{
do{
if(i%j==0)
break;

        j++;
    }while(j<i);
    
    if (j==i)
           cout<<i<<" ";
    i++;
    j=2;
}while(i<101);      
        

return 0;

}

技术分享图片

(3)习题2-32
源代码及运行结果截图
用do……while

include

include

using namespace std;
int main(){
unsigned seed;
short b;
cin>>seed;
srand(seed);
int a=rand()%100;
do {
cin>>b;
if (a>b)
cout<<"小了";
if (a<b)
cout<<"大了";
}while(a!=b);
cout<<"随机数为:"<<a;
return 0;

}

技术分享图片

用while

include

include

using namespace std;
int main(){
unsigned seed;
short b;
cin>>seed;
srand(seed);
int a=rand()%100;
while(1) {
cin>>b;
if (a!=b){

        if (a>b)
           cout<<"小了";  
        else if (a<b)
           cout<<"大了";
        }
    else  {
     cout<<"随机数为:"<<a; break;
    }
}    
  
return 0;

}

技术分享图片

(4)习题2-34
①简洁描述你的算法思路
②源代码及运行结果截图

include

include

using namespace std;
int comm(int n,int k){//递归
if (k>n)
return 0;
else if (n==k||k==0)
return 1;
else
return comm(n-1,k)+comm(n-1,k-1);//数学公式
}
int main(){
int n,k;
cout<<"输入小球颜色种类数和每次摸不同颜色球的个数:";
cin>>n>>k;
cout<<comm(n,k);
return 0;
}

技术分享图片

五、实验总结与体会
结合你在本次实验中的收获、感受等,也可以是自己延伸自学及编程实践中的新收获、发现、思考,等等。
循环的使用条件掌握的不好,对循环内部参数的变化掌握的也不是很清楚。
1.For循环中三个条件,前两个条件后要加“;”
2.而且一般第一个条件是将i的初值设定好了,每次循环都是这样,但是在while中一开始没有意识到,每一次循环后i的值变了,导致之后的每次循环初始值变了。
3.break结束循环,continue结束本次循环,进行下一次。break循环和switch都可以用,continue只能在循环中使用。

If条件
1.每一个else都要和一个明确的if相对应,有时候加个{}可以很好的划分。

枚举

  1. 枚举的每一个元素都可以赋值,第一个是0,第二个是1……并且可以进行运算。

随机数

  1. rand随机数需要一个种子seed,不然每次seed都默认为1,随机数都会一样。
    问题:随机数的出现是不是在rand函数的数列中与seed的值对应位置的数?
    递归
    1.不会数学公式写递归真的很要命!

南京信息工程大学实验报告(二)

标签:分享图片   数学   参数传递   延伸   主函数   end   else   输出   har   

原文地址:https://www.cnblogs.com/zxy666/p/8646291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!