諸量の計算プログラム 2

BASIC 多面体 諸量

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
! コピー終わり

« »