- 締切済み
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で組むべきだと言われました。 どちらで組むのが普通でしょうか?どなたか教えて下さい!
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- abe022315
- ベストアンサー率0% (0/2)
「自分は仕様に沿ってロジック1で組むべきだと思う」 貴方の思ったとおりにやりましょう。
- abe022315
- ベストアンサー率0% (0/2)
さっきも書いたように、(ロジック1)を提案すべきだと思います。
- abe022315
- ベストアンサー率0% (0/2)
オレもロジック1は分かりやすいと思うよ。 オレはCOBOL知らないから スゴく古いCUIの「Dbase5」にCOBOLが ほんのチョッピリ似てるから推測で話してますが 「Dbase5」知っているから それから考えると、ロジック1が解りやすいと思うな。 モット言うと、「コンピューターがやるのだから、どっちでもいい。」 ヤット推測できた。 キミの会社の「ホストマシン」についてだな。 オレは「システム部門」なんて闇の部署に所属した経験がない。 オレはメチャクチャ明るい元「必殺営業マン」だったのだ。 今は売れないシステムエンジニアだ。 話戻るけど、ロジック1、ロジック2どっちでもいいよ。 ホストコンピューターに負荷をかけない事を考えるとロジック1だ。 自信を持って提案し給え!
- notnot
- ベストアンサー率47% (4900/10358)
会社によるとしか言いようが無いです。 コーディングルールがある場合はそれに従う。 そう言われたと言うことは「IFの条件ではORを使わない」というルールがあるのでは? 一般的には、ロジック1でしょう。 あなたの書いたロジック2には、該当フラグを初期化していないというバグがあります。ロジック2には、そういうバグの入り込む危険がありますね。というか、仕様に無い「該当フラグ」が登場するのが最大の欠点です。
- abe022315
- ベストアンサー率0% (0/2)
ハジメマシテ。 イマダニCOBOLを使っている企業は ある程度の大企業だと言った観があります。 私も一応1部上場にお世話になっておりました。 ただ、コンピューター部門ではなく 営業部門です。 辞表出する前は「ACCESS」を使いこなせるようになりました。 デモ今は忘れています。 本題に戻りましょう。 時代は「JAVA」「C++」と進んでいます。 イマダニCOBOLを使っていることは 動きの鈍い所謂「大企業病」です。 ダイナミックな動きをする中小企業では 新しいプログラミング・ソフトを使っていることと 予測します。 ここで答えが出ない場合は、自分自身 若しくは職制。それに準じる人に質問スべきです。 COBOLなんて昔お世話になった会社と 後少しあると思いますが、稀でしょう。 まともに回答できず、申し訳ありません。 デモ、これがオレ流の答えです。