- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:COBOLでのチェックデジット算出)
COBOLでのチェックデジット算出方法とは?
このQ&Aのポイント
- COBOL初心者のためのチェックデジット算出方法を紹介します。サブルーチンにAコード、Bコード、Cコードを渡してチェックデジットを受け取ることができます。さらに、印刷領域からチェックデジットを抜いたデータを渡すことも可能です。また、Aコード、Bコード、Cコードは数字に変換する必要があります。
- COBOL初心者のためのチェックデジット算出方法について説明します。チェックデジットを受け取るためには、Aコード、Bコード、Cコードをサブルーチンに渡す必要があります。さらに、印刷領域からチェックデジットを抜いたデータを渡すことも可能です。ただし、Aコード、Bコード、Cコードは数字に変換する必要があります。
- COBOL初心者向けに、チェックデジット算出の方法を紹介します。Aコード、Bコード、Cコードをサブルーチンに渡し、チェックデジットを受け取ることができます。また、印刷領域からチェックデジットを抜いたデータを渡すことも可能です。なお、Aコード、Bコード、Cコードは数字に変換する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ごく普通にできます。 サブルーチンをどのように考えられているか不明ですので、2通り の考え方を提示しておきます。 1.外部サブプログラムの場合 原則として引数のポインタを渡すだけですので、 01 印刷領域. 02 引数1. 03 Aコード PIC X(03). 03 Bコード PIC X(04). 03 Cコード PIC X(02). 02 引数2. 03 チェックデジット PIC X(01). CALL A USING 引数1 引数2 注)結果的にチェックデジット部分も渡してますが、外部サブ プログラム中で引数1が数字以外のものだった場合にエラー ステータスを返却する領域(数字以外を返却するとエラー) 兼、チェックデジット計算値(数字の場合正しく計算できた) にして見ました。 2.内部手続きの場合 01 印刷領域. 03 集合コード. 04 Aコード PIC X(03). 04 Bコード PIC X(04). 04 Cコード PIC X(02). 03 集合コード数値 REDEFINES 集合コード. 04 数字コード PIC 9(09). 03 チェックデジット PIC X(01). AコードからCコードまでを数字領域として再定義して内部手続き で使用すればよいです。
お礼
なるほど! 単純な方法でできるんですね。 てっきり1桁削るには数値にして10で割って…とか色々考えてしまいました。 また、文字コードを数値に変換するのも、定義しなおすと変換されるのですね。 ちなみにサブルーチンは外部だったので方法1を使ってやってみたら上手くいきました! どうもありがとうございました。