• 締切済み

COBOLについて

COBOLで以下のような仕様の場合、どのようなロジックにするのが良いでしょうか? ・仕様  A項目=値A または  B項目=値B または  (C項目=値C かつ D項目=値D ) または  E項目=値E 上記の場合、何も処理しない(以降の処理もせずに、次レコードを読みに行く  上記以外の場合、処理1を行い、次処理以降の処理を継続する。 (ロジック1) IF A項目=値A OR B項目=値B OR (C項目=値C かつ D項目=値D ) OR E項目=値E THEN CONTINUE ELSE 処理1を行う END-IF. (ロジック2) IF A項目=値A MOVE '1' TO 該当フラグ END-IF. IF B項目=値B MOVE '1' TO 該当フラグ END-IF. IF (C項目=値C かつ D項目=値D ) MOVE '1' TO 該当フラグ END-IF. IF E項目=値E MOVE '1' TO 該当フラグ END-IF. IF 該当フラグ='1' CONTINUE ELSE 処理1 END-IF. 自分は仕様に沿ってロジック1で組むべきだと思うのですが、 ロジック1は分かりずらいのとメンテが大変なのでロジック2で組むべきだと言われました。 どちらで組むのが普通でしょうか?どなたか教えて下さい!

みんなの回答

回答No.5

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

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

さっきも書いたように、(ロジック1)を提案すべきだと思います。

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

オレもロジック1は分かりやすいと思うよ。 オレはCOBOL知らないから スゴく古いCUIの「Dbase5」にCOBOLが ほんのチョッピリ似てるから推測で話してますが 「Dbase5」知っているから それから考えると、ロジック1が解りやすいと思うな。 モット言うと、「コンピューターがやるのだから、どっちでもいい。」 ヤット推測できた。 キミの会社の「ホストマシン」についてだな。 オレは「システム部門」なんて闇の部署に所属した経験がない。 オレはメチャクチャ明るい元「必殺営業マン」だったのだ。 今は売れないシステムエンジニアだ。 話戻るけど、ロジック1、ロジック2どっちでもいいよ。 ホストコンピューターに負荷をかけない事を考えるとロジック1だ。 自信を持って提案し給え!

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

会社によるとしか言いようが無いです。 コーディングルールがある場合はそれに従う。 そう言われたと言うことは「IFの条件ではORを使わない」というルールがあるのでは? 一般的には、ロジック1でしょう。 あなたの書いたロジック2には、該当フラグを初期化していないというバグがあります。ロジック2には、そういうバグの入り込む危険がありますね。というか、仕様に無い「該当フラグ」が登場するのが最大の欠点です。

回答No.1

ハジメマシテ。 イマダニCOBOLを使っている企業は ある程度の大企業だと言った観があります。 私も一応1部上場にお世話になっておりました。 ただ、コンピューター部門ではなく 営業部門です。 辞表出する前は「ACCESS」を使いこなせるようになりました。 デモ今は忘れています。 本題に戻りましょう。 時代は「JAVA」「C++」と進んでいます。 イマダニCOBOLを使っていることは 動きの鈍い所謂「大企業病」です。 ダイナミックな動きをする中小企業では 新しいプログラミング・ソフトを使っていることと 予測します。 ここで答えが出ない場合は、自分自身 若しくは職制。それに準じる人に質問スべきです。 COBOLなんて昔お世話になった会社と 後少しあると思いますが、稀でしょう。 まともに回答できず、申し訳ありません。 デモ、これがオレ流の答えです。

関連するQ&A