諸量の計算プログラム 2
A4 の方眼紙 (section paper) で 角度や 寸法比の値を得たいときに
必要な数値を 整数/整数 に変換する BASIC のプログラムをお伝えします。
以下をコピーし 実行してください。
!! コピー開始
OPTION ANGLE DEGREES
! a00 に 数値入力
! 対辺/底辺 に変換したい角度は 90度より小さく 5度より大きい
! 整数/整数 に変換したい数値は 5 以下
! 上記の範囲で 計算ができます
!*************************
LET a00= 20.9410204722436
!*************************
LET a01=a00 ! 入力値加工
LET a02=250 ! 長いほうの罫線表示巾の寸法
LET a03=180 ! 短いほうの罫線表示巾の寸法
LET a04=1 ! 誤差初期値
LET a05=0 ! 小さい方の整数
LET a06=0 ! 大きい方の整数
LET a07=0 ! swap サイン
IF a01>5 THEN ! 角度の変換か数値の変換かの判定
IF a01>45 THEN ! 45度より大の場合 余角で計算
LET a01=90-a01
LET a07=1 ! swap サイン on
END IF
LET a01=TAN(a01)
END IF
IF a01>1 THEN ! すべて 1より 小で計算
LET a01=1/a01
LET a07=1 ! swap サイン on
END IF
FOR x=a02 TO 1 STEP -1
LET a08=ROUND(x*a01,0) ! 短いほうの整数値
IF a08>180 THEN GOTO 100 ! 短いほうが 180以下になるまで計算しない
LET a09=ABS(a01-a08/x) ! 誤差の絶対値
IF a09< a04 THEN ! 誤差が最小か判定
LET a04=a09 ! 最小誤差値を入れる
LET a05=a08 ! 短いほうの数を入れる
LET a06=x ! 長いほうの数を入れる
END IF
100
NEXT x
PRINT a00 ! 入力値表示
IF a07=1 THEN SWAP a05,a06 ! swap処理
PRINT a05;"/";a06 ! 演算値表示
END
! コピー終わり
2013年1月14日

