COBOLの紹介-パート3

残念ながら、前の記事でいくつかの重要なキーワードを示すのを忘れていました。



分割するため。



WS-AによるWS-Bの分割WS-RESULT REMAINDER <変数>の提供。



REMAINDERを使用して、部門からのRESIDUEが書き込まれる変数を指定します。



数学演算の場合:



また、操作後にROUNDEDを追加すると、余分なテールを単に「破棄」するのではなく、結果が丸められるようになります。

WS-BにWS-Aを追加して、WS-RESULT ROUNDEDを提供します。



そして今、私たちは新しいことを学び続けています。 変数値の奇妙な派生の驚きを払拭するという約束を果たすために、今回はPICTURE IS(別名PIC)と変数フォーマットを分析します。





そして、再びデータ部に戻ります。

変数の説明がある行をもう一度考えてみましょう。

01-変数のレベル。

WS-Bは変数の名前です。

PICは、変数の形式の説明が後に続くことを示すキーワードです。古い形式はPICTURE ISです。

9(3)-変数「9」の文字のタイプとその番号「3」。



レベル変数。

通常の変数の場合、ユーザーは01から49までのレベルと77までのレベルにアクセスできます。変数のレベルは、変数のグループ内の階層を表します。 例えば

01顧客記録。

05顧客名PIC X(10)。

05 CUSTOMER-ADDRESS PIC X(30)。



レベル77は、変数をELEMENTARYとして宣言します。つまり、サブ変数を持つことはできません。

レベル88では、変数を条件付きとして、かなり洗練された機能的な形式で宣言します。次回はさらに詳しく説明します。

コンパイラの製造元によって導入された、または現在必要のないレベルがいくつかあります。



変数の名前。

変数名は数字、文字、および「-」で構成できますが、「-」で始まってはなりません。

変数名は30文字以下にする必要があります。



可変形式の説明。

COBOLの変数にはどのような記述文字が存在するかを検討してください。

それらは、「通常」と「編集」の2つのグループに分けられます。



通常のものには

9-1桁。



Vは、整数部と小数部を分離する記号です(各変数に1回だけ適用できます)。



S-「±」記号は、変数の形式の最初の文字である必要があります(各変数で1回のみ使用できます)。



Xは1つの英数字、つまり 数字、文字、スペース、特別。 文字。



Aは、単一文字の記号またはスペースです。



シンボルの編集-それらのおかげで、計算に関与しない変数が説明されますが、変数の表示/印刷の外観を微調整できます。



Z-すべての先行ゼロが削除されるという違いで9'kiを置き換えます。



$-コンパイラに指定された「通貨記号」、デフォルトでは基本的にドル記号は、説明の最初の文字としてのみ使用されます。 一度だけ使用できます。 その値は、環境部で設定されます。 助けを借りて



*はZの類似物ですが、先行ゼロは*に置き換えられます。



-(マイナス)-最初と最後の両方の文字で指定できますが、一度だけ指定できます。 数値が負の場合はマイナスが表示され、そうでない場合は空のスペースが表示されます。



+(プラス)は「-」(マイナス)に類似していますが、正の数の場合は「+」が表示され、負の数の場合は「-」が表示されます。



。 (ドット)は小数点です。 その場所に正確に「ポイント」が表示されます。



、(コンマ)-コンマ。 たぶん変数に少し。



/(スラッシュ)-スラッシュ記号。 たぶんいくつか。 日付で一般的な「スラッシュ」を出力します。



0(ゼロ)-「ゼロ」。 この時点で0が表示されます。



B(空白から、空)-「スペース」。



しかし最も重要なことは、理解できるように、これらすべてのシンボルが組み合わされており、非常に柔軟なフォームとタイプを取得できるようにすることです。 ここには実際には1つのルールしかありません-数値変数は18文字、英数字-160文字を超えてはなりません。 しかし、ここでも、コンパイラとそのパラメータに大きく依存しています。



おいしい追加またはPIC'a後の人生!

さらに、フォーマットの後に変数を記述する場合、追加の「オプション」を追加できます。



BLANK WHEN ZERO-変数が0の場合、ゼロではなく空のスペースが代わりに表示されます。

VALUE「値」-特定の値をすぐに変数に割り当てます。



他にもありますが、それらに言及することは役に立たないでしょう。

