実例3とは? わかりやすく解説

実例3 (Fizz Buzz)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/17 23:55 UTC 版)

COBOL」の記事における「実例3 (Fizz Buzz)」の解説

000100 IDENTIFICATION DIVISION.000200 PROGRAM-ID. FIZZBUZZ.000300 DATA DIVISION.000400 WORKING-STORAGE SECTION.000500 01 I PIC 9(3).000600 PROCEDURE DIVISION.000700 PERFORM VARYING I FROM 1 BY 1 UNTIL I > 100000800 EVALUATE FUNCTION MOD(I 3) = ZERO000900 ALSO FUNCTION MOD(I 5) = ZERO001000 WHEN TRUE ALSO TRUE001100 DISPLAY 'FIZZBUZZ'001200 WHEN TRUE ALSO FALSE001300 DISPLAY 'FIZZ'001400 WHEN FALSE ALSO TRUE001500 DISPLAY 'BUZZ'001600 WHEN OTHER001700 DISPLAY I(3 - FUNCTION INTEGER(FUNCTION LOG10(I)):)001800 END-EVALUATE001900 END-PERFORM.002000 STOP RUN. 出力 12FIZZ4BUZZFIZZ78FIZZBUZZ11 (中略)FIZZBUZZ9192FIZZ94BUZZFIZZ9798FIZZBUZZ COBOLでは剰余求める際に、商・剰余それぞれ格納する変数定義した上でDIVIDE文を用いることが多いが、商は不要剰余のみが知りたい場合や、それを変数格納しておく必要が無い場合は、組み込み関数MOD用いて良いまた、COBOL数字項目は定義され桁数よりも少な桁数の値が格納され場合ゼロパディングした状態で扱うため、このまま表示させると001、002、…、098と先頭に0が補われ表示されてしまう。 N {\displaystyle N} 定義され数字項目に、正の整数 n {\displaystyle n} が格納され場合、その最上位位置は左から N − ⌊ log 10 ⁡ n ⌋ {\displaystyle N-\left\lfloor \log _{10}n\right\rfloor } カラムであるから上記のようにDISPLAY I(3 - FUNCTION INTEGER(FUNCTION LOG10(I)):)と記述することで、パディングされた0を除いた部分だけを表示させることが出来る。 なお、0、負の数小数を扱う場合は、下記のように数字編集項目によるゼロサプレスとUNSTRING文を組み合わせることでパディングされた0を除いて表示させることが出来る。 000100 IDENTIFICATION DIVISION.000200 PROGRAM-ID. FIZZBUZZ.000300 DATA DIVISION.000400 WORKING-STORAGE SECTION.000500 01 I PIC S9(3).000600 01 HENSHU-IKI PIC X(4).000700 01 HENSHU-NUM REDEFINES HENSHU-IKI PIC ---9.000800 01 DUMMY-IKI PIC X(1).000900 PROCEDURE DIVISION.001000 PERFORM VARYING I FROM -100 BY 1 UNTIL I > 100001100 EVALUATE FUNCTION MOD(I 3) = ZERO001200 ALSO FUNCTION MOD(I 5) = ZERO001300 WHEN TRUE ALSO TRUE001400 DISPLAY 'FIZZBUZZ'001500 WHEN TRUE ALSO FALSE001600 DISPLAY 'FIZZ'001700 WHEN FALSE ALSO TRUE001800 DISPLAY 'BUZZ'001900 WHEN OTHER002000 COMPUTE HENSHU-NUM = I002100 UNSTRING002200 HENSHU-IKI DELIMITED BY ALL SPACE002300 INTO DUMMY-IKI HENSHU-IKI002400 END-UNSTRING002500 DISPLAY HENSHU-IKI002600 END-EVALUATE002700 END-PERFORM.002800 STOP RUN. COBOL数字編集項目によるゼロサプレスは、単純に0を空白に置き換えるだけであるから先頭空白生じる(=整数部分右寄せになる)。ゼロサプレス行い更に先頭空白除去したい(=左寄せにしたい)場合は、空白区切り文字指定してUNSTRING文を用いれば良い上記の例では、UNSTRING文実行後の変数DUMMY-IKIには常に空白入り対象文字列がいきなり空白区切り文字から始まり、その前に何も無いため、何も入らない空白が入る)、変数HENSHU-IKIには数字部分だけが入る。

※この「実例3 (Fizz Buzz)」の解説は、「COBOL」の解説の一部です。
「実例3 (Fizz Buzz)」を含む「COBOL」の記事については、「COBOL」の概要を参照ください。

ウィキペディア小見出し辞書の「実例3」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「実例3」の関連用語

実例3のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



実例3のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのCOBOL (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS