• ベストアンサー

COBOLの出力処理で簡潔に

A、B、Cがあってそれぞれフラグがたっていたら出力する AorB両方たっていた場合はAのみで。 出力する位置もA、BがたってなくてCのみの場合は詰めて表示する これを簡潔に書けないでしょうか? 言語はCOBOLです。

質問者が選んだベストアンサー

  • ベストアンサー
  • m9099
  • ベストアンサー率100% (1/1)
回答No.3

仕様は  A,B,Cのいずれか1つのみ足っていたら、それを出力1にだす。  AとBならAを出力1に、AとCならAを出力1、Cを出力2に、  BとCならBを出力1、Cを出力2に、全部ならAを出力1、Cを出力2に、 ということですね。  たとえば iを数値で定義します。  If A = ON then i = i + 1 If B = ON then i = i + 2 If C = ON then i = i + 4 If i = 1 or 3 then 出力1にAをセットし、出力 If i = 2 then 出力1にBをセットし、出力 If i = 4 then 出力1にCをセットし、出力 If i = 5 or 7 then 出力1にA、出力2にCをセットし、出力 If i = 6 then 出力1にB、出力2にCをセットし、出力 ではどうでしょう

mokbmokb
質問者

お礼

参考になりました! ふつうに全パターン網羅して出力してました。 ありがとうございます

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.4

>説明が足りてませんでした。すいません。 >出力する位置は2箇所のみで左詰めです。 > >こんな感じ→ (出力1___ 出力2___) > >A、B、C全部たっていた場合はA、C >Bのみ場合はBです。 であれば、フローとしてはNo.1で空白出力している部分をカットすればいいですよね? AがON → Aを出力 AがOFF(上のELSE)で BがON → Bを出力 CがON → Cを出力

すると、全ての回答が全文表示されます。
回答No.2

どこのメーカーの何というCOBOLですか? A,B,Cのデータ型は何ですか?

すると、全ての回答が全文表示されます。
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

COBOLの書き方は忘れているので、フローだけ(汗 #詰めるのはABがOFFでCのみのとき「だけ」ですかね? AがON? → Aを出力/B部分に空白を出力 AがOFF?(上のELSE)で BがON? → A部分に空白を出力/Bを出力 CがON? → Cを出力

mokbmokb
質問者

補足

説明が足りてませんでした。すいません。 出力する位置は2箇所のみで左詰めです。 こんな感じ→ (出力1___ 出力2___) A、B、C全部たっていた場合はA、C Bのみ場合はBです。

すると、全ての回答が全文表示されます。

関連するQ&A