放物線で遊ぶ

 投稿者:GAIメール  投稿日:2008年12月18日(木)07時21分0秒
  掲載してもらったプログラムを参考にさせて頂いて、私なりにやって見たかった現象を作ってみました。
感覚として、計算尺で計算しているような雰囲気が出ます。
12345679×63
などの計算をお楽しみください。



10 DEF f(x)=x^2 !関数y=x^2
20 DEF g(x,a,b)=(f(b)-f(a))/(b-a)*(x-a)+f(a) !点Aと点Bを通る直線
30 INPUT PROMPT "2数を選ぶ":x,y
40 LET x1=INT(LOG10(x))
50 LET y1=INT(LOG10(y))
60 LET x=x/10^x1
70 LET y=y/10^y1
80 LET a=x
90 LET b=y
100 IF a>b THEN LET t=a ELSE LET t=b
110 SET bitmap SIZE 300,600
120 SET WINDOW -(t+1),t+1,-2,(t+1)^2+5 !表示領域
130 DRAW grid !座標
140 FOR x=-10 TO 10 STEP 0.2 !放物線y=x^2を描く
150    PLOT LINES: x,f(x);
160 NEXT x
170 PLOT LINES
180 SUB ten(x,y,s$)
190    PLOT TEXT ,AT x+0.4,y: s$
200    DRAW disk WITH SCALE(0.2)*SHIFT(x,y)
210 END SUB
220 CALL ten(-a,f(-a),"A")
230 CALL ten(b,f(b),"B")
240 FOR x=-10 TO 10 STEP 0.2 !直線を描く
250    PLOT LINES: x,g(x,-a,b);
260 NEXT x
270 PLOT LINES
280 CALL ten(0,g(0,-a,b),"P") !y切片
290 PRINT "Y切片の値";g(0,-a,b);
300 PRINT "計算結果"; a*b*10^(x1+y1) !検算
310 DEF h(a,b)=(f(b)-f(a))/(b-a) !傾き
320 !PRINT h(a,b), a+b
330 END
 

戻る