第13周报告3:
实验目的:学会使用自定义函数解决实际问题,学会函数的嵌套调用
实验内容:编制一个三角函数表
实验目的:学会使用自定义函数解决实际问题,学会函数的嵌套调用
实验内容:编制一个三角函数表
/* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 三角函数值转换表
* 作 者: 石丽君
* 完成日期: 2011 年 11 月 19 日
* 版 本号:vc.0
* 对任务及求解方法的描述部分
* 输入描述:无
* 问题描述:编制一个三角函数表,要求在main()函数中调用show_sin_table(min_angle, max_angle),显示角度值为min_angle到max_angle之间的所有角度(间隔为1度)的正弦值。要求不能用数学库函数,将任务2中的mysin函数拷贝到这个程序中,用于计算sin值。例如show_sin_table(0, 90)可以显示出所有0到90度的正弦值。为取得更好的效果,可以考虑像英尺到米的转换一样,以速查表格的形式给出结果。
* 程序输出:三角函数表
* 问题分析:……
* 算法设计:……
*/
#include <iostream>
#include <iomanip>
using namespace std;
const double pi=3.1415926;
double show_sin_table();
double mysin(double x);
int main( )
{
cout<<" "<<endl;
cout<<" 三角函数表"<<endl;
cout<<" *********************** "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
show_sin_table();
cout<<" "<<endl;
cout<<" ";
return 0;
}
//下面定义show_sin_table()函数
double show_sin_table()
{
int j=0;
cout<<" ";
while(j<=9)
{
cout<<setw(6)<<j;
j++;
}
cout<<endl;
double y;
int i=0,w;
while(i<=8)
{
cout<<" "<<i;
j=0;
while(j<=9)
{
w=10*i+j;
y=mysin(w*pi/180.0);
cout<<setiosflags (ios::fixed) <<setprecision(3);
cout<<setw(6)<<y;
j++;
}
cout<<endl;
i++;
}
j=0;
cout<<" "<< "9";
w=10*i+j;
y=mysin(w*pi/180.0);
cout<<setiosflags (ios::fixed) <<setprecision(3);
cout<<setw(6)<<y;
return 0;
}
//下面定义mysin函数
double mysin(double x)
{
double sum=0,a=0,k=0,w=1;
int m=2,n=3,sign=1;
a=x;
k=a/w;
do
{
sum=sum+k*sign;
w=w*m*n;
a=a*x*x;
m=m+2;
n=n+2;
k=a/w;
sign=-sign;
}while(k>=0.00001);
return sum;
}
经验积累:
1.定义pi时少了个double结果就算错了,应为coust double pi.
2.
3.
上机感言:1:C++真的很细,小小一个细节错了结果就不对。