2022.09.24
Javaプログラミング
三角関数表の作成 その2
0 0.00000 1.00000 0.00000 1 0.01745 0.99985 0.01746 2 0.03490 0.99939 0.03492 3 0.05234 0.99863 0.05241 4 0.06976 0.99756 0.06993 5 0.08716 0.99619 0.08749 6 0.10453 0.99452 0.10510 7 0.12187 0.99255 0.12278 : 88 0.99939 0.03490 28.63625 89 0.99985 0.01745 57.28996 90 1.00000 0.00000 --------
Javaソースコード
TriFuncTable2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021
public class TriFuncTable2 { public static void main( String[] args ) { // 0~90度のsin、cos、tanを出力 for ( int deg = 0; deg <= 90; deg ++ ) { // 角度degをラジアンradに変換 double rad = Math.toRadians( (double)deg ); // 角度とsinとcosを出力 System.out.printf( "%2d%8.5f%8.5f", deg, Math.sin( rad ), Math.cos( rad ) ); // tanを出力 if ( 90 == deg ) System.out.print( " --------" ); else System.out.printf( "%9.5f", Math.tan( rad ) ); // 改行 System.out.println(); } } }
実行結果
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis TriFuncTable2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac TriFuncTable2.java
実行
C:\talavax\javasample>java TriFuncTable2
出力結果
0 0.00000 1.00000 0.00000 1 0.01745 0.99985 0.01746 2 0.03490 0.99939 0.03492 3 0.05234 0.99863 0.05241 4 0.06976 0.99756 0.06993 5 0.08716 0.99619 0.08749 6 0.10453 0.99452 0.10510 7 0.12187 0.99255 0.12278 8 0.13917 0.99027 0.14054 9 0.15643 0.98769 0.15838 10 0.17365 0.98481 0.17633 11 0.19081 0.98163 0.19438 12 0.20791 0.97815 0.21256 13 0.22495 0.97437 0.23087 14 0.24192 0.97030 0.24933 15 0.25882 0.96593 0.26795 16 0.27564 0.96126 0.28675 17 0.29237 0.95630 0.30573 18 0.30902 0.95106 0.32492 19 0.32557 0.94552 0.34433 20 0.34202 0.93969 0.36397 21 0.35837 0.93358 0.38386 22 0.37461 0.92718 0.40403 23 0.39073 0.92050 0.42447 24 0.40674 0.91355 0.44523 25 0.42262 0.90631 0.46631 26 0.43837 0.89879 0.48773 27 0.45399 0.89101 0.50953 28 0.46947 0.88295 0.53171 29 0.48481 0.87462 0.55431 30 0.50000 0.86603 0.57735 31 0.51504 0.85717 0.60086 32 0.52992 0.84805 0.62487 33 0.54464 0.83867 0.64941 34 0.55919 0.82904 0.67451 35 0.57358 0.81915 0.70021 36 0.58779 0.80902 0.72654 37 0.60182 0.79864 0.75355 38 0.61566 0.78801 0.78129 39 0.62932 0.77715 0.80978 40 0.64279 0.76604 0.83910 41 0.65606 0.75471 0.86929 42 0.66913 0.74314 0.90040 43 0.68200 0.73135 0.93252 44 0.69466 0.71934 0.96569 45 0.70711 0.70711 1.00000 46 0.71934 0.69466 1.03553 47 0.73135 0.68200 1.07237 48 0.74314 0.66913 1.11061 49 0.75471 0.65606 1.15037 50 0.76604 0.64279 1.19175 51 0.77715 0.62932 1.23490 52 0.78801 0.61566 1.27994 53 0.79864 0.60182 1.32704 54 0.80902 0.58779 1.37638 55 0.81915 0.57358 1.42815 56 0.82904 0.55919 1.48256 57 0.83867 0.54464 1.53986 58 0.84805 0.52992 1.60033 59 0.85717 0.51504 1.66428 60 0.86603 0.50000 1.73205 61 0.87462 0.48481 1.80405 62 0.88295 0.46947 1.88073 63 0.89101 0.45399 1.96261 64 0.89879 0.43837 2.05030 65 0.90631 0.42262 2.14451 66 0.91355 0.40674 2.24604 67 0.92050 0.39073 2.35585 68 0.92718 0.37461 2.47509 69 0.93358 0.35837 2.60509 70 0.93969 0.34202 2.74748 71 0.94552 0.32557 2.90421 72 0.95106 0.30902 3.07768 73 0.95630 0.29237 3.27085 74 0.96126 0.27564 3.48741 75 0.96593 0.25882 3.73205 76 0.97030 0.24192 4.01078 77 0.97437 0.22495 4.33148 78 0.97815 0.20791 4.70463 79 0.98163 0.19081 5.14455 80 0.98481 0.17365 5.67128 81 0.98769 0.15643 6.31375 82 0.99027 0.13917 7.11537 83 0.99255 0.12187 8.14435 84 0.99452 0.10453 9.51436 85 0.99619 0.08716 11.43005 86 0.99756 0.06976 14.30067 87 0.99863 0.05234 19.08114 88 0.99939 0.03490 28.63625 89 0.99985 0.01745 57.28996 90 1.00000 0.00000 --------
Javaソースコードの解説
001
public class TriFuncTable2 {
クラス名を、TriFuncTable2としています。
002
public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
003 004
// 0~90度のsin、cos、tanを出力 for ( int deg = 0; deg <= 90; deg ++ ) {
006
double rad = Math.toRadians( (double)deg );
Math.toRadiansメソッド
public static double Math.toRadians( double a )
・引数aで指定した角度をラジアンに変換した値を返します。 パラメータ a : 角度(単位:度)[ 戻り値 ラジアン
008 009
// 角度とsinとcosを出力 System.out.printf( "%2d%8.5f%8.5f", deg, Math.sin( rad ), Math.cos( rad ) );
変数deg、Math.sin( rad )、Math.sin( rad )の値の桁を揃えて出力するために、printfメソッドで書式を指定しています。
書式"%2d%8.5f%8.5f"の%2dは「整数を最小桁数2桁」で出力することを表しています。1桁の整数は、半角スペース付の右詰になります。2桁以上の整数は、そのままの桁数で出力されます。%8.5fは「小数を最小桁数8桁、小数部5桁」で出力することを表しています。整数部が1桁の場合、整数部1桁+小数点'.'+小数部5桁の合計7桁を半角スペース付の右詰で出力します。
Math.sinメソッド
public static double Math.sin( double a )
・引数aで指定した角度の正弦 (サイン) を返します。 パラメータ a : ラジアンで指定した角度。 戻り値 aの正弦
Math.cosメソッド
public static double Math.cos( double a )
・引数aで指定した角度の余弦 (コサイン) を返します。 パラメータ a : ラジアンで指定した角度。 戻り値 aの余弦
011 012 013 014 015
// tanを出力 if ( 90 == deg ) System.out.print( " --------" ); else System.out.printf( "%9.5f", Math.tan( rad ) );
tan90°は解が無いので、変数degが90の場合に" --------"を出力しています。
変数degが90でない場合、Math.tan( rad )の値をprintfメソッドで出力しています。書式"%9.5f"は「小数を最小桁数9桁、小数部5桁」で出力することを表しています。タンジェントの場合、整数部が10以上になるため最小桁数を9桁にしています。
Math.tanメソッド
public static double Math.tan( double a )
・引数aで指定した角度の正接 (タンジェント) を返します。 パラメータ a : ラジアンで指定した角度。 戻り値 aの正接
017 018
// 改行
System.out.println();
改行しています。
以上です。