• 締切済み

COBOLについて

abe022315の回答

回答No.5

「自分は仕様に沿ってロジック1で組むべきだと思う」 貴方の思ったとおりにやりましょう。

この投稿のマルチメディアは削除されているためご覧いただけません。

関連するQ&A

  • コボル!!!!!

    今コボルを習い始めています! 分からないことがあったので教えてください! IF (フラグ-終了-A   =   "END") AND  (フラグ-終了-B   =   "END") MOVE "END" TO フラグ-終了 END IF. とはどう言う意味ですか? 後、 COMPUTE    A  =  B  -  C どの様な動きをしているのか教えてください、よろしくお願いします。

  • エクセルでの関数の書き方

    セルA1からF1があります。 A1がC1かD1で同じでかつ B1がC1かD1で同じ場合に、 D1の値をF1にセットしたいのですが、 どのように書けばよろしいでしょうか? EX. A1が1でB1が2の場合は C1がD1が1,2または2,1の場合のみ E1の値をF1にセットします。 COBOLで書くとこんな感じになると思います IF (A1=C1 OR A1=D1) AND (B1=C1 OR B1=D1) THEN MOVE D1 TO F1 END-IF. IF関数かAND関数を使用するような気がしますが、 思いつきません。 よろしくお願いいたします。 エクセル2000です。

  • COBOL 2次元配列について

    COBOL の2次元配列(?)について質問です。 例えば 01 A ...03 B OCCURS 5 ......05 C .........07 D OCCURS 10 ............09 E ............09 F とある場合、個々の E,F にアクセスするには どのように記述すればいいのでしょうか。。 MOVE 1 TO E(1,1) や、 MOVE 1 TO A(1,1) ではダメでした…。 よろしくお願いします。

  • COBOLについて

    COBOL初心者なのですが。 COBOLで 01 A.   03 B PIC 9(02).   03 C PIC X(02). MOVE  SPACE  TO  A. とした時、基本項目であるBには何が入っているのでしょうか? 数字項目にSPACEというのはありえないですよね。 どなたかわかる方、教えていただけませんか?

  • COBOLについて

    COBOLのEVALUATE文についてですが、 EVALUATE TRUE WHEN A =B かつ C = D 処理 WHEN E =F かつ G = H 処理 ・    ・ END-EVALUATE. 上記のような条件で最初のWHENの式からいずれかの式に一致した場合、 一致した以降の式は実行しないのでしょうか? (例:'A =B かつ C = D'と'E =F かつ G = H'の両方の式が合致した場合) ・A =B かつ C = Dに合致した場合の処理を実行し、WHEN E =F かつ G = H以降の  処理は実行しないという事でしょうか?  EVALUATE TRUEの場合、'A =B かつ C = D'と'E =F かつ G = H'の式が両方とも  一致した場合は両方の処理を実行すると思うのですが、どう処理されるのか教えて  下さい。  

  • COBOLでのファイル作成方法

    初歩的な質問となりますが悩んでいます。作成方法について教えていただける方いらっしゃいましたら、よろしくお願いします。 【質問内容】 2つのファイルをマッチングさせて出力ファイルを作成しています。 入力1:売上ファイル(URIF)   顧客ID,氏名,売上日,担当者ID(KOKID,NAME,URIYMD,TANTOU)   0001,A田B夫,20101105,1201   0002,C下D介,20101106,1305   0003,E岡F子,20101107,1103 入力2:売上明細ファイル(MEISAIF)   顧客ID,商品区分,金額(KOKID,KUBUN,KINGAK)   0001,01,10500   0001,03,5250   0002,01,3150   0002,02,1575   0002,03,2100   0003,02,1050   0003,03,7350 出力:売上詳細ファイル(SYOUSAIF)   顧客ID,氏名,売上日,担当者ID,金額1,金額2,金額3(KOKID,NAME,URIYMD,TANTOU,KINGAK1,KINGAK2,KINGAK3)   0001,A田B夫,20101105,1201,10500,   ,5250   0002,C下D介,20101106,1305,3150,1575,2100   0003,E岡F子,20101107,1103,   ,1050,7350 IF URIF-KOKID = MEISAIF-KOKID  THEN    PERFORM WITH TEST BEFORE       UNTIL URIF-KOKID > MEISAIF-KOKID      PERFORM MAKE-PROC    END-PERFORM    PERFORM MEISAIF-READ-PROC  ELSE    IF URIF-KOKID > MEISAIF-KOKID     THEN      PERFORM MEISAIF-READ-PROC         UNTIL MEISAI-KOKID NOT < URIF-KOKID     ELSE      PERFORM WITH TEST BEFORE         UNTIL MEISAI-KOKID NOT > URIF-KOKID        PERFORM URIF-READ-PROC      END-PERFORM    END-IF END-IF. MAKE-PROC SECTION. MAKE-PROC-010.  MOVE URIF-KOKID TO SYOUSAIF-KOKID.  MOVE URIF-NAME TO SYOUSAIF-NAME.  MOVE URIF-URIYMD TO SYOUSAIF-URIYMD.  MOVE URIF-TANTOU TO SYOUSAIF-TANTOU.  EVALUATE MEISAI-KUBUN   WHEN '01'    MOVE MEISAIF-KINGAK TO SYOUSAIF-KINGAK1   WHEN '02'    MOVE MEISAIF-KINGAK TO SYOUSAIF-KINGAK2   WHEN '03'    MOVE MEISAIF-KINGAK TO SYOUSAIF-KINGAK3  END-EVALUATE. 上記のように作成してみると、出力されたデータが以下のようになってしまいます。   顧客ID,氏名,売上日,担当者ID,金額1,金額2,金額3   0001,A田B夫,20101105,1201,10500,   ,      0001,A田B夫,20101105,1201,10500,   ,5250   0002,C下D介,20101106,1305,3150,   ,      0002,C下D介,20101106,1305,3150,1575,      0002,C下D介,20101106,1305,3150,1575,2100   0003,E岡F子,20101107,1103,   ,1050,      0003,E岡F子,20101107,1103,   ,1050,7350 どのようにしたら本来の1件化した形にできるのか考えているのですが、 一向に解決する方法が見つかりません。 もし解決策があるようでしたらご指導願いたく思います。 よろしくお願いします。

  • COBOL

    すごい簡単な問題なんで恐縮します。COBOL超初心者です。 通信学習で学んでるのですが、テキストに詳しく載っていないので行き詰っています。 下記A, B, Cの値を求めなさい。 MOVE 9 TO A. COMPUTE B = A / 3 COMPUTE C = A + B COMPUTE A = A * 2 で、私が考えた答は、 A = 18 B = 3 C = 12     です。 自分の出した答に全く自信がありません。 どなたか、合っているか教えて下さいませんか? そして、間違っている場合、答の求め方を教えて下されば幸いです。 宜しくお願いいたします。

  • COBOL OCCURSで指定したデータの参照の仕方

    IBM COBOL でプログラムを作成しています。 初歩的な質問で恥ずかしいのですが、どなたか教えていただけますか。 まず、以下のようなTABLEを定義しました。 01 A-TABLE. 03 B OCCURS 100. 05 C PIC X(08) VALUE SPACE. 05 D PIC X(02) VALUE SPACE. 05 E PIC X(08) VALUE SPACE. 05 F PIC X(05) VALUE SPACE. 05 G PIC X(05) VALUE SPACE. 05 H PIC X(05) VALUE SPACE. その後に、INPUTファイルからREADしたデータのうち、必要な部分だけを 該当のTABLEに添え字を使用して代入していく処理を作成したいと思っています。 その場合に、上記の「C」~「H」に代入するにはどうすればよいでしょうか? また後続の処理で直接その値を参照したいのですが、どうすれば良いでしょうか? 私の考えられる範囲で以下のようにプログラムしましたが、 実行時に「OUTSIDE THE REGION OF THE TABLE.」というようなエラーが出力されてしまいました。 MOVE I TO C(IDX1) MOVE J TO D(IDX1) MOVE K TO E(IDX1) MOVE L TO F(IDX1) MOVE M TO G(IDX1) MOVE N TO H(IDX1) どなたかよろしくお願いします。

  • COBOLのCALL文がいまいちつかめません。

    いつもお世話になっています。 WINDOWSでCOBOL85を使いながら、COBOLの勉強をしています。 JAVAを基本情報試験のために勉強したくらいの初心者です。 シーケンシャルファイルでマッチング処理を行う、 小さなプログラムを課題としている途中、 CALL文を使ってサブプログラムを作ってみてくださいと言われました。 そこで質問なのですが、 メインプログラムの集団項目をUSING指定で引数として、 サブプログラムで受け取り、処理をするまではいいのですが、 戻り値をどのようにして受け取ればいいのかが イメージがつかめません。 ・戻り値を受け取るための命令 ・戻り値は1つだと思うのですが、どの変数?に返ってくるのか (集団項目ごと返ってくる?) など、何かあればご助言をいただけないでしょうか? ソースは次の通りです。 よろしくお願いいたします。 ■メイン IDENTIFICATION DIVISION. PROGRAM-ID. MACHING_TEST. (省略) WORKING-STORAGE SECTION.   01 JUDGE_F.    03 KEY_F     PIC 9(01).    03 CHANGE_F     PIC X(06).    03 EXCEP_M     PIC 9(01). (省略) CALL "JUDGE_FEMALE" USING JUDGE_F ON EXCEPTION   DISPLAY N"エラーです。プログラムを終了します"   STOP RUN   NOT ON EXCEPTION    IF EXCEP_M = 9 THEN MOVE "ERRER!" TO FEMALE_OUT ELSE  IF EXCEP_M = 1 THEN MOVE CHANGE_F TO  FEMALE_OUT  END-IF    END-IF    END-CALL. (以下略) ■サブ IDENTIFICATION DIVISION. PROGRAM-ID. JUDGE_FEMALE. DATA DIVISION. LINKAGE SECTION. 01 JUDGE_F.  03 KEY_F PIC 9(01).  03 CHANGE_F PIC X(06).  03 EXCEP_M PIC 9(01). PROCEDURE DIVISION USING JUDGE_F. IF KEY_F = 1  THEN   MOVE "オトコ" TO CHANGE_F   MOVE 1 TO EXCEP_M  ELSE   IF KEY_F = 2 THEN  MOVE "オンナ" TO CHANGE_F  MOVE 1 TO EXCEP_M ELSE  MOVE 9 TO EXCEP_M END-IF END-IF. PROGRAM-END.  STOP RUN.

  • エクセルで項目名をコピーする方法

    項目名  フラグA フラグB  判定用A 判定用B 国語   1 数学   1 理科         1 社会         1 英語         1 現在A列に項目名、B列にフラグA、C列にフラグB、D列に判定用A、E列に判定用Bという表があります。 ABC列の項目名~フラグBまでは既に値が入っている状態です。 フラグA、Bには整数値が入っているか、空白の状態です。 この状態でフラグAに値が入っていれば、判定用Aに項目名を。フラグBに値があれば判定用Bに項目名をコピーしたいのですが、自動化できるでしょうか? ちなみに項目数は大体数百個単位であり、フラグAとフラグBの両方に値が入る事はありません。