Notitle

ゲームのレビュー、PCについての雑記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

ActiveBasicについて 3回目(一応最終回)

プログラム完成しました。

一応ですけどね。

前回おかしかったのは

RIとLIが逆になってました。

よくあるミスですが気付きにくいミスです。

こういうのには気をつけないと・・・・

それとLongで宣言していたのをすべてDoubleに変更しました。

なんとなくです。なんとなく・・・・


それではプログラムは続きから、どうぞ。

前回も書きましたがコピーは絶対に禁止です!

レポート等には使わないでください。

あくまで参考にする程度です。

それではプログラムをどうぞ

'クロソイド曲線 コピー禁止!!!
#console
'宣言
Dim A As Double
Dim R As Double
Dim S As Double
Dim L As Double
Dim X As Double
Dim Y As Double

'度宣言
Dim I As Double
Dim ID As Double
Dim IM As Double
Dim IS As Double

'τ宣言
Dim TAU As Double
Dim TAUB As Double
Dim TD As Double
Dim TM As Double
Dim TS As Double

'σ宣言
Dim SG As Double
Dim SGB As Double
Dim SGD As Double
Dim SGM As Double
Dim SGS As Double

'α宣言
Dim ALB As Double
Dim ALD As Double
Dim ALM As Double
Dim ALS As Double

'計算式用
Dim DR As Double
Dim W As Double
Dim XM As Double
Dim D As Double
Dim AL As Double
Dim LC As Double
Dim CL As Double
Dim TU As Double
Dim TUU As Double
Dim TUB As Double
Dim TK As Double
Dim TL As Double
Dim SO As Double
'Loop文用
Dim KUI As Double
Dim LI As Double
Dim XI As Double
Dim YI As Double
Dim RI As Double

'入力部分
input "出席番号",S
input "L=",L
input "杭の間隔",KUI

'度の計算
ID=45+Fix(S/10)
IM=S
IS=60-S

'計算部分その1
R=200+2*S
A=Sqr(R*L)
I=(ID+IM/60+IS/3600)*3.141592/180

'τの計算
TAU=L/(2*R)
TAUB=TAU*180/3.141592
TD=Fix(TAUB)
TM=Fix((TAUB-TD)*60)
TS=Fix(((TAUB-TD)*60-TM)*60)

'計算部分その2
X=L*(1-L^2/(40*R^2)+L^4/(3456*R^4))
Y=L^2/(6*R)*(1-L^2/(40*R^2)+L^4/(7040*R^4))
DR=Y+R*Cos(TAU)-R
W=(R+DR)*Tan(I/2)
XM=X-R*Sin(TAU)
TK=Y*(1/Sin(TAU))
TL=X-Y*(1/Tan(TAU))

'σの計算
SG=Atn(Y/X)
SGB=SG*180/3.141592
SGD=Fix(SGB)
SGM=Fix((SGB-SGD)*60)
SGS=Fix(((SGB-SGD)*60-SGM)*60)

'αの計算
AL=I-2*TAU
ALB=AL*180/3.141592
ALD=Fix(ALB)
ALM=Fix((ALB-ALD)*60)
ALS=Fix(((ALB-ALD)*60-ALM)*60)

'諸計算
D=XM+W
LC=R*AL
CL=2*L+LC
SO=Y*(1/Sin(SG))


'出力
PRINT USING "R= ###.###";R
PRINT USING "A= ###.###";A
PRINT USING "X= ###.###";X
PRINT USING "Y= ###.###";Y
PRINT USING "⊿R= ###.###";DR
PRINT USING "W= ###.###";W
PRINT USING "Xm= ###.###";XM
PRINT USING "Tk= ###.###";TK
PRINT USING "TL= ###.###";TL
PRINT USING "LC= ###.###";LC
PRINT USING "CL= ###.###";CL
PRINT "α";ALD;"°";ALM;"′";ALS;"″"
PRINT "τ";TD;"°";TM;"′";TS;"″"
PRINT "σ";SGD;"°";SGM;"′";SGS;"″"
PRINT USING "Tk=###.###";TK
PRINT USING "Tl=###.###";TL
PRINT USING "So=###.###";SO
'追加距離
TU=856-D
TUU=Fix(TU/KUI)
TUB=TU-TUU*20
LI=KUI-TUB


'表
do
if LI>100 Then LI=L
RI=A^2/LI
XI=LI*(1-LI^2/(40.*RI^2)+LI^4/(3456.*RI^4))
YI=LI^2/(6.*RI)*(1-LI^2/(40.*RI^2)+LI^4/(7040.*RI^4))
PRINT USING "L=###.### R=######.## X=######.### Y=######.###";LI,RI,XI,YI
if LI>=L then exit do
LI=LI+KUI
loop

Sleep(30000)
END

#consoleとSleepはActiveBasicのVer4を使うならつけてください。

ver2なら必要ないですよ。

あとはテキスト出力とかつけれたらいいかなと思います。

便利になるといいです。
スポンサーサイト
  1. 2009/02/05(木) 00:41:33|
  2. 学校
  3. | トラックバック:0
  4. | コメント:0
<<更新について | ホーム | ActiveBasicについて 2回目>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://nomame0delete.blog33.fc2.com/tb.php/22-ec1ef982
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

e3jp

Author:e3jp
たまにしか更新しませんがいろいろと書いていけたらと思っています。

リンクフリーです

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

東方人形劇 (5)
製品紹介? (2)
PC (8)
未分類 (10)
学校 (3)
雑記 (3)
ギター (2)
txt (1)

アクセスカウンター

アクセスカウンター

現在の閲覧者数
:

フリーエリア

Firefox ブラウザ無料ダウンロード

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QRコード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。