アルゴリズムの実装方法

このQ&Aのポイント
  • アルゴリズムの実装方法について知りたいです。
  • A.PaとB.Pbのデータが一致しない場合にうまく処理を制御する方法を教えてください。
  • アルゴリズムの組み方についてアドバイスがほしいです。
回答を見る
  • ベストアンサー

アルゴリズムの実装方法

OPEN cA; OPEN cB; <<outer_loop>> LOOP FETCH cA INTO vA; EXIT outer_loop WHEN cA%NOTFOUND; <<inner_loop>> LOOP FETCH cB INTO vB; EXIT inner_loop WHEN cB%NOTFOUND; IF vA.Pa != vB.Pb THEN --11桁で検索 vB.Pb := SUBSTR( vB.Pb, 1, 11 ); IF vB.b != vA.Pa THEN -- ログ出力 ELSE EXIT inner_loop; END IF; ELSE EXIT inner_loop; END IF; END LOOP inner_loop; 処理exec; END LOOP outer_loop; テーブルのデータはA,Bとも1件だけ作ってやっているのですが、 A.Pa = B.Pbのデータではうまく行きますが、 A.Pa != B.Pbの場合だと、処理execが行われてはいけないのに、 execが行われてしまいます。 うまく動作させるにはどういうアルゴリズムを組めばよいでしょうか? どうぞ宜しくお願いいたします。

noname#30874
noname#30874
  • Oracle
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • zarbon
  • ベストアンサー率63% (21/33)
回答No.1

OPEN cA; FETCH cA INTO vA; WHILE cA%FOUND LOOP OPEN cB; FETCH cB INTO vB; WHILE cB%FOUND LOOP … FETCH cB INTO vB; END LOOP CLOSE cB; 処理exec; FETCH cA INTO vA; END LOOP; CLOSE cA; という感じでどうでしょう。

noname#30874
質問者

お礼

ご回答ありがとうございます。 がんばってみます。

