/**2011年3月15日
* Hacked by Younger.shen
*http://www.hack2me.com
*younger.x.shen@gmail.com
*/
java 编写余弦函数的曲线
今天中午休息的时候做的小代码,不应该叫做程序吧,其实在c时代已经编写过了,在这里我发现了一点java的小特性和之前的语言的版本不一样的地方,在这里记录一下,完整程序在文末给出,这次是语法高亮的哦。
写这道题目大家都应该知道的,其实利用反余弦函数算出x的值再进行放大之后用嵌套for循环进行输出就可以了,我这里写的是在-PI到PI的区间,当然大家都知道周期函数嘛,想多输出几个循环都是可以的,利用函数的有界性质,设置y于区间中间,反余弦之后得到x的值,之后在利用for循环进行输出的时候用到了一个对称性,这里的62是一个刚好的总宽度的列数,在我的计算机上如果太大就显示成了半个曲线,
之后这里需要注意的一点就是由于函数的曲线总是连续的,这里说的连续不是数学上的连续和导数的连续,而是在看上去是连在一起的,在进行反余弦的时候我一开始用的是int类型的,但是发现失败了,之后double类型的数值才可以计算出比较精确的点的横坐标的值,但是在c语言中这样使用int类型的变量就是可以的,而且由于Math.acos();返回的是双精度型,系统会提示精度会丢失。
代码如下:
- package testcos;
- import java.lang.*;
- import java.util.*;
- public class testcosin{
- public static void main(String[] args)
- {
- double y;
- double x , m;
- for(y=1;y>=-1;y-=0.1)
- {
- x=Math.acos(y)*10;
- for(m=1;m<=x;m++) System.out.print(" ");
- System.out.print("*");
- for(;m<100-x;m++) System.out.print(" ");
- System.out.println("*");
- }
- }
- }
今天上英语课跟晓晓聊了半天,打算以后业余做IOS开发,希望上帝给我这个机会吧,掉下来一台iphone吧。