それでは、それらをすべて異なる形で感じてみましょう。



 000100識別部。
 000200プログラムID。 変数テスト。
 000300著者。 私
 000400環境部門。
 000500データ部。
 000600ワーキングストレージセクション。
 000,700 01人間容器。
 000800 05人名写真A(30)。
 000 900 05ヒューマンアドレスPIC X(160)。
 001000 77平方メートルPIC 9(18)。
 001100 77正方形価格PIC 9(15)V9(2)。
 001150 77フラット価格PIC 9(15)V9(2)。
 001200 77税率PIC 9(2)。
 001300 77 TAX-SUMM PIC 9(15)V9(2)。
 001350 77負の値PIC S9(10)V9(6)。
 001400 * --- OOOOMG!  ---
 001500 77スクエアメーターアウトPIC Z(17)9。
 001600 77スクエアプライスアウトPIC Z(14)9.Z(2)。
 001650 77 FLAT-PRICE-OUT-1 PIC Z(3)、Z(3)、Z(3)、Z(3).9(2)。
 001660 77 FLAT-PRICE-OUT-2 PIC Z(3)BZ(3)BZ(3)BZ(3).9(2)。
 001700 77 TAX-PERCENT-OUT PIC Z(2)。
 001800 77 TAX-SUMM-OUT PIC Z(14)9.9(2)。
 001900 77 NEGATIVE-VALUE-OUT-1 PIC + Z(10).9(6)。
 002000 77負の値の出力2 PIC -Z(10)。*(6)。
 002100 * --------------------------------
 002200手続き部。
 002,300から。
 002400ディスプレイ「名前を入力してください:」。
 002500人名を受け入れます。
 002550ディスプレイ「アドレスを入力してください:」。
 002600人名を受け入れます。
 002700 DISPLAY「フラットの平方メートルを入力してください:」。
 002800平方メートルを受け入れます。
 002900表示「平方メートルの価格を入力してください:」。
 003000正方形の価格を受け入れます。
 003100 DISPLAY「税の割合を入力してください:」
 003200税率を受け入れます。
 003300表示「本当に大きな負の値を入力してください:」。
 003400負の値を受け入れます。
 003500ディスプレイ「---------------------------------------」。
 003600「」を表示します。
 003700人名を表示します。
 003800人名を表示します。
 003900「SQUARE-METERS:」、SQUARE-METERSを表示します。
 004000スクエアメーターをスクエアメーターに移動します。
 004100「SQUARE-METERS-OUT:」、SQUARE-METERS-OUTと表示されます。
 004200「SQUARE-PRICE:」、SQUARE-PRICEを表示します。
 004300 SQUARE-PRICEからSQUARE-PRICE-OUTに移動します。
 004400「Square-price-out:」、Square-price-outを表示します。
 004500平方料金を平方料金で乗算する。
 004600「フラット価格:」、フラット価格を表示します。
 004700 FLAT-PRICE-OUT-1 FLAT-PRICE-OUT-2にFLAT-PRICEを移動します。
 004800「FLAT-PRICE-OUT-1:」、FLAT-PRICE-OUT-1を表示します。
 004850「FLAT-PRICE-OUT-2:」、FLAT-PRICE-OUT-2を表示します。
 004900「TAX-PERCENT:」、TAX-PERCENTを表示します。
 005000 TAX-PERCENTからTAX-PERCENT-OUTに移動します。
 005100「TAX-PERCENT-OUT:」、TAX-PERCENT-OUTと表示されます。
 005200ディスプレイ「TAX-SUMM:」、TAX-SUMM。
 005300 TAX-SUMMからTAX-SUMM-OUTに移動します。
 005400「TAX-SUMM-OUT:」、TAX-SUMM-OUTを表示します。
 005500「負の値:」、負の値を表示します。
 005600負の値を負の値のアウト1負の値のアウト2に移動します。
 005700「Negative-Value-OUT-1:」、NEGATIVE-VALUE-OUT-1を表示します。
 005800「Negative-Value-OUT-2:」、NEGATIVE-VALUE-OUT-2を表示します。
 005900実行を停止します。




その結果、何が得られますか。



名前を入力してください: 
スラバ
住所を入力してください: 
モスクワ15
フラットの平方メートルを入力してください: 
 44
平方メートルの価格を入力してください: 
 1234123
税率を入力してください: 
 20
本当に大きな負の値を入力してください: 
 -123123213213
 ---------------------------------------
 
スラバ                         
モスクワ15                                                                                                                                                       
平方メートル:000000000000000044
平方メートルアウト:44
スクエア価格:000000001234123.00
スクエアプライスアウト:1234123.00
フラット価格:000000054301412.00
 FLAT-PRICE-OUT-1:54,301,412.00
 FLAT-PRICE-OUT-2:54 301 412.00
税率:20
税引出し:20
 TAX-SUMM:000000000000000.00
税抜き:0.00
負の値:-3123213213.000000
負の値のアウト-1:-3123213213.000000
負の値の出力-2:-3123213213.000000




ご覧のとおり、「フォーマット済み」変数と生変数の出力は異なり、カスタマイズ可能です。



当然、これはあなただけの権利ではなく、変数をいじってそれらがどのように動作するかを見る義務です。



ところで、プログラムの出力を注意深く見ると、非常に不快な「些細なこと」に気付いたかもしれません。変数に収まらない値です。もしこれが起こらなかったら、実験してみてください。



次の会議まで! 今後さらに多くの興味深いことがあります)



ボロンツォフ「nerfur」ビャチェスラフ。 2011年。




All Articles