関連するQ&A

  • ベルヌーイの定理で解けますか?速度を求めたいです。

    流体力学の教科書も手元にないので、 うろ覚えで流体の計算をしています。 垂直にパイプが立てられていて、 A点からB点へ水をポンプで圧送しているとします。 B点はA点より6m上です。 A点 圧力:Pa = 大気圧100kPa+ポンプによる加圧180kPa 速度:Va とします B点 圧力:Pb = 大気圧100kPa+ポンプによる加圧180kPa-6m×g(約10m2/s) ←自信ないです 速度:Vb とします。 このときのB点での速度Vbを求めたいです!! 流体は水なので、密度ρ=1とすると、 ベルヌーイの定理より、 1/2Va^2+Pa=1/2Vb^2+Pb 速度Vbを求めるためには、 1/2Va^2+280,000=1/2Vb^2+220,000 が成り立ち、 Vb=SQRT(Va^2+30,000) で間違いないでしょうか?? 勉強からかなりの年月離れてますので、 自信がないです。 お解りの方おられましたら、 是非合ってるかお教えください。 間違えている部分があれば、 どこが間違ってるかも教えていただけると非常に助かります。 よろしくお願いします。

  • VBA DO~LOOPのネスト方法について

    エクセルマクロの構文でDO~LOOPのネストを行った際に、EXIT DOで飛び出した後のLOOP条件が無効になるようです。どなたかご教授願います。 Sub TEST() y = 1 Do Do If y = 2 Then Exit Do End If y = y + 1 Loop Loop While y = 3 End Sub

  • MATLABについての質問です。

    大学の研究していてMATLABでわからないところがあるのでぜひ教えて頂けたらと思っています。 よろしくお願い致します。 現在任意の多角形障害物を設置し,それらを回避する折れ線経路を全部求めるプログラムを作っているのですがどのように作ればいいかわかりません。 今は始点と終点を決めてクリックした所をつないでいくプログラムができたのですが問題文に沿ってできていません。 このプログラム後はダイクストラの方法で最短折れ線経路を求めるので それを含めてよろしくお願い致します。 clear all; close all; clc; init=1; final=1000; figure(1) for loop=init:final [x,y] = ginput A=[x,y] if 0<=x(:,:)&x(:,:)<=1&0<=y(:,:)&y(:,:)<=1 B{loop} =A else break end end figure(2) for C=init:loop-1 B{C} fill(B{C}(:,1),B{C}(:,2),'g');hold on axis([0,1,0,1]); end [x,y] = ginput pb=[x,y] figure(3) for C=init:loop-1 fill(B{C}(:,1),B{C}(:,2),'g');hold on axis([0,1,0,1]); plot(pb(:,1),pb(:,2),'o');hold on end for D=init:final [x,y] = ginput if 0<=x(:,:)&x(:,:)<=1&0<=y(:,:)&y(:,:)<=1 plot([pb(1,1),x',pb(2,1)],[pb(1,2),y',pb(2,2)],'-*');hold on node{D}=[[pb(1,1),x',pb(2,1)],[pb(1,2),y',pb(2,2)]] B{D} = sum(node{D}) else break end end for E=init:D-1 B{E} end

  • SGP配管の仕様

    お願いします。 学校などでのSGP配管の仕様を教えてください。 給水で(20A位)SGP-PA,PB,PDもしくはSGP-VA,VB,VDと有るかと思いますが使い分けがわかりません。 ご存知の方お願いします。

  • Do whileとFor文の脱出処理について

    はじめまして。 VBについて素朴な質問なのですが For…Nextから抜けるにはExit for を使いDo…Loopから抜けるにはExit Doを使用しますが以下の場合はFor文の中でExit doを使用するのは可能なのでしょうか? Do while(条件) for i=1 to 12 if 条件 then exit do end if 処理1 next i 処理2 loop 本来ならfor文の中ではExit forを使用しますがfor文はDo while文 の中に含まれていますのでExit doでも出れると思ったのですがそうではないのでしょうか?ご回答よろしくお願いします。

  • わかる方いますか?

    経済学についての問題でわからないのがありまして質問させていただきます。 ベルトラン福占市場の場合、企業A、Bは同じ質の財を生産販売している。企業Aと企業Bの費用関数はCa(q)=Cb(q)=3q、財の市場需要曲線はp=-q+10で企業A、B同時に販売価格をpa、pbを決定する。 (pa,pb)=(3,4)はベルトランナッシュ均衡になるか という問題です わかる方いますか?

  • Verilogで動的なモジュールを作る方法

    Verilogで動的なモジュールを作る方法 たとえば、どのような周波数であっても 1秒のウェイトをする回路を作りたいと思っています。 試験的に、 `define time (1) //1S `define tCK (20) //周期20nS module wait( input iCLOCK, input inRESET, output reg oWAITEND); localparam = loop_end (1/(`time * 1000000000))/`tCK; reg [31 : 0] loop; always@(posedge iCLOCK or negedge inRESET)begin if(inRESET == 1'b0)begin loop <= 32'h00000000; end else begin if(loop < loop_end)begin loop <= loop + 32'h00000001; oWAITEND <= 1'b0; end else begin oWAITEND <= 1'b0; loop <= loop; end end end //always endmodule というものを作って、defineの値(このdefineは別ヘッダファイルからincludeしてやりました)を変えてやれば目的の周波数で動き、目的のウェイト作るモジュールををソース自体を変えずに得られると思いましたが、 シミュレーションではうまくいったものの、QuartusIIではうまく論理合成されませんでした。 もし、他に方法がありましたら教えていただけないでしょうか? よろしくおねがいします。

  • Exit Doで二つのloopを抜けるには?

    Do Do For Each If 値 = "" Then Exit Do End If Next Loop Until 条件1 Loop Until 条件2 のようなネストをした場合、Exit Doでloopを抜ける時、条件1と条件2のどちらに移動するのですか? もし条件1に移動する場合、条件2を抜けたいのならどうすればいいのでしょうか? Exit Do Do みたいな事がしたいです。

  • 断熱変化の問題なのですが、解りません

    理想気体1molを1~3の可逆サイクルで状態変化させる時 1)P=0.1Mpa T=300k(状態A)をT=600Kの状態B)まで加熱する 2)状態B)からdT=0で圧力Pc(状態C)まで圧縮する 3)状態C)から断熱的に最初の状態Aまで膨張させる 以上の条件で 比熱容量の比r=1.4とすると云う条件で 状態Cの圧力を求めよと言う問題なのですが 解説には B→C Pc X Vc= Pb X Vb C→A Pc X Vc^r=Pa X Va^r Pc^r-1=Pb^r/Pa^r から Pc=≪ (0.2/01)^1.4≫^1/(1.4-1) =(264)^2.5=1.13 X1Mpa と説明されているのですが B→C Pc X Vc= Pb X Vb C→A Pc X Vc^r=Pa X Va^r Pc^r-1=Pb^r/Pa^r この部分のPc^r-1のr-1が どこから来て居るのかが良く解りません 一応 T2/T1=(V1/V2)~r-1==(P2/P1)^=(r-1)/r より PV^rまでは、何とか辿り着きましたが よろしくお願いします

  • 熱力学に関して

    高校のときに、温度が等しい同一の気体を混ぜたときの圧力の求め方は教わりました。 しかし、もし温度の異なる同一の気体を混合したとき、温度や圧力はどうなるのでしょうか? つまり、(Pa,Va,Ta)と(Pb,Vb,Tb)の気体を混合して、体積Vの場合の圧力と温度を求めるにはどうすればいいか、ということです。求める術はあるのでしょうか・・・?