• 締切済み

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'の式が両方とも  一致した場合は両方の処理を実行すると思うのですが、どう処理されるのか教えて  下さい。  

みんなの回答

  • iruyasu
  • ベストアンサー率37% (3/8)
回答No.1

>一致した以降の式は実行しないのでしょうか? はい、END-EVALUATE まで飛びます。

関連するQ&A

  • COBOLのEVALUATE文について

    COBOLのEVALUATE文についてですが、以下の場合の解釈はどうなるのでしょうか? EVALUATE A=O ALSO B=0 ALSO C=0 WHEN FALSE ALSO TRUE ALSO TRUE PERFORM  Z処理 (1)A≠O かつ B=0 かつ C=0の場合のみZ処理を行う。 (2)A≠OであればZ処理を行う。 (1)(2)のどちらが正解でしょうか? すいませんが、よろしくお願い致します。

  • 次のように表される対称行列の名前は?

    以下のように表される対称行列に固有の名前はありますでしょうか? 2次の場合 | a b | | b a | 4次の場合 | a b c d | | b a d c | | c d a b | | d c b a | 8次の場合 | a b c d e f g h | | b a d c f e h g | | c d a b g h e f | | d c b a h g f e | | e f g h a b c d | | f e h g b a d c | | g h e f c d a b | | h g f e d c b a | Bisymmetric matrixの一種だと思うのですが,4次および8次の場合には 2次の区分行列に分割した場合,各区分行列においても対称性が現れています. もしご存知の方がいらっしゃいましたらご教授頂けると助かります.

  • Excelとピタゴラスの定理

    この表のA列には直角三角形の垂辺、C列には 同じく底辺、F列には斜辺の長さが書き込まれる。今、A2セルに3.00、C2セルに4.00、F2セ ルに5.00 の値を入れたので、垂辺・底辺それぞれの2乗の和であるE2セルの値と斜辺の2乗であ るG2セルの値は一致するはずである。それが一致しているかどうかを確かめる式がH2セルに入 れられている。H2セルをアクティブにして数式バーを見るとわかるように、このセルに入ってい る式は=E2=G2 というものである。すなわち、E2セルの値とG2セルの値が等しければ 論理値True を返し、そうでなければ同じくFalse を返す式である。この場合、当然True が返される。 次に、A3セルには式「=A2+ 0.03」を、C3セルには「=C2+ 0.04」を、F3セルには「= F2+ 0.05」を入れ、第3行目のその他のセル(B3,D3,E3,G3,H3)には第2行目の 同じ列のセルにある式を複写する。そうすると、ここでも垂辺:底辺:斜辺の長さの比は3:4: 5になっているからH3セルにはTrue が返されるはずである。 この第3行目のA列からH列まですべてのセルの式をそのまま下方に複写すれば、どの行でもA 列:C列:F列の値の比は3:4:5になるから、H列の値はすべてTrue になるはずである。実際、 どこまで複写しても同じ行のE列のセルとG列のセルに示された値は等しいように見える。しかし、 H列ではTrue ではなくFalse が返される場合がある。 1-A:垂辺 B:垂辺の二乗 C:底辺 D:底辺の二乗 E:二乗の和 F:斜辺 G:斜辺の二乗 H:E=G 2-A:3.00 B:9.00 C:4.00 D:16.00 E:25.00 F:5.00 G:25.00 H:TRUE 3-A:3.03 B:9.18 C:4.04 D:16.32 E:25.50 F:5.05 G:25.50 H:TRUE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24-A:3.66 B:13.40 C:4.88 D:23.81 E:37.21 F:6.10 G:37.21 H:TRUE 25-A:3.69 B:13.62 C:4.92 D:24.21 E:37.82 F:6.15 G:37.82 H:FALSE 26-A:3.72 B:13.84 C:4.96 D:24.60 E:38.44 F:6.20 G:38.44 H:FALSE この現象がどうして起きるのかを、高校生にわかるように、簡単に説明しなさい。 という問題なのです。教えてください。お願いします

  • これを一つの数式にしたい。

    こんばんは。 セルが A1 809900円 B1 A1÷20 C1 8×20+31 D1 C1÷20 E1 B1÷D1 F1 E1×8 G1 F1×20 H1 31×E1 I1 G1+H1=809900円 を一つの式にしたいのです。教えて下さい。

  • 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で組むべきだと言われました。 どちらで組むのが普通でしょうか?どなたか教えて下さい!

  • この問題って高校の順列・組合わせの問題ですか?

    高校は遥か前に卒業しましたが数学が苦手で特に確率のところがまったくダメでした。 最近こういう問題を考える機会があったのですが、これって順列・組合わせの問題ですか?もしそうなら教科書的な解法を教えてください。 Q あるトーナメント方式のスポーツの大会で約50校のチームが全国の各地域(A~H)から6~7チームずつ参加して開催されました。決勝に進出する2チームの出身地域の組合わせは何通りでしょうか? 答 36通り AーA、A-B、A-C、A-D、A-E、A-F、A-G、A-H B-B,B-C、B-D、B-E、B-F、B-G、B-H C-C、C-D、C-E、C-F、C-G、C-H D-D、D-E、D-F、D-G、D-H E-E、E-F、E-G、E-H F-F、F-G、F-H G-G、G-H H-H ・・・・などと、1つづつコツコツ数えればもちろん答えは出るんですが、順列・組合せで習ったPとかCを使って出せるんでしょうか?よろしくお願いします。

  • ツリー情報のデータをSQLで取得したい

    SQLServer 2008 です。 以下のツリーデータの場合に A ┬C │├D ┬H ││ ├I ││ └J │└E B ┬F ┬I  │ └L  └G 次のようなデータを登録しています。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │B  │F  │"F" │ ├──┼──┼──┤ │B  │G  │"G" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ ├──┼──┼──┤ │F  │I  │"I" │ ├──┼──┼──┤ │F  │L  │"L" │ └──┴──┴──┘ 引数OYA="A"でSQLを実行した場合に 以下のような この引数を含むそれ以下のツリーに関する データを取得する方法を教えてください。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ └──┴──┴──┘

  • if文の中のif文・・・について

    質問させていただきます。 if文の中のif文の記述の仕方について質問があります。 例えば if ( x > 0 ){ a = b+c; if ( a > 1) d = e+f; ・・・1 if ( a < 1) d = e-f; ・・・2 if ( a = 1 ) d = 1-g; ・・・3 } h = d + i; aが1より大きい場合は、1の処理を、aが1より小さい場合は2の処理を、aが1と同じであった場合、3の処理をして最終的に、h = d + i;の式の d に代入して h を求めたいと思っているのですが、うまくゆきません。 if文の中のif文の記述はどのようにすればよいのでしょうか? よろしければご教示よろしくお願いします。

  • 新たに挑戦。エジプトの分数問題

    エジプトの分数問題が、解けたような気がするので、再度挑戦します。  e*P(e,f,g,h)=4*e*f*g*h - h - f (1)  Q(a,b,c)=4*a*b*c - b - 4c (2) わかりやすくするため、式を変形する。P()=Q()=24*n+1とする。 4*e*f*g - {(24*n+1)*e+f}/h=L=1 ? (4*b - 1)*a - {(6*n+b)/c}=K=1 ? 適当に値を代入して、L=1またはK=1に になれば、等式が成り立ち、解が存在するだろう。 なので、L≠1の時に、K=1とすることができることを証明する。 それにより、(1)の式の解がないとき、(2)の式に必ず解が見つけることが できることを表す。  4*e*f*g - {(24*n+1)*e+f}/h=L e=4*b - 1,f=1 とおくと  4*(4*b - 1)*g - 1{(24*n+1)*(4*b - 1)+1}/h=L  4*(4*b -1)*g={(24*n+1)*(4*b - 1)+1}/h+L h=4m とおく  4*(4*b - 1)*g={(24*n*b+b - 6*n)/m}+L ここで式を変形してKを代入する。 (4*b - 1)*a - (6*n+b)/c=K (4*b - 1)*a={(6*n+b)/c}+K a=4d とおくと  4*(4*b - 1)*d={(6*n+b)/c}+K 4*(4*b - 1)=[{(24*n*b+b - 6*n)/m}+L]/g =[{(6*n+b)/c}+K]/d nがどんなときにもK=1になることから、  {(24*d*b)/(g*m)} - {(6*d)/(g*m)} - {6/c}=0 (3)  {(d*b)/(g*m)}+{(d*L)/g} - {b/c}=K (4) (3)より  {(4*d*b)/(g*m)}={d/(g*m)}+{1/c} {d/(g*m)}*(4*b - 1)={1/c} {d/(g*m)}=[1/{c*(4*b - 1)}] (4)より  {d*(b+L*m)/(g*m)} - {b/c}=K [(b+L*m)/{c*(4*b - 1)}] - {b/c}=K ここで、Lが1以外の時にK=1となる数 b、cが存在する、たとえば、 L*m=(b+c)*(4*b-1)-b とおけば {(b+c)/c}-{b/c}=1=K となり、K=1とすることができる。 少し厳密性がありません。いい加減な証明です。

  • エクセルの数式、どうつくればいい?長文ですみません!

    A1セルに原料名、B1&C1には原産地(販売会社別に区別され、同じ場合もあり)、D1・E1にはB1原産地の単価が(販売方法の違いで単価は2列に区別)、同じくF1・G1にC1原産地の単価が表示されています。H1には各原料の統一基準となる原産地がそれぞれ設定されており、B1・C1がともにH1と同じ産地ならD1~G1の4つの中から最小単価を導きたいです。(ゼロは除いて計算したい)B1・C1のどちらかがH1と一致する場合には一致する方の産地の単価、つまりD1~E1かあるいはF1~G1どちらか2列の中で最小単価を求めたいです。(除:ゼロ)さらに、B1・C1のどちらもH1と一致しないときはB1・C1の総販売額がI1(B1に対応)・J1(C1に対応)に表示されているので総販売額の高い方の産地の単価で(D1~E1あるいはF1~G1)最小値を求めたいです。(除:ゼロ)どんな式にすればいいのか数式エラーで壁に激突中です。数式にお詳しい方、お知恵を貸してください。お願いいたします!

専門家に質問してみよう