COBOL言語の関数「SIN、COS、TAN」ついて理解しよう! | 用語辞典

COBOL(コボル)言語の予約語SIN、COS、TAN関数を使った三角関数の使い方を理解しよう。

辞典・辞書-SINCOSTAN-イメージ

COBOL(コボル)言語のSIN、COS、TANとは?

COBOL(コボル)の組み込み関数であるSIN(サイン)、COS(コサイン)、TAN(タンジェント)は三角関数を求める場合に使用します。SIN関数は直角三角形の角または弧のサイン(正弦)の近似値を返し、COS関数はコサイン(余弦)の近似値、TAN関数はタンジェント(正接)の近似値を返します。

書き方(SIN関数):

FUNCTION SIN(引数-1)

関数の型:引数-1には数字型を指定します。

引数:引数-1には角または弧の正弦(サイン)を指定します。

返り値:引数-1の正弦(サイン)で-1以上+1以下です。

書き方(COS関数):

FUNCTION COS(引数-1)

関数の型:引数-1には数字型を指定します。

引数:引数-1の角または弧の余弦(コサイン)を指定します。

返り値:引数-1の余弦(コサイン)で-1以上+1以下です。

書き方(TAN関数):

FUNCTION TAN(引数-1)

関数の型:引数-1には数字型を指定します。

引数:引数-1の角または弧の正接(タンジェント)を指定します。

返り値:引数-1の正接(タンジェント)で-1以上+1以下です。

たとえば、プログラムで定義された以下の項目から正弦(サイン)を求めたい場合があるとします。

  1. 03 NUM-1 PIC 99 VALUE ZERO.
  2. 03 NUM-2 PIC 9(3) VALUE 250.
  3. 03 NUM-3 PIC 9(2) VALUE 70.

以下のようにSIN関数に引数を指定すると正弦(サイン)の近似値が返されます。

使用例:

辞典・辞書-SINCOSTAN-使用例

実行結果:

辞典・辞書-SINCOSTAN-実行結果

ゼロの正弦は「0」となり、250度の場合は「-0.97」、70度の場合は「+0.77」と なります。

注意点として、指定した値が負数の場合はエラーとなりますので、指定する引数に負数が入る可能性がある場合は事前にチェック処理をする必要があります。

SIN、COS、TAN関数のCOBOL(コボル)言語における基本事項やルールについて

  1. SIN、COS、TAN関数のような組み込み関数は、関数名の前に予約語「FUNCTION」を指定する必要があります。
  2. 引数にはそれぞれ、正弦(サイン)、余弦(コサイン)正接(タンジェント)の近似値を求める値を指定する必要があります。

SIN、COS、TAN関数を使ったCOBOL(コボル)プログラムの活用法

SIN、COS、TAN関数はCOBOL(コボル)言語で三角関数の値を求めるときに便利です。ここでは、活用法としてSIN、COS、TAN関数でそれぞれ正弦(サイン)、余弦(コサイン)、正接(タンジェント)の近似値を求める簡単なプログラムを紹介します。

サンプルプログラム:

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. SINCOSTAN_SAMPLE01.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. DATA DIVISION.
  6. WORKING-STORAGE SECTION.
  7.  
  8. 01 SIN-NUM.
  9. 03 NUM-1 PIC 99 VALUE ZERO.
  10. 03 NUM-2 PIC 9(3) VALUE 250.
  11. 03 NUM-3 PIC 9(2) VALUE 70.
  12. 01 SIM-RES.
  13. 03 RESSIN-1 PIC S9V99.
  14. 03 RESSIN-2 PIC S9V99.
  15. 03 RESSIN-3 PIC S9V99.
  16. 03 RESCOS-1 PIC S9V99.
  17. 03 RESCOS-2 PIC S9V99.
  18. 03 RESCOS-3 PIC S9V99.
  19. 03 RESTAN-1 PIC S9V99.
  20. 03 RESTAN-2 PIC S9V99.
  21. 03 RESTAN-3 PIC S9V99.
  22. 01 PI PIC S9V99 VALUE 3.14.
  23. PROCEDURE DIVISION.
  24. *>----------------------------------------------------
  25. *> 正弦(サイン)を求める
  26. *>----------------------------------------------------
  27.  
  28. COMPUTE RESSIN-1 = FUNCTION SIN(NUM-1).
  29. COMPUTE RESSIN-2 = FUNCTION SIN(NUM-2 * PI / 180).
  30. COMPUTE RESSIN-3 = FUNCTION SIN((NUM-2 + NUM-3) * PI / 180).
  31.  
  32. *>----------------------------------------------------
  33. *> 余弦(コサインを求める
  34. *>----------------------------------------------------
  35.  
  36. COMPUTE RESCOS-1 = FUNCTION COS(NUM-1).
  37. COMPUTE RESCOS-2 = FUNCTION COS(NUM-2 * PI / 180).
  38. COMPUTE RESCOS-3 = FUNCTION COS((NUM-2 + NUM-3) * PI / 180).
  39.  
  40. *>----------------------------------------------------
  41. *> 正接(タンジェント)を求める
  42. *>----------------------------------------------------
  43.  
  44. COMPUTE RESTAN-1 = FUNCTION TAN(NUM-1).
  45. COMPUTE RESTAN-2 = FUNCTION TAN(NUM-2 * PI / 180).
  46. COMPUTE RESTAN-3 = FUNCTION TAN((NUM-2 + NUM-3) * PI / 180).
  47.  
  48. *>----------------------------------------------------
  49. *> 結果を出力
  50. *>----------------------------------------------------
  51. DISPLAY "RESSIN-1:("RESSIN-1")".
  52. DISPLAY "RESSIN-2:("RESSIN-2")".
  53. DISPLAY "RESSIN-3:("RESSIN-3")".
  54. DISPLAY "RESCOS-1:("RESCOS-1")".
  55. DISPLAY "RESCOS-2:("RESCOS-2")".
  56. DISPLAY "RESCOS-3:("RESCOS-3")".
  57. DISPLAY "RESTAN-1:("RESTAN-1")".
  58. DISPLAY "RESTAN-2:("RESTAN-2")".
  59. DISPLAY "RESTAN-3:("RESTAN-3")".
  60.  
  61. STOP RUN.

実行結果:

辞典・辞書-SINCOSTAN-実行結果

サンプルプログラムのSIN関数を例にとると、ZEROの正弦は「ゼロ」となります。250度のラジアン(250 * 3.14 / 180)の近似値は「-0.93」となります。250度と70度を加算すると320度でラジアン(320 * 3.14 / 180)の近似値は「-0.64」となります。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門