一、实验目的
(1)掌握函数的定义和调用方法。
(2)练习重载函数的使用。
(3)练习使用系统函数。
(4)学习使用Visual Studio 2019以及Eclispe的Debug调试功能,使用Step Into追踪到函数内部。
二、实验任务
(1)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。
(2)编写一个重载函数maxl可分别求取两个整数、三个整数、两个双精度数、三个双精度数的最大值。
(3)使用系统函数pow(x,y)计算x^y的值,注意包含头文件math.h。
(4)使用递归函数的方法编写函数求Fibonacci级数,观察递归调用的过程。
三、实验步骤
(1)编写函数float Convert(float TempFer),参数和返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。程序名:lab3_1.cpp。
(2)分别编写4个同名函数maxl,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp。
(3)在main()函数中提示输入两个整数x、y,使用cin语句得到x、v的值,调用pow(xy)函数计算x的y次幂的结果,再显示出来。程序名:lab3_4.cpp。
(4)编写递归函数intfib(intn),在主程序中输入n的值,调用fib函数计算Fibonacci级数。公式为fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1;使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名:lab3_5.cpp。
(5)使用Debug中的StepInto追踪到函数内部,观察函数的调用过程。
代码
//lab3_1.cpp
#include <iostream>
using namespace std;
float Convert(float TempFer)
{
float C;
C = (TempFer - 32) * 5.0 / 9.0;
return float(C);
}
void main()
{
float x;
cout << "请输入华氏温度:" << endl;
cin >> x;
cout << "摄氏温度为:" << Convert(x) << endl;
}
//lab3_2.cpp
#include<iostream>
#include<math.h>
using namespace std;
//求两个整数最大值
int Max1(int a,int b){
if(a>b){
return a;
}else{
return b;
}
}
//求三个整数最大值
int Max1(int a,int b,int c)
{
int temp=a;
if(temp<b)
{
temp=b;
}
if(temp<c)
{
temp=c;
}
return temp;
}
//求两个双精度整数最大值
double Max1(double a,double b){
if(a>b)
{
return a;
}
else
{
return b;
}
}
//求三个双精度整数最大值
double Max1(double a,double b,double c){
double temp=a;
if(temp<b)
{
temp=b;
}
if(temp<c)
{
temp=c;
}
return temp;
}
int main()
{
int u,v,w; double a,b,c;
//2.1求两个整数最大值
cout<<"求两个整数最大值,请分别输入数u、数v:"<<endl;
cout<<"请输入数 u:";
cin>>u;
cout<<"请输入数 v:";
cin>>v;
cout<<u<<"和"<<v<<"中最大值为:"<<Max1(u,v)<<endl<<endl;
//2.2求三个整数最大值
cout<<"求三个整数最大值,请分别输入数u、数v、数w:"<<endl;
cout<<"请输入数 u:";
cin>>u;
cout<<"请输入数 v:";
cin>>v;
cout<<"请输入数 w:";
cin>>w;
cout<<u<<"和"<<v<<"和"<<w<<"中最大值为:"<<Max1(u,v,w)<<endl<<endl;
//2.3求两个双精度整数最大值
cout<<"求两个双精度整数最大值,请分别输入数a、数b:"<<endl;
cout<<"请输入数 a:";
cin>>a;
cout<<"请输入数 b:";
cin>>b;
cout<<a<<"和"<<b<<"中最大值为:"<<Max1(a,b)<<endl<<endl;
//2.4求三个双精度整数最大值
cout<<"求三个双精度整数最大值,请分别输入数a、数b、数c:"<<endl;
cout<<"请输入数 a:";
cin>>a;
cout<<"请输入数 b:";
cin>>b;
cout<<"请输入数 c:";
cin>>c;
cout<<a<<"和"<<b<<"和"<<c<<"中最大值为:"<<Max1(a,b,c)<<endl<<endl;
}
//lab3_3.cpp
#include<iostream>
#inlude<math.h>
using namespace std.
void main()
{
int x,y;
cout<<"请输入x:"<<endl;
cin>>x;
cout<<"请输入y:"<<endl;
cin>>y;
cout<<"x^y="<<pow(x,y)<<endl;
system("pause");
}
//lab3_4
#include<iostream>
using namespace std.
int fib(int n);
int main()
{
int n,answer;
cout<<"Enter number:";
cin>>n;
cout<<"\n\n";
answer=fib(n);
cout<<answer<<"is the"<<n<<"the Fibonacci number\n";
return 0;
}
int fib(int n)
{
cout<<"Processing fib("<<n<<")...";
if(n<3)
{
cout<<"Return 1!\n";
return 1;
}
else
{
cout<<"Call fib("<<n-2<<")and fib("<<n-1<<").\n";
return (fib(n-2)+fib(n-1));
}
}