新しく発言する  EXIT  インデックスへ

fornext制御


  for next 制御 島村1243 2008/03/20 07:39:07 
for next 制御  返事を書く  ノートメニュー
島村1243 <bjllmpcujp> 2008/03/20 07:39:07
qをパラメータとして円を描く下記プログラムで
FOR q=1.5 TO 1.0 STEP -0.1
の動作について2点お尋ねです。

質問(1)
このループでは1.5 , 1.4 ... ,1.0までqが変化するので円が6個描かれると
思っていたのですが、5個しか描かれません。For Next制御は、終端値を越えると
ループから抜け出るのでは無いでしょうか?

質問(2)
FOR q=1.5 TO 1.0 STEP -0.1 を
FOR q=1.0 TO 1.5 STEP 0.1 に変えると、描かれる円の大きさが小さくなって
しまいます。プログラムロジック上は変わらない筈だと思うのですが。

十進BASICのバージョンは
Win版:708
Linux版:6.4.5
でいずれも動作は同じです。よろしくお願い致します。

!-------- プログラムの内容 -------------
OPTION ARITHMETIC complex

LET j=SQR(-1)

SET WINDOW -4,10,-4,10

draw grid



! a相地絡時のb相過電圧特性図を描く

SET LINE COLOR "black"

FOR q=1.5 TO 1.0 STEP -0.1 !過電圧係数をセット

LET kc=3*1.732/2/(3-q^2)

LET mc=-(3-4*q^2)/2/(3-q^2)

LET R=3*q/(3-q^2)

For i=0 to 360

LET rad=pi/180*i

LET m=R*COS(RAD)+mc !m値=X0/x1をセット

LET k=R*SIN(RAD)+kc !k値=R0/x1をセット

PLOT LINES:m,k;

NEXT i

PLOT LINES

NEXT q



! a相地絡時のc相過電圧特性図を描く

! b相地絡特性はa相地絡の特性円を、(-2,0)点を中心に-60°

! 回転させたものに等しい事を利用。

SET LINE COLOR "red"

FOR q=1.5 TO 1.0 STEP -0.1

LET kc=3*1.732/2/(3-q^2)

LET mc=-(3-4*q^2)/2/(3-q^2)

LET R=3*q/(3-q^2)

For i=0 to 360

LET RAD=PI/180*i

LET m=R*COS(RAD)+mc

LET k=R*sin(rad)+kc

LET z=m+2+j*k

LET z1=z*EXP(-j*PI/3)

LET z2=z1-2

PLOT LINES:Re(z2),Im(z2);

NEXT i

PLOT LINES

NEXT q

! 有効接地系の条件範囲を表示。

SET LINE COLOR "green"

PLOT LINES:0,0;3,0

PLOT LINES:3.0,0;3.0,1.0

PLOT LINES:3.0,1.0;0,1

PLOT LINES:0,1;0,0

END
  複素数は2進小数(倍精度)の組で表現します。... 白石 和夫 2008/03/20 08:29:21 
   ├有効数字の数を変えて表示してみると, 白石 和夫 2008/03/20 08:49:52 
   └分かりました。 島村1243 2008/03/20 08:57:18 
    └FORq=1.5TO1.0-.001STEP-0.1!過電圧係数をセ... SECOND 2008/03/20 12:29:23 
     └なるほど! 島村1243 2008/03/21 22:35:36 

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。