- 締切済み
コボル!!!!!
今コボルを習い始めています! 分からないことがあったので教えてください! IF (フラグ-終了-A = "END") AND (フラグ-終了-B = "END") MOVE "END" TO フラグ-終了 END IF. とはどう言う意味ですか? 後、 COMPUTE A = B - C どの様な動きをしているのか教えてください、よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
>COMPUTE B - C = A では駄目なのですか? compute X = Y と書く場合もあるので、結果は右か左かどっちかに決めておく必要があります(Xの値をYに入れるのか、Yの値をXに入れるのか)。どちらでも「いけない」ということはないですが、COBOLの場合(他のほとんどの言語でも)は、左が結果と決まっています。 なぜかというと、数学で、x=3 と 3=x とどっちがなじみがあるかというと、x=3 ですね。だから、 compute X = 3 と書けるように左が結果と決めてあります。 move命令の場合は、 move 3 to X ですけど、これは英語の語順からでしょう。ややこしいと言えばややこしいですが、英語の語順のたくさんの命令と、数学の語順のCOMPUTE命令とがあると覚えるしかない。
- chukenkenkou
- ベストアンサー率43% (833/1926)
自分で調べる気はないのでしょうか? http://www16.plala.or.jp/hiyokogumi/ 上記URLは、「サルでもわかるCOBOL入門」というサイトです。 >COMPUTE B - C = A では駄目なのですか? だめです。 「COMPUTE 受け取り変数 = 式」 という構文になります。 単純な値のコピーは、数値でも文字でも、 「MOVE 値や変数 TO 受け取り変数」 という英語的な構文になります。 COBOLでは算術計算を行う場合は、ADD、SUBTRUCT、MULTIPLY、DIVIDEなどの加算、減算などを英語表記的に書く命令もありますが、これ以外に計算式を書けるCOMPUTE命令があります。 ADD 1 TO I は COMPUTE I = I + 1 と等価。 ADD 1 TO I GIVING J は COMPUTE J = I + 1 と等価。 詳しくは上述のサイトを見て、サルには負けないように頑張ってください。
お礼
回答ありがとうございましたぁ^^
- shimix
- ベストアンサー率54% (865/1590)
えっと・・COBOL「以外の」言語は何かわかりますか?文法書を片手にでもこれが読めないとちょっと先が厳しいと思いますが(ほとんど「英語のまま」だし)。 (1) フラグ-終了-Aが"END" かつ フラグ-終了-Bが"END" だったら フラグ-終了に"END"を代入する フラグ-終了、フラグ-終了-A、フラグ-終了-B は変数(文字列) "END"は「文字列リテラル」ですね。 (2) B-Cの結果をAに代入。A、B、Cは変数(数値)。 そういえばCOBOLはCOMPUTEを書くんだったなぁ(20年ぶりに見た)。
お礼
回答ありがとうございます! 言語は何も知らないですm(@@)m 厳しいですかぁ がんばります!!
- notnot
- ベストアンサー率47% (4900/10358)
英語が読めればほとんどそのままなのですが、 「フラグ-終了-A」の値が"END"であり、かつ、「フラグ-終了-B」の値も"END"である場合は、「フラグ-終了」に"END"という値をセットする。 Bの値からCの値を引き算して、その結果をAにセットする。
お礼
回答ありがとうございます! よくわかりました!!! だけど、COMPUTE A = B - C じゃなくて COMPUTE B - C = A では駄目なのですか?
お礼
回答ありがとうございました!!