測量計算 プログラム SVY326JP.DOC Soft 付き Document はじめに   この soft は Freeware として公開します。  いかなる損害に関しても著作者は責任をおわないものとします。   Bug fix は時間のある限り行いますが重大なる bug で無いかぎり  Pocket computer という物の性格上あまり無意味な Version up は行いませんが、  御意見、御希望、御感想などが御座いましたらメールにてお知らせください。  また bug fix された方は状況を説明して下さい。   この Document は Soft 付き Document です。   公開 Version は Ver. 3.25 です。   その他本 Document に記載されていない件に関しては、  他の Freeware に準ずるものとします。 著作権は保留します。     2008.05.01 e-mail:khf00050@yahoo.co.jp  【 はじめに 〜 配付条件 】  フリーウェアとして配付します。以下の条件を付加するものとします。  1:著作権は保留しますから、著作権表示は変更しない事。  2:オリジナルの配付構成を変えない事。特にこのドキュメントは必ず添付する事。 3:重大なバグが発見された時はすみやかに報告を行ない、バグフィックスが行な われた時は、転載者は責任をもってその最新版を再配付すること。 4:改造は自由ですが、改造したものを SVY としては再配付しない事。 5:再配付を行なうにあたって金銭を授受しない事。但し実費の徴収は妨げません。 6:パソコン通信以外で掲載・配付を行なう場合は、事前に必ず連絡する事。 7:使用に際してなんらかのトラブルが発生した場合、その賠償を要求しない事。 8:本文に記載がない項目については一般的なフリーウェアと同等であるとします。 File name SVY325JP.DOC の由来  . . . . .. . .   Survey Version 3.26 Japan から採用しました。 History   1982-1984 年に Indonesia の Saguling Dam 建設にかかわって  作りはじめた soft です。  当時はまだ pocket computer もでたばかりでとりあえず  CASIO FX-702P と fx-3600P をもって Indonesia に行ったのでした。  現地で CASIO FX-502P と FX-602P に出合いさそっく コーディング したのでした。  Indonesia では日本国内の測量の座標系とは異なり X,Y が逆でした。  さらに容量の関係から SHARP PC-1500 と現地人用に SHARP PC-1401 とに  移植して当時は使っていました。  当時の Indonesia の状況から察すると現在もまだ使われているものと考えています。   日本に帰ってきてからは別にこれらの soft は必要ないかなと思っていましたが  SHARP PC-E500 が出たので日本国内用( DEGREE ) を暇を見つけては作っていました。  しかし使いごごちがもう一つだと考えていた時に CASIO FX-603P が発売に  なったので両方とも書き換え、現在に至っています。     1993.10.31 Tossy khf00050@yahoo.co.jp Version Up SVY311JN ---> SVY312JN     1993.11.30 Tossy khf00050@yahoo.co.jp Version Up SVY311JN ---> SVY313JN Document の訂正     1994.01.31 Tossy khf00050@yahoo.co.jp Version Up SVY311JN , SVY312JN , SVY313JN ---> SVY315JN     1994.03.15 Tossy khf00050@yahoo.co.jp Version Up SVY315JN ---> SVY317JN  13. 結合 トラバース 、閉合 トラバース 計算  100 点         結合と閉合は、入力 データ によって自動判断 開放 トラバース の追加 17. 単曲線線形の計算  ( シンプルカーブ 3 )      Bug Fix 27. 隅切り計算の追加 28. 平行移動付 4 点交点計算、平行移動付 3 点 1 方向角交点計算 平行移動付 2 点 2 方向角交点計算の追加 29. 連続平行移動交点計算の追加 30. 連続逆計算  31. 連続内角計算 JW_CAD による一覧表(一覧図)の追加     1995.03.17 Tossy khf00050@yahoo.co.jp Version Up SVY317JN ---> SVY319JN 32. 平行移動付直線と円との交点計算 33. 円周上の 3 既知点より円の中心座標計算     1996.03.19 Tossy khf00050@yahoo.co.jp Version Up SVY319JN ---> SVY321JN 13. 結合 トラバース 、閉合 トラバース 計算 100 点 Bug Fix 1997.03.21 Tossy khf00050@yahoo.co.jp Version Up SVY321JN ---> SVY323JP 15. 単曲線要素の計算       Bug Fix      1998.03.23 Tossy khf00050@yahoo.co.jp SVY323JP Special 2000 Document の訂正 Special 2000 仕様 2000.04.07 Tossy khf00050@yahoo.co.jp SVY323JP Special 2002 TDS111D Bug Fix 版、TSD120T-Version 公開 2002.05.01 Tossy khf00050@yahoo.co.jp Version Up SVY323JP ---> SVY325JP 34. ヘロン面積計算(2002.6.20 公開) --- 追加  CASIO FX-603P TDS_Survey 603P111D.111 D-version --- 追加  CASIO FX-603P TDS_Survey 603P120T.120 T-version --- 追加     2005.03.25 e-mail:khf00050@yahoo.co.jp 36. 2内角交点計算(2006.8.7 作成) --- 追加 37. 2円交点計算 (2006.8.7 作成) --- 追加     2008.05.01 e-mail:khf00050@yahoo.co.jp How to use.   ふだんの日本国内で測量作業をされている方はおそらく  CASIO FX-603P で十分だと考えていますし、使い易いです。  長期出張など特別な事情があるかたは SHARP PC-E500 ( PC-E550 , PC-E650 )  をおすすめしますが、そんなに使う場面があるかどうか疑問です。  もっとも コーディング しやすいのは SHARP の方です。 Indonesia ( DEGREE , GRAD ) 版   現在のところ Indonesia ( DEGREE , GRAD ) 版 の SHARP PC-1401 版を  ほとんどそのままの状態で PC-E500 に移植したものはこの Soft に含まれていますが  間違いをふせぐ意味であえて PC-E500 用にはしていません。  使用されるかたは十分注意してください。X,Y が日本国内とは逆になりますから。   また CASIO FX-602P 用でよければ Indonesia ( DEGREE , GRAD ) 版も  所有しておりますが今回はこの Soft からははずしました。  使用説明書を作っていないと言うのが一つの理由で、間違いを犯さない  と言うのも理由の一つですし、FX-603P が出ているので、  FX-603P 用に書き換えなければならないと言うのも一つの理由です。 Print out 版   この Soft を作りはじめた当初より本格的な計算作業は パソコン で行うべきだとの  考え方により Print out 版は作っていません。  Soft 的にも重くなるし、現場でも Hard 的に重くなるからです。   Print out 版を作られる方はぜひ御一報をお願いします。 Soft の特異点の使用の注意点   座標 X=0.000 Y=0.000 標高 EL=0.000 GH=0.000  などについては Program で Control していますので使用の際は十分注意して下さい。  なお使用説明書には書かれていない特別な使用方法をここで説明します。      放射 トラバース 計算        現場では杭打ちの場合 トランシット を方向角で set していてそのまま    放射 トラバース 点を打って方向角での座標計算が必要になる場合も    出てくるかと考えられますが、その場合は下記の様に計算して下さい。         器械点 X1,Y1 には通常どうり器械点座標を入力します。     後視点 X2,Y2 には X2=0.000 Y2=0.000 と入力して     観測角 (この場合内角ではなく方向角)HA を入力して下さい。     放射 トラバース 点の座標が出力されます。 以上の使用方法は Program としては以下の考え方により作られた    Soft の応用です。     器械点 X1,Y1 には通常どうり器械点座標を入力します。     後視点 X2 に X2=後視点への出射方向角を入力して            Y2=0.000 と入力して     観測角 (この場合方向角ではなく内角)HA を入力して     放射 トラバース 点の座標出力を求めるものです。     この考え方は他の器械点と後視点との座標入力するものは     すべて実行できます。   また 距離 L 器械高 IH 観測高 MH 鉛直角 V スタジア S1 および 内角 HA は  + ( プラス ) 使用と  - ( マイナス ) 使用とがありますので説明書を熟読の上使用して下さい。   また BS FS EL L HA R IP 点についても 0 ( ゼロ ) 入力や - ( マイナス ) 入力は  特別な意味を持っていますので説明書を熟読の上使用して下さい。 【特記事項】 CASIO FX-603P   すべてのプログラムで国家座標は使えません。 「4 点交点計算」     X 軸 及び Y 軸への交点計算は計算エラーとなります。     通常は計算結果は出てきませんが無理矢理ダミーを桁下に 0.0001     などを加えたり引いたりして入力した場合は計算結果の座標は     +- 1 mm の誤差で交点座標が出てきます。     現場で確認した例を以下にあげておきます。    (1)       1. X1=- 660.000 Y1=- 200.000 2. X2=- 660.000 Y2=- 300.000 3. X3=- 872.292 Y3=- 110.012 4. X4=- 642.077 Y4=- 252.038 これを入力すると計算機はエラーと出てストップします。       1. X1=- 660.0001 Y1=- 200.000 2. X2=- 660.000 Y2=- 300.000 3. X3=- 872.292 Y3=- 110.012 4. X4=- 642.077 Y4=- 252.038         この様なダミー座標を入力すると結果が         X =- 660.000 Y =- 240.982 と出てきますが         交点座標です。(誤差 1 mm)    (2)       (1)の座標データを逆にして入力する場合 1. X1=- 872.292 Y1=- 110.012 2. X2=- 642.077 Y2=- 252.038       3. X3=- 660.000 Y3=- 200.000 4. X4=- 660.000 Y4=- 300.000 と入力した場合はエラーと出てストップします。 1. X1=- 872.292 Y1=- 110.012 2. X2=- 642.077 Y2=- 252.038       3. X3=- 660.0001 Y3=- 200.000 4. X4=- 660.000 Y4=- 300.000         この様なダミー座標を入力すると結果が         X =- 660.000 Y =- 240.981 と出てきますが これは交点座標です。    より正確な交点計算の値を求めたい場合は    (1)と(2)との平均値を求めて下さい。 SHARP PC-E500 「4 点交点計算」 及び 「平行移動付き 4 点交点計算」    X 軸 及び Y 軸への交点計算は計算エラーとなります。     通常は計算結果は出てきませんが無理矢理ダミーを桁下に 0.0001    などを加えたり引いたりして入力した場合は計算結果の座標が    出てきますが正解ではない場合がありますのでご注意下さい。     現場で確認した例を以下にあげておきます。     ダミーの座標データを入力されて使用される場合はご注意願います。    (1)       1. X1=-142,660.000 Y1=- 39,200.000 2. X2=-142,660.000 Y2=- 39,300.000 3. X3=-142,872.292 Y3=- 39,110.012 4. X4=-142,642.077 Y4=- 39,252.038 これを入力すると計算機はエラーと出てストップします。       1. X1=-142,660.0001 Y1=- 39,200.000 2. X2=-142,660.000 Y2=- 39,300.000 3. X3=-142,872.292 Y3=- 39,110.012 4. X4=-142,642.077 Y4=- 39,252.038         この様なダミー座標を入力すると結果が         X =-142,660.000 Y =- 39,200.000 と出てきますが         交点座標ではありません。    (2)       (1)の座標データを逆にして入力する場合 1. X1=-142,872.292 Y1=- 39,110.012 2. X2=-142,642.077 Y2=- 39,252.038       3. X3=-142,660.000 Y3=- 39,200.000 4. X4=-142,660.000 Y4=- 39,300.000 と入力した場合はエラーと出てストップします。 1. X1=-142,872.292 Y1=- 39,110.012 2. X2=-142,642.077 Y2=- 39,252.038       3. X3=-142,660.0001 Y3=- 39,200.000 4. X4=-142,660.000 Y4=- 39,300.000         この様なダミー座標を入力すると結果が         X =-142,660.000 Y =- 39,240.981 と出てきますが これは交点座標です。    また「2 点 2 方向角計算」及び「3 点 1 方向角計算」    に付きましても方向角が 0゚0'0" , 90゚0'0" , 180゚0'0" , 270゚0'0"    の時には同様なエラーが出てきまして計算機がストップします。    この様な場合にダミーの方向角 0゚0'0.1" , 90゚0'0.1" , 180゚0'0.1" , 270゚0'0.1"などを使用して無理矢理交点座標を求める場合は    出てきた結果は保証されませんのでご注意ください。    それでもなお結果を使用される場合はかならず「三角計算」付属の    「2 点 2 方向角交点計算」を使用して計算して結果を確かめて下さい。    なお「平行移動付き 4 点交点計算」付属の「2 点 2 方向角交点計算」と    「三角計算」付属の「2 点 2 方向角交点計算」との計算式は異なっておりますが    万が一特異点での計算も考えられ両方の計算結果が    同じになっても交点座標ではない場合も考えられますのでそのような場合には    市販の soft ware で確認されますようお願い申し上げます。 おわび   SHARP PC-E500 の soft については使用説明書などから PC-E550 , PC-E650  上でも実行可能だと考えられますが PC-E550 , PC-E650 での実行確認は  しておりません。 おれい   SHARP PC-E500 の場合 パソコン <---> ポケコン 通信には ポケコン 側で  通信 soft を必要としますが、シャープ 株式会社に確認したところ  SHARP CE-140T RS-232C レベルコンバータ の説明書付属の通信 ソフト を公開しても  差し支えないとの事でしたのでこの soft に添付させていただきました。  1993.10.14 電話にて確認済み。   また フリーソフトウエアー である、      LHA   アーカイバ     WTERM  通信 ソフト    NEED   Editor      JW_CAD CAD FD Filer  を使用させていただきました。  作者の皆様ありがとうございました。  この場をおかりしてお礼を申し上げます。     1998.03.23 Tossy KHF00050@nifty.ne.jp 「パソコン ---> ポケコン の down load の方法」  1. CASIO FX-603P 必要品      1. CASIO FX-603P 2. CASIO FA-6 ( RS-232C ) 3. REVERSE CABLE ( パーソナルコンピューター と CASIO FA-6 との接続 ケーブル ) 4. MS-DOS シィステムディスク に 本 soft ファイル 名 603P603J.315 が入ったもの FX-603P 側で MODE X (SHIFT) RSLOAD SHIFT EXE として受信準備をして     パソコン 側で COPY A:603P603J.315 AUX[リターン] とすれば完了です。 パソコン 側は MS-DOS の Command line で 内部 Command COPY を使用します。     うまく down load 出来ない場合は 外部 Command COPYA を使用して下さい。 それでもうまく down load できない場合は FX-603P を ALL RESET して下さい。     FX-603P の通信条件は SPEED RS232C-0 1200 B8 PE S2 XON ですので     パソコン 側で SPEED RS232C-0 1200 B8 PE S2 XON を設定しておいてください。 2. SHARP PC-E500 必要品      1. SHARP PC-E500 ( PC-E550 , PC-E650 ) 2. SHARP CE-140T ( RS-232C ケーブル ) 3. MS-DOS シィステムディスク に 本 soft が入ったもの    1. 通信 Program の Input SHARP CE-140T 添付の 通信 Program か本 Soft 添付の    通信 Program を Manual で PC-E500 に Input して下さい。   2. 本 Soft の down load PC-E500 側で 上記の 通信 Program を機動させて DOWN LOAD として受信準備 をして     パソコン 側で COPY/B A:ファイル名 AUX[リターン]       とすれば完了です。 パソコン 側は MS-DOS の Command line で 内部 Command COPY を使用します。     うまく down load 出来ない場合は 外部 Command COPYA を使用して下さい。 それでもうまく down load できない場合は 通信 Program を Check して下さい。     PC-E500 の通信条件は SPEED RS232C-0 1200 B8 PN S1 XON ですので     パソコン 側で SPEED RS232C-0 1200 B8 PN S1 XON を設定しておいてください。 以上 PC-E500 に down load できたら PC-E500 には     File name " PROG. " として入っていますので適当な File name を     付けて RAM FILE 'F' などに save して続けて他の必要な soft を     down load して下さい。 3. SHARP PC-E500 通信 Program List 10 ' ツウシンヨウ プログラム 20 CLS :POKE &HBFD35,0,255,0,80 30 PRINT "***** ツウシンヨウ プログラム *****" 40 PRINT "ホンタイRAM(E:)ニ RAMファイルヲ INIT E:16K メイレイデ 16KB カクホ シテクダサイ !":BEEP 1 50 INPUT "OK(Y)?";I$:IF I$<>"Y"THEN 50 60 CLS :PRINT "アップロ-ド(ソウシン) =[U]" 70 PRINT "ダウンロ-ド(ジュシン)=[D]":BEEP 1 80 INPUT I$ 90 IF (I$<>"U")AND (I$<>"D")THEN 60 100 IF I$="U"THEN "U" 110 GOTO "D" 120 "U":OPEN "COM:1200,N,8,1,A,L,&1A,X,S" 130 OPEN "E:PROG."FOR INPUT AS #2 140 PRINT "パソコン/ワ-プロ ヲ ダウンロ-ド(ジュシン)ジョウタイ ニ シテクダサイ !" 150 INPUT "OK(Y)?";I$:IF I$<>"Y"THEN 150 160 PRINT "--- ソウシンチュウ ---":BEEP 1 170 A$=INPUT $(1,2) 180 IF EOF (2)THEN PRINT #1,CHR$ &H1A:CLEAR :PRINT :PRINT "*** カンリョウ シマシタ ***":GOTO "END" 190 PRINT A$; 200 PRINT #1,A$; 210 GOTO 170 220 "D":OPEN "COM:1200,N,8,1,A,L,&1A,X,S" 230 OPEN "E:PROG."FOR OUTPUT AS #2 240 PRINT "パソコン/ワ-プロ ヨリ ソウシンシテ クダサイ !" 250 A$=INPUT $(1,1):PRINT "--- ジュシンチュウ ---":BEEP 1:GOTO 270 260 A$=INPUT $(1,1) 270 IF (A$=CHR$ &H1A)OR (A$=CHR$ &H0C)THEN PRINT #1,CHR$ &H11:CLEAR :PRINT :PRINT "*** カンリョウ シマシタ ***":GOTO "LD" 280 PRINT A$; 290 PRINT #2,A$; 300 GOTO 260 310 "LD" 320 PRINT "ジュシン シタ プログラムヲ ヨビダシマスカ" 330 BEEP 2:INPUT "OK(Y)?";I$:IF I$<>"Y"THEN "END" 340 PRINT "ロ-ド シテイマス !!!" 350 POKE &HBFD35,2,223,4,80 360 KEY 0,"LOAD"+CHR$ 34+"E:PROG."+CHR$ 34+CHR$ 13 370 "END":BEEP 2:POKE &HBFD35,2,223,4,80:END     1998.03.23 Tossy KHF00050@nifty.ne.jp ワードプロセッサー の プログラミング への活用について  一太郎 dash 上での CASIO FX-603P の プログラミング  CASIO FX-603P には RS-232C を介して MS-DOS の TEXT ファイル に プログラム   を落とせるのでこの機能を利用すると 一太郎 dash 上で プログラム を編集   したり作成する事ができるし、フロッピィーディスク で プログラム 管理ができる。   必要品 1. パーソナルコンピューター      2. 一太郎 dash ( 一太郎 ) 3. CASIO FX-603P 4. CASIO FA-6 ( RS-232C ) 5. REVERSE CABLE ( パーソナルコンピューター と CASIO FA-6 との接続 ケーブル ) 6. MS-DOS シィステムディスク 7. フロッピィーディスク 操作方法 一太郎 dash 上で作成した プログラム を TEXT ( TXT 等 ) ファイル として フロッピィーディスク に落とす。この場合 一太郎 dash の ファイル ( 拡張子が JSW ) として フロッピィーディスク に落とすと CASIO FX-603P は、プログラム として    読み込めないので拡張子を JSW 以外の拡張子とする。 パーソナルコンピューター 側で MS-DOS シィステムディスク を立ちあげて SWITCH コマンド または SPEED コマンド で SPEED RS232C-0 1200 B8 PE S2 XON として パーソナルコンピューター と FX-603P の通信条件を適合させまた、パーソナルコンピューター を データ 通信できる状態にする。     一太郎 dash 上では、一太郎 の拡張子 ( JSW,JXW ) 以外の拡張子は 一太郎 dash 上では直接確認できませんが、MS-DOS の DIR コマンド で確認    するか、一太郎 dash 上で直接確認できるように拡張子を増やしておく。     FX-603P 側で MODE X (SHIFT) RSLOAD P0 EXE として受信準備をして     パソコン  側で COPY A:ファイル名 AUX リターン とすれば完了です。 この場合 FX-603P の P0 に プログラム が転送されます。 P0 に換えて P1 ~ P19 とすれば任意のところに転送されます。    この場合 プログラム 全部と データ がすべての時は、     FX-603P 側で MODE X (SHIFT) RSLOAD SHIFT EXE として受信準備をして     パソコン  側で COPY A:ファイル名 AUX リターン  とすれば完了です。    また逆の場合は、     パソコン  側で COPY AUX ファイル名 リターン として受信準備をして  FX-603P 側で MODE X (SHIFT) RSSAVE P0 EXE とすれば完了です。 この時 ファイル名 の拡張子を JSW としておけば 一太郎 dash 上で直接     ファイル を扱えますが、念のため JSW 以外の ファイル ( TXT 等 ) としておいて     おけば良いでしょう。 パーソナルコンピューター を データ 通信できる状態にすると言う事は、MS-DOS に   SWITCH.EXE か RSDRV.SYS がなければならないし、SPEED.EXE も存在しなければ   ならない。SPEED コマンド を実行する場合 CONFIG.SYS に DEVICE=RSDRV.SYS を組み込んでいなければならない。   また AUTOEXEC.BAT に SPEED RS232C-0 1200 B8 PE S2 XON を登録しておいた   場合 MS-DOS 起動時に自動的に SPEED RS232C-0 1200 B8 PE S2 XON が設定   されます。  CONFIG.SYS もAUTOEXEC.BAT も 一太郎 dash 上で編集できます。   つまり CONFIG.SYS も AUTOEXEC.BAT も MS-DOS の TEXT ファイル です。 ワードプロセッサー の プログラミング への活用について  一太郎 dash 上での SHARP PC-E500 の プログラミング  SHARP PC-E500 には RS-232C を介して MS-DOS の TEXT ファイル に プログラム   を落とせるのでこの機能を利用すると 一太郎 dash 上で プログラム を編集   したり作成する事ができるし、フロッピィーディスク で プログラム 管理ができる。   必要品 1. パーソナルコンピューター      2. 一太郎 dash ( 一太郎 ) 3. SHARP PC-E500 ( PC-E550 ) 4. SHARP CE-140T ( RS-232C ケーブル ) 5. MS-DOS シィステムディスク 6. フロッピィーディスク 操作方法 一太郎 dash 上で作成した プログラム を TEXT ( TXT 等 ) ファイル として フロッピィーディスク に落とす。この場合 一太郎 dash の ファイル ( 拡張子が JSW ) として フロッピィーディスク に落とすと SHARP PC-E500 は、プログラム として    読み込めないので拡張子を JSW 以外の拡張子とする。 パーソナルコンピューター 側で MS-DOS シィステムディスク を立ちあげて SWITCH コマンド または SPEED コマンド で SPEED RS232C-0 1200 B8 PN S1 XON として パーソナルコンピューター と PC-E500 の通信条件を適合させまた、パーソナルコンピューター を データ 通信できる状態にする。     一太郎 dash 上では、一太郎 の拡張子 ( JSW,JXW ) 以外の拡張子は 一太郎 dash 上では直接確認できませんが、MS-DOS の DIR コマンド で確認    するか、一太郎 dash 上で直接確認できるように拡張子を増やしておく。     PC-E500 側で 通信用 プログラム で DOWN LOAD として受信準備をして     パソコン  側で COPY/B A:ファイル名 AUX リターン とすれば完了です。 この場合 PC-E500 の E: に プログラム が転送されます。 E: に換えて F:,X: とすれば任意のところに転送されます。    また逆の場合は、     パソコン  側で COPY AUX ファイル名/A リターン として受信準備をして     PC-E500 側で 通信用 プログラム で UP LOAD として送信すれば完了です。 この時 ファイル名 の拡張子を JSW としておけば 一太郎 dash 上で直接     ファイル を扱えますが、念のため JSW 以外の ファイル ( TXT 等 ) としておいて     おけば良いでしょう。 パーソナルコンピューター を データ 通信できる状態にすると言う事は、MS-DOS に   SWITCH.EXE か RSDRV.SYS がなければならないし、SPEED.EXE も存在しなけれ   ばならない。SPEED コマンド を実行する場合 CONFIG.SYS に DEVICE=RSDRV.SYS を組み込んでいなければならない。   また AUTOEXEC.BAT に SPEED RS232C-0 1200 B8 PN S1 XON を登録しておいた   場合 MS-DOS 起動時に自動的に SPEED RS232C-0 1200 B8 PN S1 XON が設定   されます。  CONFIG.SYS もAUTOEXEC.BAT も 一太郎 dash 上で編集できます。   つまり CONFIG.SYS も AUTOEXEC.BAT も MS-DOS の TEXT ファイル です。 一太郎 dash 上で直接確認できるように拡張子を増やしておくと JSW,JXW 以外の TEXT ファイル も編集できるようになります。     1998.03.23 Tossy KHF00050@nifty.ne.jp TO:QZY07016@nifty.ne.jp SUB:【ポケコンとパソコン間の送受信】 FROM:Tossy ダゴシ さん、こんにちは。 【ポケコンとパソコン間のプログラム送受信】をお送りします。 会議室にでも書き込んでください。 1.通信条件の設定 【パソコン】 @ Windows95 のハイパーターミナルを起動します。 スタート -> プログラム -> ハイパーターミナル -> Hypertrm.exe の順で選 択してください。 A 「接続の設定」ウインドウが現れるので、「名前(N)」に "FX-603P"と入力し て OK をクリックします。 B「電話番号」ウインドウが現れるので、「接続方法(N)」の欄を "COM1へダイ レクト"を選択し、 OK をクリックします。 注)ケーブルを COM1 以外に接続している場合(COM2,COM3,COM4など)は、 そちらを選択してください。 C「ポートの設定」ウインドウが現れるので、次のように値を変更し、OK をク リックしてください。 FX-603P PC-E500 ビット/秒(B) 4800 1200 データビット(D) 7 8 パリティ(P) 偶数 なし ストップビット(S) 2 1 フロー制御(F) Xon/Xoff Xon/Xoff D「新しい接続-ハイパーターミナル」の画面が現れるので、「ファイル(F)」 メニューから「名前を付けて保存(A)」を選択します。 E「保存(S)」をクリックします。 注)次回からは"FX-603P"と名前がついたファイルをダブルクリックすれば、 ハイパーターミナルが起動します。 このファイルには上記の設定内容も保存されていますので設定は不要です。 【FX-603P】 POKE 命令を使用して通信条件を設定します。 以下の操作のうち、Aは特に慎重に行ってください 操作を誤るとメモリー破壊を起こすことがあります。 @MODE -> - -> SHIFT -> BIN(LOG)の順に押します。 ↑ 注)これは - (マイナス)の記号を入力 A10100010 -> 2ndF -> POKE(GOTO) -> 0892 の順に押します。 BMODE -> 1 の順に押します。 パソコンから FX-603P へのプログラム送信 T.受信側(FX-603P)の準備をする。 @ MODE -> X の順に押します。 A SHIFT -> RSLOAD(FST) -> SHIFT -> EXE の順に押します。 B FX-603P の画面が受信直前の状態に戻ったら、MODE -> 1 の順に押します。 U.送信する(パソコン) @ "FX-603P"のファイルをダブルクリックし、ハイパーターミナルを起動し ます。 A「転送(T)」メニューから「テキストファイルの送信(T)」を選択します。 B送信するファイルを選択し、「開く(O)」をクリックします。 CFX-603P の画面が受信直前の状態に戻ったら、「ファイル(F)」メニュー から「ハイパーターミナルの終了」を選択します。 FX-603P から パソコン へのプログラム転送 T.受信側(パソコン)の準備をする。 @ハイパーターミナルの「転送(T)」メニューから「テキストのキャプチャ (C)」を選択します。 A保存する時のファイル名を入力し OK をクリックします。 注)ファイル名の拡張子は「.TXT」をおすすめします。 U.送信する(FX-603P) @ MODE -> X の順に押します。 A SHIFT -> RSSAVE(BST) -> SHIFT -> EXE の順に押します。 B FX-603P の画面が受信直前の状態に戻ったら、MODE -> 1 の順に押します。 V.ハイパーターミナルを終了する @「ファイル(F)」メニューから「ハイパーターミナルの終了(X)」を選択 します。 注)「現在、接続されています。切断してもよろしいですか?」と表示さ れた場合は「はい(Y)」 をクリックしてください。 99/10/21(木) 11:44 Tossy(KHF00050)     1999.11.27 Tossy KHF00050@nifty.ne.jp TDS_S ( Toshio , Dagoshi , Suwa - Survey ) が 1999.06.01 に発表されました のでソース・リストをこの Document に添付させていただきました。 添付にあたりご快諾いただきました ダゴシ さん 諏訪 さんには感謝いたします。 以下 TDS_S100 の READ.ME より転載 ------------------------------------------------------------------------ CASIO FX-603P 測量計算プログラム TDS_Survey について はじめに 『CASIO FX-603P 測量計算プログラム TDS_Survey』(以下 TDS_S)は、 KHF00050 Toshio 氏、FZZ00634 諏訪 和善 氏 と QZY07016 ダゴシ の所有す る各プログラム群を QZY07016 ダゴシ が再編集し FCIVIL 製測量ソフトとし て登録したものです。 TDS_S はフリーソフトウェアとして公開します、よって著作権は各作者が保 留します。 また基本的に転載は禁止としますが(著作者が複数の為)、転載希望の方は その旨ご連絡下さい。 ご利用の際いかなる損害に関しても著作者は責任をおわないものとします。 御意見、御希望、御感想、Bug 報告等、御座いましたら、FCIVIL 17番会議室 【測】にて承っております。 『TDS_Survey』 の由来 KHF00050 Toshio 氏 の "T" とダゴシの "D" に FZZ00634 諏訪 和善 氏 の "S" と Survey = 測量から採用しました。 使用方法 1,FA-6(RS-232C インターフェース)をお持ちでない場合。 PROG603P.TXT の各プログラムを FX-603P に直接打ち込みます。 2,FA-6(RS-232C インターフェース)をお持ちの場合。 FA-6 のマニュアルと本体マニュアルに従い PROG603P.TXT を転送して下さい。 特異点と注意事項 データ入力において、角度入力は、125.3456(実際の125°34′56″)のように 入力して下さい。 座標 X=0.000 Y=0.000 標高 EL=0.000 GH=0.000 などについては Program で Control していますので使用の際は十分注意して下さい。 その他にも 0 ( ゼロ ) 入力や - ( マイナス ) 入力は特別な意味を持っています ので説明書を熟読の上使用して下さい。 全収録プログラム 【P 0】 (ST・杭打内角)逆計算 【P 1】 放射・開放トラバース計算 【P 2】 結合・閉合トラバース計算 【P 3】 2辺狭角 【P 4】 垂線長計算 【P 5】 中間点・幅杭計算 【P 6】 2円交点計算 【P 7】 2内角交点計算 【P 8】 平行移動付2直線の交点計算 【P 9】 平行移動付直線と円交点計算 【P10】 鉛直角補正計算 【P11】 単曲線中間点計算 【P12】 座標面積計算 【P13】 間接水準1(S,V)標高・座標標高 【P14】 間接水準2(h,l)標高・座標標高 【P15】 間接水準3(S,V)逆計算 【P16】 間接水準4(d,h)逆計算 【P17】 結合トラバース本体(サブルーチン) 【P18】 閉合トラバース本体(サブルーチン) 【P19】 結合・閉合用表示サブルーチン 著作権 以下の12本のプログラムに関しては KHF00050 Toshio 氏 著作のもと QZY07016 ダゴシ がメモリーレジスタの変更と表示方法の統一編集を行いました。 【P 0】 (ST・杭打内角)逆計算 【P 1】 放射・開放トラバース計算 【P 4】 垂線長計算 【P 5】 中間点・幅杭計算 【P 6】 2円交点計算 【P 7】 2内角交点計算 【P10】 鉛直角補正計算 【P11】 単曲線中間点計算 【P13】 間接水準1(S,V)標高・座標標高 【P14】 間接水準2(h,l)標高・座標標高 【P15】 間接水準3(S,V)逆計算 【P16】 間接水準4(d,h)逆計算 以下の4本のプログラムに関しては FZZ00634 諏訪 和善 氏 著作のもと QZY07016 ダゴシ が表示方法の統一編集を行いました。 【P 2】 結合・閉合トラバース計算 【P17】 結合トラバース本体(サブルーチン) 【P18】 閉合トラバース本体(サブルーチン) 【P19】 結合・閉合用表示サブルーチン 以下の4本のプログラムに関しては QZY07016 ダゴシ の著作権とします。 【P 3】 2辺狭角 【P 8】 平行移動付2直線の交点計算 【P 9】 平行移動付直線と円交点計算 【P12】 座標面積計算 最後に 各プログラムは個人での使用であるかぎり自由に改変して結構です。 ただし、これを公に公開されるときは著作権者の承諾を得て下さい。 公開にあたりご協力いただいた KHF00050 Toshio 氏、FZZ00634 諏訪 和善 氏 には感謝いたします。 ------------------------------------------------ ////// ダゴシ(吉田 徹) NIFTY-Serve ID:QZY07016 ////// ~~~~~------------------------------------------------ ~~~~~ All Program List P0 AC DEG "REVERSE ANGLE" HLT MR24 "X1?" HLT Min24 MR25 "Y1?" HLT Min25 LBL0 MR11 "X2?" HLT Min11 Min39 MR12 "Y2?" HLT Min12 X=0 GOTO2 MR11 - MR24 ) R>P ( MR12 - MR25 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF GOTO4 LBL3 AC " REVERSE NEXT" HLT X=0 GOTO0 LBL4 MR15 "X3?" HLT Min15 MR16 "Y3?" HLT Min16 MR15 - MR24 ) R>P ( MR16 - MR25 = Min00 X<>Y - MR22 = LBL5 X>=0 GOTO6 + 360 = GOTO5 LBL6 MinF "ANG" SDMS HLT MR00 FIX3 "L" HLT GOTO4 P1 AC DEG "OPEN TRAVERSEn" HLT "AZmode[RTA]X2=AZ" PAUSE MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO2 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL3 MR32 "OPEN[RTA](-) HA?" HLT Min32 ABS Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min00 MR30 "S,V[RTA](-) L?" HLT Min30 X>=0 GOTO5 ABS Min41 90 Min39 "V?" HLT Min38 ABS Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min5F COS * MR41 = Min3F MR5F SIN * MR41 = Min4F Min30 MR38 X>=0 GOTO4 MR3F Min30 LBL4 MR30 FIX3 "L" HLT LBL5 MR00 + MRF - 360 Min5F = LBL6 X>=0 GOTO7 + MR5F = GOTO6 LBL7 Min5F "AZ" SDMS HLT MR5F COS * MR30 = Min3F MR5F SIN * MR30 = Min4F + MR12 = Min25 MR3F + MR11 = Min24 FIX3 "X" HLT MR25 FIX3 "Y" HLT MR32 X>=0 GOTO3 MR24 Min11 MR25 Min12 MR5F - 180 = MinF GOTO3 P2 AC DEG "TRAVERSE" PAUSE LBL3 3 MinF "1:FIXED,2:CLOSED" 0 HLT X=0 GOTO3 X>=F GOTO3 +/- = X>=0 GOTO3 Min00 IND GOTO0 LBL1 GSBP17 GOTO3 LBL2 GSBP18 GOTO3 P3 AC DEG "2 HEN KYOUKAKU" HLT MR34 "a?" HLT Min34 MR36 "A?" HLT Min36 ABS Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 LBL0 MR35 "b?" HLT Min35 MR37 "B?" HLT Min37 ABS Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min23 ( MR34 X^2 + MR35 X^2 - 2 * MR34 * MR35 * ( MR22 - MR23 ) COS ) SQR = Min20 FIX3 "L" HLT GOTO0 P4 AC DEG "LINE OFFSET" HLT MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO2 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL3 MR15 "X3?" HLT Min15 MR16 "Y3?" HLT Min16 MR15 - MR11 ) R>P ( MR16 - MR12 = Min00 X<>Y - MR22 = LBL4 X>=0 GOTO5 + 360 = GOTO4 LBL5 MinF SIN * MR00 = Min3F MRF COS * MR00 = Min4F MR3F FIX3 "(L)- h +(R)" HLT MR4F FIX3 "(1[RTA]2) L" HLT GOTO3 P5 AC DEG "INTER POINT" HLT "AZmode[RTA]X2=AZ" PAUSE MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO2 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL3 MR11 Min1F MR12 Min2F MR22 MinF AC "(1[RTA]2) L?" HLT Min30 MRF - 360 Min5F = LBL4 X>=0 GOTO5 + MR5F = GOTO4 LBL5 Min5F "AZ" SDMS HLT MR5F COS * MR30 = Min3F MR5F SIN * MR30 = Min4F + MR2F = Min25 MR3F + MR1F = Min24 FIX3 "X" HLT MR25 FIX3 "Y" HLT MR24 Min1F MR25 Min2F MRF + 90 = MinF LBL6 AC "(L)- : +(R)" HLT Min30 X=0 GOTO3 MRF - 360 Min5F = LBL7 X>=0 GOTO8 + MR5F = GOTO7 LBL8 Min5F "AZ" SDMS HLT MR5F COS * MR30 = Min3F MR5F SIN * MR30 = Min4F + MR2F = Min25 MR3F + MR1F = Min24 FIX3 "X" HLT MR25 FIX3 "Y" HLT GOTO6 P6 AC DEG "2 LENGTH KOUTEN" HLT MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO2 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL3 MR34 "a?" HLT Min30 Min34 MR35 "b?" HLT Min35 ( ( MR34 X^2 + MR20 X^2 - MR35 X^2 ) / ( 2 * MR34 * MR20 ) ) ACS Min38 + MR22 = MinF - 360 Min5F = LBL4 X>=0 GOTO5 + MR5F = GOTO4 LBL5 Min5F "AZ" SDMS HLT MR5F COS * MR30 = Min3F MR5F SIN * MR30 = Min4F + MR12 = Min25 MR3F + MR11 = Min24 FIX3 "X (Right)" HLT MR25 FIX3 "Y (Right)" HLT GOTO3 P7 AC DEG "2 ANGLE KOUTEN" HLT MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO2 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL3 MR36 "A?" HLT Min36 Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min34 + MR22 = MinF MR37 "B?" HLT Min37 Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min35 +/- + 180 = X>=0 GOTO4 + 180 = Min35 LBL4 MR35 +/- + 180 - MR34 = Min38 MR20 * MR35 SIN / MR38 SIN = Min30 MRF - 360 Min5F = LBL5 X>=0 GOTO6 + MR5F = GOTO5 LBL6 Min5F "AZ" SDMS HLT MR5F COS * MR30 = Min3F MR5F SIN * MR30 = Min4F + MR12 = Min25 MR3F + MR11 = Min24 FIX3 "X (Right)" HLT MR25 FIX3 "Y (Right)" HLT GOTO3 P8 AC DEG "PA 2 LINE KOUTEN" HLT "AZmode[RTA]X2,4=AZ" PAUSE MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO1 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO0 + 360 = LBL0 Min22 MinF "AZ1" SDMS HLT MR20 FIX3 "L1" HLT GOTO2 LBL1 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL2 AC "(L)- W1 +(R)?" HLT Min30 LBL3 MR15 "X3?" HLT Min15 MR16 "Y3?" HLT Min16 MR17 "X4?" HLT Min17 Min39 MR18 "Y4?" HLT Min18 X=0 GOTO5 MR17 - MR15 ) R>P ( MR18 - MR16 = Min21 Min00 X<>Y X>=0 GOTO4 + 360 = LBL4 Min23 MinF "AZ2" SDMS HLT MR21 FIX3 "L2" HLT GOTO6 LBL5 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min23 MinF LBL6 AC "(L)- W2 +(R)?" HLT Min31 MR11 + MR30 * ( MR22 + 90 ) COS = Min45 MR12 + MR30 * ( MR22 + 90 ) SIN = Min46 MR13 + MR30 * ( MR22 + 90 ) COS = Min47 MR14 + MR30 * ( MR22 + 90 ) SIN = Min48 MR15 + MR31 * ( MR23 + 90 ) COS = Min49 MR16 + MR31 * ( MR23 + 90 ) SIN = Min50 MR17 + MR31 * ( MR23 + 90 ) COS = Min51 MR18 + MR31 * ( MR23 + 90 ) SIN = Min52 MR14 X=0 GOTO7 MR18 X=0 GOTO8 ( MR48 - MR46 ) / ( MR47 - MR45 ) = Min53 ( MR52 - MR50 ) / ( MR51 - MR49 ) = Min54 ( MR54 * MR49 - MR53 * MR45 + MR46 - MR50 ) / ( MR54 - MR53 ) = Min24 FIX3 "X" HLT MR53 * ( MR24 - MR45 ) + MR46 = Min25 FIX3 "Y" HLT GOTO3 LBL7 MR18 X=0 GOTO9 MR22 TAN = Min53 ( MR52 - MR50 ) / ( MR51 - MR49 ) = Min54 ( MR53 * ( MR45 - MR49 ) - ( MR46 - MR50 ) ) / ( MR53 - MR54 ) = Min4F MR49 + MR4F = Min24 FIX3 "X" HLT MR50 + MR4F * MR54 = Min25 FIX3 "Y" HLT GOTO3 LBL8 MR23 TAN = Min53 ( MR48 - MR46 ) / ( MR47 - MR45 ) = Min54 ( MR53 * ( MR49 - MR45 ) - ( MR50 - MR46 ) ) / ( MR53 - MR54 ) = Min4F MR45 + MR4F = Min24 FIX3 "X" HLT MR46 + MR4F * MR54 = Min25 FIX3 "Y" HLT GOTO3 LBL9 MR45 + 1000 * MR22 COS = Min47 MR46 + 1000 * MR22 SIN = Min48 MR49 + 1000 * MR23 COS = Min51 MR50 + 1000 * MR23 SIN = Min52 ( MR48 - MR46 ) / ( MR47 - MR45 ) = Min53 ( MR52 - MR50 ) / ( MR51 - MR49 ) = Min54 ( MR54 * MR49 - MR53 * MR45 + MR46 - MR50 ) / ( MR54 - MR53 ) = Min24 FIX3 "X" HLT MR53 * ( MR24 - MR45 ) + MR46 = Min25 FIX3 "Y" HLT GOTO3 P9 AC DEG "PA LINE [MUL] CIRCLE" HLT "AZmode[RTA]X2=AZ" PAUSE MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO1 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO0 + 360 = LBL0 Min22 MinF "AZ1" SDMS HLT MR20 FIX3 "L1" HLT GOTO2 LBL1 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL2 AC "(L)- W1 +(R)?" HLT Min30 MR11 + MR30 * ( MR22 + 90 ) COS = Min45 MR12 + MR30 * ( MR22 + 90 ) SIN = Min46 MR13 + MR30 * ( MR22 + 90 ) COS = Min47 MR14 + MR30 * ( MR22 + 90 ) SIN = Min48 LBL3 MR15 "RX?" HLT Min15 MR16 "RY?" HLT Min16 MR34 "R?" HLT Min34 MR15 - MR45 ) R>P ( MR16 - MR46 = Min21 Min00 X<>Y X>=0 GOTO4 + 360 = LBL4 Min23 MR23 - MR22 = Min23 X>=0 GOTO5 + 360 = LBL5 Min23 MR21 * MR23 COS = Min30 MR21 * MR23 SIN = Min35 ( MR34 X^2 - MR35 X^2 ) SQR = Min31 MR45 + ( MR30 - MR31 ) * MR22 COS = Min49 FIX3 "X1" HLT MR46 + ( MR30 - MR31 ) * MR22 SIN = Min50 FIX3 "Y1" HLT MR45 + ( MR30 + MR31 ) * MR22 COS = Min51 FIX3 "X2" HLT MR46 + ( MR30 + MR31 ) * MR22 SIN = Min52 FIX3 "Y2" HLT GOTO3 P10 AC DEG "VERTICAL" HLT LBL1 MR36 "Vr?" HLT Min36 Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min34 MR32 "Vl?" HLT Min32 Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min35 - MR34 = X>=0 GOTO2 MR34 Min5F MR35 Min34 MR5F Min35 LBL2 MR34 + MR35 ) "T" SDMS HLT - 360 = "e" SDMS HLT MR34 - MR35 = Min38 X>=0 GOTO3 + 360 = Min38 LBL3 "Vr-Vl" SDMS HLT / 2 = "Z" SDMS HLT +/- + 90 = Min38 "V" SDMS HLT GOTO1 P11 AC DEG "SIMPLE CURVE" HLT MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO2 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL3 MR32 "(L)- R +(R)" HLT Min32 MR20 / 2 / MR32 ) ACS + MR22 = Min38 COS * MR32 = Min3F MR38 SIN * MR32 = Min4F + MR12 = Min2F Min25 MR3F + MR11 = Min1F Min24 FIX3 "RX" HLT MR25 FIX3 "RY" HLT LBL4 MR34 "CL?" HLT Min34 X=0 GOTO3 * 180 / PI / MR32 = Min00 + MR38 - 180 = MinF COS * MR32 = Min3F MRF SIN * MR32 = Min4F + MR2F = Min25 MR3F + MR1F = Min24 FIX3 "X" HLT MR25 FIX3 "Y" HLT GOTO4 P12 LBL0 AC DEG "ZAHYO MENSEKI" HLT 1 Min00 0 Min2F LBL1 "Tensuu(3-)?" MR1F HLT INT Min1F - 1 = X=0 GOTO1 MR1F - 2 = X=0 GOTO1 MR1F +/- = X>=0 GOTO1 "X1?" MR55 HLT Min55 "Y1?" MR56 HLT Min56 Min3F "X2?" 0 HLT Min57 "Y2?" 0 HLT Min58 2 Min00 LBL2 1 M+00 "X[AR00]?" 0 HLT Min59 "Y[AR00]?" 0 HLT Min60 ( MR55 - MR57 ) * ( MR60 - MR3F ) = M+2F MR58 Min3F MR59 Min57 MR60 Min58 MR1F - MR00 - 1 = X>=0 GOTO2 MR56 Min60 ( MR55 - MR57 ) * ( MR60 - MR3F ) = M+2F MR2F ABS FIX7 "2S" HLT / 2 = FIX7 "S" HLT GOTO0 P13 AC DEG "HIGH 1 ( S,V )" HLT MR42 "EL?" HLT Min42 MR43 "POINT[RTA](-) IH?" HLT Min43 X>=0 GOTO3 MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO2 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL3 MR44 "T.P[RTA](-) MH?" HLT Min44 MR41 "S?" HLT ABS Min41 MR38 "V?" HLT Min38 ABS Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min5F COS * MR41 = Min3F MR5F SIN * MR41 = Min4F Min30 MR38 X>=0 GOTO4 MR3F Min30 LBL4 MR30 FIX3 "L" HLT MR38 X>=0 GOTO5 MR4F Min3F LBL5 MR3F + MR43 ABS - MR44 ABS + MR42 = Min36 FIX3 "GH" HLT MR43 X>=0 GOTO8 MR32 "HA?" HLT Min32 ABS Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = + MRF - 360 Min5F = LBL6 X>=0 GOTO7 + MR5F = GOTO6 LBL7 Min5F "AZ" SDMS HLT MR5F COS * MR30 = Min3F MR5F SIN * MR30 = Min4F + MR12 = Min25 MR3F + MR11 = Min24 FIX3 "X" HLT MR25 FIX3 "Y" HLT MR44 X>=0 GOTO3 MR24 Min11 MR25 Min12 MR5F - 180 = MinF LBL8 MR44 X>=0 GOTO3 MR36 Min42 MR43 "IH?" HLT Min43 GOTO3 P14 AC DEG "HIGH 2 ( h,l )" HLT MR42 "EL?" HLT Min42 MR43 "POINT[RTA](-) IH?" HLT Min43 X>=0 GOTO3 MR11 "X1?" HLT Min11 MR12 "Y1?" HLT Min12 MR13 "X2?" HLT Min13 Min39 MR14 "Y2?" HLT Min14 X=0 GOTO2 MR13 - MR11 ) R>P ( MR14 - MR12 = Min20 Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min22 MinF "AZ" SDMS HLT MR20 FIX3 "L" HLT GOTO3 LBL2 MR39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min22 MinF LBL3 MR44 "T.P[RTA](-) MH?" HLT Min44 MR1F "dh?" HLT Min1F MR43 X>=0 GOTO4 MR2F "dL?" HLT Min2F LBL4 MR1F + MR43 ABS - MR44 ABS + MR42 = Min36 FIX3 "GH" HLT MR43 X>=0 GOTO7 MR32 "HA?" HLT Min32 ABS Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = + MRF - 360 Min5F = LBL5 X>=0 GOTO6 + MR5F = GOTO5 LBL6 Min5F "AZ" SDMS HLT MR5F COS * MR2F = Min3F MR5F SIN * MR2F = Min4F + MR12 = Min25 MR3F + MR11 = Min24 FIX3 "X" HLT MR25 FIX3 "Y" HLT MR44 X>=0 GOTO3 MR24 Min11 MR25 Min12 MR5F - 180 = MinF LBL7 MR44 X>=0 GOTO3 MR36 Min42 MR43 "POINT[RTA](-) IH?" HLT Min43 GOTO3 P15 LBL1 AC DEG "HIGH 3 ( S,V )" HLT MR42 "EL?" HLT Min42 MR43 "IH?" HLT Min43 MR44 "MH?" HLT Min44 MR41 "S?" HLT ABS Min41 MR38 "V?" HLT Min38 ABS Min39 INT + ( MR39 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min5F COS * MR41 = Min3F MR5F SIN * MR41 = Min4F Min30 MR38 X>=0 GOTO2 MR3F Min30 LBL2 MR30 FIX3 "L" HLT MR38 X>=0 GOTO3 MR4F Min3F LBL3 MR3F + MR43 ABS - MR44 ABS = Min1F +/- FIX3 "DH" HLT + MR42 = Min36 FIX3 "GH" HLT GOTO1 P16 LBL1 AC DEG "HIGH 4 ( dh )" HLT MR42 "EL?" HLT Min42 MR43 "IH?" HLT Min43 MR44 "MH?" HLT Min44 MR1F "dh?" HLT Min1F + MR43 ABS - MR44 ABS = Min2F +/- FIX3 "DH" HLT + MR42 = Min36 FIX3 "GH" HLT GOTO1 P17 AC DEG "FIXED TRAVERSE" HLT LBL1 21 MinF 0 Min93 Min94 Min95 "Tensuu(1-18)?" MR1F HLT INT Min1F + 2 = X>=F GOTO1 MinF MR1F +/- = X>=0 GOTO1 "Xa?" MR81 HLT Min81 Min3F "Ya?" MR82 HLT Min82 Min4F "AZa(In)?" MR83 HLT Min83 Min99 INT + ( MR99 FRAC * 2 10^X ) Min99 INT / 60 + MR99 FRAC / 36 = Min2F Min9F "Xb?" MR84 HLT Min84 Min6F "Yb?" MR85 HLT Min85 Min7F "AZb(Out)?" MR86 HLT Min86 Min99 INT + ( MR99 FRAC * 2 10^X ) Min99 INT / 60 + MR99 FRAC / 36 = Min5F - MR2F + 180 * ( MR1F + 1 ) = Min8F MR3F - MR6F = Min96 MR4F - MR7F = Min97 1 Min00 21 Min91 LBL2 "HA[AR00]?" 0 HLT Min99 INT + ( MR99 FRAC * 2 10^X ) Min99 INT / 60 + MR99 FRAC / 36 = IND Min00 M+92 "L[AR00]?" 0 HLT IND Min91 M+93 MR9F + IND MR00 - 540 = X>=0 GOTO3 + 360 = X>=0 GOTO3 + 360 = LBL3 Min9F COS = * IND MR91 +/- = M+94 MR9F SIN = * IND MR91 +/- = M+95 MR00 X>=F GOTO4 1 M+00 M+91 GOTO2 LBL4 MR5F - MR9F = Min98 SDMS +/- "dAZ" HLT 1 Min00 LBL5 MR98 / MRF = IND M+00 MR00 X>=F GOTO6 1 M+00 GOTO5 LBL6 1 Min00 21 Min91 MR2F Min9F 0 Min94 Min95 LBL7 MR9F + IND MR00 - 540 = X>=0 GOTO8 + 360 = X>=0 GOTO8 + 360 = LBL8 Min9F COS * IND MR91 +/- = M+94 MR9F SIN * IND MR91 +/- = M+95 MR00 X>=F GOTO9 1 M+00 M+91 GOTO7 LBL9 MR96 - MR94 = Min94 FIX3 "dX" HLT MR97 - MR95 = Min95 FIX3 "dY" HLT MR93 / ( ( MR94 X^2 + MR95 X^2 ) SQR ) = FIX0 "Seido 1/" HLT 1 Min00 21 Min91 MR2F Min9F MRF - 1 = MinF 0 Min6F Min7F MR94 +/- = Min94 MR95 +/- = Min95 GSBP19 GSBP2 P18 AC DEG "CLOSED TRAVERSE" HLT LBL1 21 MinF 0 Min93 Min94 Min95 "Tensuu(3-20)?" MR1F HLT INT Min1F - 1 = X=0 GOTO1 MR1F - 2 = X=0 GOTO1 MR1F X>=F GOTO1 MinF MR1F +/- = X>=0 GOTO1 "Xa?" MR87 HLT Min87 Min3F "Ya?" MR88 HLT Min88 Min4F "AZa(Out)?" MR89 HLT Min89 Min99 INT + ( MR99 FRAC * 2 10^X ) Min99 INT / 60 + MR99 FRAC / 36 = + 180 = Min2F Min9F 180 * ( MR1F - 2 ) = Min8F 1 Min00 21 Min91 LBL2 "HA[AR00]?" 0 HLT Min99 INT + ( MR99 FRAC * 2 10^X ) Min99 INT / 60 + MR99 FRAC / 36 = IND Min00 M+92 "L[AR00]?" 0 HLT IND Min91 M+93 MR9F + IND MR00 - 540 = X>=0 GOTO3 + 360 = X>=0 GOTO3 + 360 = LBL3 Min9F COS = * IND MR91 = M+94 MR9F SIN = * IND MR91 = M+95 MR00 X>=F GOTO4 1 M+00 M+91 GOTO2 LBL4 MR2F - MR9F = Min98 SDMS +/- "dAZ" HLT 1 Min00 LBL5 MR98 / MRF = IND M+00 MR00 X>=F GOTO6 1 M+00 GOTO5 LBL6 1 Min00 21 Min91 MR2F Min9F 0 Min94 Min95 LBL7 MR9F + IND MR00 - 540 = X>=0 GOTO8 + 360 = X>=0 GOTO8 + 360 = LBL8 Min9F COS * IND MR91 +/- = M+94 MR9F SIN * IND MR91 +/- = M+95 MR00 X>=F GOTO9 1 M+00 M+91 GOTO7 LBL9 MR94 +/- FIX3 "dX" HLT MR95 +/- FIX3 "dY" HLT MR93 / ( ( MR94 X^2 + MR95 X^2 ) SQR ) = FIX0 "Seido 1/" HLT 1 Min00 21 Min91 MR2F Min9F 0 Min6F Min7F GSBP19 GSBP2 P19 LBL1 MR9F + IND MR00 - 540 = X>=0 GOTO2 + 360 = X>=0 GOTO2 + 360 = LBL2 Min9F SDMS "AZ[AR00]" HLT MR9F COS * IND MR91 + MR94 * IND MR91 / MR93 = M+6F MR6F + MR3F = FIX3 "X[AR00]" HLT MR9F SIN * IND MR91 + MR95 * IND MR91 / MR93 = M+7F MR7F + MR4F = FIX3 "Y[AR00]" HLT MR00 X>=F GOTO3 1 M+00 M+91 GOTO1 "TDS-Survey (Toshio,Dagoshi,Suwa - Survey) 1999.06.01" LBL3 END Memory List ------------------------------------------------------------------------ 吉田 徹(ダゴシ) E-Mail qzy07016@nifty.ne.jp URL http://homepage1.nifty.com/dagoshi/index.html 諏訪 和善 E-mail FZZ00634@nifty.ne.jp     2000.04.07 Tossy khf00050@yahoo.co.jp CASIO FX-603P 測量計算 プログラム SHARP PC-E500 測量計算 プログラム ( PC-E550 ) ( PC-E650 ) SHARP PC-E500 水理計算 プログラム ( PC-E550 ) ( PC-E650 )     1998.03.23 Tossy khf00050@yahoo.co.jp CASIO FX-603P , SHARP PC-E500 測量計算 プログラム 水理計算 プログラム  測量計算 プログラム について   1. 日本国内用 X ・ ・ ・ ・ ・ ・ ・・・・・・・・・・・・・・・Y ・      日本国内では、North ( 北 ) を X 座標とする。   2. Indonesia 用 Y ・ ・ ・ ・ ・ ・ ・・・・・・・・・・・・・・・X ・      Indonesia 国内では、North ( 北 ) を Y 座標とする。   CASIO FX-603P ( 日本国内用 DEGREE )    P 0 : 逆 計 算 [ 放 射 逆 計 算 ]    P 1 : 放 射 トラバース 計 算 ・ 開 放 トラバース 計 算    P 2 : 中 間 点 計 算 ・ 巾 杭 計 算    P 3 : 4 点 交 点 計 算    P 4 : 杭 打 計 算 ・ 傾 斜 補 正 計 算    P 5 : 内 角 計 算    P 6 : 間接水準 1 ( S,V )[ 標高計算 ・ 座標標高計算 ]    P 7 : 単 曲 線 中 間 点 計 算    P 8 : 2 内 角 交 点 計 算   P 9 : 2 円 交 点 計 算    P10 : 垂 線 長 計 算 P11 : 鉛 直 角 計 算 ( 観測手簿 ) P12 : 気圧・温度 補 正 計 算  WILD 簡易計算 P13 : 投影・縮尺 補 正 計 算 ( 観測手簿 ) P14 : スタジア  計 算 1 [ 標高計算 ] P15 : スタジア  計 算 2 [ 座標標高計算 ] P16 : スタジア  計 算 3 [ REVERSE ]    P17 : 間接水準 2 ( h,l )[ 標高計算 ・ 座標標高計算 ]    P18 : 間接水準 3 ( S,V )[ REVERSE ]    P19 : 間接水準 4 ( dh ) [ REVERSE ]   SHARP PC-E500 ( 日本国内用 DEGREE ) 基本的には、CASIO FX-603P ( 日本国内用 DEGREE ) プログラム はすべて    入っています。    0. 逆計算    1. 放射状 トラバース 計算・ 開放 トラバース 計算 2. 中間点及び幅杭計算    3. 4 点交点計算    4. 杭打ち計算    5. 内角計算    6. 間接水準計算 1 ( 斜距離と鉛直角 ) XY 座標出力可 7. 間接水準計算 2 ( dl,dh ) XY 座標出力可    8. 三角計算    9. 垂線長の計算    10. 鉛直角の計算    ( 観測手簿 )   11. 光波測距儀で測った斜距離の気圧補正と温度補正 ( WILD ) 簡易計算  基準標高  0 m 基準気温 10゚C 12. 投影補正、縮尺補正 ( 観測手簿 )    13. 結合・閉合・開放・開放結合 トラバース 計算  100 点         結合と閉合と開放と開放結合は、入力 データ によって自動判断    14. 直接水準測量 ( 結合、閉合、開放、放射 ) 200 点    15. 単曲線の要素の計算  ( シンプルカーブ 1 ) 16. 単曲線の中間点の計算 ( シンプルカーブ 2 ) 17. 単曲線線形の計算  ( シンプルカーブ 3 )    18. 円の要素の計算    19. 間接水準計算 3 ( S,V ) 標高が未知の点に トランシット を据えた場合に標高既知の点を       測った時の未知点の間接水準計算    20. 間接水準計算 4 ( dh ) 標高が未知の点に トランシット を据えた場合に標高既知の点を       測った時の未知点の間接水準計算    21. スタジア 計算 1 ( 標高、距離 )    22. スタジア 計算 2 ( 標高、距離、XY 座標 )    23. スタジア 計算 3 標高が未知の点に トランシット を据えた場合に標高既知の点を        測った時の未知点の スタジア 計算    24. 座標面積計算 200 点    25. 三斜面積計算 200 点    26. 土量計算 ( 平均断面法 ) 100 点 27. 隅切り計算   28. 平行移動付 4 点交点計算、平行移動付 3 点 1 方向角交点計算 平行移動付 2 点 2 方向角交点計算   29. 連続平行移動交点計算 30. 連続逆計算    31. 連続内角計算 32. 平行移動付直線と円との交点計算    33. 円周上の 3 既知点より円の中心座標計算    34. ヘロン面積計算 200 点   SHARP PC-E500 ( Indonesia 国内用 ) DEGREE 一本の プログラム に 14 本の プログラム が入っているので RUN でスタートする。    A,S,D,F,G,H,J,K,L,Z,X,C,コンマ,スペース, から プログラム を選ぶ。      A: TR1 放射 トラバース 計算      S: TR2 放射 トラバース 計算、間接水準計算付き      D: TR3 開放 トラバース 計算      F: CR1 間接水準計算 G: CR2 間接水準計算で標高が未知の場合 H: V.LEN 垂線長の計算      J: VER 鉛直角の計算      K: W.A 簡易 気圧、気温補正 ( WILD ) L: D.CAL 投影補正      Z: STA 1 スタジア 計算 1 ・・・ 距離、標高      X: STA 2 スタジア 計算 2 ・・・ 距離、標高、XY 座標      C: STA 3 スタジア 計算 3 ・・・ スタジア 計算で標高が未知の場合 ,: INT 直線の中間点と幅杭計算       : REV 逆計算 ・・・ 2 点間の距離と方向角の計算 GRAD 一本の プログラム に 14 本の プログラム が入っているので RUN でスタートする。 内容は、DEGREE の プログラム と同じです。   ただし、この 2 つの プログラム は、SHARP PC-1401 用に開発したため  プログラム ミス を防ぐ意味で SHARP PC-E500 用には、改良していません。  しかし、SHARP PC-E500 でも使用可能であると考えられます。  最後の       : REV 逆計算 ・・・ 2 点間の距離と方向角の計算 は、スペース です。   SHARP PC-E500 下水道設計 プログラム 1. 下水道計算    2. 下水道推進工法の推進延長の計算    3. 下水道推進工法の支圧壁の安定計算    4. 下水道推進工法の薬液工法の薬液注入量の計算    5. クッター 公式による水理計算    6. マニング 公式による水理計算    7. ヘーゼン・ウイリアムズ 公式による水理計算    8. マニング 公式による水理計算 PART 2 1. I ( 勾配 ) による計算 2. V ( 流速 ) による計算 3. Q ( 流量 ) による計算        が一本の プログラム で処理出来ます。  以上ですが、測量用 プログラム については、一般の土木測量を対象としているので 大規模測量 ( 地球の球面が影響するもの ) については ポケコンプログラム による測量計 算法 山海堂 の ポケコンプログラム を参考にされれば良いものと考えています。 また、海外では DEGREE と GRAD 用がそれぞれ必要です。日本国内では、DEGREE 用だけでよいでしょう。つまり海外では DEGREE と GRAD の トランシット が混在して使用 されているのが普通であって日本国内ではその様な事はありません。 座標系についても同様だと考えています。  また、ポケット コンピューター を前提としているので、つまり主に現場における計算を考え ているので Print Out はしていません。 もし Print Out が必要であれば PRINT = LPRINT を加えれば良いでしょう。 よってこれらの プログラム はすべて FX-603P , PC-E500 のみで動きます。     1998.03.23 Tossy KHF00050@nifty.ne.jp 放射逆計算  2 点間の距離と方向角を放射状に求める計算   入力     X1,Y1 器械点座標     X2,Y2 後視点座標  出力     AZ 方向角 ( 器械点 ---> 後視点 ) 出射方向角     L 距離 放射状 トラバース 計算・ 開放 トラバース 計算   入力     X1,Y1 器械点座標     X2,Y2 後視点座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角            Y2 = 0 ( ゼロ ) とする。     HA 水平角 + ( プラス ) 入力 --- 放射 トラバース           - ( マイナス ) 入力 --- 開放 トラバース     L 距離           斜距離の場合 L を - ( マイナス ) 入力する。     V 鉛直角           水平が 90゜の場合  + ( プラス ) 入力           水平が 0゜の場合  - ( マイナス ) 入力  出力     AZ 方向角 ( 器械点 ---> 後視点 ) 出射方向角    L 距離 ( 器械点 ---- 後視点 ) X 求点の X 座標 Y 求点の Y 座標 直線の中間点及び幅杭計算   入力     X1,Y1 器械点座標     X2,Y2 後視点座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角           Y2 = 0 ( ゼロ ) とする。 L 中間点までの距離 ( 器械点 ---> 後視点 ) -+ 中間点から幅杭までの距離           + 右側 ( 器械点 ---> 後視点 )           - 左側 ( 器械点 ---> 後視点 )  出力     AZ 方向角 ( 器械点 ---> 後視点 ) 出射方向角    L 距離 ( 器械点 ---- 後視点 ) X3 中間点の X 座標 Y3 中間点の Y 座標 X4 幅杭の X 座標 Y4 幅杭の Y 座標 4 点交点計算   入力     X1,Y1 既知点座標     X2,Y2 既知点座標     X3,Y3 既知点座標     X4,Y4 既知点座標  出力 X 求点の X 座標 Y 求点の Y 座標 杭打ち計算   入力 L0 基準水平距離     S 斜距離     V 鉛直角           水平が 90゜の場合  + ( プラス ) 入力           水平が 0゜の場合  - ( マイナス ) 入力  出力 L 実測の水平距離 d 求点までの残距離 + むこう側  器械より遠くの地点           - 器械側   器械よりの地点 内角計算   入力     X1,Y1 器械点座標     X2,Y2 後視点座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角            Y2 = 0 ( ゼロ ) とする。 X3,Y3 求点座標  出力 AN 器械点を中心とする後視点と求点との内角 L 器械点から求点までの距離 間接水準計算 1 ( 斜距離と鉛直角 ) XY 座標出力可   入力 EL 器械点の標高     IH 器械の高さ           - ( マイナス ) 入力すると座標入力、座標出力となる     FH 目標の高さ     L 斜距離     V 鉛直角           水平が 90゜の場合  + ( プラス ) 入力           水平が 0゜の場合  - ( マイナス ) 入力     X1,Y1 器械点座標     X2,Y2 後視点座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角            Y2 = 0 ( ゼロ ) とする。     HA 水平角  出力 L 水平距離 GH 求点の標高     X 求点の X 座標     Y 求点の Y 座標 間接水準計算 2 ( dl,dh ) XY 座標出力可   入力 EL 器械点の標高     IH 器械の高さ           - ( マイナス ) 入力すると座標入力、座標出力となる     FH 目標の高さ     dL 水平距離     dH 観測高     X1,Y1 器械点座標     X2,Y2 後視点座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角            Y2 = 0 ( ゼロ ) とする。     HA 水平角  出力 GH 求点の標高     X 求点の X 座標     Y 求点の Y 座標 三角計算  三角形は2点が固定するとあと2つの条件で3点目の座標が求まる。  つまり既知点1、2の座標が既知であればあと 辺 a,b 角 A,B,C  高さ h,d,e 面積 S のどれか2つの条件で求点の座標が求まる。  *求点は、既知点1 ---> 2の方向へ向かい右側にあるものとします。 既知点2 ○ /\ / B \ /\ /\ c / h d \b / \ / S \ /A |e C\ ○----------------------------◎ 既知点1 a 求点  既知点1の内角(外角,方向角)を A、辺を a、高さを d  既知点2の内角(外角,方向角)を B、辺を b、高さを e  求 点 の内角(外角) を C 高さを h  面積を S とする。      三角形は 2 点が固定するとあと 2 つの条件で 3 点目の座標が求まる。     つまり 1,2 の座標が既知であればあと 辺 a,b 角 A,B,C     高さ h,d,e 面積 S のどれか 2 つの条件で 3 の座標が求まる。     求点は、既知点 1 ---> 2 の方向へ向かい右側にあるものとします。     入力時 a,b,A,B,C,S,h,d,e で必要ないものは リターン で送ってください。 既知点 1 の内角(外角,方向角)を A 辺を a 高さを d 既知点 2 の内角(外角,方向角)を B 辺を b 高さを e 求 点 3 の内角(外角)    を C 高さを h とする。   入力     X1,Y1 1 の座標     X2,Y2 2 の座標 a 辺 a b 辺 b A 角 A [ 内角、外角 ] ( - マイナス 入力 1 --> 3 への方向角 ) B 角 B [ 内角、外角 ] ( - マイナス 入力 2 --> 3 への方向角 ) C 角 C [ 内角、外角 ] いずれか 2 条件 h 高さ h d 高さ d e 高さ e S 面積 S  出力     X 求点の X 座標     Y 求点の Y 座標 垂線長の計算   入力     X1,Y1 1 の座標     X2,Y2 2 の座標     X3,Y3 3 の座標  出力     AZ,L 1 から 2 方向への方向角と点間距離     L 1 から 2 方向への距離           + 1 から 2 にむかう順方向           - 1 から 2 にむかう逆方向 H 垂線長           + 1 から 2 にむかって右側に 3 の座標が存在する           - 1 から 2 にむかって左側に 3 の座標が存在する 鉛直角の計算 ( 観測手簿 )   入力     r 鉛直角 ( 正 )     l 鉛直角 ( 反 )  出力     r 鉛直角 ( 正 )     l 鉛直角 ( 反 ) TOTAL r + l e 誤差     2Z r - l Z 2Z / 2 V 90 - Z 光波測距儀で測った斜距離の気圧補正と温度補正 ( WILD ) 簡易計算  基準標高  0 m 基準気温 10゚C   入力 GH 器械点の標高     IH 器械の高さ     FH 目標の高さ   キオン    気温     V 鉛直角 + - 鉛直角             鉛直角の計算 ( 観測手簿 ) で計算した V の値     L 1 1 回目の実測距離     L 2 2 回目の実測距離     L 3 3 回目の実測距離  出力     TOTAL L 1 + L 2 + L 3 TOTAL/3 平均距離     キアツ+キオンホセイ 気圧、気温補正の係数     D 気圧、気温補正 D0 斜距離 投影補正、縮尺補正 ( 観測手簿 )   入力     D0 斜距離 ( 気圧、気温補正済の斜距離 ) VER 1 正方向の鉛直角 VER 2 反方向の鉛直角 + - 鉛直角             鉛直角の計算 ( 観測手簿 ) で計算した V の値             どちらか一方の場合片方は 0 ( ゼロ ) 入力 GH 器械点の標高     IH 器械の高さ     FH 目標の高さ  出力     VER 平均鉛直角     dH 標高差     AH 平均標高     EL    目標点の標高     D D0 * COS V ( 傾斜補正 ) d 投影補正     S   球面距離     K 縮尺係数     k 縮尺補正     L 平面距離 結合・閉合・開放・開放結合 トラバース 計算  100 点    結合と閉合と開放と開放結合は、入力 データ によって自動判断   入力     X1 始発点 X 座標     Y1 始発点 Y 座標     X2 後視点 X 座標     Y2 後視点 Y 座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角            Y2 = 0 ( ゼロ ) とする。     X3 到達点 X 座標     Y3 到達点 Y 座標     X4 前視点 X 座標     Y4 前視点 Y 座標  方向角 ( 器械点 ---> 前視点 ) 出射方向角が既知の           場合は、X4 = 方向角 ( 器械点 ---> 前視点 ) 出射方向角            Y4 = 0 ( ゼロ ) とする。 開放 トラバース で最終点が既知点の場合               X4 = 0 ( ゼロ ) として Y4 = 0 ( ゼロ ) とする。 開放 トラバース の場合              到達点  X3 = 0 ( ゼロ ) として Y3 = 0 ( ゼロ ) として 前視点 X4 = 0 ( ゼロ ) として Y4 = 0 ( ゼロ ) とする。 NAME 測点名     HA 水平角     L 水平距離           - ( マイナス ) 入力の場合、鉛直角の入力となる             鉛直角                 水平が 90゜の場合  + ( プラス ) 入力            水平が 0゜の場合  - ( マイナス ) 入力           結合 の場合 最終点の距離は L = 0 とする。           閉合 の場合 最終点の次の点は HA = 0 L = 0 とする。  出力     dAZ 方向角誤差     eAZ 一点あたりの調整方向角     dX X 座標の結合差、閉合差     dY Y 座標の結合差、閉合差 X X 座標 Y Y 座標 直接水準測量 ( 結合、閉合、開放、放射 ) 200 点   入力     EL 始発点標高     EL 到着点標高            到着点標高を 0 ( ゼロ ) とした場合は開放 到着点標高 = 始発点標高 の場合は閉合     BS 後視     FS 前視            + ( プラス ) 入力のときは 放射点            - ( マイナス ) 入力のときは ターニング点(B.S 入力 モード になる) 最終点は FS を - ( マイナス ) 入力して BS を 0 ( ゼロ ) 入力すること。  出力     SEL 始発点標高 EEL 到着点標高 H 標高差     BS 後視の合計 FS 前視の合計 DH 観測標高差 e 結合差、閉合差     e 一点あたりの調整補正量     EL 標高 単曲線の要素の計算  ( シンプルカーブ 1 )   入力     IA 交角     R 曲線半径 CL 曲線長 いずれか 2 条件 TL 接線長     SL 外割長 L 長弦  出力     IA 交角     R 曲線半径 CL 曲線長 TL 接線長 SL 外割長 L 長弦 単曲線の中間点の計算 ( シンプルカーブ 2 )   入力     X1 単曲線上の点 X 座標     Y1 単曲線上の点 Y 座標     X2 単曲線上の点 X 座標 ( 後視点 )     Y2 単曲線上の点 Y 座標 ( 後視点 ) -R+ 単曲線半径 + 右側  1 から 2 へ向かい右側に中心が有る場合 - 左側  1 から 2 へ向かい左側に中心が有る場合 CL 曲線長  出力     AZ 1 から 2 への方向角     L 1 から 2 への距離     RX 単曲線中心点 X 座標     RY 単曲線中心点 Y 座標     X 単曲線上の点 X 座標     Y 単曲線上の点 Y 座標 単曲線線形の計算 ( シンプルカーブ 3 )   入力     IP 0 X 単曲線始発点 X 座標        Y 単曲線始発点 Y 座標 L 単曲線始発点の追加距離 ( 通常は 0 ( ゼロ ))     IP n X 単曲線 IP 点 X 座標     Y 単曲線 IP 点 Y 座標 R n 単曲線半径 最終点は       R=0 として 最終点の次の IP 点は X=0 Y=0 とすること。           ( リターン で空送りも可能)  出力     IP n X 単曲線 IP 点 X 座標     Y 単曲線 IP 点 Y 座標        R 単曲線半径      CL 曲線長      TL 接線長      IA 交角      RX 単曲線中心点 X 座標       RY 単曲線中心点 Y 座標 BC n X 単曲線始点  X 座標 Y 単曲線始点  Y 座標 L 追加距離 SP n X 単曲線中点  X 座標 Y 単曲線中点  Y 座標 L 追加距離 EC n X 単曲線終点  X 座標 Y 単曲線終点  Y 座標 L 追加距離     TOTAL DISTANCE      総延長距離 円の要素の計算   入力     R 曲線半径     AN 内角 CL 曲線長       いずれか 2 条件 L 長弦     t  出力     R 曲線半径     AN 内角 CL 曲線長 L 長弦 S 面積(扇型全体) r t s 面積(切除円) 間接水準計算 3 ( 斜距離と鉛直角 ) 標高が未知の点に トランシット を据えた場合に標高既知の点を        測った時の未知点の間接水準計算   入力     *GH 既知点の標高     *FH 目標高     *IH 器械高     V 鉛直角             水平が 90゜の場合  + ( プラス ) 入力          水平が 0゜の場合  - ( マイナス ) 入力     L 斜距離  出力     L 水平距離     DH 標高差     EL 標高 間接水準計算 4 ( dh ) 標高が未知の点に トランシット を据えた場合に標高既知の点を        測った時の未知点の間接水準計算   入力     *GH 既知点の標高     *IH 器械高     *FH 目標高      dh 観測高  出力     DH 標高差     EL 標高 スタジア 計算 1 ( 標高、距離 )   入力     GH 既知点の標高     IH 器械高     FH 目標高 S1 下端 スタジア の値 ( 上端 スタジア の値 )            直接 スタジア 幅を読み取った場合は - ( マイナス ) 入力 S2 上端 スタジア の値 ( 下端 スタジア の値 )     V 鉛直角             水平が 90゜の場合  + ( プラス ) 入力        水平が 0゜の場合  - ( マイナス ) 入力  出力     L 水平距離     dH 標高差     EL 標高 スタジア 計算 2 ( 標高、距離、XY 座標 )   入力     X1,Y1 器械点座標     X2,Y2 後視点座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角            Y2 = 0 ( ゼロ ) とする。     GH 既知点の標高     IH 器械高 HA 水平角     FH 目標高 S1 下端 スタジア の値 ( 上端 スタジア の値 )            直接 スタジア 幅を読み取った場合は - ( マイナス ) 入力 S2 上端 スタジア の値 ( 下端 スタジア の値 )     V 鉛直角             水平が 90゜の場合  + ( プラス ) 入力        水平が 0゜の場合  - ( マイナス ) 入力  出力     AZ 1 から 2 への方向角     HA 水平角     L 水平距離     DH 標高差     EL 標高 X 求点の X 座標 Y 求点の Y 座標 スタジア 計算 3 標高が未知の点に トランシット を据えた場合に標高既知の点を        測った時の未知点の スタジア 計算   入力     *GH 既知点の標高     *IH 器械高     FH 目標高 S1 下端 スタジア の値 ( 上端 スタジア の値 )            直接 スタジア 幅を読み取った場合は - ( マイナス ) 入力 S2 上端 スタジア の値 ( 下端 スタジア の値 )     V 鉛直角             水平が 90゜の場合  + ( プラス ) 入力        水平が 0゜の場合  - ( マイナス ) 入力  出力     L 水平距離     dH 標高差     EL 標高 座標面積計算 200 点   入力     X   X 座標     Y   Y 座標  出力     2A 倍面積     A 面積     ツボメンセキ  坪面積 三斜面積計算 200 点   入力     a   底辺     h   高さ  出力     2A 倍面積     A 面積     ツボメンセキ  坪面積 土量計算 ( 平均断面法 ) 100 点   入力     L   単距離     Area 断面積     Average 平均断面積     Volume 体積  出力     L 合計距離     Volume 合計体積   SHARP PC-E500 下水道設計 プログラム 1. 下水道計算    2. 下水道推進工法の推進延長の計算    3. 下水道推進工法の支圧壁の安定計算    4. 下水道推進工法の薬液工法の薬液注入量の計算    5. クッター 公式による水理計算    6. マニング 公式による水理計算    7. ヘーゼン・ウイリアムズ 公式による水理計算 以上については表示にしたがって下さい。 マニング 公式による水理計算 PART 2 1. I ( 勾配 ) による計算 2. V ( 流速 ) による計算 3. Q ( 流量 ) による計算   入力     WA   流水面積     WP 流水辺長     n 粗度係数     I 勾配               未知の場合は 0 ( ゼロ ) 入力     V 流速               未知の場合は 0 ( ゼロ ) 入力     Q 流量               未知の場合は 0 ( ゼロ ) 入力  出力     I 勾配     n 粗度係数     R 動水半径     V 流速     Q 流量             CASIO FX−603P        測量計算プログラム 603 ( Ver.3.15 )               [ 目  次 ]    概   要   ・・・・・・・・・・・・・ 50  プログラム 概 説  ・・・・・・・・・・・・・ 50  プログラム 内 容 ・ 操 作 方 法    P 0: 逆 計 算 [ 放 射 逆 計 算 ] ・・・・・・51   P 1: 放 射 トラバース 計 算 ・ 開放 トラバース 計 算 ・・・52   P 2: 中 間 点 計 算 ・ 巾 杭 計 算  ・・・・・・53   P 3: 4 点 交 点 計 算 ・・・・・・54   P 4: 杭 打 計 算 ・ 傾 斜 補 正 計 算 ・・・・・55   P 5: 内 角 計 算 ・・・・・・56   P 6: 間接水準 1 ( S,V )[ 標高計算 ・ 座標標高計算 ]・・・ 57   P 7: 単 曲 線 中 間 点 計 算   ・・・・・・58   P 8: 2 内 角 交 点 計 算   ・・・・・・59  P 9: 2 円 交 点 計 算   ・・・・・・60   P10: 垂 線 長 計 算   ・・・・・・61 P11: 鉛 直 角 計 算 ( 観測手簿 ) ・・・・・・62 P12: 気圧・温度 補 正 計 算 WILD 簡易計算 ・・・・・63 P13: 投影・縮尺 補 正 計 算 ( 観測手簿 ) ・・・・・・64 P14: スタジア  計 算 1 [ 標高計算 ] ・・・・・・65 P15: スタジア  計 算 2 [ 座標標高計算 ] ・・・・・・66 P16: スタジア  計 算 3 [ REVERSE ] ・・・・・・67   P17: 間接水準 2 ( h,l )[ 標高計算 ・ 座標標高計算 ]・・・ 68   P18: 間接水準 3 ( S,V )[ REVERSE ] ・・・69   P19: 間接水準 4 ( dh ) [ REVERSE ] ・・・70 注意事項                            ・・・71 参 考                             ・・・71 プログラム・リスト                       72 〜 82            CASIO FX−603P              測量計算プログラム                   603 [ 概   要 ]  現在、測量作業はパーソナルコンピュータ等での処理が一般化され、事務所で は計算作業が比較的簡素化されて処理されています。 しかし、現場作業における計算もポケットコンピュータにより簡単に出来るよう になりましたが、胸のポケットに入り手軽に計算できる関数電卓が、依然使い易 く便利だと考えられます。  以上のようなことより、現場における計算作業に適していると考えられる プログラム関数電卓 CASIO FX−603Pによる測量計算プログラムを 考えコーディングしてみました。 [ プログラム 概 説 ]  現場における計算作業での簡単な計算及びチェツクを主目的とし、少し手間が かかるかもしくは、事務所での計算の方がより効果的なものは極力さけ、しかも プログラムの読み換えが少なく、1回の読み込みで効果的な処理が可能となるよ うなプログラムとした。  また、精密解はパーソナルコンピュータ等を使用して求める事を前堤としてい るので、このプログラムでは五捨五入などのまるめは行なっていない為、精密解 とは表示上1mm程度の誤差を有するが、これを無視するものとした。 しかし、メモリー内には精密解が存在しているので、必要に応じメモリーをマニ ュアルで呼び出して、確認をするようにした。 [ プログラム 内 容 ・ 操 作 方 法 ] P0: 逆 計 算 [ 放 射 逆 計 算 ]    2点間の距離と方向角を放射状に計算し表示する。    P4:杭打計算との連続計算も可能である。                ・(2−1)                     ・(2−2)       (1)・      ・・・・・・ 変  数  表 ・・・・・・      M 81:X1座標     M 83:X2座標      M 82:Y1座標     M 84:Y2座標      M 00:水平距離 M F:方向角      ・・・・・・  例   題  ・・・・・・      X1=100.000 Y1=100.000      X2=350.000 Y2=250.000 (2−1)      X2=226.824 Y2=409.332 (2−2) ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P0   2 REVERSE       EXE   3 X1         100 EXE     X1座標の入力   4 Y1         100 EXE     Y1座標の入力   5 X2   (2−1) 350 EXE     X2座標の入力   6 Y2   (2−1) 250 EXE     Y2座標の入力   7 AZ 30゜57’49.52”EXE     方向角 の表示   8 L 291.548  EXE         水平距離の表示   9 X2   (2−2) 226.824 EXE X2の入力に戻る  10 Y2   (2−2) 409.332 EXE Y2座標の入力  11 AZ 67゜42’24.15”EXE     方向角 の表示  12 L 334.321  EXE         水平距離の表示  13 X2                     X2の入力に戻る P1: 放 射 トラバース 計 算 ・ オープントラバース 計 算     2既知点からの内角と距離より、未知点の座標を放射状に計算し表示す    る。    内角に −(マイナス)符号を付けて入力した場合は、オープントラバー    スとして計算することも可能となっている。    又、距離に −(マイナス)符号を付けて入力すると、斜距離入力と判断    し鉛直角(バーチカル)の入力モードになり、鉛直角の入力が可能となっ    ている。    鉛直角には、水平が 0゜と90゜の2種類が有り、        +(プラス ) 入力 ・・・・・ 水平 90゜         −(マイナス) 入力 ・・・・・ 水平  0゜     に対応している。     ・・・・・ 変  数  表 ・・・・・  ・・・ 変数名 ・・・    M 81:X1座標   M F:方向角     HA   内 角    M 82:Y1座標   M 97:内 角     L    距 離    M 83:X2座標   M 8F:X 座標    V    鉛直角    M 84:Y2座標   M 9F:Y 座標    ・・・・・・・  例   題  ・・・・・・・    X1=100.000   Y1=100.000    X2=350.000   Y2=250.000    HA=36゜44’35” L =334.322 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P1   2 TRAVERSE   EXE         タイトルの表示   3 X1         100 EXE     X1座標の入力   4 Y1         100 EXE     Y1座標の入力   5 X2         350 EXE     X2座標の入力   6 Y2         250 EXE     Y2座標の入力   7 AZ 30゜57’49.52”EXE     基準点方向角の表示   8 L 291.548  EXE         基準点間距離の表示   9 HA         36.4435 EXE 内角の入力  10 L          334.322 EXE 距離の入力     11 AZ 67゜42’24.52”EXE     方向角の表示  12 X 226.824  EXE         X座標の表示  13 Y 409.333  EXE         Y座標の表示  14 HA                     内角の入力に戻る P2: 中 間 点 計 算 ・ 巾 杭 計 算      路線測量などの場合、2既知点間の直線上に点を設置する機会も多く、    放射トラバース計算により簡単に求められるが、計算をより簡素化して計    算ミスなどを防ぐ意味で別プログラムとした。    又、巾杭座標の計算も可能であり、続けて計算できる。      (−) ・・・ 左側    (+) ・・・ 右側    繰り返し計算も可能である。    斜距離入力はできず、すべて水平距離とみなす。    又、巾杭計算で表示される巾杭の方向角は左側の巾杭を計算した場合も、    常に右側の方向角を表示するものとする。     ・・・・・ 変  数  表 ・・・・・  ・・・ 変数名 ・・・    M 81:X1座標   M 95:方向角    L   中間点距離    M 82:Y1座標   M  :     −:+ 巾杭 距離    M 83:X2座標   M 8F:X 座標    M 84:Y2座標   M 9F:Y 座標    ・・・・・・・  例   題  ・・・・・・・    X1=100.000   Y1=100.000    X2=350.000   Y2=250.000    L =167.160  −:+= 10.000 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P2   2 INTER POINT    EXE     タイトルの表示   3 X1         100 EXE     X1座標の入力   4 Y1         100 EXE     Y1座標の入力   5 X2         350 EXE     X2座標の入力   6 Y2         250 EXE     Y2座標の入力   7 AZ 30゜57’49.52”EXE     基準点方向角の表示   8 L 291.548  EXE         基準点間距離の表示   9 L          167.160 EXE 中間点距離の入力  10 AZ 30゜57’49.52”EXE     中間点方向角の表示  11 X 243.339  EXE         中間点X座標の表示  12 Y 186.003  EXE         中間点Y座標の表示  13 −:+        10  EXE     巾杭距離の入力  14 AZ 120゜57’49.5”EXE     巾杭方向角の表示  15 X 238.194  EXE         巾杭X座標の表示  16 Y 194.578  EXE         巾杭Y座標の表示  17 −:+                    巾杭距離の入力に戻る P3: 4 点 交 点 計 算     いうまでもなく、4点既知の交点計算。     再計算が可能で、入力ミスの所まで空打ちエントリーして再入力・再計算    ができる。    又、再実行計算も可能で、POWER OFF・POWER ONの後再    度プログラムをスタートした時も、空打ちにより再入力・再計算ができる    。                      ・(2)        (3)・         (1)・        ・(4)      ・・・・・・ 変  数  表 ・・・・・・      M 81:X1座標     M 85:X3座標      M 82:Y1座標     M 86:Y3座標      M 83:X2座標     M 87:X4座標      M 84:Y2座標     M 88:Y4座標      M 8F:X 座標     M 9F:Y 座標      ・・・・・・  例   題  ・・・・・・      X1=  4.000 Y1=  5.000      X2= 11.000 Y2= 12.000      X3=  7.000 Y3=  4.000      X4=  6.000 Y4= 12.000 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力         備 考   1            P3   2 4X         EXE          タイトルの表示   3 X1         4   EXE      X1座標の入力   4 Y1         5   EXE      Y1座標の入力   5 X2         11  EXE      X2座標の入力   6 Y2         12  EXE      Y2座標の入力   7 X3         7   EXE      X3座標の入力   8 Y3         4   EXE      Y3座標の入力   9 X4         6   EXE      X4座標の入力  10 Y4         12  EXE      Y4座標の入力  11 X 6.556    EXE          交点X座標の表示  12 Y 7.556    EXE          交点Y座標の表示  13 X1                      X1の入力に戻る P4: 杭 打 計 算 ・ 傾 斜 補 正 計 算     現地に測量杭・境界杭などの座標復元を行なう場合、仮杭位置から求め    る本杭位置までの残距離を,計算し表示する。    又、L0に0(ゼロ)を代入した場合、単なる傾斜補正計算として利用で    きる。    結果が d=+(プラス )の時: 仮杭より d 遠くの位置        d=−(マイナス)の時: 仮杭より d 近くの位置    が、求める地点である。    繰り返し計算、再実行計算が可能である。    鉛直角は、        +(プラス ) 入力 ・・・・・ 水平 90゜        −(マイナス) 入力 ・・・・・ 水平  0゜    に対応している。                 L          ・                           ・       器械点・・・・・・・・・・・・・・・・・・・・仮 杭               L0    本 杭  - d    ・・・・・・・・・ 変  数  表 ・・・・・・・・・    M 00:基準距離[L0]   M 90:斜距離 [S ]    M 94:水平距離       M 5F:鉛直角 [V ]         ・・・・  例   題  ・・・・         L0=100.000   基準距離         V =88゜49’55” 鉛直角         S =100.111   斜距離 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P4   2 S−>L       EXE         タイトルの表示   3 L0         100 EXE     基準水平距離の入力   5 V          88.4955 EXE 鉛直角の入力   4 S          100.111 EXE 斜距離の入力     6 L 100.090  EXE         水平距離の表示   7 d −0.090   EXE         残水平距離の表示   8 V                      鉛直角の入力に戻る P5: 内 角 計 算     2既知点により現地に測量杭等を設置する場合に、2既知点及び設置点    のX・Y座標を入力することにより既知点からの内角と距離を計算し表示    する。    又、P4:杭打計算との連続計算が可能である。                ・(2)                     ・(3)       (1) ・     ・・・・・・ 変  数  表 ・・・・・・      M 81:X1座標     M 85:X3座標     M 82:Y1座標     M 86:Y3座標     M 83:X2座標     M  F:内 角     M 84:Y2座標    M 00:水平距離     ・・・・・・  例   題  ・・・・・・     X1=100.000 Y1=100.000     X2=350.000 Y2=250.000     X3=226.824 Y3=409.332 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1         SHIFT P5   2 ANGLE      EXE         タイトルの表示   3 X1         100 EXE     X1座標の入力   4 Y1         100 EXE     Y1座標の入力   5 X2         350 EXE     X2座標の入力   6 Y2         250 EXE     Y2座標の入力   7 AZ 30゜57’49.52”EXE     基準点方向角の表示   8 L 291.548  EXE         基準点間距離の表示   9 X3         226.824 EXE X3座標の入力  10 Y3         409.332 EXE Y3座標の入力  11 ANG 36゜44’34.62”   EXE 内角の表示  12 L 334.321  EXE         水平距離の表示  13 X3                     X3の入力に戻る P6: 間 接 水 準 1 ( S,V )[ 標高計算 ・ 座標標高計算 ]     斜距離と鉛直角から、水平距離と標高を放射状に計算し表示する。    MH(観測高)を −(マイナス)入力した場合、その点をターニング点    として、以後の計算はその点より計算される。    又、IH(器械高)を −(マイナス)入力すれば、座標も同時に計算し    表示することも可能となる。    入力距離は常に斜距離とみなす。    繰り返し計算、再実行計算が可能である。    鉛直角は、        +(プラス ) 入力 ・・・・・ 水平 90゜        −(マイナス) 入力 ・・・・・ 水平  0゜    に対応している。    ・・・・・・・・・ 変  数  表 ・・・・・・・・・    M 91:基準標高[EL]   M 96:地盤高 [GH]    M 94:水平距離       M 92:器械高 [IH]    M 5F:鉛直角 [V ]   M 93:目標高 [MH]    M 90:斜距離 [L ]       ・・・・・・  例   題  ・・・・・・       EL=500.000 S =100.000       IH=  1.500 V =87゜39’45”       MH=  0.250  ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1         SHIFT P6   2 HIGH 1 ( S,V ) EXE     タイトルの表示   3 EL         500 EXE     基準標高の入力   4 IH         1.500 EXE   器械高の入力   5 MH         0.250 EXE   目標高の入力   6 S          100 EXE     斜距離の入力   7 V          87.3945 EXE 鉛直角の入力   8 L 99.917   EXE         水平距離の表示   9 GH 505.329 EXE         地盤高の表示  10 MH                     目標高の入力に戻る P7: 単 曲 線 中 間 点 計 算       単曲線上の2既知点より単曲線上の中間点の座標をもとめる。       2既知点を入力後、半径(R)を入力すると中心点の座標が出力され、さ    らに曲線長(CL)を入力すると単曲線上の点が求まる。    この場合、半径(R)は      (−) ・・・ 左側    (+) ・・・ 右側    又、曲線長(CL)は        (−) ・・・ 逆方向   (+) ・・・ 順方向    として入力すること。    斜距離入力はできず、すべて水平距離とみなす。      ・・・・・ 変  数  表 ・・・・・・・・       M 81:X1座標   M 97:半径 [R ]       M 82:Y1座標   M 98:曲線長[CL]        M 83:X2座標   M 8F:X 座標      M 84:Y2座標   M 9F:Y 座標    ・・・・・・・  例   題  ・・・・・・・    X1=100.000   Y1=  0.000    X2=  0.000   Y2=100.000   −R+=100.000   CL= 10.000 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1         SHIFT P7   2 SIMPLE CURVE   EXE     タイトルの表示   3 X1         100 EXE     X1座標の入力   4 Y1           0 EXE     Y1座標の入力   5 X2           0 EXE     X2座標の入力   6 Y2         100 EXE     Y2座標の入力   7 AZ 135゜0’0”    EXE     基準点方向角の表示   8 L 141.421  EXE         基準点間距離の表示   9 −R+        100.000 EXE 単曲線半径の入力  10 X 0.000    EXE         中心点X座標の表示  11 Y 0.000    EXE         中心点Y座標の表示  12 CL         10  EXE     曲線長の入力  13 X 99.500   EXE         中間点X座標の表示  14 Y 9.983    EXE         中間点Y座標の表示  15 CL                     曲線長の入力に戻る P8: 2 内 角 交 点 計 算       2既知点の内角(A,B)による交点計算。    基準点1側の内角を A とする。    基準点2側の内角を B とする。    又、基準点1から基準点2に向って右側に交点が有るものとする。                (2)・                   ・\                   ・B\ ・ ・求点                   ・A/ ・/                (1)・         ・・・・・ 変  数  表 ・・・・・・・          M 81:X1座標   M 96:内角 [A]          M 82:Y1座標   M 97:内角 [B]           M 83:X2座標   M 8F:X 座標         M 84:Y2座標   M 9F:Y 座標       ・・・・・・・  例   題  ・・・・・・・       X1=100.000   Y1=100.000       X2=350.000   Y2=250.000       A =36゜44’35” B =83゜15’25” ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1         SHIFT P8   2 2 ANGLE    EXE         タイトルの表示   3 X1         100 EXE     X1座標の入力   4 Y1         100 EXE     Y1座標の入力   5 X2         350 EXE     X2座標の入力   6 Y2         250 EXE     Y2座標の入力   7 AZ 30゜57’49.52”EXE     基準点方向角の表示   8 L 291.548  EXE         基準点間距離の表示   9 A          36.4435 EXE 内角(A)の入力  10 B          83.1525 EXE 内角(B)の入力  11 AZ 67゜42’24.52”EXE     方向角の表示  12 X 226.824  EXE         交点X座標の表示  13 Y 409.333  EXE         交点Y座標の表示  14 A                      内角(A)の入力に戻る P9: 2 円 交 点 計 算       2既知点からの半径(a,b)による交点計算。    基準点1側の半径を a とする。    基準点2側の半径を b とする。    又、基準点1から基準点2に向って右側に交点が有るものとする。                (2)・                   ・\b                   ・ \ ・ ・求点                   ・ / ・/a                (1)・         ・・・・・ 変  数  表 ・・・・・・・          M 81:X1座標   M 98:半径 [a]          M 82:Y1座標   M 99:半径 [b]           M 83:X2座標   M 8F:X 座標         M 84:Y2座標   M 9F:Y 座標       ・・・・・・・  例   題  ・・・・・・・       X1=100.000   Y1=100.000       X2=350.000   Y2=250.000        a=334.322    b=201.393 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1         SHIFT P9   2 2 LENGTH   EXE         タイトルの表示   3 X1         100 EXE     X1座標の入力   4 Y1         100 EXE     Y1座標の入力   5 X2         350 EXE     X2座標の入力   6 Y2         250 EXE     Y2座標の入力   7 AZ 30゜57’49.52”EXE     基準点方向角の表示   8 L 291.548  EXE         基準点間距離の表示   9 a          334.322 EXE 半径(a)の入力  10 b          201.393 EXE 半径(b)の入力  11 AZ 67゜42’24.06”    EXE 方向角の表示  12 X 226.824  EXE         交点X座標の表示  13 Y 409.333  EXE         交点Y座標の表示  14 a                      半径(a)の入力に戻る P10: 垂 線 長 計 算     2既知点と1既知点との垂線長計算。    ーh+: 基準線1から2へ向かい右側を+、左側をーとする。     L : 基準線1から2への距離をLとし+、逆方向をーとする。                (2)・                   ・ + h                   ・・・・・・(3) ・                 + L ・ ・                (1)・         ・・・・・ 変  数  表 ・・・・・・・         M 81:X1座標   M 85:X3座標         M 82:Y1座標   M 86:Y3座標         M 83:X2座標   M 3F:ーh+         M 84:Y2座標   M 4F:L       ・・・・・・・  例   題  ・・・・・・・        X1=100.000 Y1=100.000        X2=350.000 Y2=250.000        X3=226.824 Y3=409.332 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P10   2 PERPENDICULAR  EXE     タイトルの表示   3 X1         100 EXE     X1座標の入力   4 Y1         100 EXE     Y1座標の入力   5 X2         350 EXE     X2座標の入力   6 Y2         250 EXE     Y2座標の入力   7 AZ 30゜57’49.52”EXE     基準点方向角の表示   8 L 291.548  EXE         基準点間距離の表示   9 X3         226.824 EXE X3座標の入力  10 Y3         409.332 EXE Y3座標の入力  11 ーh+        200.000 EXE 高さの表示  12 L          267.901 EXE 距離の表示  14 X3                     X3座標入力に戻る P11: 鉛 直 角 計 算 ( 観測手簿 )     鉛直角の正及び反の補正計算。    鉛直角の正(Vr)、反(Vl)を入力すると補正計算される。    繰り返し計算、再計算が可能である。    但し、鉛直角が水平90゜の場合にのみ使用可能である。            ・・ 変  数  表 ・・             M 96:鉛直角 正[Vr]              M 97:鉛直角 反[Vl]              ・・  例   題  ・・            Vr= 94゜13’53”             Vl=265゜46’49”  ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P11   2 VERTICAL   EXE         タイトルの表示   3 Vr         94.1353 EXE 正鉛直角の入力   4 Vl        265.4649 EXE 反鉛直角の入力   5 360゜0’42”  EXE         正・反合計の表示   6   0゜0’42”  EXE         誤差の表示   7 188゜27’4”  EXE         Vr−Vlの表示   8  94゜13’32” EXE         Zの表示   9  −4゜13’32” EXE         αの表示  10 Vr                     正鉛直角の入力に戻る P12: 気圧・温度 補 正 計 算 ( 簡易計算 ) WILD     光波測距儀で測った距離の気圧補正と温度補正。 基準標高 ----- 0 m 基準気温 ----- 10゚C        ・・・・・ 変  数  表 ・・・・・・・          M 91:GH 地盤高   M 5F:V 鉛直角         M 92:IH 器械高   M 81:L 1 距離         M 93:FH 目標高   M 82:L 2 距離         M 94:Tem 気温 M 83:L 3 距離       ・・・・・・・  例   題  ・・・・・・・     GH = 500.000 Tem= 20゚C     FH = 0.250 L 1= 1000.001     V = + 1゚14'25" L 2= 1000.002 IH = 1.500 L 3= 1000.003 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P12   2 WILD ATMOSPHER EXE     タイトルの表示   3 GH          500 EXE     地盤高の入力   4 IH          1.5 EXE     器械高の入力   5 FH          0.25  EXE     目標高の入力   6 Tem          20  EXE     気温の入力   7 V 1.1425 EXE     鉛直角の入力   8 L 1 1000.001EXE     距離の入力   9 L 2 1000.002EXE     距離の入力 10 L 3 1000.003EXE     距離の入力  11 Σ          3000.006EXE 合計距離の表示  12 AL 1000.0020 EXE  平均距離の表示  13 * 2.39 EXE 係数の表示  14 d   0.0239 EXE 補正量の表示  15 D0 1000.0259 EXE    補正斜距離の表示 16 GH                      地盤高の入力に戻る P13: 投影・縮尺 補 正 計 算 ( 観測手簿 )      距離の投影補正と縮尺補正。 地球の半径 --- 6377397.155 m 縮尺係数 --- 0.9999         ・・・・・ 変  数  表 ・・・・・・・          M 90:D0 斜距離   M 91:GH 地盤高         M 87:V1 鉛直角   M 92:IH 器械高         M 88:V2 鉛直角   M 93:FH 目標高         M 5F:V 鉛直角 M 98: 地球の半径          M 99: 縮尺係数       ・・・・・・・  例   題  ・・・・・・・          D0 = 1000.0259 IH = 1.500 V1 = + 4゚13'30" FH = 0.250     V2 = - 4゚13'34" K = 0.9999 GH = 500.000 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P13   2 DISTANCE EXE     タイトルの表示   3 D0          1000.0259 EXE    斜距離の入力   4 V1          4.1330 EXE     鉛直角の入力   5 V2          -4.1334 EXE     鉛直角の入力   6 V          4゚13'32" EXE     平均鉛直角の表示   7 GH          500 EXE     地盤高の入力   8 IH           1.5 EXE     器械高の入力   9 FH           0.25 EXE     目標高の入力  10 dH           73.685 EXE     標高差の表示  11 EL 574.935 EXE     標高の表示  12 AH 537.468 EXE     平均標高の表示  13 D 997.3075 EXE     傾斜補正の表示 14 d -0.0841 EXE     投影補正の表示  15 S           997.2234 EXE 球面距離の表示  16 K 0.9999 EXE  縮尺係数の入力  17 dK -0.0997 EXE 縮尺補正の表示  18 L 997.1237 EXE 平面距離の表示 19 D0                      斜距離の入力に戻る P14: スタジア  計 算 1 [ 標高計算 ] スタジア 定数 ---- 100 スタジア 加定数 -- 0         ・・・・・ 変  数  表 ・・・・・・・          M 91:EL 標高    M 87:S1 下端(上端) スタジア         M 92:IH 器械高   M 88:S2 上端(下端) スタジア         M 93:FH 目標高   M 94:L 距離         M 5F:V 鉛直角 M 3F:dH 標高差         M  : M 96:GH 地盤高 M 98: スタジア 定数 M 99: スタジア 加定数       ・・・・・・・  例   題  ・・・・・・・          EL = 500.000 V = 89゚14'25" IH = 1.500 S1 = 1.230     FH = 2.895 S2 = 4.560 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P14   2 STADIA 1 EXE     タイトルの表示   3 EL          500.000 EXE     地盤高の入力   4 IH           1.5 EXE     器械高の入力   5 FH           2.895 EXE     目標高の入力   6 V          89.1425 EXE     鉛直角の入力   7 S1           1.230 EXE     下端 スタジア の入力   8 S2           4.560 EXE     上端 スタジア の入力   9 L          332.94 EXE     距離の表示  10 dH            3.02 EXE     標高差の表示  11 GH 503.02 EXE     地盤高の表示 12 FH                      目標高の入力に戻る P15: スタジア  計 算 2 [ 座標標高計算 ] スタジア 定数 ---- 100 スタジア 加定数 -- 0         ・・・・・ 変  数  表 ・・・・・・・          M 91:EL 標高    M 93:FH 目標高         M 92:IH 器械高   M 5F:V 鉛直角         M 81:X1 座標    M 87:S1 下端(上端) スタジア         M 82:Y1 座標    M 88:S2 上端(下端) スタジア         M 83:X2 座標    M 94:L 距離         M 84:Y2 座標    M 3F:dH 標高差         M  :    M 96:GH 地盤高 M 98: スタジア 定数 M 99: スタジア 加定数       ・・・・・・・  例   題  ・・・・・・・          EL = 500.000 FH = 2.895 IH = 1.500 V = 89゚14'25" X1 = 0.000 S1 = 1.230     Y1 = 0.000 S2 = 4.560 X2 = 100.000 HA = 90゚0'0" Y2 = 100.000 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P15   2 STADIA 2 EXE     タイトルの表示   3 EL          500.000 EXE     地盤高の入力   4 IH           1.5 EXE     器械高の入力   5 X1           0.000 EXE     X1 座標の入力   6 Y1           0.000 EXE     Y1 座標の入力   7 X2          100.000 EXE     X2 座標の入力   8 Y2          100.000 EXE     Y2 座標の入力   9 AZ          45゚0'0" EXE     方向角の表示  10 L          141.421 EXE     距離の表示  11 FH           2.895 EXE     目標高の入力  12 V          89.1425 EXE     鉛直角の入力  13 S1           1.230 EXE     下端 スタジア の入力  14 S2           4.560 EXE     上端 スタジア の入力  15 L          332.94 EXE     距離の表示  16 dH            3.02 EXE     標高差の表示  17 GH 503.02 EXE     地盤高の表示  18 HA 90.0000 EXE     内角の入力  19 AZ          135゚0'0" EXE     方向角の表示  20 X          -235.43 EXE     X 座標の表示  21 Y           235.43 EXE     Y 座標の表示 22 FH                      目標高の入力に戻る P16: スタジア  計 算 3 [ REVERSE ] スタジア 定数 ---- 100 スタジア 加定数 -- 0         ・・・・・ 変  数  表 ・・・・・・・          M 91:*EL 標高   M 87:S1 下端(上端) スタジア         M 92:*IH 器械高  M 88:S2 上端(下端) スタジア         M 93:*FH 目標高  M 94:L 距離         M 5F:V 鉛直角 M 3F:dH 標高差         M  : M 96:GH 地盤高 M 98: スタジア 定数 M 99: スタジア 加定数       ・・・・・・・  例   題  ・・・・・・・          *EL = 503.020 V = 89゚14'25" *IH = 1.500 S1 = 1.230    *FH = 2.895 S2 = 4.560 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P16   2 STADIA 3 EXE     タイトルの表示   3 *EL          503.020 EXE     地盤高の入力   4 *IH           1.5 EXE     器械高の入力   5 *FH           2.895 EXE     目標高の入力   6 V          89.1425 EXE     鉛直角の入力   7 S1           1.230 EXE     下端 スタジア の入力   8 S2           4.560 EXE     上端 スタジア の入力   9 L          332.94 EXE     距離の表示  10 dH           -3.02 EXE     標高差の表示  11 GH 500.00 EXE     地盤高の表示  12 STADIA 3 EXE     タイトルの表示に戻る   P17: 間接水準 2 ( h,l )[ 標高計算 ・ 座標標高計算 ]     標高差と水平距離から、標高を放射状に計算し表示する。    MH(観測高)を −(マイナス)入力した場合、その点をターニング点    として、以後の計算はその点より計算される。    又、IH(器械高)を −(マイナス)入力すれば、座標も同時に計算し    表示することも可能となる。    繰り返し計算、再実行計算が可能である。    ・・・・・・・・・ 変  数  表 ・・・・・・・・・    M 91:EL 基準標高    M 96:GH 地盤高    M 92:IH 器械高       M 81:X1 座標    M 93:MH 目標高    M 82:Y1 座標    M 1F:dh 観測高       M 83:X2 座標 M 2F:dL 水平距離 M 84:Y2 座標       ・・・・・・  例   題  ・・・・・・          EL = 500.000 X1 = 0.000 IH = 1.500 Y1 = 0.000 MH = 0.250      X2 = 100.000     dh = 50.000      Y2 = 100.000 dL = 100.000      HA = 90゚0'0" ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1          P17   2 HIGH 2 ( h,l )    EXE         タイトルの表示   3 EL          500.000  EXE   基準標高の入力   4 IH          1.500  EXE   器械高の入力   5 MH          0.250  EXE   目標高の入力   6 dh           50.000  EXE   観測高の入力   7 GH   551.250  EXE   地盤高の表示  10 MH                      目標高の入力に戻る   P18: 間接水準 3 ( S,V )[ REVERSE ] 標高未知の点に トランシット を据えた場合に標高既知の点を測った時の    標高計算。         ・・・・・ 変  数  表 ・・・・・・・          M 91:*EL 標高   M 5F:V 鉛直角         M 92: IH 器械高  M 94:L 水平距離         M 93: MH 目標高  M 1F:DH 標高差         M 90: S 斜距離 M 96:GH 地盤高       ・・・・・・・  例   題  ・・・・・・・          *EL = 505.329 S = 100.000 IH = 1.500 V = 87゚39'45"    MH = 0.250 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P18   2 HIGH 3 ( S,V ) EXE     タイトルの表示   3 *EL          505.329 EXE     地盤高の入力   4 IH           1.5 EXE     器械高の入力   5 MH           0.25 EXE     目標高の入力   6 S           100.000 EXE     斜距離の入力   7 V          87.3945 EXE     鉛直角の入力   8 L           99.917 EXE     水平距離の表示   9 DH          -5.329 EXE     標高差の表示  10 GH 500.000 EXE     地盤高の表示  12 HIGH 3 ( S,V ) EXE     タイトルの表示に戻る   P19: 間接水準 4 ( dh ) [ REVERSE ] 標高未知の点に トランシット を据えた場合に標高既知の点を測った時の    標高計算。         ・・・・・ 変  数  表 ・・・・・・・          M 91:*EL 標高   M 1F:dh 観測高         M 92: IH 器械高  M 2F:DH 標高差         M 93: MH 目標高  M 96:GH 地盤高       ・・・・・・・  例   題  ・・・・・・・          *EL = 451.250 MH = 0.250 IH = 1.500 dh = -50.000 ・・・・・・・・・・・・・ 操 作 手 順 ・・・・・・・・・・・・・・ ステップ  表 示        キー入力        備 考   1            P19   2 HIGH 4 ( dh ) EXE     タイトルの表示   3 *EL          451.250 EXE     標高の入力   4 IH           1.5 EXE     器械高の入力   5 MH           0.25 EXE     目標高の入力   6 dh          -50.000 EXE     観測高の入力   7 DH           48.750 EXE     標高差の表示   8 GH 500.000 EXE     地盤高の表示   9 HIGH 4 ( dh ) EXE     タイトルの表示に戻る  以下、主な注意事項を揚げると、   ・ 常に器械点を主体にして考えること。         X1,Y1 ・・・・ 器械点座標         X2,Y2 ・・・・ 後視点座標         方向角   ・・・・ 器械点から後視点への方向角    ・ 2既知点 X1,Y1・X2,Y2 を入力し計算するものは、逆計      算により距離と方向角の表示後、プログラム計算に移る。      又、X2に出発方向角を入力し、Y2を0(ゼロ)入力する事で方向      角による計算も可能である。      但し、Y2座標が0(ゼロ)の場合は、演算結果に影響しない程度の      ダミー(0.00001など)をY2に入力しなければならない。    ・ 鉛直角は2種類(水平 0゜,90゜)に対応している為、      +−鉛直角(バーニア式トランシット等)は使用できない。      この場合、360゜鉛直角に変換して入力する事が必要となる。    ・ 角度(内角・鉛直角)の入力は、OOO.OOOOEXE とする。                    (  度  分 秒 )    ・ 繰り返し計算をする場合、一部のプログラムを除き旧データと新デー      タが同じ時は、空打ちエントリーで対処できる。                            ・・・・・ 以 上 [ 参   考 ]                  ・(2)                       ・(3)         (1)・  X1=100.000 Y1=100.000 内角1=36゜44’35”  X2=350.000 Y2=250.000 内角2=83゜15’25”  X3=226.824 Y3=409.332 内角3=60゜00’00”  L(1−2)=291.548  方向角(1−2)= 30゜57’50”  L(2−3)=201.393  方向角(2−3)=127゜42’24”  L(3−1)=334.322  方向角(3−1)=247゜42’24”     CASIO FX-603P 測量計算 プログラム ( 日本国内用 DEGREE ) 603 Ver. 3.15 ( 603P603J )             1000 STEPS FREE 14841 bytes Coded by KAWAGUCHI NIFTY-Serve ID:KHF00050 All Program List P0 AC DEG "REVERSE" HLT MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 LBL1 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO2 + 360 = LBL2 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO1 P1 AC DEG "TRAVERSE" HLT MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR97 "HA" HLT Min97 ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min00 MR94 "L" HLT Min94 X>=0 GOTO5 ABS Min90 90 Min89 "V" HLT Min5F ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min95 COS * MR90 = Min3F MR95 SIN * MR90 = Min4F Min94 MR5F X>=0 GOTO4 MR3F Min94 LBL4 MR94 FIX3 "L" HLT LBL5 MR00 + MRF - 360 Min95 = LBL6 X>=0 GOTO7 + MR95 = GOTO6 LBL7 Min95 "AZ" SDMS HLT MR95 COS * MR94 = Min3F MR95 SIN * MR94 = Min4F + MR82 = Min9F MR3F + MR81 = Min8F FIX3 "X" HLT MR9F FIX3 "Y" HLT MR97 X>=0 GOTO3 MR8F Min81 MR9F Min82 MR95 - 180 = MinF GOTO3 P2 AC DEG "INTER POINT" HLT MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR81 Min1F MR82 Min2F MR7F MinF AC "L" HLT Min94 MRF - 360 Min95 = LBL4 X>=0 GOTO5 + MR95 = GOTO4 LBL5 Min95 "AZ" SDMS HLT MR95 COS * MR94 = Min3F MR95 SIN * MR94 = Min4F + MR2F = Min9F MR3F + MR1F = Min8F FIX3 "X" HLT MR9F FIX3 "Y" HLT MR8F Min1F MR9F Min2F MRF + 90 = MinF LBL6 AC "-:+" HLT Min94 X=0 GOTO3 MRF - 360 Min95 = LBL7 X>=0 GOTO8 + MR95 = GOTO7 LBL8 Min95 "AZ" SDMS HLT MR95 COS * MR94 = Min3F MR95 SIN * MR94 = Min4F + MR2F = Min9F MR3F + MR1F = Min8F FIX3 "X" HLT MR9F FIX3 "Y" HLT GOTO6 P3 AC DEG "4[MUL]" HLT LBL1 MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 MR84 "Y2" HLT Min84 MR85 "X3" HLT Min85 MR86 "Y3" HLT Min86 MR87 "X4" HLT Min87 MR88 "Y4" HLT Min88 MR84 - MR82 ) / ( MR83 - MR81 = Min3F MR88 - MR86 ) / ( MR87 - MR85 = Min4F * MR85 - MR3F * MR81 + MR82 - MR86 = / ( MR4F - MR3F = Min8F - MR81 ) * MR3F + MR82 = Min9F MR8F FIX3 "X" HLT MR9F FIX3 "Y" HLT GOTO1 P4 AC DEG "S[RTA]L" HLT MR00 "L0" HLT Min00 LBL1 MR5F "V" HLT Min5F ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min95 MR90 "S" HLT ABS Min90 MR95 COS * MR90 = Min3F MR95 SIN * MR90 = Min4F Min94 MR5F X>=0 GOTO2 MR3F Min94 LBL2 MR94 FIX3 "L" HLT MR00 X=0 GOTO1 - MR94 = FIX3 "d" HLT GOTO1 P5 AC DEG "ANGLE" HLT MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR85 "X3" HLT Min85 MR86 "Y3" HLT Min86 MR85 - MR81 ) R>P ( MR86 - MR82 = Min00 X<>Y - MR7F = LBL4 X>=0 GOTO5 + 360 = GOTO4 LBL5 MinF "ANG" SDMS HLT MR00 FIX3 "L" HLT GOTO3 P6 AC DEG "HIGH 1 ( S,V )" HLT MR91 "EL" HLT Min91 MR92 "IH" HLT Min92 X>=0 GOTO3 MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR93 "MH" HLT Min93 MR90 "S" HLT ABS Min90 MR5F "V" HLT Min5F ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min95 COS * MR90 = Min3F MR95 SIN * MR90 = Min4F Min94 MR5F X>=0 GOTO4 MR3F Min94 LBL4 MR94 FIX3 "L" HLT MR5F X>=0 GOTO5 MR4F Min3F LBL5 MR3F + MR92 ABS - MR93 ABS + MR91 = Min96 FIX3 "GH" HLT MR92 X>=0 GOTO8 MR97 "HA" HLT Min97 ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = + MRF - 360 Min95 = LBL6 X>=0 GOTO7 + MR95 = GOTO6 LBL7 Min95 "AZ" SDMS HLT MR95 COS * MR94 = Min3F MR95 SIN * MR94 = Min4F + MR82 = Min9F MR3F + MR81 = Min8F FIX3 "X" HLT MR9F FIX3 "Y" HLT MR93 X>=0 GOTO3 MR8F Min81 MR9F Min82 MR95 - 180 = MinF LBL8 MR93 X>=0 GOTO3 MR96 Min91 MR92 "IH" HLT Min92 GOTO3 P7 AC DEG "SIMPLE CURVE" HLT MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR97 "-R+" HLT Min97 MR6F / 2 / MR97 ) ACS + MR7F = Min5F COS * MR97 = Min3F MR5F SIN * MR97 = Min4F + MR82 = Min2F Min9F MR3F + MR81 = Min1F Min8F FIX3 "RX" HLT MR9F FIX3 "RY" HLT LBL4 MR98 "CL" HLT Min98 X=0 GOTO3 * 180 / PI / MR97 = Min00 + MR5F - 180 = MinF COS * MR97 = Min3F MRF SIN * MR97 = Min4F + MR2F = Min9F MR3F + MR1F = Min8F FIX3 "X" HLT MR9F FIX3 "Y" HLT GOTO4 P8 AC DEG "2 ANGLE" HLT MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR96 "A" HLT Min96 Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min98 + MR7F = MinF MR97 "B" HLT Min97 Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min99 +/- + 180 = X>=0 GOTO4 + 180 = Min99 LBL4 MR99 +/- + 180 - MR98 = Min5F MR6F * MR99 SIN / MR5F SIN = Min94 MRF - 360 Min95 = LBL5 X>=0 GOTO6 + MR95 = GOTO5 LBL6 Min95 "AZ" SDMS HLT MR95 COS * MR94 = Min3F MR95 SIN * MR94 = Min4F + MR82 = Min9F MR3F + MR81 = Min8F FIX3 "X" HLT MR9F FIX3 "Y" HLT GOTO3 P9 AC DEG "2 LENGTH" HLT MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR98 "a" HLT Min94 Min98 MR99 "b" HLT Min99 ( ( MR98 X^2 + MR6F X^2 - MR99 X^2 ) / ( 2 * MR98 * MR6F ) ) ACS Min5F + MR7F = MinF - 360 Min95 = LBL4 X>=0 GOTO5 + MR95 = GOTO4 LBL5 Min95 "AZ" SDMS HLT MR95 COS * MR94 = Min3F MR95 SIN * MR94 = Min4F + MR82 = Min9F MR3F + MR81 = Min8F FIX3 "X" HLT MR9F FIX3 "Y" HLT GOTO3 P10 AC DEG "PERPENDICULAR" HLT MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR85 "X3" HLT Min85 MR86 "Y3" HLT Min86 MR85 - MR81 ) R>P ( MR86 - MR82 = Min00 X<>Y - MR7F = LBL4 X>=0 GOTO5 + 360 = GOTO4 LBL5 MinF SIN * MR00 = Min3F MRF COS * MR00 = Min4F MR3F FIX3 "-h+" HLT MR4F FIX3 "L" HLT GOTO3 P11 AC DEG "VERTICAL" HLT LBL1 MR96 "Vr" HLT Min96 Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min98 MR97 "Vl" HLT Min97 Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min99 - MR98 = X>=0 GOTO2 MR98 Min95 MR99 Min98 MR95 Min99 LBL2 MR98 + MR99 ) "T" SDMS HLT - 360 = "e" SDMS HLT MR98 - MR99 = Min5F X>=0 GOTO3 + 360 = Min5F LBL3 "Vr-Vl" SDMS HLT / 2 = "Z" SDMS HLT +/- + 90 = Min5F "V" SDMS HLT GOTO1 P12 AC DEG "WILD ATMOSPHER" HLT LBL1 MR91 "GH" HLT Min91 MR92 "IH" HLT Min92 MR93 "FH" HLT Min93 MR94 "Tem" HLT Min94 - 30 = Min95 MR5F "V" HLT Min5F INT + ( MR5F FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MR81 "L1" HLT Min81 MR82 "L2" HLT Min82 MR83 "L3" HLT Min83 MR81 + MR82 + MR83 = Min84 FIX3 "[SGM]" HLT / 3 = Min90 FIX4 "AL" HLT * MR7F SIN / 2 + MR91 + MR92 - MR93 = * 0.003 + 1.7 + MR95 * 0.085 = Min85 * MR90 / 5 10^X = Min96 MR85 FIX2 "*" HLT MR96 FIX4 "d" HLT MR90 + MR96 = Min90 FIX4 "D0" HLT GOTO1 P13 AC DEG "DISTANCE" HLT 6377397.155 Min98 0.9999 Min99 LBL0 MR90 "D0" HLT Min90 1 Min87 0 "V1" HLT Min94 Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min85 MR94 X>=0 GOTO1 1 +/- Min87 LBL1 1 Min88 0 "V2" HLT Min95 Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min86 MR95 X>=0 GOTO2 1 +/- Min88 LBL2 MR94 X=0 GOTO3 MR95 X=0 GOTO4 GOTO5 LBL3 MR86 Min5F GOTO6 LBL4 MR85 Min5F GOTO6 LBL5 ( MR85 ABS + MR86 ABS ) / 2 * MR87 = Min5F SDMS "V" HLT LBL6 MR91 "GH" HLT Min91 MR92 "IH" HLT Min92 MR93 "FH" HLT Min93 MR90 P>R MR5F = Min83 X<>Y Min84 MR94 X=0 GOTO7 MR84 FIX3 "dH" HLT + MR92 - MR93 + MR91 = Min96 FIX3 "EL" HLT + MR91 ) / 2 = Min97 MR95 X=0 GOTO8 MR97 FIX3 "AH" HLT MR94 X=0 GOTO7 MR95 X=0 GOTO8 MR97 +/- * MR83 = Min82 GOTO9 LBL7 MR91 +/- * MR83 = Min82 GOTO9 LBL8 MR96 +/- * MR83 = Min82 LBL9 MR83 FIX4 "D" HLT MR82 / MR98 = FIX4 "d" HLT + MR83 = Min81 FIX4 "S" HLT MR99 "K" HLT Min99 - 1 ) * MR81 = FIX4 "dK" HLT + MR81 = Min00 FIX4 "L" HLT GOTO0 P14 AC DEG "STADIA 1" HLT 100 Min98 0 Min99 MR91 "EL" HLT Min91 MR92 "IH" HLT Min92 LBL1 MR93 "FH" HLT Min93 MR5F "V" HLT Min5F MR87 "S1" HLT Min87 X>=0 GOTO2 MR87 ABS Min90 GOTO3 LBL2 MR88 "S2" HLT Min88 - MR87 = ABS Min90 LBL3 MR5F ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min85 MR5F X>=0 GOTO4 GOTO6 LBL4 180 - MR89 = X>=0 GOTO5 MR85 - 270 = Min85 GOTO6 LBL5 90 - MR85 = Min85 LBL6 MR98 * MR90 * MR85 COS X^2 + MR99 * MR85 COS = Min94 MR98 * MR90 * MR85 SIN * MR85 COS + MR99 * MR85 SIN + MR92 - MR93 = Min3F + MR91 = Min96 MR94 FIX2 "L" HLT MR3F FIX2 "dH" HLT MR96 FIX2 "GH" HLT GOTO1 P15 AC DEG "STADIA 2" HLT 100 Min98 0 Min99 MR91 "EL" HLT Min91 MR92 "IH" HLT Min92 MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR93 "FH" HLT Min93 MR5F "V" HLT Min5F MR87 "S1" HLT Min87 X>=0 GOTO4 MR87 ABS Min90 GOTO5 LBL4 MR88 "S2" HLT Min88 - MR87 = ABS Min90 LBL5 MR5F ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min85 MR5F X>=0 GOTO6 GOTO8 LBL6 180 - MR89 = X>=0 GOTO7 MR85 - 270 = Min85 GOTO8 LBL7 90 - MR85 = Min85 LBL8 MR98 * MR90 * MR85 COS X^2 + MR99 * MR85 COS = Min94 MR98 * MR90 * MR85 SIN * MR85 COS + MR99 * MR85 SIN + MR92 - MR93 = Min3F + MR91 = Min96 MR94 FIX2 "L" HLT MR3F FIX2 "dH" HLT MR96 FIX2 "GH" HLT MR97 "HA" HLT Min97 ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = + MRF - 360 Min95 = LBL9 X>=0 GOTO0 + MR95 = GOTO9 LBL0 Min95 "AZ" SDMS HLT MR95 COS * MR94 = Min3F MR95 SIN * MR94 = Min4F + MR82 = Min9F MR3F + MR81 = Min8F FIX2 "X" HLT MR9F FIX2 "Y" HLT GOTO3 P16 LBL1 AC DEG "STADIA 3" HLT 100 Min98 0 Min99 MR91 "*EL" HLT Min91 MR92 "*IH" HLT Min92 MR93 "*FH" HLT Min93 MR5F "V" HLT Min5F MR87 "S1" HLT Min87 X>=0 GOTO2 MR87 ABS Min90 GOTO3 LBL2 MR88 "S2" HLT Min88 - MR87 = ABS Min90 LBL3 MR5F ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min85 MR5F X>=0 GOTO4 GOTO6 LBL4 180 - MR89 = X>=0 GOTO5 MR85 - 270 = Min85 GOTO6 LBL5 90 - MR85 = Min85 LBL6 MR98 * MR90 * MR85 COS X^2 + MR99 * MR85 COS = Min94 MR98 * MR90 * MR85 SIN * MR85 COS + MR99 * MR85 SIN + MR92 - MR93 = Min3F +/- + MR91 = Min96 MR94 FIX2 "L" HLT MR3F +/- FIX2 "dH" HLT MR96 FIX2 "GH" HLT GOTO1 P17 AC DEG "HIGH 2 ( h,l )" HLT MR91 "EL" HLT Min91 MR92 "IH" HLT Min92 X>=0 GOTO3 MR81 "X1" HLT Min81 MR82 "Y1" HLT Min82 MR83 "X2" HLT Min83 Min89 MR84 "Y2" HLT Min84 X=0 GOTO2 MR83 - MR81 ) R>P ( MR84 - MR82 = Min6F Min00 X<>Y X>=0 GOTO1 + 360 = LBL1 Min7F MinF "AZ" SDMS HLT MR6F FIX3 "L" HLT GOTO3 LBL2 MR89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min7F MinF LBL3 MR93 "MH" HLT Min93 MR1F "dh" HLT Min1F MR92 X>=0 GOTO4 MR2F "dL" HLT Min2F LBL4 MR1F + MR92 ABS - MR93 ABS + MR91 = Min96 FIX3 "GH" HLT MR92 X>=0 GOTO7 MR97 "HA" HLT Min97 ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = + MRF - 360 Min95 = LBL5 X>=0 GOTO6 + MR95 = GOTO5 LBL6 Min95 "AZ" SDMS HLT MR95 COS * MR2F = Min3F MR95 SIN * MR2F = Min4F + MR82 = Min9F MR3F + MR81 = Min8F FIX3 "X" HLT MR9F FIX3 "Y" HLT MR93 X>=0 GOTO3 MR8F Min81 MR9F Min82 MR95 - 180 = MinF LBL7 MR93 X>=0 GOTO3 MR96 Min91 MR92 "IH" HLT Min92 GOTO3 P18 LBL1 AC DEG "HIGH 3 ( S,V )" HLT MR91 "*EL" HLT Min91 MR92 "IH" HLT Min92 MR93 "MH" HLT Min93 MR90 "S" HLT ABS Min90 MR5F "V" HLT Min5F ABS Min89 INT + ( MR89 FRAC * 2 10^X ) Min4F INT / 60 + MR4F FRAC / 36 = Min95 COS * MR90 = Min3F MR95 SIN * MR90 = Min4F Min94 MR5F X>=0 GOTO2 MR3F Min94 LBL2 MR94 FIX3 "L" HLT MR5F X>=0 GOTO3 MR4F Min3F LBL3 MR3F + MR92 ABS - MR93 ABS = Min1F +/- FIX3 "DH" HLT + MR91 = Min96 FIX3 "GH" HLT GOTO1 P19 LBL1 AC DEG "HIGH 4 ( dh )" HLT MR91 "*EL" HLT Min91 MR92 "IH" HLT Min92 MR93 "MH" HLT Min93 MR1F "dh" HLT Min1F + MR92 ABS - MR93 ABS = Min2F +/- FIX3 "DH" HLT + MR91 = Min96 FIX3 "GH" HLT GOTO1 "Coded by KAWAGUCHI NIFTY-Serve ID:KHF00050" END Memory List      SHARP PC-E500 測量計算 プログラム ( DEGREE ) 日本国内用   放射逆計算 10 ' ホウシャ ギャクケイサン 20 CLS :DEGREE :DEFDBL :USING "#######,###.###" 30 WAIT 0:PRINT "ホウシャ ギャクケイサン" 40 LOCATE 0,1:INPUT "X1=";X1 50 LOCATE 0,1:PRINT "X1=";X1 60 LOCATE 20,1:INPUT "Y1=";Y1 70 LOCATE 20,1:PRINT "Y1=";Y1 80 K=2:GOSUB 300 90 K=3:GOSUB 300 100 LOCATE 0,2:INPUT "X2=";X2 110 LOCATE 0,2:PRINT "X2=";X2 120 LOCATE 20,2:INPUT "Y2=";Y2 130 LOCATE 20,2:PRINT "Y2=";Y2 140 X0=X1:Y0=Y1 150 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 160 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 170 GOSUB 240 180 Z0=AZ:Z=DMS AZ 190 BEEP 1 200 K=3:GOSUB 300:GOSUB 270:PRINT "AZ=";Z$ 210 LOCATE 20,3:WAIT :PRINT "L =";MDF L0 220 GOTO 80 230 END 240 IF AZ>=360LET AZ=AZ-360:GOTO 240 250 IF AZ<0LET AZ=AZ+360:GOTO 250 260 RETURN 270 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 280 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 290 RETURN 300 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 310 RETURN   放射 トラバース 計算・ オープントラバース 計算 10 ' ホウシャ トラバ-ス Ver. 3.15 20 CLS :DEGREE :DEFDBL :WAIT 0:USING "#######,###.###" 30 PRINT "ホウシャ トラバ-ス Ver. 3.15" 40 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 50 LOCATE 20,0:INPUT "Y1=";Y1 60 LOCATE 20,0:PRINT "Y1=";Y1 70 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 80 LOCATE 20,1:INPUT "Y2=";Y2 90 IF Y2=0LET K=1:GOSUB 460:GOTO 110 100 LOCATE 20,1:PRINT "Y2=";Y2 110 X0=X1:Y0=Y1 120 IF Y2=0LET AZ=DEG X2:GOTO 150 130 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 140 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 150 GOSUB 400 160 Z0=AZ:Z=DMS AZ 170 K=2:GOSUB 460:GOSUB 430:PRINT "AZ=";Z$ 180 IF Y2=0THEN 200 190 LOCATE 20,2:PRINT "L =";MDF L0 200 K=3:GOSUB 460:INPUT "HA=";HA:Z=ABS HA:GOSUB 430:LOCATE 0,3:PRINT "HA=";Z$ 210 AZ=AZ+DEG (ABS HA) 220 GOSUB 400 230 LOCATE 20,3:INPUT "L =";L 240 IF L<0GOSUB 480 250 DX=(ABS L)*COS AZ:DY=(ABS L)*SIN AZ 260 X=X1+DX:Y=Y1+DY 270 BEEP 1 280 Z=DMS AZ:GOSUB 430 290 K=2:GOSUB 460 300 LOCATE 0,2:PRINT "AZ=";Z$ 310 LOCATE 20,2:PRINT "L =";MDF L 320 LOCATE 0,3:PRINT "X =";MDF X 330 WAIT :LOCATE 20,3:PRINT "Y =";MDF Y:K=3:GOSUB 460 340 IF HA<0THEN 360 350 AZ=Z0:GOTO 200 360 X1=X:Y1=Y 370 AZ=AZ-180:Z0=AZ:GOSUB 400 380 GOTO 200 390 END 400 IF AZ>=360LET AZ=AZ-360:GOTO 400 410 IF AZ<0LET AZ=AZ+360:GOTO 410 420 RETURN 430 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 440 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 450 RETURN 460 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 470 RETURN 480 K=3:GOSUB 460 490 LOCATE 0,3:PRINT " L=";ABS L 500 LOCATE 20,3:INPUT " V=";V:Z=ABS V:GOSUB 430:LOCATE 20,3:PAUSE "V =";Z$ 510 IF V<0THEN 540 520 Z=450+Z 530 IF Z>=360LET Z=Z-360:GOTO 530 540 L=ABS (L*COS DEG Z) 550 RETURN   中間点、幅杭計算 10 ' チュウカンテン 20 CLS :DEGREE :DEFDBL :WAIT 0:USING "#######,###.###" 30 PRINT "チュウカンテン [ L:チュウカンテン -+:ハバグイ ]" 40 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 50 LOCATE 20,0:INPUT "Y1=";Y1 60 LOCATE 20,0:PRINT "Y1=";Y1 70 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 80 LOCATE 20,1:INPUT "Y2=";Y2 90 IF Y2=0LET K=1:GOSUB *DSPLY:GOTO 110 100 LOCATE 20,1:PRINT "Y2=";Y2 110 X0=X1:Y0=Y1 120 IF Y2=0LET AZ=DEG X2:GOTO 150 130 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 140 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 150 GOSUB *AZ 160 Z0=AZ:Z=DMS AZ 170 K=2:GOSUB *DSPLY:GOSUB *DEGREE:PRINT "AZ=";Z$ 180 IF Y2=0THEN 200 190 LOCATE 20,2:PRINT "L =";MDF L0 200 K=3:GOSUB *DSPLY:INPUT " L=";L:LOCATE 0,3:BEEP 1 210 DX=L*COS AZ:DY=L*SIN AZ 220 X3=X1+DX:Y3=Y1+DY 230 K=2:GOSUB *DSPLY 240 LOCATE 0,2:PRINT "X3=";MDF X3 250 LOCATE 20,2:PRINT "Y3=";MDF Y3:K=3:GOSUB *DSPLY 260 K=3:GOSUB *DSPLY:INPUT "-+=";L1 270 IF L1=0THEN 200 280 BEEP 1 290 DX=L1*COS (AZ+90):DY=L1*SIN (AZ+90) 300 X4=X3+DX:Y4=Y3+DY 310 K=3:GOSUB *DSPLY 320 LOCATE 0,3:PRINT "X4=";MDF X4 330 WAIT 340 LOCATE 20,3:PRINT "Y4=";MDF Y4:K=3:GOSUB *DSPLY 350 GOTO 260 360 REM 370 REM 380 REM 390 REM 400 *AZ:' ・・・・・・・・・ AZIMUTH ・・・・・・・・・・・ 410 IF AZ>=360LET AZ=AZ-360:GOTO 410 420 IF AZ<0LET AZ=AZ+360:GOTO 420 430 RETURN 440 REM 450 *DEGREE:' ・・・・・・・・ DEGREE ・・・・・・・・・ 460 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 470 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 480 RETURN 490 REM 500 *DSPLY:' ・・・・・・・・ DISPLAY ・・・・・・・・・ 510 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 520 RETURN   4 点交点計算 10 ' 4テンコ-テン 20 DEFDBL :DEGREE 30 CLS :USING "#######,###.###" 40 K=0:GOSUB 300 50 K=1:GOSUB 300 60 K=2:GOSUB 300 70 LOCATE 0,0 80 PRINT "4テンコ-テン" 90 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 100 LOCATE 20,0:INPUT "Y1=";Y1 110 LOCATE 20,0:PRINT "Y1=";Y1 120 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 130 LOCATE 20,1:INPUT "Y2=";Y2 140 LOCATE 20,1:PRINT "Y2=";Y2 150 INPUT "X3=";X3:LOCATE 0,2:PRINT "X3=";X3 160 LOCATE 20,2:INPUT "Y3=";Y3 170 LOCATE 20,2:PRINT "Y3=";Y3 180 INPUT "X4=";X4:LOCATE 0,3:PRINT "X4=";X4 190 LOCATE 20,3:INPUT "Y4=";Y4 200 LOCATE 20,3:PAUSE "Y4=";Y4 210 M1=(Y2-Y1)/(X2-X1) 220 M2=(Y4-Y3)/(X4-X3) 230 X=(M2*X3-M1*X1+Y1-Y3)/(M2-M1) 240 Y=M1*(X-X1)+Y1 250 BEEP 1 260 LOCATE 0,3:PRINT "X =";MDF X 270 LOCATE 20,3:PRINT "Y =";MDF Y 280 GOTO 40 290 END 300 LOCATE 0,K:PRINT " " 310 RETURN   杭打ち計算 10 ' S -> L クイウチケイサン 20 *MAIN:DEFDBL :' --- メイン ルーチン --- 30 CLS :DEGREE :WAIT 0 40 LOCATE 0,0:PRINT "S->L クイウチケイサン [ -d キカイガワ +d ムコウガワ ]" 50 REM 60 REM 70 REM 80 REM 90 REM 100 *INPUT1:' --------- インプット 1 ------ 110 WAIT 0 120 USING "#,###.###" 130 LOCATE 0,1:PRINT " L0=";MDF L0;" キジュンスイヘイキョリ" 140 LOCATE 14,1:INPUT L0 150 K=1:GOSUB *SUB4 160 LOCATE 0,1:PRINT " L0=";MDF L0 170 *INPUT2:' --------- インプット 2 ------ 180 LOCATE 0,2:PRINT " S=";MDF S;" シャキョリ" 190 LOCATE 14,2:INPUT S 200 K=2:GOSUB *SUB4 210 LOCATE 0,2:PRINT " S=";MDF S 220 LOCATE 16,2:PRINT "V=";Z$ 230 LOCATE 31,2:INPUT V 240 Z=ABS V 250 IF V>0LET I=1 260 IF V<=0LET I=-1 270 GOSUB *SUB2 280 K=2:GOSUB *SUB4 290 LOCATE 0,2:PRINT " S=";MDF S 300 LOCATE 16,2:PRINT "V=";Z$ 310 REM 320 REM 330 REM 340 REM 350 REM 360 REM 370 REM 380 REM 390 REM 400 *KEISAN:' --------- ケイサン --------- 410 IF I=1LET L=S*SIN DEG (ABS V) 420 IF I=-1LET L=S*COS DEG (ABS V) 430 LOCATE 0,3:PRINT " L =";MDF L 440 D=L0-L 450 USING "+#,###.###":BEEP 1 460 LOCATE 15,3:PRINT " d=";MDF D 470 GOTO *INPUT1 480 REM 490 REM 500 *SUB:' -------- サブル-チン ---------- 510 *SUB2:' -------- バ-チカル ---------- 520 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 530 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 540 RETURN 550 *SUB4:' -------- カ-ソルクリア- ----- 560 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 570 RETURN   内角計算 10 ' ナイカクケイサン Ver. 3.15 20 CLS :DEGREE :DEFDBL :WAIT 0:USING "#######,###.###" 30 PRINT "ナイカクケイサン Ver. 3.15" 40 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 50 LOCATE 20,0:INPUT "Y1=";Y1 60 LOCATE 20,0:PRINT "Y1=";Y1 70 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 80 LOCATE 20,1:INPUT "Y2=";Y2 90 LOCATE 20,1:PRINT "Y2=";Y2 100 X0=X1:Y0=Y1 110 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 120 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 130 GOSUB 330 140 Z0=AZ:Z=DMS AZ 150 K=2:GOSUB 390:GOSUB 360:PRINT "AZ=";Z$:LOCATE 20,2:PRINT "L =";MDF L0 160 K=3:GOSUB 390:INPUT "X3=";X3:LOCATE 0,3:PRINT "X3=";X3 170 LOCATE 20,3:INPUT "Y3=";Y3 180 LOCATE 20,3:PRINT "Y3=";Y3 190 DX3=X3-X1:DY3=Y3-Y1:L3=SQR (DX3^2+DY3^2):AZ3=ASN (DY3/(L3+ABS (L3=0))) 200 AZ3=(360+AZ3)*ABS (DX3>=0)+(180-AZ3)*ABS (DX3<0) 210 AN=AZ3-AZ+360 220 IF AN>=360LET AN=AN-360:GOTO 220 230 Z=DMS AN:GOSUB 360 240 BEEP 1 250 K=2:GOSUB 390 260 LOCATE 0,2:PRINT "X3=";X3 270 LOCATE 20,2:PRINT "Y3=";Y3 280 K=3:GOSUB 390 290 LOCATE 0,3:PRINT "AN=";Z$ 300 WAIT :LOCATE 20,3:PRINT "L =";MDF (L3):K=3:GOSUB 390 310 GOTO 110 320 END 330 IF AZ>=360LET AZ=AZ-360:GOTO 330 340 IF AZ<0LET AZ=AZ+360:GOTO 340 350 RETURN 360 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 370 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 380 RETURN 390 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 400 RETURN 410 K=3:GOSUB 390 420 RETURN   間接水準計算 1 ( S,V ) 10 ' カンセツスイジュンソクリョウ 1 ( シャキョリ、バ-チカル ) 20 CLS :DEGREE :DEFDBL :WAIT 0:USING "#######,###.###" 30 PRINT "カンセツスイジュン ソクリョウ 1 ( シャキョリ、バ-チカル )" 40 INPUT "EL=";EL:CLS 50 LOCATE 0,0:PRINT "EL=";EL 60 LOCATE 20,0:INPUT "IH=";IH 70 LOCATE 20,0:PRINT "IH=";IH 80 IF IH<0GOSUB 280 90 K=1:GOSUB 730 100 K=2:GOSUB 730 110 K=3:GOSUB 730 120 LOCATE 0,1:INPUT "FH=";FH 130 LOCATE 0,1:PRINT "FH=";FH 140 LOCATE 0,2:INPUT " L=";L0 150 LOCATE 0,2:PRINT " L=";L0 160 LOCATE 20,2:INPUT " V=";V:Z=ABS V:GOSUB 700:LOCATE 20,2:PRINT "V =";Z$ 170 IF V<=0THEN 190 180 DL=L0*SIN DEG Z:DH=L0*COS DEG Z:GOTO 200 190 DL=L0*COS DEG Z:DH=L0*SIN DEG Z 200 LOCATE 0,3:BEEP 1:PRINT "L =";MDF DL 210 WAIT 220 LOCATE 20,3:PRINT "GH=";MDF (EL+ABS IH+DH-ABS FH) 230 WAIT 0 240 IF IH<0GOSUB 470:GOSUB 500 250 IF FH<0GOSUB 560 260 GOTO 90 270 END 280 LOCATE 0,1:INPUT "X1=";X1 290 LOCATE 0,1:PRINT "X1=";X1 300 LOCATE 20,1:INPUT "Y1=";Y1 310 LOCATE 20,1:PRINT "Y1=";Y1 320 LOCATE 0,2:INPUT "X2=";X2 330 LOCATE 0,2:PRINT "X2=";X2 340 LOCATE 20,2:INPUT "Y2=";Y2 350 LOCATE 20,2:PRINT "Y2=";Y2 360 X0=X1:Y0=Y1 370 IF Y2=0LET AZ=DEG X2:GOTO 400 380 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 390 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 400 GOSUB 670 410 Z0=AZ:Z=DMS AZ 420 IF Y2=0WAIT ELSE WAIT 0 430 K=3:GOSUB 730:GOSUB 700:PRINT "AZ=";Z$:WAIT 0 440 IF Y2=0THEN 460 450 WAIT :LOCATE 20,3:PRINT "L =";L0:WAIT 0 460 RETURN 470 K=3:GOSUB 730:INPUT "HA=";HA:Z=ABS HA:GOSUB 700:LOCATE 0,3:PAUSE "HA=";Z$ 480 AZ=Z0+DEG (ABS HA) 490 RETURN 500 DX=(ABS DL)*COS AZ:DY=(ABS DL)*SIN AZ 510 X=X1+DX:Y=Y1+DY 520 BEEP 1 530 LOCATE 0,3:PRINT "X =";MDF X 540 WAIT :LOCATE 20,3:PRINT "Y =";MDF Y:K=3:GOSUB 730 550 RETURN 560 X1=X:Y1=Y 570 Z0=AZ-180:GOSUB 670 580 EL=EL+ABS IH+DH-ABS FH 590 K=0:GOSUB 730 600 K=1:GOSUB 730 610 K=2:GOSUB 730 620 K=3:GOSUB 730 630 LOCATE 0,0:PRINT "EL=";EL 640 LOCATE 20,0:INPUT "IH=";IH 650 LOCATE 20,0:PRINT "IH=";IH 660 RETURN 670 IF AZ>=360LET AZ=AZ-360:GOTO 670 680 IF AZ<0LET AZ=AZ+360:GOTO 680 690 RETURN 700 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 710 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 720 RETURN 730 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 740 RETURN   間接水準計算 2 ( dl,dh ) 10 'カンセツスイジュン ソクリョウ 2 ( dl,dh ) V.3.15 20 CLS :DEGREE :DEFDBL :WAIT 0:USING "#######,###.###" 30 PRINT "カンセツスイジュン ソクリョウ 2 ( dl,dh ) Ver. 3.15" 40 INPUT "EL=";EL 50 LOCATE 0,1:PRINT "EL=";MDF EL 60 LOCATE 20,1:INPUT "IH=";IH 70 LOCATE 20,1:PRINT "IH=";MDF IH 80 IF IH<0GOSUB 240 90 K=2:GOSUB 700 100 K=3:GOSUB 700 110 LOCATE 0,2:INPUT "FH=";FH 120 LOCATE 0,2:PRINT "FH=";MDF FH 130 IF IH>=0THEN 160 140 LOCATE 20,2:INPUT "dL=";DL 150 LOCATE 20,2:PRINT "dL=";MDF DL 160 LOCATE 0,3:INPUT "dH=";DH:LOCATE 0,3:PRINT "dH=";MDF DH 170 WAIT 180 LOCATE 20,3:PRINT "GH=";MDF (EL+ABS IH+DH-ABS FH) 190 WAIT 0 200 IF IH<0GOSUB 440:GOSUB 470 210 IF FH<0GOSUB 530 220 GOTO 90 230 END 240 LOCATE 0,2:INPUT "X1=";X1 250 LOCATE 0,2:PRINT "X1=";MDF X1 260 LOCATE 20,2:INPUT "Y1=";Y1 270 LOCATE 20,2:PRINT "Y1=";MDF Y1 280 LOCATE 0,3:INPUT "X2=";X2 290 LOCATE 0,3:PRINT "X2=";MDF X2 300 LOCATE 20,3:INPUT "Y2=";Y2 310 LOCATE 20,3:PRINT "Y2=";MDF Y2 320 X0=X1:Y0=Y1 330 IF Y2=0LET AZ=DEG X2:GOTO 360 340 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 350 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 360 GOSUB 640 370 Z0=AZ:Z=DMS AZ 380 K=3:GOSUB 700:GOSUB 670 390 IF Y2=0THEN 420 400 WAIT 0:PRINT "AZ=";Z$ 410 WAIT :LOCATE 20,3:PRINT "L =";L0:WAIT 0:GOTO 430 420 WAIT :PRINT "AZ=";Z$ 430 RETURN 440 K=3:GOSUB 700:INPUT "HA=";HA:Z=ABS HA:GOSUB 670:LOCATE 0,3:PAUSE "HA=";Z$ 450 AZ=Z0+DEG (ABS HA) 460 RETURN 470 DX=(ABS DL)*COS AZ:DY=(ABS DL)*SIN AZ 480 X=X1+DX:Y=Y1+DY 490 BEEP 1 500 LOCATE 0,3:PRINT "X =";MDF X 510 WAIT :LOCATE 20,3:PRINT "Y =";MDF Y:K=3:GOSUB 700 520 RETURN 530 X1=X:Y1=Y 540 Z0=AZ-180:GOSUB 640 550 EL=EL+ABS IH+DH-ABS FH 560 K=0:GOSUB 700 570 K=1:GOSUB 700 580 K=2:GOSUB 700 590 K=3:GOSUB 700 600 LOCATE 0,0:PRINT "EL=";MDF EL 610 LOCATE 20,0:INPUT "IH=";IH 620 LOCATE 20,0:PRINT "IH=";MDF IH 630 RETURN 640 IF AZ>=360LET AZ=AZ-360:GOTO 640 650 IF AZ<0LET AZ=AZ+360:GOTO 650 660 RETURN 670 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 680 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 690 RETURN 700 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 710 RETURN   三角計算 10 DEFDBL 20 WAIT 0:CLS :DEGREE :ON ERROR GOTO 870:PRINT "サンカクケイサン":ERASE A,A$:DIM A(10),A$(10):USING "#######,###.###" 30 FOR N=1TO 10:A$(N)=" "+MID$ ("abcABCShde",N,1)+"=":NEXT N 40 LOCATE 0,1:INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 50 LOCATE 20,0:INPUT "Y1=";Y1:LOCATE 20,0:PRINT "Y1=";Y1 60 LOCATE 0,1:INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 70 LOCATE 20,1:INPUT "Y2=";Y2:LOCATE 20,1:PRINT "Y2=";Y2 80 DX=X2-X1:DY=Y2-Y1:L=SQR (DX^2+DY^2):Z=ASN (DY/(L+ABS (L=0))) 90 Z=(360+Z)*ABS (DX>=0)+(180-Z)*ABS (DX<0):GOSUB 750:Z1=Z:A(3)=L 100 X0=X1:Y0=Y1:Z0=Z1:A(1)=0:A(2)=0 110 FOR N=4TO 10:A(N)=0:NEXT N:S=0:K=2:GOSUB 860 120 FOR N=1TO 10 130 IF A(N)<>0OR S>1THEN 330 140 LOCATE S*20,K:PRINT A$(N) 150 LOCATE S*20+3,K:INPUT A(N) 160 IF A(N)=0THEN 330 170 IF N<4AND A(N)<0GOSUB 890 180 IF N<4THEN 310 190 IF N>6THEN 280 200 A(N)=DEG A(N):A(6)=ABS A(6) 210 IF A(N)>0THEN 240 220 Z=(-A(4)-Z1)*ABS (N=4)+(Z1+A(5)+180)*ABS (N=5) 230 GOSUB 750:A(N)=Z-180*ABS (Z>=180) 240 IF A(N)>=180LET A(N)=360-A(N) 250 Z=DMS A(N):GOSUB 830 260 LOCATE 20*S,K:PRINT A$(N);Z$ 270 A(9)=A(3)*SIN A(5):A(10)=A(3)*SIN A(4):GOTO 320 280 ON N-7GOTO 310,300,300 290 A(8)=2*A(7)/A(3):GOTO 310 300 A(5-ABS (N=10))=ASN (A(N)/A(3)) 310 LOCATE 20*S,2:PRINT A$(N);MDF A(N) 320 S=S+1 330 NEXT N:IF S<2THEN 120 340 S=0:L=A(1)+A(2)*ABS (A(1)=0):W=A(4)+(A(10)-A(5))*ABS (A(4)=0):K=3:GOSUB 860 350 FOR M=1TO 5 360 FOR N=M+1TO 6 370 S=S+1 380 IF A(M+5*ABS (M=3))=0OR A(N+5*ABS (N=3))=0THEN 410 390 ON S GOSUB 440,450,480,490,500,510,520,590,600,660,670,680,710,720,730 400 GOSUB 790:N=6:M=5 410 NEXT N:NEXT M 420 GOTO 100 430 ' TRIANGLE 440 W=ACS ((A(1)^2-A(2)^2+A(3)^2)/(2*A(1)*A(3))):RETURN 450 W=ASN (A(8)/A(1)) 460 Z=Z0-W+180 470 GOSUB 850:GOTO 800 480 RETURN 490 GOTO 520 500 GOTO 600 510 W=360-ASN (A(8)/A(2)):GOSUB 590:GOTO 460 520 P=A(3)*SIN A(N):T=ABS (A(3)*COS A(N)):U=SQR (A(M)^2-P^2):O=1:IF N=5GOSUB 590 530 IF (A(N)>=90AND A(M)A(M))THEN 870 540 IF A(N)<90AND A(M)>=A(3) THEN 580 550 IF A(M)>A(3) OR P=A(M)THEN 570 560 GOSUB 580:GOSUB 780 570 O=-1 580 L=ABS (T+O*U):RETURN 590 X0=X2:Y0=Y2:Z0=Z1+180:RETURN 600 P=180-ASN (A(M)/A(3)*SIN A(6)) 610 IF A(M)<=A(3) THEN 630 620 W=P+A(6):GOSUB 640:GOSUB 460 630 W=P-A(6) 640 IF M=2THEN 700 650 RETURN 660 L=A(8)/SIN A(4):RETURN 670 L=A(8)/SIN A(5):GOTO 590 680 V=A(3)/2:P=V*TAN ((180-A(6)*2)/2):R=SQR (P^2+V^2):Q=SQR ABS (R^2-(P-ABS A(8))^2):L=SQR (A(8)^2+(Q+V)^2) 690 W=ASN (A(8)/L):GOSUB 780 700 W=A(10)-W:GOTO 590 710 GOTO 740 720 L=A(3)*SIN (180-A(4)-A(6))/SIN A(6):RETURN 730 W=180-A(5)-A(6) 740 L=A(3)*SIN A(5)/SIN (180-W-A(5)):RETURN 750 Z=Z-360*ABS (Z>=360)+360*ABS (Z<0) 760 RETURN 770 ' SUBROUTINE 780 GOSUB 850 790 Z=Z0+W 800 GOSUB 750:DX=L*COS Z:DY=L*SIN Z:X=X0+DX:Y=Y0+DY:GOSUB 860:WAIT 810 BEEP 1:PRINT " X=";MDF X;" Y=";MDF Y 820 GOSUB 860:WAIT 0:RETURN 830 :P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 840 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R:RETURN 850 BEEP 2:PAUSE "2 Triangles" 860 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K:RETURN 870 WAIT :BEEP 2:PRINT "NOT TRIANGLE DATA CHECK!" 880 GOSUB 820:GOTO 100 890 LOCATE 0,3:PRINT " L=";ABS A(N):LOCATE 20,3 900 V=0:INPUT " V=";V:Z=V:GOSUB 830:LOCATE 20,3:PAUSE " V=";Z$ 910 IF Z>=0THEN 940 920 Z=ABS Z 930 Z=450+Z:IF Z>=360LET Z=Z-360 940 A(N)=ABS (A(N)*COS DEG Z):K=3:GOSUB 860:K=2 950 RETURN   垂線長計算 10 ' スイセンチョウケイサン Ver. 3.15 20 DEFDBL :DEGREE 30 CLS :WAIT 0:USING "#######,###.###" 40 PRINT "スイセンチョウケイサン Ver. 3.15" 50 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 60 LOCATE 20,0:INPUT "Y1=";Y1 70 LOCATE 20,0:PRINT "Y1=";Y1 80 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 90 LOCATE 20,1:INPUT "Y2=";Y2 100 LOCATE 20,1:PRINT "Y2=";Y2 110 X0=X1:Y0=Y1 120 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 130 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 140 GOSUB 360 150 Z0=AZ:Z=DMS AZ 160 K=2:GOSUB 420:GOSUB 390:PRINT "AZ=";Z$:LOCATE 20,2:PRINT "L =";MDF L0 170 K=3:GOSUB 420:INPUT "X3=";X3:LOCATE 0,3:PRINT "X3=";X3 180 LOCATE 20,3:INPUT "Y3=";Y3 190 LOCATE 20,3:PRINT "Y3=";Y3 200 DX3=X3-X1:DY3=Y3-Y1:L3=SQR (DX3^2+DY3^2):AZ3=ASN (DY3/(L3+ABS (L3=0))) 210 AZ3=(360+AZ3)*ABS (DX3>=0)+(180-AZ3)*ABS (DX3<0) 220 AN=AZ3-AZ+360 230 IF AN>=360LET AN=AN-360:GOTO 230 240 Z=DMS AN:GOSUB 390 250 K=2:GOSUB 420 260 LOCATE 0,2:PRINT "X3=";X3 270 LOCATE 20,2:PRINT "Y3=";Y3 280 K=3:GOSUB 420 290 BEEP 1 300 L=L3*COS AN 310 H=L3*SIN AN 320 LOCATE 0,3:PRINT "L =";MDF L 330 WAIT :LOCATE 20,3:PRINT "H =";MDF H:K=3:GOSUB 420 340 GOTO 120 350 END 360 IF AZ>=360LET AZ=AZ-360:GOTO 360 370 IF AZ<0LET AZ=AZ+360:GOTO 370 380 RETURN 390 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 400 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 410 RETURN 420 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 430 RETURN 440 K=3:GOSUB 420 450 RETURN   鉛直角補正計算 10 CLS :DEGREE :WAIT 0:PRINT "VERTICAL" 20 LOCATE 0,1:INPUT " r=";RR 30 LOCATE 0,2:INPUT " l=";LL 40 R=DEG RR:L=DEG LL:IF R>L LET R1=R:R2=L:R=R2:L=R1 50 Z=R:GOSUB 190 60 LOCATE 0,0:PRINT " r= ";Z$ 70 Z=L:GOSUB 190 80 LOCATE 0,1:PRINT " l= ";Z$ 90 T=R+L:U=ABS (360-T):Z=T:GOSUB 190 100 LOCATE 0,2:PRINT "TOTAL= ";Z$ 110 Z=U:GOSUB 190:IF T<360LET S$="-" 120 LOCATE 0,3:PRINT " e= ";S$+Z$ 130 V2=R-L:IF V2<0LET V2=V2+360 140 Z=V2:GOSUB 190:LOCATE 21,1:PRINT "2Z= ";Z$ 150 V1=V2/2:Z=V1:GOSUB 190 160 LOCATE 22,2:PRINT "Z= ";Z$:V=ABS (90-V1):Z=V:GOSUB 190:IF V1>90LET S$="-" 170 WAIT :BEEP 1:LOCATE 22,3::PRINT "V= ";S$+Z$ 180 GOTO 10 190 Z=DMS (Z+5/TEN 6) 200 D=INT Z:CC=(Z-D)*100:E=INT CC:G=INT ((CC-E)*1000)/10 210 Z$=STR$ D+CHR$ &DF+STR$ E+CHR$ &27+STR$ G 220 S$="+":RETURN   簡易 気圧、気温 補正 10 ' カンイ キアツ - キオンホセイ ケイサン (WILD) 20 CLS :DEGREE :DEFDBL :USING "####,###.####" 30 ' ------ ショキジョウケン ------ 40 ' キジュンオンド 10 ゚C 1.7+(TM-30)*0.085 50 ' キジュンタカサ ヒョウコウ 0 m AH*0.003 60 REM 70 REM 80 REM 90 REM 100 CLS :WAIT 0:PRINT "カンイ キアツ - キオンホセイ ケイサン (WILD)" 110 LOCATE 0,1:INPUT "GH=";GH 120 CLS :LOCATE 0,0:PRINT "GH=";MDF GH 130 LOCATE 20,0:INPUT "IH=";IH 140 LOCATE 30,0:INPUT "FH=";FH 150 LOCATE 0,1:INPUT "キオン=";TM 160 LOCATE 20,1:INPUT " V=";V0:V=DEG V0 170 LOCATE 0,2:INPUT "L 1=";L1 180 LOCATE 19,2:INPUT "L 2=";L2 190 LOCATE 0,3:INPUT "L 3=";L3 200 A=L1+L2+L3 210 L=A/3:J=((L* SIN V)/2+GH+IH-FH)*0.003+1.7+(TM-30)*0.085:D=J*L/TEN 5:D0=L+D 220 WAIT :LOCATE 17,3:PRINT "TOTAL=";MDF A 230 CLS :WAIT 0:LOCATE 0,0:PRINT "TOTAL/ 3 =";MDF L;" ヘイキンキョリ" 240 LOCATE 0,1:PRINT "キアツ+キオンホセイ=";MDF J;" ケイスウ" 250 LOCATE 0,2:PRINT " d=";MDF D;" キアツ+キオンホセイ" 260 BEEP 1:WAIT :LOCATE 0,3:PRINT "D0=";MDF D0;" シャキョリ" 270 GOTO 100 280 REM 290 REM 300 ' ------ サブル-チン ------ 310 *SUB1:' ------ バ-チカル ------ 320 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 330 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 340 RETURN   投影補正、縮尺補正計算 10 ' トウエイホセイ - シュクシャクホセイ ケイサン 20 CLS :DEGREE :DEFDBL :USING "####,###.####" 30 ' ------ ショキジョウケン ------ 40 ER=6377397.155:' チキュウノハンケイ 50 K=0.9999:' シュクシャクケイスウ 60 REM 70 REM 80 REM 90 REM 100 PRINT "トウエイホセイ - シュクシャクホセイ ケイサン" 110 PRINT "D0= シャキョリ" 120 LOCATE 4,1:INPUT L0 130 CLS :LOCATE 0,0:PRINT "D0=";L0;" シャキョリ" 140 V1=0:INPUT " VER 1=";V1 150 IF V1=0THEN 220 160 Z=ABS V1:S=SGN V1 170 IF V1>=0LET S$="+" 180 IF V1<0LET S$="-" 190 V1=DEG V1:V0=SGN V1 200 GOSUB *SUB1 210 LOCATE 7,1:PRINT S$+Z$ 220 V2=0:LOCATE 21,1:INPUT "VER 2=";V2 230 IF V2=0THEN 290 240 Z=ABS V2:S=SGN V2:V2=DEG V2 250 IF V2>=0LET S$="+" 260 IF V2<0LET S$="-" 270 GOSUB *SUB1 280 LOCATE 27,1:PRINT S$+Z$ 290 IF V1=0LET V=-V2:GOTO 320 300 IF V2=0LET V=V1:GOTO 320 310 V=V0*(ABS V1+ABS V2)/2 320 Z=ABS (DMS V):S=SGN V 330 IF V>=0LET S$="+" 340 IF V<0LET S$="-" 350 GOSUB *SUB1 360 LOCATE 0,2:PRINT " VER =";S$+Z$ 370 WAIT 0:LOCATE 0,3:INPUT "GH=";GH 380 LOCATE 15,3:INPUT "IH=";IH 390 LOCATE 30,3:INPUT "FH=";FH 400 D=L0*COS V 410 H=L0*SIN V 420 DH=H+IH-FH 430 EL=GH+DH 440 AH=(GH+EL)/2 450 IF V2=0LET DD=-EL*D/ER:L=D+DD:GOTO 490 460 IF V1=0LET DD=-GH*D/ER:L=D+DD:GOTO 480 470 DD=-AH*D/ER:L=D+DD 480 IF V1=0THEN CLS :LOCATE 0,0:PRINT "dH= ***":GOTO 500 490 CLS :LOCATE 0,0:PRINT "dH=";MDF H 500 IF V1=0THEN LOCATE 20,0:PRINT "EL= ***":GOTO 520 510 LOCATE 20,0:PRINT "EL=";MDF EL 520 IF V1=0OR V2=0THEN LOCATE 0,1:PRINT "AH= ***":GOTO 540 530 LOCATE 0,1:PRINT "AH=";MDF AH 540 LOCATE 20,1:PRINT " D=";MDF D 550 LOCATE 0,2:PRINT " d=";MDF DD 560 LOCATE 20,2:PRINT " S=";MDF L 570 USING "####,###.######" 580 LOCATE 0,3:PRINT " K=";K;" シュクシャクケイスウ" 590 LOCATE 20,3:INPUT K 600 KK=(K-1)*D 610 USING "####,###.####" 620 CLS :LOCATE 0,0:PRINT " S=";MDF L;" キュウメンキョリ" 630 USING "###,####.######" 640 LOCATE 0,1:PRINT " K=";MDF K;" シュクシャクケイスウ" 650 LOCATE 0,2:PRINT " k=";MDF KK;" シュクシャクホセイ" 660 USING "####,###.####" 670 L=L*K 680 WAIT :BEEP 1:LOCATE 0,3:PRINT " L=";MDF L;" ヘイメンキョリ" 690 CLS :WAIT 0 :GOTO 100 700 ' ------ サブル-チン ------ 710 *SUB1:' ------ バ-チカル ------ 720 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 730 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 740 RETURN   結合・閉合・開放・開放結合 トラバース 測量 10 ' ケツゴウ,ヘイゴウ トラバ-ス ソクリョウ Ver. 3.21 20 *MAIN:DEFDBL :' --- メイン ルーチン --- 30 CLS :DEGREE 40 S1$="E:" 50 S2$="F:" 60 S3$="X:" 70 S4$="CAS:" 80 SD$=".DAT" 90 FN$="ケツゴウ" 100 ON ERROR GOTO *ERR 110 WAIT 0:PRINT "ケツゴウ,ヘイゴウ トラバ-ス ソクリョウ V.3.21 [100テン]" 120 Y=1:LOCATE 4,2:INPUT " [ 1:ケイゾク 2:シンキ 3:ロード ] ";Y 130 IF Y=1THEN *LIST 140 IF Y=2THEN *INPUT1 150 IF Y>=4THEN *MAIN 160 REM 170 REM 180 REM 190 REM 200 *LOAD:' -------- データロード --------- 210 SL=0 220 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ]";S 230 IF S>=5THEN *MAIN 240 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 250 LOCATE 9,3:INPUT FN$ 260 IF FN$="C"THEN *MAIN 270 ERASE NA$,HA,L,X,Y 280 DIM NA$(101),HA(101),L(101),X(101),Y(101) 290 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 330 300 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 330 310 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 330 320 OPEN S1$+FN$+SD$ FOR INPUT AS #1 330 WAIT 0:PRINT "・・・・・・ ロ-ド チュウ Just a moment Please !!" 340 INPUT #1,X1,Y1,X2,Y2,X3,Y3,X4,Y4,HA(*),L(*),X(*),Y(*),NA$(*) 350 CLOSE #1 360 IF Y2=0LET AZ=DEG X2:GOSUB *SUB2:AZ1=AZ:Z1$=Z$:GOTO 400 370 DX=X2-X1:DY=Y2-Y1 380 GOSUB *SUB1 390 L1=L0:AZ1=AZ:Z1$=Z$ 400 IF Y4=0LET AZ=DEG X4:GOSUB *SUB2:AZ2=AZ:Z2$=Z$:GOTO 440 410 DX=X4-X3:DY=Y4-Y3 420 GOSUB *SUB1 430 L2=L0:AZ2=AZ:Z2$=Z$ 440 GOTO *KEISAN 450 REM 460 REM 470 REM 480 REM 490 REM 500 *INPUT1:' --------- インプット 1 ------ 510 CLS :WAIT 0:USING "####,###.###" 520 LOCATE 0,2:PRINT "[ ヘイゴウ X2=サイシュウテンヘノホウコカク(シュッシャホウコウカク)][ Y2=0 トシテ X3~Y4 ハ リタ-ン デオクルコト ]" 530 LOCATE 0,0:INPUT "シュッパツテン X1=";X1:X0=X1:X3=X1 540 LOCATE 20,0:INPUT " Y1=";Y1:Y0=Y1:Y3=Y1 550 LOCATE 0,1:INPUT " バックテン X2=";X2:X4=X2 560 LOCATE 20,1:INPUT " Y2=";Y2:Y4=Y2 570 IF Y2=0LET AZ=DEG X2:GOSUB *SUB2:AZ1=AZ:Z1$=Z$:GOTO 610 580 DX=X2-X1:DY=Y2-Y1 590 GOSUB *SUB1 600 L1=L0:AZ1=AZ:Z1$=Z$ 610 K=2:GOSUB *SUB4 620 K=3:GOSUB *SUB4 630 LOCATE 0,2:INPUT "トウチャクテン X3=";X3 640 LOCATE 20,2:INPUT " Y3=";Y3 650 LOCATE 0,3:INPUT " フォア-テン X4=";X4 660 LOCATE 20,3:INPUT " Y4=";Y4 670 IF Y4=0LET AZ=DEG X4:GOSUB *SUB2:AZ2=AZ:Z2$=Z$:GOTO 710 680 DX=X4-X3:DY=Y4-Y3 690 GOSUB *SUB1 700 L2=L0:AZ2=AZ:Z2$=Z$ 710 CLS :WAIT 0 720 LOCATE 0,0:PRINT "シハツテン X1=";X1;" Y1=";Y1 730 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN 790 740 IF Y2=0THEN 770 750 LOCATE 0,1:PRINT " AZ1=";Z1$ 760 LOCATE 25,1:PRINT "L1=";MDF L1:GOTO 830 770 LOCATE 0,1:PRINT " AZ1=";Z1$ 780 GOTO 830 790 IF Y2=0THEN 820 800 LOCATE 0,1:PRINT " AZ1=";Z1$ 810 LOCATE 25,1:WAIT :PRINT "L1=";MDF L1:GOTO 830 820 LOCATE 0,1:WAIT :PRINT " AZ1=";Z1$ 830 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN 930 840 IF X4=0 AND Y4=0 THEN 870 850 LOCATE 0,2:PRINT "トウタツテン X3=";X3;" Y3=";Y3 860 GOTO 890 870 LOCATE 0,2:WAIT :PRINT "トウタツテン X3=";X3;" Y3=";Y3 880 GOTO 930 890 IF Y4=0THEN 920 900 LOCATE 0,3:WAIT 0:PRINT " AZ2=";Z2$ 910 LOCATE 25,3:WAIT :PRINT "L2=";MDF L2:GOTO 930 920 LOCATE 0,3:WAIT :PRINT " AZ2=";Z2$ 930 CLS :WAIT 0 940 REM 950 REM 960 REM 970 REM 980 REM 990 REM 1000 *INPUT2:' --------- インプット 2 ------ 1010 ERASE NA$,HA,L,X,Y 1020 DIM NA$(101),HA(101),L(101),X(101),Y(101) 1030 FOR I=1TO 100 1040 CLS :WAIT 0:USING "###" 1050 PRINT I; 1060 INPUT " NAME=";NA$(I) 1070 INPUT " HA=";HA(I):HA(I)=DEG HA(I):AZ=HA(I):GOSUB *SUB2:LOCATE 0,1:PRINT " HA=";Z$ 1080 IF X4=0 AND Y4=0 THEN 1100 1090 IF X1=X3 AND Y1=Y3 AND AZ1=AZ2 THEN 1130 1095 GOTO 1120 1100 LOCATE 0,3:PRINT "[ OPEN サイシュウテンノツギノテンハ HA=0 L=0 トスルコト ]" 1110 GOTO 1140 1120 LOCATE 0,3:PRINT "[ ケツゴウ サイシュウテンハ L=0 トスルコト ]":GOTO 1140 1130 LOCATE 0,3:PRINT "[ ヘイゴウ サイシュウテンノツギノテンハ HA=0 L=0 トスルコト ]" 1140 LOCATE 0,2:INPUT " L=";L(I) 1150 IF L(I)<0GOSUB *SUB3 1160 IF L(I)=0LET I=100:GOTO 1170 1170 NEXT I 1180 K=3:GOSUB *SUB4 1190 WAIT :LOCATE 0,3 1200 Y=1:INPUT "データ ノ [ 1:テイセイ 2:セーブ 3:ケイサン 4:リスト]";Y 1210 IF Y<=1THEN *TEISEI 1220 IF Y=2THEN *SAVE 1230 IF Y>=4THEN *LIST 1240 GOTO *KEISAN 1250 REM 1260 REM 1270 REM 1280 REM 1290 REM 1300 *LIST:' -------- データ リスト -------- 1310 CLS :WAIT 0 1320 USING "####,###.###":' シモケタ 3 ケタ 1330 LOCATE 0,0:PRINT "シハツテン X1=";X1;" Y1=";Y1 1340 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN 1400 1350 IF Y2=0THEN 1380 1360 LOCATE 0,1:PRINT " AZ1=";Z1$ 1370 LOCATE 23,1:PRINT "L1=";MDF L1:GOTO 1440 1380 LOCATE 0,1:PRINT " AZ1=";Z1$ 1390 GOTO 1440 1400 IF Y2=0THEN 1430 1410 LOCATE 0,1:PRINT " AZ1=";Z1$ 1420 LOCATE 25,1:WAIT :PRINT "L1=";MDF L1:GOTO 1540 1430 LOCATE 0,1:WAIT :PRINT " AZ1=";Z1$ 1440 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN 1540 1450 IF X4=0 AND Y4=0 THEN 1480 1460 LOCATE 0,2:PRINT "トウタツテン X3=";X3;" Y3=";Y3 1470 GOTO 1500 1480 LOCATE 0,2:WAIT :PRINT "トウタツテン X3=";X3;" Y3=";Y3 1490 GOTO 1540 1500 IF Y4=0THEN 1530 1510 LOCATE 0,3:WAIT 0:PRINT " AZ2=";Z2$ 1520 LOCATE 23,3:WAIT :PRINT "L2=";MDF L2:GOTO 1540 1530 LOCATE 0,3:WAIT :PRINT " AZ2=";Z2$ 1540 AZ0=AZ1+180:X0=X1:Y0=Y1 1550 FOR I=1TO 100 1560 CLS :WAIT 0 1570 USING "###":PRINT I; 1580 PRINT " NAME=";NA$(I) 1590 AZ=HA(I):GOSUB *SUB2:LOCATE 0,1:PRINT " HA=";Z$ 1600 USING "####,###.###":LOCATE 0,2:PRINT " L =";MDF L(I) 1610 AZ0=AZ0+HA(I)-180 1620 IF AZ0>=360LET AZ0=AZ0-360:GOTO 1620 1630 IF AZ0<0LET AZ0=AZ0+360:GOTO 1630 1640 IF L(I)=0LET I=100:GOTO 1680 1650 DX=L(I)*COS AZ0:DY=L(I)*SIN AZ0 1660 X0=X0+DX:Y0=Y0+DY 1670 LOCATE 0,3:WAIT :PRINT "オ-プン X=";MDF X0;" Y=";MDF Y0 1680 NEXT I 1690 REM 1700 *TEISEI:' --------- テイセイ --------- 1710 WAIT 1720 Y=1:INPUT "データ ノ [1:テイセイ 2:ソウニュウ 3:サクジョ 4:セーブ]";Y 1730 IF Y>4THEN *LIST 1740 IF Y=4THEN *SAVE 1750 IF Y=3THEN *DELETE 1760 IF Y=2THEN *INSERT 1770 Y=1:INPUT "テイセイ [ 1:NO. 2:XY,AZ 3:ケイサン 4:リスト]";Y 1780 IF Y>=4THEN *LIST 1790 IF Y=3THEN *KEISAN 1800 IF Y=2THEN *TEISEI1 1810 N=0:INPUT "テイセイ NO. ";N 1820 IF N<=0THEN *KEISAN 1830 GOSUB *TEISEI2 1840 GOTO 1810 1850 REM 1860 REM 1870 REM 1880 REM 1890 REM 1900 *TEISEI1:' --------- テイセイ 1 ----- 1910 CLS :WAIT 0 1920 USING "####,###.####":' シモケタ 4 ケタ 1930 LOCATE 0,0:PRINT "シハツテン X1=";X1 1940 LOCATE 0,1:PRINT " Y1=";Y1 1950 LOCATE 0,2:PRINT " バックテン X2=";X2 1960 LOCATE 0,3:PRINT " Y2=";Y2 1970 LOCATE 26,0:INPUT X1 1980 LOCATE 26,1:INPUT Y1 1990 LOCATE 26,2:INPUT X2 2000 LOCATE 26,3:INPUT Y2 2010 IF Y2=0LET AZ=DEG X2:GOSUB *SUB2:AZ1=AZ:Z1$=Z$:GOTO 2050 2020 DX=X2-X1:DY=Y2-Y1 2030 GOSUB *SUB1 2040 L1=L0:AZ1=AZ:Z1$=Z$ 2050 CLS 2060 LOCATE 0,0:PRINT "トウタツテン X3=";X3 2070 LOCATE 0,1:PRINT " Y3=";Y3 2080 LOCATE 0,2:PRINT " フォア-テン X4=";X4 2090 LOCATE 0,3:PRINT " Y4=";Y4 2100 LOCATE 26,0:INPUT X3 2110 LOCATE 26,1:INPUT Y3 2120 LOCATE 26,2:INPUT X4 2130 LOCATE 26,3:INPUT Y4 2140 IF Y4=0LET AZ=DEG X4:GOSUB *SUB2:AZ2=AZ:Z2$=Z$:GOTO 2180 2150 DX=X4-X3:DY=Y4-Y3 2160 GOSUB *SUB1 2170 L2=L0:AZ2=AZ:Z2$=Z$ 2180 GOTO 1770 2190 REM 2200 *TEISEI2:' --------- テイセイ 2 ----- 2210 CLS :WAIT 0:USING "###":I=N 2220 LOCATE 0,0:PRINT N; 2230 PRINT " NAME=";NA$(N);" テイセイ" 2240 AZ=HA(N):GOSUB *SUB2 2250 LOCATE 0,1:PRINT " HA=";Z$ 2260 USING "###,###.###" 2270 LOCATE 0,2:PRINT " L =";L(N) 2280 LOCATE 25,0:INPUT NA$(N) 2290 HA=DMS HA(N):LOCATE 25,1:INPUT HA:IF HA<>DMS HA(N)LET HA(N)=DEG HA 2300 LOCATE 25,2:INPUT L(N):IF L(N)<0GOSUB *SUB3 2310 RETURN 2320 REM 2330 REM 2340 REM 2350 REM 2360 REM 2370 REM 2380 REM 2390 REM 2400 *INSERT:' -------- ソウニュウ --------- 2410 N=0:INPUT "ソウニュウ NO. ";N 2420 IF N<=0THEN *LIST 2430 CLS :WAIT 0:I=N 2440 USING "###":PRINT N; 2450 PRINT " NAME=";NA$(N);" ソウニュウ" 2460 AZ=HA(N):GOSUB *SUB2 2470 LOCATE 0,1:PRINT " HA=";Z$ 2480 USING "###,###.###" 2490 LOCATE 0,2:PRINT " L =";L(N) 2500 LOCATE 25,0:INPUT NA$ 2510 LOCATE 25,1:INPUT HA:HA=DEG HA 2520 LOCATE 25,2:INPUT L 2530 IF L<0GOSUB *SUB33 2540 FOR I=N TO 100 2550 NA$(0)=NA$(I):HA(0)=HA(I):L(0)=L(I) 2560 NA$(I)=NA$:HA(I)=HA:L(I)=L 2570 NA$=NA$(0):HA=HA(0):L=L(0) 2580 IF L(I)=0LET I=100 2590 NEXT I 2600 GOTO *INSERT 2610 REM 2620 REM 2630 REM 2640 REM 2650 REM 2660 REM 2670 REM 2680 REM 2690 REM 2700 *DELETE:' -------- サクジョ --------- 2710 N=0:INPUT "サクジョ NO. ";N 2720 IF N<=0THEN *LIST 2730 CLS :WAIT 0 2740 USING "###":PRINT N; 2750 PRINT " NAME=";NA$(N);" サクジョ" 2760 AZ=HA(N):GOSUB *SUB2 2770 LOCATE 0,1:PRINT " HA=";Z$ 2780 USING "###,###.###" 2790 LOCATE 0,2:PRINT " L =";MDF L(N) 2800 Y$="N":INPUT " サクジョ (Y/N) ";Y$ 2810 IF Y$<>"Y"THEN 2860 2820 FOR I=N TO 100 2830 NA$(I)=NA$(I+1):HA(I)=HA(I+1):L(I)=L(I+1) 2840 IF L(I)=0LET I=100 2850 NEXT I 2860 GOTO *DELETE 2870 REM 2880 REM 2890 REM 2900 *KEISAN:' --------- ケイサン --------- 2910 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN *LIST 2920 AZ0=AZ1+180:X0=X1:Y0=Y1:TL=0 2930 FOR I=1TO 100 2940 TL=TL+L(I) 2950 AZ0=AZ0+HA(I)+180 2960 IF AZ0>=360LET AZ0=AZ0-360:GOTO 2960 2970 IF AZ0<0LET AZ0=AZ0+360:GOTO 2970 2980 J=I 2990 IF L(I)=0LET I=100:GOTO 3020 3000 DX=L(I)*COS AZ0:DY=L(I)*SIN AZ0 3010 X0=X0+DX:Y0=Y0+DY:X(I)=X0:Y(I)=Y0 3020 NEXT I 3030 IF X4=0 AND Y4=0 LET DAZ=0:EAZ=0:GOTO 3080 3040 DAZ=AZ0-AZ2 3050 IF DAZ>=0LET S=1:S$="+" 3060 IF DAZ<0LET S=-1:S$="-" 3070 DAZ=ABS DAZ 3080 CLS :WAIT 0:USING "###" 3090 IF X4=0 AND Y4=0 THEN 3130 3100 IF X1=X3 AND Y1=Y3 AND AZ1=AZ2 THEN 3130 3110 PRINT "ト-タルポイント=";J;" テン" 3120 GOTO 3150 3130 PRINT "ト-タルポイント=";J-1;" テン" 3140 IF X4=0 AND Y4=0 THEN 3250 3150 AZ=DAZ:GOSUB *SUB2 3160 PRINT " dAZ=";S$+Z$; 3170 IF X1=X3 AND Y1=Y3 AND AZ1=AZ2 THEN 3210 3180 IF S=1LET EAZ=-DAZ/J:S$="-" 3190 IF S=-1LET EAZ=DAZ/J:S$="+" 3200 GOTO 3230 3210 IF S=1LET EAZ=-DAZ/(J-1):S$="-" 3220 IF S=-1LET EAZ=DAZ/(J-1):S$="+" 3230 AZ=ABS EAZ:GOSUB *SUB2 3240 LOCATE 22,1:PRINT "eAZ=";S$+Z$ 3250 USING "###,###.###" 3260 DX=X(J-1)-X3:DY=Y(J-1)-Y3 3270 ERR=ABS TL/SQR (DX^2+DY^2) 3280 PRINT " dX=";MDF DX; 3290 PRINT " dY=";MDF DY 3300 USING "#######,###" 3310 PRINT " セイド 1/";ERR; 3320 Y$="Y":INPUT " OK? (Y/N) ";Y$ 3330 IF Y$="Y"THEN 3350 3340 GOTO *LIST 3350 AZ0=AZ1+180:X0=X1:Y0=Y1:TDL=0 3360 FOR I=1TO 100 3370 TDL=TDL+L(I) 3380 AZ0=AZ0+HA(I)+EAZ+180 3390 IF AZ0>=360LET AZ0=AZ0-360:GOTO 3390 3400 IF AZ0<0LET AZ0=AZ0+360:GOTO 3400 3410 J=I 3420 IF L(I)=0LET I=100:GOTO 3450 3430 DX=L(I)*COS AZ0:DY=L(I)*SIN AZ0 3440 X0=X0+DX:Y0=Y0+DY:X(I)=X0:Y(I)=Y0 3450 NEXT I 3460 USING "###,###.###" 3470 DX=X(J-1)-X3:DY=Y(J-1)-Y3 3480 IF X4=0 AND Y4=0 THEN 3550 3490 PRINT " dX=";MDF DX; 3500 PRINT " dY=";MDF DY 3510 USING "#######,###" 3520 PRINT " セイド 1/";ABS TL/SQR (DX^2+DY^2); 3530 Y$="Y":INPUT " OK? (Y/N) ";Y$ 3540 IF Y$="N"THEN *LIST 3550 EDX=-DX/TL:EDY=-DY/TL 3560 X=X(J-1)+EDX*TDL:Y=Y(J-1)+EDY*TDL 3570 WAIT 0 3580 REM 3590 REM 3600 *OUT:' ------ アウトプット ----------- 3610 TDL=0 3620 FOR I=1TO 100 3630 TDL=TDL+L(I) 3640 IF L(I)=0LET I=100:GOTO 3870 3650 X=X(I)+EDX*TDL:Y=Y(I)+EDY*TDL 3660 CLS :WAIT 0 3670 USING "###":PRINT I; 3680 PRINT " ";NA$(I); 3690 USING "##,###.###" 3700 PRINT " TL=";TL; 3710 USING "###,###" 3720 PRINT " セイド1/";ERR 3730 USING "####,###.###":' ケタシモ 3 ケタ 3740 PRINT "オ-プン X=";MDF X(I); 3750 PRINT " Y=";MDF Y(I) 3760 PRINT " ex=";MDF (EDX*TDL); 3770 PRINT " ey=";MDF (EDY*TDL) 3780 IF X4=0 AND Y4=0 THEN 3840 3790 IF X1=X3 AND Y1=Y3 AND AZ1=AZ2 THEN 3820 3800 PRINT "ケツゴウ X=";MDF X; 3810 GOTO 3850 3820 PRINT "ヘイゴウ X=";MDF X; 3830 GOTO 3850 3840 PRINT "OPEN X=";MDF X; 3850 WAIT 3860 PRINT " Y=";MDF Y 3870 NEXT I 3880 CLS 3890 GOTO 1190 3900 *SAVE:' -------- データセーブ -------- 3910 WAIT 0 3920 SL=1 3930 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ]";S 3940 IF S>=5THEN *KEISAN 3950 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 3960 LOCATE 9,3:INPUT FN$ 3970 IF FN$="C"THEN *LIST 3980 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 4020 3990 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 4020 4000 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 4020 4010 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 4020 WAIT 0:PRINT "・・・・・・ セ-ブ チュウ Just a moment Please !!" 4030 PRINT #1,X1,Y1,X2,Y2,X3,Y3,X4,Y4,HA(*),L(*),X(*),Y(*),NA$(*) 4040 CLOSE #1 4050 GOTO *KEISAN 4060 REM 4070 REM 4080 REM 4090 REM 4100 *ERR:' -------- エラー ショリ ---------- 4110 BEEP 2 4120 WAIT 0 4130 IF ERN =72AND SL=0PRINT "I/O error":RESUME 220 4140 IF ERN =72AND SL=1PRINT "I/O error":RESUME 3930 4150 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 220 4160 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 3930 4170 IF ERN =76AND SL=1PRINT "File write protected":RESUME 3930 4180 IF ERN =77PRINT "Disk full":RESUME 3930 4190 IF ERN =94PRINT "File not found":RESUME 220 4200 RESUME *LIST 4210 REM 4220 REM 4230 REM 4240 REM 4250 REM 4260 REM 4270 REM 4280 REM 4290 REM 4300 *SUB:' -------- サブル-チン ---------- 4310 *SUB1:' -------- REVERSE --------- 4320 L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 4330 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 4340 IF AZ>=360LET AZ=AZ-360:GOTO 4340 4350 IF AZ<0LET AZ=AZ+360:GOTO 4350 4360 *SUB2:' -------- AZIMUTH --------- 4370 Z0=AZ:Z=DMS AZ 4380 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 4390 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 4400 RETURN 4410 *SUB3:' -------- S->L --------- 4420 K=3:GOSUB *SUB4 4430 USING "####,###.###" 4440 LOCATE 0,3:PRINT " S=";ABS L(I) 4450 LOCATE 20,3:INPUT " V=";V 4460 IF V>0LET S=1:S$="+" 4470 IF V<=0LET S=-1:S$="-" 4480 V=DEG (ABS V):AZ=V:GOSUB *SUB2:LOCATE 20,3:PAUSE "V =";Z$ 4490 IF S=-1THEN 4530 4500 V=450+V 4510 IF V>=360LET V=V-360:GOTO 4510 4520 IF V<0LET V=V+360:GOTO 4520 4530 L(I)=ABS (L(I)*COS V) 4540 WAIT :LOCATE 20,3:PRINT "L =";MDF L(I) 4550 RETURN 4560 *SUB33:' -------- S->L --------- 4570 K=3:GOSUB *SUB4 4580 USING "####,###.###" 4590 LOCATE 0,3:PRINT " S=";ABS L 4600 LOCATE 20,3:INPUT " V=";V 4610 IF V>0LET S=1:S$="+" 4620 IF V<=0LET S=-1:S$="-" 4630 V=DEG (ABS V):AZ=V:GOSUB *SUB2:LOCATE 20,3:PAUSE "V =";Z$ 4640 IF S=-1THEN 4680 4650 V=450+V 4660 IF V>=360LET V=V-360:GOTO 4660 4670 IF V<0LET V=V+360:GOTO 4670 4680 L=ABS (L*COS V) 4690 WAIT :LOCATE 20,3:PRINT "L =";MDF L 4700 RETURN 4710 *SUB4:' -------- カ-ソルクリア- ----- 4720 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 4730 RETURN   直接水準測量 ( 結合、閉合、開放、放射 ) 10 ' チョクセツ スイジュン ソクリョウ 20 *MAIN:' -------- メイン ルーチン ---------- 30 CLS 40 S1$="E:" 50 S2$="F:" 60 S3$="X:" 70 S4$="CAS:" 80 SD$=".DAT" 90 FN$="スイジュン" 100 ON ERROR GOTO *ERR 110 WAIT 0:PRINT "チョクセツ スイジュン ソクリョウ [ 200テン ]" 120 Y=1:LOCATE 4,2:INPUT " [ 1:ケイゾク 2:シンキ 3:ロード ] ";Y 130 IF Y=1THEN *OUT 140 IF Y=2THEN *INPUT 150 IF Y>=4THEN *MAIN 160 REM 170 REM 180 REM 190 REM 200 *LOAD:' -------- データロード --------- 210 SL=0 220 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ]";S 230 IF S>=5THEN *MAIN 240 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 250 LOCATE 9,3:INPUT FN$ 260 IF FN$="C"THEN *MAIN 270 ERASE BS,FS 280 DIM BS(201),FS(201) 290 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 330 300 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 330 310 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 330 320 OPEN S1$+FN$+SD$ FOR INPUT AS #1 330 WAIT 0:PRINT "・・・・・・ ロ-ド チュウ Just a moment Please !!" 340 INPUT #1,EL1,EL2,BS(*),FS(*) 350 CLOSE #1 360 GOTO *OUT 370 REM 380 REM 390 REM 400 *INPUT:' --------- インプット --------- 410 CLS :WAIT 0 420 LOCATE 2,2:INPUT "シュッパツテン EL=";EL1 430 IF EL1=0THEN *MAIN 440 LOCATE 2,3:INPUT "トウチャクテン EL=";EL2 450 ERASE BS,FS 460 DIM BS(201),FS(201) 470 PRINT 480 PRINT " 1"; 490 USING "##,###.###" 500 PRINT " " ;EL1 510 USING "##.###" 520 LOCATE 3,3:INPUT " BS=";BS(1) 530 FOR I=2TO 200 540 USING "###":PRINT I; 550 USING "##.###" 560 LOCATE 15:INPUT " FS=";FS(I) 570 IF FS(I)>=0THEN 600 580 LOCATE 3,3:INPUT " BS=";BS(I) 590 IF BS(I)=0LET I=200 600 NEXT I 610 REM 620 REM 630 REM 640 REM 650 *OUT:' --------- アウトプット ---------- 660 BS=BS(1):FS=0:M=0 670 FOR I=2TO 200 680 IF FS(I)=0LET I=200:GOTO 730 690 IF FS(I)>0THEN 730 700 M=M+1 710 BS=BS+BS(I) 720 FS=FS+ABS FS(I) 730 NEXT I 740 DH=BS-FS 750 BEEP 1 760 CLS :WAIT 0 770 H=EL2-EL1 780 USING "#,###.###" 790 LOCATE 0,0:PRINT "SEL=";EL1;" EEL=";EL2; 800 IF EL2=0THEN 820 810 PRINT " H=";H 820 LOCATE 0,1:USING "#,###.###":PRINT " BS=";MDF BS;" FS=";MDF FS;" DH=";MDF DH 830 LOCATE 14,2:USING "###":PRINT M;" テン"; 840 IF EL2=0PRINT " ":GOTO 860 850 LOCATE 27,2:USING "#,###.###":PRINT " e =";MDF (H-DH) 860 WAIT 870 Y=1:INPUT "データ ノ [ 1:テイセイ 2:セーブ 3:ケイサン 4:リスト]";Y 880 IF Y<=1THEN *TEISEI 890 IF Y=2THEN *SAVE 900 IF Y>=4THEN *LIST 910 IF EL2=0THEN *LIST 920 GOTO *KEISAN 930 REM 940 REM 950 *LIST:' -------- データ リスト --------- 960 CLS :WAIT 0 970 PRINT " NO. BS FS オープンEL" 980 PRINT " 1"; 990 USING "##.###" 1000 PRINT " ";BS(1); 1010 USING "#,###.###" 1020 PRINT " ";EL1 1030 IH=EL1+BS(1) 1040 FOR I=2TO 200 1050 IF FS(I)=0LET I=200:GOTO 1170 1060 EL=IH-ABS FS(I) 1070 WAIT 0 1080 USING "###":PRINT I; 1090 USING "##.###" 1100 IF BS(I)=0 PRINT " ";:GOTO 1120 1110 PRINT " ";BS(I); 1120 PRINT " ";ABS FS(I);" "; 1130 WAIT 1140 USING "#,###.###" 1150 PRINT " ";EL 1160 IF FS(I)<0LET IH=EL+BS(I) 1170 NEXT I 1180 PRINT " -------------------------------------- " 1190 GOTO *OUT 1200 *TEISEI:' --------- テイセイ --------- 1210 WAIT 1220 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ソウニュウ 3:サクジョ 4:シンキ]";Y 1230 IF Y>4THEN *OUT 1240 IF Y=4THEN *INPUT 1250 IF Y=3THEN *DELETE 1260 IF Y=2THEN *INSERT 1270 Y=1:INPUT "テイセイ [ 1:NO. 2:EL 3:ケイサン 4:リスト]";Y 1280 IF Y>=4THEN *LIST 1290 IF Y=3THEN *KEISAN 1300 IF Y=2THEN 1410 1310 N=0:INPUT "テイセイ NO. ";N 1320 IF N<=0THEN *OUT 1330 WAIT 0 1340 PRINT " NO. BS FS EL" 1350 USING "###":PRINT N; 1360 USING "##.###" 1370 PRINT " ";BS(N);" ";FS(N) 1380 INPUT " BS=";BS(N) 1390 INPUT " FS=";FS(N) 1400 GOTO 1310 1410 WAIT 0 1420 CLS :USING "##,###.###" 1430 PRINT 1440 PRINT " シュッパツテン EL=";EL1; 1450 INPUT " EL=";EL1 1460 PRINT " トウチャクテン EL=";EL2; 1470 INPUT " EL=";EL2 1480 GOTO 1270 1490 REM 1500 *INSERT:' -------- ソウニュウ --------- 1510 N=0:INPUT "ソウニュウ NO. ";N 1520 IF N<=0THEN *OUT 1530 WAIT 0 1540 PRINT " NO. BS FS EL" 1550 USING "###":PRINT N; 1560 USING "##.###" 1570 PRINT " ";BS(N);" ";FS(N) 1580 BS=0:INPUT " BS=";BS 1590 FS=0:INPUT " FS=";FS 1600 IF FS=0THEN *INSERT 1610 FOR I=N TO 200 1620 B=BS(I):F=FS(I) 1630 BS(I)=BS:FS(I)=FS 1640 BS=B:FS=F 1650 IF BS(I)=0AND FS(I)<0LET I=200 1660 NEXT I 1670 GOTO *INSERT 1680 REM 1690 REM 1700 *DELETE:' -------- サクジョ --------- 1710 N=0:INPUT "サクジョ NO. ";N 1720 IF N<=0THEN *OUT 1730 WAIT 0 1740 PRINT " NO. BS FS EL" 1750 USING "###":PRINT N; 1760 USING "##.###" 1770 PRINT " ";BS(N);" ";FS(N) 1780 Y$="N":INPUT "サクジョ (Y/N) ";Y$ 1790 IF Y$<>"Y"THEN 1840 1800 FOR I=N TO 200 1810 BS(I)=BS(I+1):FS(I)=FS(I+1) 1820 IF BS(I)=0AND FS(I)<0LET FS(I+1)=0:I=200 1830 NEXT I 1840 GOTO *DELETE 1850 *KEISAN:' --------- ケイサン --------- 1860 IF EL2=0THEN 950 1870 USING "#,###.###" 1880 BS=BS(1):FS=0:M=0 1890 H=EL2-EL1 1900 FOR I=2TO 200 1910 IF FS(I)=0LET I=200:GOTO 1960 1920 IF FS(I)>0THEN 1960 1930 M=M+1 1940 BS=BS+BS(I) 1950 FS=FS+ABS FS(I) 1960 NEXT I 1970 ERASE DE 1980 DIM DE(M+1) 1990 DH=BS-FS 2000 E=H-DH:DE=E/M:TDE=0 2010 FOR I=1TO M 2020 DE(I)=MDF (DE*I)-TDE 2030 TDE=TDE+DE(I) 2040 NEXT I 2050 CLS :WAIT 0 2060 PRINT " NO. BS FS e EL" 2070 PRINT " 1"; 2080 USING "##.###" 2090 PRINT " ";BS(1); 2100 USING "#,###.###" 2110 PRINT " ";EL1 2120 IH=EL1+BS(1)+DE(1) 2130 L=1 2140 FOR I=2TO 200 2150 IF FS(I)=0LET I=200:GOTO 2290 2160 EL=IH-ABS FS(I) 2170 WAIT 0 2180 USING "###":PRINT I; 2190 USING "##.###" 2200 IF BS(I)=0 PRINT " ";:GOTO 2220 2210 PRINT " ";BS(I); 2220 PRINT " ";ABS FS(I); 2230 USING "####.###" 2240 PRINT " ";DE(L); 2250 WAIT 2260 USING "#,###.###" 2270 PRINT " ";EL 2280 IF FS(I)<0LET L=L+1:IH=EL+BS(I)+DE(L) 2290 NEXT I 2300 PRINT " -------------------------------------- " 2310 GOTO *OUT 2320 REM 2330 REM 2340 REM 2350 *SAVE:' -------- データセーブ -------- 2360 WAIT 0 2370 SL=1 2380 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ]";S 2390 IF S>=5THEN *OUT 2400 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 2410 LOCATE 9,3:INPUT FN$ 2420 IF FN$="C"THEN *OUT 2430 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2470 2440 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2470 2450 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2470 2460 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 2470 WAIT 0:PRINT "・・・・・・ セ-ブ チュウ Just a moment Please !!" 2480 PRINT #1,EL1,EL2,BS(*),FS(*) 2490 CLOSE #1 2500 GOTO *OUT 2510 REM 2520 REM 2530 REM 2540 REM 2550 *ERR:' -------- エラー ショリ ---------- 2560 BEEP 2 2570 WAIT 0 2580 IF ERN =72AND SL=0PRINT "I/O error":RESUME 220 2590 IF ERN =72AND SL=1PRINT "I/O error":RESUME 2380 2600 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 220 2610 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 2380 2620 IF ERN =76AND SL=1PRINT "File write protected":RESUME 2380 2630 IF ERN =77PRINT "Disk full":RESUME 2380 2640 IF ERN =94PRINT "File not found":RESUME 220 2650 RESUME *LIST   単曲線要素の計算 10 DEFDBL 20 WAIT 0:CLS :DEGREE :ON ERROR GOTO 690 30 PRINT "シンプル カーブ [ ヨウソ ノ ケイサン ]":ERASE A,A$:DIM A(6),A$(6):USING "#######,###.###" 40 FOR N=1TO 6:A$(N)=MID$ ("IAR CLTLSLL ",N*2-1,2)+"=":NEXT N 50 REM 60 FOR N=1TO 6:A(N)=0:NEXT N:S=0:K=1:GOSUB 680 70 FOR N=1TO 6 80 IF A(N)<>0OR S>1THEN 200 90 LOCATE S*20+2,K:PRINT A$(N) 100 LOCATE S*20+5,K:INPUT A(N) 110 IF A(N)=0THEN 200 120 IF N>1THEN 180 130 A(N)=DEG A(N) 140 IF A(N)>=180LET A(N)=360-A(N) 150 Z=DMS A(N):GOSUB 650 160 LOCATE 20*S+2,K:PRINT A$(N);Z$ 170 GOTO 190 180 LOCATE 20*S+2,1:PRINT A$(N);MDF A(N) 190 S=S+1 200 NEXT N:IF S<2THEN 70 210 S=0:K=3:GOSUB 680 220 FOR M=1TO 5 230 FOR N=M+1TO 6 240 S=S+1 250 IF A(M)=0OR A(N)=0THEN 280 260 ON S GOSUB 310,320,330,340,350,360,370,380,390,400,410,420,430,440,445 270 GOSUB 470:N=6:M=5 280 NEXT N:NEXT M 290 GOTO 50 300 ' SIMPLE CURVE 310 RETURN :' IA-R 320 A(2)=(A(3)*360)/(2*PI *A(1)):RETURN 330 A(2)=A(4)/TAN (A(1)/2):RETURN 340 RETURN :' IA-SL 350 A(2)=A(6)/2/SIN (A(1)/2):RETURN :' IA-L 360 A(1)=A(3)*360/(2*PI *A(2)):RETURN 370 A(1)=2*ATN (A(4)/A(2)):RETURN 380 A(1)=2*ACS (A(2)/(A(2)+A(5))):RETURN 390 A(1)=2*ASN (A(6)/A(2)/2):RETURN :' R - L 400 RETURN :' CL-TL 410 RETURN :' CL-SL 420 RETURN :' CL- L 430 RETURN :' TL-SL 440 A=ACS (A(6)/A(4)/2):A(1)=2*A:A(2)=A(6)/2/COS (90-A):RETURN :' TL- L 445 RETURN :' SL- L 450 ' SUBROUTINE 460 GOSUB 670 470 A(3)=2*A(2)*PI *A(1)/360 480 A(4)=A(2)*TAN (A(1)/2) 490 A(5)=A(2)/COS (A(1)/2)-A(2) 500 A(6)=2*A(2)*SIN (A(1)/2) 510 BEEP 1 520 Z=DMS A(1):GOSUB 650 530 K=1:GOSUB 680 540 LOCATE 2,1:PRINT "IA=";Z$ 550 LOCATE 22,1:PRINT "R =";MDF A(2) 560 LOCATE 2,2:PRINT "CL=";MDF A(3) 570 LOCATE 22,2:PRINT "TL=";MDF A(4) 580 LOCATE 2,3:PRINT "SL=";MDF A(5) 590 WAIT 600 LOCATE 22,3:PRINT "L =";MDF A(6) 610 REM 620 K=1:GOSUB 680 630 K=2:GOSUB 680 640 K=3:GOSUB 680:WAIT 0:RETURN 650 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 660 Z$=STR$ P+"゚"+STR$ Q+"'"+STR$ R:RETURN 670 REM 680 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K:RETURN 690 WAIT :BEEP 2:PRINT "NOT SIMPLE CURVE DATA CHECK!" 700 GOSUB 620:GOTO 50   単曲線中間点の計算 10 ' シンプル カ-ブ 2 [ チュウカンテン ノ ケイサン ] 20 CLS :DEGREE :DEFDBL :USING "#######,###.###" 30 PRINT "シンプル カ-ブ 2 [ チュウカンテン ノ ケイサン ]" 40 INPUT " X1=";X1:CLS :LOCATE 2,0:PRINT "X1=";X1 50 LOCATE 22,0:INPUT "Y1=";Y1 60 LOCATE 22,0:PRINT "Y1=";Y1 70 INPUT " X2=";X2:LOCATE 2,1:PRINT "X2=";X2 80 LOCATE 22,1:INPUT "Y2=";Y2 90 IF Y2=0LET K=1:GOSUB 530:GOTO 110 100 LOCATE 22,1:PRINT "Y2=";Y2 110 X0=X1:Y0=Y1 120 IF Y2=0LET AZ=DEG X2:GOTO 150 130 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 140 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 150 GOSUB 470 160 Z0=AZ:Z=DMS AZ 170 K=2:GOSUB 530:GOSUB 500:PRINT " AZ=";Z$ 180 IF Y2=0THEN 200 190 LOCATE 22,2:PRINT "L =";MDF L0 200 K=3:GOSUB 530:INPUT " -R+=";R1 210 IF R1=0THEN 20 220 LOCATE 1,3:PRINT " R =";R1 230 IF 2*ABS R1-L0<0THEN 200 240 AN1=ACS (L0/2/R1) 250 AZ1=AZ+AN1 260 DX=R1*COS AZ1:DY=R1*SIN AZ1 270 RX=X1+DX:RY=Y1+DY 280 BEEP 1 290 LOCATE 2,2:PRINT "RX=";MDF RX 300 LOCATE 22,2:PRINT "RY=";MDF RY:K=3:GOSUB 530 310 K=3:GOSUB 530:INPUT " CL=";CL 320 IF CL=0THEN 200 330 LOCATE 1,3:PRINT " CL=";CL 340 AN2=360*CL/(2*R1*PI ) 350 AZ2=AZ1+AN2-180 360 DX=R1*COS AZ2:DY=R1*SIN AZ2 370 CX=RX+DX:CY=RY+DY 380 BEEP 1 390 LOCATE 2,3:PRINT "X =";MDF CX 400 WAIT :LOCATE 22,3:PRINT "Y =";MDF CY:K=3:GOSUB 530 410 GOTO 310 460 END 470 IF AZ>=360LET AZ=AZ-360:GOTO 470 480 IF AZ<0LET AZ=AZ+360:GOTO 480 490 RETURN 500 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 510 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 520 RETURN 530 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 540 RETURN 単曲線線形計算 10 ' シンプル カ-ブ 3 Ver. 3.17 20 *MAIN:DEFDBL :' --- メイン ルーチン --- 30 CLS :DEGREE 40 S1$="E:" 50 S2$="F:" 60 S3$="X:" 70 S4$="CAS:" 80 SD$=".DAT" 90 FN$="シンプル" 100 ON ERROR GOTO *ERR 110 WAIT 0:PRINT "シンプル カ-ブ 3 Ver. 3.17 [ IP 20テン ]" 120 Y=1:LOCATE 4,2:INPUT " [ 1:ケイゾク 2:シンキ 3:ロード ] ";Y 130 IF Y=1THEN *LIST 140 IF Y=2THEN *INPUT1 150 IF Y>=4THEN *MAIN 160 REM 170 REM 180 REM 190 REM 200 *LOAD:' -------- データロード --------- 210 SL=0 220 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ]";S 230 IF S>=5THEN *MAIN 240 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 250 LOCATE 9,3:INPUT FN$ 260 IF FN$="C"THEN *MAIN 270 ERASE IP,R,BC,SP,EC,IA,L,AZ,CL,TL 280 DIM IP(21,2),R(21,2),BC(21,2),SP(21,2),EC(21,2),IA(21),L(21),AZ(21),CL(21),TL(21) 290 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 330 300 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 330 310 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 330 320 OPEN S1$+FN$+SD$ FOR INPUT AS #1 330 WAIT 0:PRINT "・・・・・・ ロ-ド チュウ Just a moment Please !!" 340 INPUT #1,IP(*),R(*),BC(*),SP(*),EC(*),IA(*),L(*),AZ(*),CL(*),TL(*) 350 CLOSE #1 360 GOTO *LIST 370 REM 380 REM 390 REM 400 *INPUT1:' ----- インプット ----- 410 USING "###,###.###" 420 ERASE IP,R,BC,SP,EC,IA,L,AZ,CL,TL 430 DIM IP(21,2),R(21,2),BC(21,2),SP(21,2),EC(21,2),IA(21),L(21),AZ(21),CL(21),TL(21) 440 FOR I=0TO 20 450 CLS :IP(I,1)=0:LOCATE 0,0:PRINT "IP";STR$ I;:INPUT " X=";IP(I,1) 460 LOCATE 0,0:PRINT "IP";STR$ I;" X=";IP(I,1); 470 IP(I,2)=0:INPUT " Y=";IP(I,2) 480 IF I<>0THEN 520 490 L0=0:LOCATE 5,1:PRINT "L=";L0;" ツイカキョリ" 500 LOCATE 20,1:INPUT L0 510 GOTO 560 520 IF R(I-1,0)=0AND IP(I,1)=0AND IP(I,2)=0LET I=20:GOTO 560 530 LOCATE 0,2:PRINT "[ サイシュウテンハ R=0 トシテ ]" 540 LOCATE 0,3:PRINT "[ サイシュウテンノ ツギノ IP テンハ X=0,Y=0 トスルコト ]" 550 LOCATE 0,1:R(I,0)=0:PRINT " R";STR$ I;:INPUT " =";R:R(I,0)=ABS R 560 NEXT I 570 REM 580 REM 590 REM 600 *TEISEI:' --------- テイセイ --------- 610 WAIT 0 620 Y=1:INPUT "データ ノ [1:テイセイ 2:ソウニュウ 3:サクジョ 4:セ-ブ]";Y 630 IF Y>4THEN *LIST 640 IF Y=4THEN *SAVE 650 IF Y=3THEN *DELETE 660 IF Y=2THEN *INSERT 670 Y=1:INPUT "テイセイ [ 1:IP 2:IP0 3:ケイサン 4:リスト]";Y 680 IF Y>=4THEN *LIST 690 IF Y=3THEN *CAL 700 IF Y=2THEN *TEISEI1 710 N=0:INPUT "テイセイ NO. ";N 720 IF N<=0THEN *CAL 730 GOSUB *TEISEI2 740 GOTO 710 750 REM 760 REM 770 REM 780 REM 790 REM 800 *TEISEI1:' --------- テイセイ 1 ----- 810 CLS :WAIT 0 820 USING "####,###.###":' シモケタ 3 ケタ 830 LOCATE 0,0:PRINT "IP 0 X=";IP(0,1) 840 LOCATE 0,1:PRINT " Y=";IP(0,2) 850 LOCATE 0,2:PRINT " L=";L0;" ツイカキョリ" 860 LOCATE 20,0:INPUT IP(0,1) 870 LOCATE 20,1:INPUT IP(0,2) 880 LOCATE 20,2:INPUT L0 890 GOTO *TEISEI 900 *TEISEI2:' --------- テイセイ 2 ----- 910 CLS :WAIT 0 920 USING "####,###.###":' シモケタ 3 ケタ 930 LOCATE 0,0:PRINT "IP ";STR$ N;" X=";IP(N,1) 940 LOCATE 0,1:PRINT " Y=";IP(N,2) 950 LOCATE 0,2:PRINT " R=";R(N,0) 960 LOCATE 21,0:INPUT IP(N,1) 970 LOCATE 21,1:INPUT IP(N,2) 980 LOCATE 21,2:INPUT R(N,0) 990 RETURN 1000 *INSERT:' ----- ソウニュウ ----- 1010 N=0:INPUT "ソウニュウ NO. ";N 1020 IF N<=0THEN *LIST 1030 CLS :WAIT 0 1040 USING "##":PRINT "IP ";N; 1050 USING "####,###.###" 1060 LOCATE 6,0:PRINT "X=";IP(N,1) 1070 LOCATE 6,1:PRINT "Y=";IP(N,2) 1080 LOCATE 6,2:PRINT "R=";R(N,0) 1090 LOCATE 21,0:INPUT X 1100 LOCATE 21,1:INPUT Y 1110 LOCATE 21,2:INPUT R 1120 FOR I=N TO 20 1130 X1=IP(I,1):Y1=IP(I,2):R1=R(I,0) 1140 IP(I,1)=X:IP(I,2)=Y:R(I,0)=R 1150 X=X1:Y=Y1:R=R1 1160 IF R(I,0)=0AND IP(I+1,1)=0AND IP(I+1,2)=0LET I=20 1170 NEXT I 1180 GOTO *INSERT 1190 REM 1200 *DELETE:' ----- サクジョ ----- 1210 N=0:INPUT "サクジョ NO. ";N 1220 IF N<=0THEN *LIST 1230 CLS :WAIT 0 1240 USING "##":PRINT N; 1250 USING "####,###.###":' シモケタ 3 ケタ 1260 PRINT " IP ";STR$ N;" X=";IP(N,1) 1270 LOCATE 9,1:PRINT "Y=";IP(N,2) 1280 LOCATE 9,2:PRINT "R=";R(N,0) 1290 Y$="N":INPUT " サクジョ (Y/N) ";Y$ 1300 IF Y$<>"Y"THEN 1350 1310 FOR I=N TO 20 1320 IP(I,1)=IP(I+1,1):IP(I,2)=IP(I+1,2):R(I,0)=R(I+1,0) 1330 IF R(I,0)=0AND IP(I+1,1)=0AND IP(I+1,2)=0LET I=20 1340 NEXT I 1350 GOTO *DELETE 1360 REM 1370 REM 1380 REM 1390 REM 1400 *LIST:' ----- リスト ----- 1410 USING "####,###.###":' シモケタ 3 ケタ 1420 FOR I=1TO 20 1430 CLS :WAIT 0 1440 PRINT " IP ";STR$ I;" X=";IP(I,1) 1450 LOCATE 7,1:PRINT "Y=";IP(I,2) 1460 WAIT :LOCATE 7,2:PRINT "R=";R(I,0) 1470 IF R(I,0)=0AND IP(I+1,1)=0AND IP(I+1,2)=0LET I=20 1480 NEXT I 1490 REM 1500 *CAL:' ----- ケイサン ----- 1510 FOR I=1TO 20 1520 DX=IP(I,1)-IP(I-1,1) 1530 DY=IP(I,2)-IP(I-1,2) 1540 L(I-1)=SQR (DX^2+DY^2) 1550 AZ(I-1)=ACS (DX/L(I-1)) 1560 IF DY<0LET AZ(I-1)=360-AZ(I-1) 1570 IF AZ(I-1)>=360LET AZ(I-1)=AZ(I-1)-360 1580 IF AZ(I-1)<0LET AZ(I-1)=AZ(I-1)+360 1590 IF R(I,0)=0AND IP(I+1,1)=0AND IP(I+1,2)=0LET I=20 1600 NEXT I 1610 EC(0,0)=L0 1620 FOR I=1TO 20 1630 IF R(I-1,0)=0AND IP(I,1)=0AND IP(I,2)=0LET I=20:GOTO 1900 1640 IA(I)=AZ(I)-AZ(I-1) 1650 K=0 1660 IF IA(I)<0AND IA(I)>-180LET IA(I)=ABS IA(I):K=1 1670 IF IA(I)<0AND IA(I)<=-180LET IA(I)=IA(I)+360:K=0 1680 IF IA(I)>=180LET IA(I)=360-IA(I):K=1 1690 TL(I)=R(I,0)*TAN (IA(I)/2) 1700 BC(I,1)=IP(I-1,1)+(L(I-1)-TL(I))*COS AZ(I-1) 1710 BC(I,2)=IP(I-1,2)+(L(I-1)-TL(I))*SIN AZ(I-1) 1720 IF K=1THEN 1780 1730 R(I,1)=IP(I,1)+R(I,0)/COS (IA(I)/2)*COS (AZ(I)+(180-IA(I))/2) 1740 R(I,2)=IP(I,2)+R(I,0)/COS (IA(I)/2)*SIN (AZ(I)+(180-IA(I))/2) 1750 SP(I,1)=IP(I,1)+(R(I,0)/COS (IA(I)/2)-R(I,0))*COS (AZ(I)+(180-IA(I))/2) 1760 SP(I,2)=IP(I,2)+(R(I,0)/COS (IA(I)/2)-R(I,0))*SIN (AZ(I)+(180-IA(I))/2) 1770 GOTO 1820 1780 R(I,1)=IP(I,1)+R(I,0)/COS (IA(I)/2)*COS (AZ(I)-(180-IA(I))/2) 1790 R(I,2)=IP(I,2)+R(I,0)/COS (IA(I)/2)*SIN (AZ(I)-(180-IA(I))/2) 1800 SP(I,1)=IP(I,1)+(R(I,0)/COS (IA(I)/2)-R(I,0))*COS (AZ(I)-(180-IA(I))/2) 1810 SP(I,2)=IP(I,2)+(R(I,0)/COS (IA(I)/2)-R(I,0))*SIN (AZ(I)-(180-IA(I))/2) 1820 EC(I,1)=IP(I,1)+TL(I)*COS AZ(I) 1830 EC(I,2)=IP(I,2)+TL(I)*SIN AZ(I) 1840 CL(I)=(2*PI *R(I,0)/360*IA(I)) 1850 L=L(I-1)-TL(I)-TL(I-1) 1860 BC(I,0)=EC(I-1,0)+L 1870 SP(I,0)=BC(I,0)+CL(I)/2 1880 EC(I,0)=BC(I,0)+CL(I) 1890 LL=EC(I,0)+L(I+1) 1900 NEXT I 1910 REM 1920 REM 1930 REM 1940 REM 1950 *PRT:' ----- ヒョウジ ----- 1960 FOR I=1TO 20 1970 IF R(I,0)=0AND IP(I+1,1)=0AND IP(I+1,2)=0LET I=20:GOTO 2100 1980 USING "###,###.###" 1990 Z=IA(I):GOSUB 2460 2000 CLS :WAIT 0:LOCATE 0,0:PRINT "IP ";STR$ I;" ";MDF IP(I,1);MDF IP(I,2) 2010 LOCATE 0,1:PRINT " R =";MDF R(I,0) 2020 LOCATE 20,1:PRINT " CL=";MDF CL(I) 2030 LOCATE 0,2:PRINT " TL=";MDF TL(I) 2040 LOCATE 20,2:PRINT " IA=";Z$ 2050 WAIT :LOCATE 0,3:PRINT " RX=";MDF R(I,1);" RY=";MDF R(I,2) 2060 WAIT 0:CLS :LOCATE 0,0:PRINT "NAME X Y L" 2070 LOCATE 0,1:PRINT "BC ";STR$ I;" ";MDF BC(I,1);MDF BC(I,2);MDF BC(I,0) 2080 LOCATE 0,2:PRINT "SP ";STR$ I;" ";MDF SP(I,1);MDF SP(I,2);MDF SP(I,0) 2090 WAIT :LOCATE 0,3:PRINT "EC ";STR$ I;" ";MDF EC(I,1);MDF EC(I,2);MDF EC(I,0) 2100 WAIT 0:NEXT I 2110 WAIT :PRINT " TOTAL DISTANCE=";MDF LL 2120 WAIT 0:GOTO *TEISEI 2130 END 2140 REM 2150 *SAVE:' -------- データセーブ -------- 2160 WAIT 0 2170 SL=1 2180 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ]";S 2190 IF S>=5THEN *CAL 2200 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 2210 LOCATE 9,3:INPUT FN$ 2220 IF FN$="C"THEN *LIST 2230 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2270 2240 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2270 2250 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2270 2260 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 2270 WAIT 0:PRINT "・・・・・・ セ-ブ チュウ Just a moment Please !!" 2280 PRINT #1,IP(*),R(*),BC(*),SP(*),EC(*),IA(*),L(*),AZ(*),CL(*),TL(*) 2290 CLOSE #1 2300 GOTO *TEISEI 2310 REM 2320 REM 2330 REM 2340 REM 2350 *ERR:' -------- エラー ショリ ---------- 2360 BEEP 2 2370 WAIT 0 2380 IF ERN =72AND SL=0PRINT "I/O error":RESUME 220 2390 IF ERN =72AND SL=1PRINT "I/O error":RESUME 2180 2400 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 220 2410 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 2180 2420 IF ERN =76AND SL=1PRINT "File write protected":RESUME 2180 2430 IF ERN =77PRINT "Disk full":RESUME 2180 2440 IF ERN =94PRINT "File not found":RESUME 220 2450 RESUME *TEISEI 2460 REM 2470 Z=DMS (Z+5/10^6) 2480 D=INT Z:F=(Z-D)*100:E=INT F:G=INT ((F-E)*1000)/10 2490 Z$=STR$ D+"゚"+STR$ E+"'"+STR$ G 2500 RETURN   円の要素の計算 10 ' エン ノ ヨウソ ノ ケイサン 20 *MAIN:' ----------- MAIN ----------- 30 DEFDBL 40 WAIT 0:CLS :DEGREE :ON ERROR GOTO *ERR 50 PRINT "エン ノ ヨウソ ノ ケイサン":ERASE A,A$:DIM A(8),A$(8):USING "#######,###.###" 60 FOR N=1TO 8:A$(N)=MID$ (" RANCL L t S s r",N*2-1,2)+"=":NEXT N 70 REM 80 REM 90 REM 100 *INPUT:' ---------- INPUT --------- 110 FOR N=1TO 8:A(N)=0:NEXT N:S=0:K=1:GOSUB 850 120 FOR N=1TO 5 130 IF A(N)<>0OR S>1THEN 240 140 LOCATE S*20+1,K:PRINT A$(N) 150 LOCATE S*20+4,K:INPUT A(N) 160 IF A(N)=0THEN 240 170 IF N<>2THEN 220 180 A(N)=DEG A(N) 190 Z=DMS A(N):GOSUB *ANGLE 200 LOCATE 20*S+1,K:PRINT A$(N);Z$ 210 GOTO 230 220 LOCATE 20*S+1,1:PRINT A$(N);MDF A(N) 230 S=S+1 240 NEXT N:IF S<2THEN 120 250 S=0:K=3:GOSUB *DISP 260 FOR M=1TO 4 270 FOR N=M+1TO 5 280 S=S+1 290 IF A(M)=0OR A(N)=0THEN 320 300 ON S GOSUB 370,380,390,400,410,420,430,440,450,460 310 GOSUB 560:N=6:M=5 320 NEXT N:NEXT M 330 GOTO *INPUT 340 REM 350 *CAL:' -------- CALCULATION ------- 360 ' CIRCLE 370 RETURN :' R-AN 380 A(2)=(A(3)*360)/(2*PI *A(1)):RETURN 390 A(2)=2*ASN (A(4)/(2*A(1))):RETURN 400 A(2)=2*ACS ((A(1)-A(5))/A(1)):RETURN 410 A(1)=A(3)*360/(2*PI *A(2)):RETURN 420 A(1)=A(4)/(2*SIN (A(2)/2)):RETURN 430 A(1)=A(5)/(1-COS (A(2)/2)):RETURN 440 RETURN :' CL- L 450 RETURN :' CL- t 460 A(2)=360-4*ATN (A(4)/(2*A(5))):A(1)=(SQR (A(5)^2+(A(4)/2)^2))/(2*SIN (A(2)/4)):RETURN :' L- t 470 REM 480 REM 490 REM 500 *ERR:' ----------- ERROR ---------- 510 K=3:GOSUB *DISP 520 WAIT :BEEP 2 530 PRINT " Not Simple Curve DATA CHECK !!" 540 GOSUB 760:RESUME *INPUT 550 ' ・・・・・・・・・・ SUBROUTINE ・・・・・・・・・・ 560 A(3)=2*A(2)*PI *A(1)/360 570 A(4)=2*A(1)*SIN (A(2)/2) 580 A(5)=A(1)-A(1)*COS (A(2)/2) 590 A(6)=PI *A(1)^2*A(2)/360 600 A(7)=(PI *A(1)^2*A(2)/360)-(A(1)^2*SIN (A(2)/2)*COS (A(2)/2)) 610 A(8)=A(1)*COS (A(2)/2) 620 BEEP 1 630 Z=DMS A(2):GOSUB *ANGLE 640 K=1:GOSUB *DISP 650 USING "#######,###.###" 660 LOCATE 1,1:PRINT " R=";MDF A(1) 670 LOCATE 21,1:PRINT "AN=";Z$ 680 USING "##,###.###" 690 LOCATE 1,2:PRINT "CL=";MDF A(3) 700 LOCATE 14,2:PRINT " L=";MDF A(4) 710 LOCATE 27,2:PRINT " S=";MDF A(6) 720 LOCATE 1,3:PRINT " r=";MDF A(8) 730 LOCATE 14,3:PRINT " t=";MDF A(5) 740 WAIT 750 LOCATE 27,3:PRINT " s=";MDF A(7) 760 FOR K=1TO 3 770 GOSUB *DISP 780 NEXT K 790 WAIT 0:RETURN 800 *ANGLE:' ・・・・・・・・・・ ANGLE ・・・・・・・・・ 810 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 820 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R:RETURN 830 REM 840 REM 850 *DISP:' ・・・・・・・・・ DISPLAY ・・・・・・・・・ 860 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K:RETURN   間接水準計算 3 S,V ( REVERSE ) 10 'カンセツスイジュン ソクリョウ 3 [ S,V ](REVERSE) 20 DEFDBL :DEGREE :USING "##,###.##" 30 ' ------ ショキジョウケン ------ 40 ' ヒョウコウ ミチ ノ テンニ トランシットヲ スエタバアイ ノ カンセツスイジュン 50 ' バ-チカル --- スイヘイ 90゚ + ニュウリョク スイヘイ 0゚ - ニュウリョク 60 REM 70 REM 80 REM 90 REM 100 CLS :WAIT 0:BEEP 2:PRINT "カンセツスイジュン ソクリョウ 3 [ S,V ] (REVERSE)" 110 LOCATE 0,1:INPUT "*GH=";GH 120 LOCATE 20,1:INPUT "*FH=";FH 130 LOCATE 30,1:INPUT "*IH=";IH 140 LOCATE 0,2:INPUT " V=";V0 150 V=DEG V0:IF V>0THEN 170 160 V=ABS V:V=450-V:IF V>=360 LET V=V-360 170 LOCATE 20,2:INPUT " L=";L0:L=L0 180 V=90-V 190 L0=ABS L0:L=ABS (L0*COS V) 200 H=L0*SIN V 210 DH=H+IH-FH 220 DH=-DH 230 EL=GH+DH 240 LOCATE 0,3:PRINT " L=";MDF L 250 LOCATE 14,3:PRINT "DH=";MDF DH 260 WAIT :LOCATE 28,3:PRINT "EL=";MDF EL 270 GOTO 100 280 REM 290 REM 300 ' ------ サブル-チン ------ 310 *SUB1:' ------ バ-チカル ------ 320 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 330 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 340 RETURN   間接水準計算 4 dh ( REVERSE ) 10 ' カンセツスイジュン ソクリョウ 4 (REVERSE) 20 DEFDBL :DEGREE :USING "##,###.###" 30 ' ------ ショキジョウケン ------ 40 ' ヒョウコウ ミチ ノ テンニ トランシットヲ スエタバアイ ノ カンセツスイジュン 50 CLS :WAIT 0:BEEP 2:PRINT "カンセツスイジュン ソクリョウ 4 [ dh ] (REVERSE)" 60 LOCATE 0,1:INPUT "*GH=";GH 70 LOCATE 20,1:INPUT "*IH=";IH 80 LOCATE 30,1:INPUT "*FH=";FH 90 LOCATE 1,2:INPUT "dh=";H 100 DH=H+IH-FH 110 DH=-DH 120 EL=GH+DH 130 LOCATE 1,3:PRINT "DH=";MDF DH 140 WAIT :LOCATE 21,3:PRINT "EL=";MDF EL 150 GOTO 50   スタジア 計算 1 ( 標高計算 ) 1600 CLS :DEGREE :DEFDBL :WAIT 0:PRINT "スタジア 1":USING "#,###.##" 1610 K=100:' スタジアジョウケイスウ 1620 C=0:' スタジアカジョウスウ 1630 LOCATE 0,1:INPUT "GH=";GH 1640 LOCATE 20,1:INPUT "IH=";IH 1650 LOCATE 0,2:INPUT "FH=";FH 1660 LOCATE 10,2:INPUT "S1=";S1:IF S1>=0THEN LOCATE 20,2:INPUT "S2=";S2 1670 LOCATE 29,2:INPUT "V=";V0 1680 V=DEG V0:IF V>0THEN 1700 1690 V=ABS V:V=450-V:IF V>=360 LET V=V-360 1700 S=ABS (S1-S2):IF S1<0LET S=ABS S1 1710 V=90-V 1720 L=K*S*SQU COS V+C*COS V:H=K*S*COS V*SIN V+C*SIN V 1730 DH=H+IH-FH 1740 EL=GH+DH 1750 LOCATE 0,3:PRINT " L=";MDF L 1760 LOCATE 13,3:PRINT "dH=";MDF DH 1770 WAIT :BEEP 1:LOCATE 28,3:PRINT "EL=";MDF EL 1780 LOCATE 0,2:WAIT 0:PRINT " " 1790 LOCATE 0,3:PRINT " " 1800 GOTO 1650   スタジア 計算 2 ( 座標標高計算 ) 1700 CLS :DEGREE :DEFDBL :PRINT "スタジア 2":USING "####,###.##" 1710 K=100:' スタジアジョウケイスウ 1720 C=0:' スタジアカジョウスウ 1730 INPUT "X1=";X1 1740 CLS :LOCATE 0,0:PRINT "X1=";MDF X1 1750 LOCATE 20,0:INPUT "Y1=";Y1 1760 LOCATE 20,0:PRINT "Y1=";MDF Y1 1770 LOCATE 0,1:INPUT "X2=";X2 1780 LOCATE 0,1:PRINT "X2=";MDF X2 1790 LOCATE 20,1:INPUT "Y2=";Y2 1800 IF Y2=0LET AZ0=DEG X2:AZ=AZ0:GOTO 1830 1810 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ0=ASN (DY/(L0+ABS (L0=0))) 1820 AZ0=(360+AZ0)*ABS (DX>=0)+(180-AZ)*ABS (DX<0):AZ=AZ0 1830 GOSUB *SUB1 1840 Z=DMS AZ:GOSUB *SUB2 1850 KK=1:GOSUB *SUB3 1860 LOCATE 0,1:PAUSE "AZ=";Z$ 1870 KK=1:GOSUB *SUB3 1880 LOCATE 0,1:INPUT "GH=";GH 1890 LOCATE 20,1:INPUT "IH=";IH 1900 KK=2:GOSUB *SUB3 1910 KK=3:GOSUB *SUB3 1920 LOCATE 0,2:INPUT "HA=";HA 1930 Z=HA:HA=DEG HA 1940 GOSUB *SUB2 1950 KK=2:GOSUB *SUB3 1960 LOCATE 0,2:PAUSE "HA=";Z$ 1970 KK=2:GOSUB *SUB3 1980 LOCATE 0,2:INPUT "FH=";FH 1990 LOCATE 10,2:INPUT "S1=";S1:IF S1>=0THEN LOCATE 20,2:INPUT "S2=";S2 2000 LOCATE 29,2:INPUT " V=";V0 2010 V=DEG V0:IF V>0THEN 2030 2020 V=ABS V:V=450-V:IF V>=360 LET V=V-360 2030 S=ABS (S1-S2):IF S1<0LET S=ABS S1 2040 V=90-V 2050 L=K*S*SQU COS V+C*COS V:H=K*S*COS V*SIN V+C*SIN V 2060 DH=H+IH-FH 2070 EL=GH+DH 2080 KK=2:GOSUB *SUB3 2090 KK=3:GOSUB *SUB3 2100 USING "#,###.##" 2110 LOCATE 0,2:PRINT " L=";MDF L 2120 LOCATE 15,2:PRINT "DH=";MDF DH 2130 LOCATE 28,2:PRINT "EL=";MDF EL 2140 AZ=AZ0+HA 2150 GOSUB *SUB1 2160 DX=L*COS AZ:DY=L*SIN AZ 2170 X=X1+DX:Y=Y1+DY 2180 USING "####,###.##" 2190 LOCATE 0,3:PRINT " X=";MDF X 2200 WAIT :BEEP 1:LOCATE 20,3:PRINT " Y=";MDF Y 2210 WAIT 0:GOTO 1900 2220 *SUB1 2230 IF AZ>=360LET AZ=AZ-360:GOTO 2230 2240 IF AZ<0LET AZ=AZ+360:GOTO 2240 2250 RETURN 2260 *SUB2 2270 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 2280 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 2290 RETURN 2300 *SUB3 2310 WAIT 0:LOCATE 0,KK:PRINT " " 2320 RETURN   スタジア 計算 3 ( REVERSE ) 1800 CLS :DEGREE :DEFDBL :WAIT 0:BEEP 2:PRINT "スタジア 3 (REVERSE)":USING "#,###.##" 1810 K=100:' スタジアジョウケイスウ 1820 C=0:' スタジアカジョウスウ 1830 LOCATE 0,1:INPUT "*GH=";GH 1840 LOCATE 20,1:INPUT "*IH=";IH 1850 LOCATE 1,2:INPUT "FH=";FH 1860 LOCATE 10,2:INPUT "S1=";S1:IF S1>=0THEN LOCATE 20,2:INPUT "S2=";S2 1870 LOCATE 29,2:INPUT "V=";V0 1880 V=DEG V0:IF V>0THEN 1900 1890 V=ABS V:V=450-V:IF V>=360 LET V=V-360 1900 S=ABS (S1-S2):IF S1<0LET S=ABS S1 1910 V=90-V 1920 L=K*S*SQU COS V+C*COS V:H=K*S*COS V*SIN V+C*SIN V 1930 DH=H+IH-FH 1940 DH=-DH 1950 EL=GH+DH 1960 LOCATE 0,3:PRINT " L=";MDF L 1970 LOCATE 13,3:PRINT "dH=";MDF DH 1980 WAIT :BEEP 1:LOCATE 28,3:PRINT "EL=";MDF EL 1990 GOTO 1800   座標面積計算 10 ' ザヒョウメンセキ 200テン 20 DEFDBL 30 *MAIN:' --------- メイン ルーチン --------- 40 KE1=3:KE2=6:' ----- ケタシテイ ----- 50 US$="########" 60 S1$="E:" 70 S2$="F:" 80 S3$="X:" 90 S4$="CAS:" 100 SD$=".DAT" 110 FN$="ザヒョウメンセ" 120 CLS 130 ON ERROR GOTO *ERR 140 WAIT 0:PRINT "ザヒョウメンセキ [ 200テン ]" 150 Y=1:LOCATE 5,2:INPUT "[ 1:ケイゾク 2:シンキ 3:ロード 4:ケタシテイ ] ";Y 160 IF Y=1THEN *KEISAN 170 IF Y=2THEN *INPUT 180 IF Y=3THEN *LOAD 190 IF Y=4GOSUB *KETA 200 GOTO 120 210 REM 220 REM 230 REM 240 REM 250 *LOAD:' -------- データロード --------- 260 SL=0 270 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ] ";S 280 IF S>=5THEN *MAIN 290 PRINT "ファイルメイ [ ] ";"{ ";FN$;SD$;" }" 300 LOCATE 9,3:INPUT FN$ 310 IF FN$="C"THEN *MAIN 320 ERASE X,Y 330 DIM X(201),Y(201) 340 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 380 350 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 380 360 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 380 370 OPEN S1$+FN$+SD$ FOR INPUT AS #1 380 WAIT 0:PRINT "・・・・・・ ロ-ド チュウ Just a moment Please !!" 390 INPUT #1,KE1,KE2,X(*),Y(*) 400 CLOSE #1 410 GOTO *KEISAN 420 REM 430 REM 440 REM 450 *INPUT:' -------- インプット -------- 460 CLS :WAIT 0 470 PRINT 480 PRINT 490 PRINT " NO. X Y" 500 ERASE X,Y 510 DIM X(201),Y(201) 520 FOR I=1TO 200 530 USING "###":PRINT I; 540 LOCATE 3,3:INPUT " ";X(I) 550 IF X(I)=0LET I=200:GOTO 620 560 K=3:GOSUB *HYOUJI 570 USING "###":PRINT I 580 USING "######,###."+LEFT$ (US$,KE1) 590 LOCATE 3,3:PRINT MDF X(I) 600 LOCATE 18,3:INPUT " ";Y(I) 610 LOCATE 18,3:PRINT MDF Y(I) 620 NEXT I 630 GOTO *KEISAN 640 REM 650 *LIST:' -------- データ リスト --------- 660 WAIT 0 670 CLS 680 PRINT 690 PRINT 700 PRINT " NO. X Y" 710 PRINT 720 FOR I=1TO 200 730 IF X(I)=0LET I=200:GOTO 820 740 USING "###" 750 LOCATE 0,3:PRINT I 760 USING "######,###."+LEFT$ (US$,KE1) 770 LOCATE 3,3:PRINT MDF X(I) 780 WAIT 790 LOCATE 18,3:PRINT MDF Y(I) 800 WAIT 0 810 PRINT 820 NEXT I 830 WAIT 840 PRINT " -------------------------------------- " 850 *KEISAN:' --------- ケイサン --------- 860 CLS 870 WAIT 0 880 T=0 890 FOR I=1TO 200 900 IF X(I)=0LET I=200:GOTO 960 910 J=I+1:IF X(I+1)=0 LET J=1 920 USING "######,###."+LEFT$ (US$,KE1) 930 X1=MDF X(I):Y1=MDF Y(I) 940 X2=MDF X(J):Y2=MDF Y(J) 950 T=T+(X2-X1)*(Y2+Y1) 960 NEXT I 970 WAIT 0 980 USING "##########,###."+LEFT$ (US$,KE2) 990 PRINT " Total 2*Area = ";MDF (ABS T) 1000 PRINT " Total Area = ";MDF (ABS T/2) 1010 PRINT " ツボ メンセキ = ";MDF ((ABS T/2)*0.3025) 1020 BEEP 1 1030 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ケタシテイ 3:セーブ 4:リスト]";Y 1040 IF Y<=1THEN *TEISEI 1050 IF Y=2GOSUB *KETA 1060 IF Y=3THEN *SAVE 1070 IF Y=4THEN *LIST 1080 GOTO *KEISAN 1090 REM 1100 *TEISEI:' --------- テイセイ --------- 1110 WAIT 1120 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ソウニュウ 3:サクジョ 4:シンキ]";Y 1130 IF Y>4THEN *KEISAN 1140 IF Y=4THEN *INPUT 1150 IF Y=3THEN *DELETE 1160 IF Y=2THEN *INSERT 1170 J=0:INPUT "テイセイ NO. ";J 1180 IF J<=0THEN *KEISAN 1190 WAIT 0 1200 PRINT " NO. X Y" 1210 PRINT 1220 USING "###" 1230 LOCATE 0,3:PRINT J 1240 USING "######,###."+LEFT$ (US$,KE1) 1250 LOCATE 3,3:PRINT MDF X(J) 1260 LOCATE 18,3:PRINT MDF Y(J) 1270 INPUT " X=";X(J) 1280 INPUT " Y=";Y(J) 1290 GOTO 1170 1300 *INSERT:' -------- ソウニュウ --------- 1310 J=0:INPUT "ソウニュウ NO. ";J 1320 IF J<=0THEN *KEISAN 1330 WAIT 0 1340 PRINT " NO. X Y" 1350 PRINT 1360 USING "###" 1370 LOCATE 0,3:PRINT J 1380 USING "######,###."+LEFT$ (US$,KE1) 1390 LOCATE 3,3:PRINT MDF X(J) 1400 LOCATE 18,3:PRINT MDF Y(J) 1410 X1=0:INPUT " X=";X1 1420 IF X1=0THEN *INSERT 1430 Y1=0:INPUT " Y=";Y1 1440 FOR I=J TO 200 1450 X=X(I):Y=Y(I) 1460 X(I)=X1:Y(I)=Y1 1470 X1=X:Y1=Y 1480 IF X(I)=0LET I=200 1490 NEXT I 1500 GOTO *INSERT 1510 REM 1520 REM 1530 REM 1540 REM 1550 *DELETE:' -------- サクジョ --------- 1560 J=0:INPUT "サクジョ NO. ";J 1570 IF J<=0THEN *KEISAN 1580 WAIT 0 1590 PRINT " NO. X Y" 1600 PRINT 1610 USING "###" 1620 LOCATE 0,3:PRINT J 1630 USING "######,###."+LEFT$ (US$,KE1) 1640 LOCATE 3,3:PRINT MDF X(J) 1650 LOCATE 18,3:PRINT MDF Y(J) 1660 Y$="N":INPUT "サクジョ (Y/N) ";Y$ 1670 IF Y$<>"Y"THEN 1720 1680 FOR I=J TO 200 1690 X(I)=X(I+1):Y(I)=Y(I+1) 1700 IF X(I)=0LET X(I+1)=0:I=200 1710 NEXT I 1720 GOTO *DELETE 1730 REM 1740 REM 1750 *SAVE:' ------- データセーブ ------- 1760 WAIT 0 1770 SL=1 1780 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル]";S 1790 IF S>=5THEN *KEISAN 1800 PRINT "ファイルメイ [ ] ";"{ ";FN$;SD$;" }" 1810 LOCATE 9,3:INPUT FN$ 1820 IF FN$="C"THEN *KEISAN 1830 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 1870 1840 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 1870 1850 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 1870 1860 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 1870 WAIT 0:PRINT "・・・・・・ セ-ブ チュウ Just a moment Please !!" 1880 PRINT #1,KE1,KE2,X(*),Y(*) 1890 CLOSE #1 1900 GOTO *KEISAN 1910 REM 1920 REM 1930 REM 1940 REM 1950 *ERR:' --------- エラー ショリ --------- 1960 BEEP 2 1970 WAIT 0 1980 IF ERN =72AND SL=0PRINT "I/O error":RESUME 270 1990 IF ERN =72AND SL=1PRINT "I/O error":RESUME 1780 2000 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 270 2010 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 1780 2020 IF ERN =76AND SL=1PRINT "File write protected":RESUME 1780 2030 IF ERN =77PRINT "Disk full":RESUME 1780 2040 IF ERN =94PRINT "File not found":RESUME 270 2050 RESUME *LIST 2060 REM 2070 REM 2080 REM 2090 REM 2100 *HYOUJI:' ・・・・・・・・ ヒョウジ ・・・・・・・・・ 2110 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 2120 RETURN 2130 REM 2140 REM 2150 *KETA:' ・・・・・・・・・ ケタシテイ ・・・・・・・・・ 2160 CLS :USING "##" 2170 LOCATE 0,0:PRINT "**************** ケタシテイ *****************" 2180 LOCATE 0,1:PRINT "[ コウモク | ( X Y ) 2*Area ]" 2190 LOCATE 0,2:PRINT "[ゲンザイ| ]" 2200 LOCATE 0,3:PRINT "[ ヘンコウ | ]" 2210 LOCATE 12,2:PRINT KE1 2220 LOCATE 33,2:PRINT KE2 2230 LOCATE 13,3:INPUT KE1 2240 KE2=KE1*2 2250 LOCATE 34,3:INPUT KE2 2260 CLS 2270 RETURN   三斜面積計算 10 ' サンシャ ケイサン ・・・ a:テイヘン h:タカサ 200テン 20 DEFDBL 30 *MAIN:' --------- メイン ルーチン --------- 40 KE1=3:KE2=6:' ----- ケタシテイ ----- 50 US$="######" 60 S1$="E:" 70 S2$="F:" 80 S3$="X:" 90 S4$="CAS:" 100 SD$=".DAT" 110 FN$="サンシャ" 120 CLS 130 ON ERROR GOTO *ERR 140 WAIT 0:PRINT "サンシャ ケイサン [ a:テイヘン h:タカサ 200テン ]" 150 WAIT 0 160 Y=1:LOCATE 5,2:INPUT "[ 1:ケイゾク 2:シンキ 3:ロード 4:ケタシテイ ] ";Y 170 IF Y=1THEN *KEISAN 180 IF Y=2THEN *INPUT 190 IF Y=3THEN *LOAD 200 IF Y=4GOSUB *KETA 210 GOTO 120 220 REM 230 REM 240 REM 250 *LOAD:' -------- データロード --------- 260 SL=0 270 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ] ";S 280 IF S>=5THEN *MAIN 290 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 300 LOCATE 9,3:INPUT FN$ 310 IF FN$="C"THEN *MAIN 320 ERASE A,H 330 DIM A(201),H(201) 340 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 380 350 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 380 360 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 380 370 OPEN S1$+FN$+SD$ FOR INPUT AS #1 380 WAIT 0:PRINT "・・・・・・ ロ-ド チュウ Just a moment Please !!" 390 INPUT #1,KE1,KE2,TA,A(*),H(*) 400 CLOSE #1 410 GOTO *KEISAN 420 REM 430 REM 440 REM 450 *INPUT:' -------- インプット -------- 460 CLS :WAIT 0 470 PRINT 480 PRINT 490 PRINT " NO. a h 2A" 500 ERASE A,H 510 DIM A(201),H(201) 520 FOR I=1TO 200 530 USING "###":PRINT I; 540 LOCATE 4,3:INPUT " ";A(I) 550 IF A(I)<=0LET I=200:GOTO 660 560 K=3:GOSUB *HYOUJI 570 USING "###":PRINT I 580 USING "#,###."+LEFT$ (US$,KE1) 590 A=MDF (A(I)) 600 LOCATE 3,3:PRINT A 610 LOCATE 13,3:INPUT " ";H(I) 620 H=MDF H(I) 630 LOCATE 12,3:PRINT H 640 USING "######,###."+LEFT$ (US$,KE2) 650 LOCATE 22,3:PRINT MDF (A*H) 660 NEXT I 670 GOTO *KEISAN 680 REM 690 REM 700 *LIST:' -------- データ リスト --------- 710 WAIT 0 720 CLS 730 PRINT 740 PRINT 750 PRINT " NO. a h 2A " 760 PRINT 770 FOR I=1TO 200 780 IF A(I)=0LET I=200:GOTO 930 790 USING "##,###."+LEFT$ (US$,KE1) 800 A=MDF A(I):H=MDF H(I) 810 USING "#####,###."+LEFT$ (US$,KE2) 820 AA=MDF (A*H) 830 USING "###" 840 LOCATE 0,3:PRINT I 850 USING "##,###."+LEFT$ (US$,KE1) 860 LOCATE 3,3:PRINT A 870 LOCATE 13,3:PRINT H 880 USING "######,###."+LEFT$ (US$,KE2) 890 WAIT 900 LOCATE 23,3:PRINT AA 910 WAIT 0 920 PRINT 930 NEXT I 940 WAIT 950 PRINT " -------------------------------------- " 960 REM 970 REM 980 REM 990 REM 1000 *KEISAN:' --------- ケイサン --------- 1010 CLS 1020 WAIT 0 1030 TA=0 1040 FOR I=1TO 200 1050 IF A(I)=0LET I=200:GOTO 1110 1060 USING "##,###."+LEFT$ (US$,KE1) 1070 A=MDF A(I):H=MDF H(I) 1080 USING "######,###."+LEFT$ (US$,KE2) 1090 AA=MDF (A*H) 1100 TA=TA+AA 1110 NEXT I 1120 WAIT 0 1130 PRINT " Total 2*Area = ";TA 1140 PRINT " Total Area = ";MDF (TA/2) 1150 PRINT " ツボ メンセキ = ";MDF (ABS TA/2*0.3025) 1160 BEEP 1 1170 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ケタシテイ 3:セーブ 4:リスト]";Y 1180 IF Y<=1THEN *TEISEI 1190 IF Y=2GOSUB *KETA 1200 IF Y=3THEN *SAVE 1210 IF Y=4THEN *LIST 1220 GOTO *KEISAN 1230 REM 1240 REM 1250 *TEISEI:' --------- テイセイ --------- 1260 WAIT 1270 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ソウニュウ 3:サクジョ 4:シンキ]";Y 1280 IF Y>4THEN *KEISAN 1290 IF Y=4THEN *INPUT 1300 IF Y=3THEN *DELETE 1310 IF Y=2THEN *INSERT 1320 J=0:INPUT "テイセイ NO. ";J 1330 IF J<=0THEN *KEISAN 1340 WAIT 0 1350 PRINT " NO. a h 2A" 1360 PRINT 1370 USING "###" 1380 LOCATE 0,3:PRINT J 1390 USING "##,###.###" 1400 LOCATE 3,3:PRINT A(J) 1410 LOCATE 13,3:PRINT H(J) 1420 INPUT " a=";A(J) 1430 INPUT " h=";H(J) 1440 GOTO 1320 1450 *INSERT:' -------- ソウニュウ --------- 1460 J=0:INPUT "ソウニュウ NO. ";J 1470 IF J<=0THEN *KEISAN 1480 WAIT 0 1490 PRINT " NO. a h 2A" 1500 PRINT 1510 USING "###" 1520 LOCATE 0,3:PRINT J 1530 USING "##,###.###" 1540 LOCATE 3,3:PRINT A(J) 1550 LOCATE 13,3:PRINT H(J) 1560 A1=0:INPUT " a=";A1 1570 IF A1=0THEN *INSERT 1580 H1=0:INPUT " h=";H1 1590 FOR I=J TO 200 1600 A=A(I):H=H(I) 1610 A(I)=A1:H(I)=H1 1620 A1=A:H1=H 1630 IF A(I)=0LET I=200 1640 NEXT I 1650 GOTO *INSERT 1660 REM 1670 REM 1680 REM 1690 REM 1700 *DELETE:' -------- サクジョ --------- 1710 J=0:INPUT "サクジョ NO. ";J 1720 IF J<=0THEN *KEISAN 1730 WAIT 0 1740 PRINT " NO. a h 2A" 1750 PRINT 1760 USING "###" 1770 LOCATE 0,3:PRINT J 1780 USING "##,###.###" 1790 LOCATE 3,3:PRINT A(J) 1800 LOCATE 13,3:PRINT H(J) 1810 Y$="N":INPUT "サクジョ (Y/N) ";Y$ 1820 IF Y$<>"Y"THEN 1870 1830 FOR I=J TO 200 1840 A(I)=A(I+1):H(I)=H(I+1) 1850 IF A(I)=0LET H(I+1)=0:I=200 1860 NEXT I 1870 GOTO *DELETE 1880 REM 1890 REM 1900 *SAVE:' ------- データセーブ ------- 1910 WAIT 0 1920 SL=1 1930 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル]";S 1940 IF S>=5THEN *KEISAN 1950 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 1960 LOCATE 9,3:INPUT FN$ 1970 IF FN$="C"THEN *KEISAN 1980 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2020 1990 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2020 2000 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2020 2010 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 2020 WAIT 0:PRINT "・・・・・・ セ-ブ チュウ Just a moment Please !!" 2030 PRINT #1,KE1,KE2,TA,A(*),H(*) 2040 CLOSE #1 2050 GOTO *KEISAN 2060 REM 2070 REM 2080 REM 2090 REM 2100 *ERR:' --------- エラー ショリ --------- 2110 BEEP 2 2120 WAIT 0 2130 IF ERN =72AND SL=0PRINT "I/O error":RESUME 270 2140 IF ERN =72AND SL=1PRINT "I/O error":RESUME 1930 2150 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 270 2160 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 1930 2170 IF ERN =76AND SL=1PRINT "File write protected":RESUME 1930 2180 IF ERN =77PRINT "Disk full":RESUME 1930 2190 IF ERN =94PRINT "File not found":RESUME 270 2200 RESUME *LIST 2210 REM 2220 REM 2230 REM 2240 REM 2250 *HYOUJI:' ・・・・・・・・ ヒョウジ ・・・・・・・・・ 2260 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 2270 RETURN 2280 REM 2290 REM 2300 *KETA:' ・・・・・・・・・ ケタシテイ ・・・・・・・・・ 2310 CLS :USING "##" 2320 LOCATE 0,0:PRINT "**************** ケタシテイ *****************" 2330 LOCATE 0,1:PRINT "[ コウモク | ( a h ) 2*Area ]" 2340 LOCATE 0,2:PRINT "[ゲンザイ| ]" 2350 LOCATE 0,3:PRINT "[ ヘンコウ | ]" 2360 LOCATE 12,2:PRINT KE1 2370 LOCATE 33,2:PRINT KE2 2380 LOCATE 13,3:INPUT KE1 2390 KE2=KE1*2 2400 LOCATE 34,3:INPUT KE2 2410 CLS 2420 RETURN   土量計算 ( 平均断面法 ) 10 ' ドリョウ ケイサン ・・ ヘイキンダンメンホウ 100テン 20 *MAIN:' --------- メイン ルーチン --------- 30 KE1=1:KE2=1:KE3=2:KE4=1:' -- ケタシテイ - 40 US$="###" 50 S1$="E:" 60 S2$="F:" 70 S3$="X:" 80 S4$="CAS:" 90 SD$=".DAT" 100 FN$="ドリョウ" 110 CLS 120 ON ERROR GOTO *ERR 130 WAIT 0:PRINT "ドリョウ ケイサン [ ヘイキンダンメンホウ 100テン ]" 140 WAIT 0 150 Y=1:LOCATE 5,2:INPUT "[ 1:ケイゾク 2:シンキ 3:ロード 4:ケタシテイ ] ";Y 160 IF Y=1THEN *KEISAN 170 IF Y=2THEN *INPUT 180 IF Y=3THEN *LOAD 190 GOSUB *KETA 200 GOTO 110 210 REM 220 REM 230 REM 240 REM 250 *LOAD:' -------- データロード --------- 260 SL=0 270 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ] ";S 280 IF S>=5THEN *MAIN 290 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 300 LOCATE 9,3:INPUT FN$ 310 IF FN$="C"THEN *MAIN 320 ERASE L,M,N 330 DIM L(101),M(101),N(101) 340 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 380 350 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 380 360 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 380 370 OPEN S1$+FN$+SD$ FOR INPUT AS #1 380 WAIT 0:PRINT "・・・・・・ ロ-ド チュウ Just a moment Please !!" 390 INPUT #1,KE1,KE2,KE3,KE4,TV,L(*),M(*),N(*) 400 CLOSE #1 410 GOTO *KEISAN 420 REM 430 REM 440 REM 450 *INPUT:' --------- インプット --------- 460 CLS :WAIT 0 470 PRINT 480 PRINT 490 ERASE L,M,N 500 DIM L(101),M(101),N(101) 510 PRINT " NO. L Area Average Volume" 520 PRINT " 1 "; 530 USING "####."+LEFT$ (US$,KE2) 540 LOCATE 11,3:INPUT " ";M(1) 550 LOCATE 11,3:PRINT " ";MDF (ABS M(1)) 560 FOR I=2TO 100 570 USING "###":PRINT I; 580 INPUT " ";L(I) 590 IF L(I)<=0LET I=100:GOTO 790 600 K=3:GOSUB *HYOUJI 610 USING "###":PRINT I 620 USING "####."+LEFT$ (US$,KE1) 630 L=MDF L(I) 640 LOCATE 3,3:PRINT L 650 USING "####."+LEFT$ (US$,KE2) 660 LOCATE 12,3:INPUT " ";M(I) 670 M=MDF (ABS M(I)) 680 LOCATE 12,3:PRINT M 690 IF M(I)<=0PRINT :LOCATE 11,3:INPUT " ";N(I):N=MDF (ABS N(I)):LOCATE 12,3:PRINT N 700 N=MDF (ABS M(I-1)) 710 IF M(I-1)>0THEN 730 720 N=MDF (ABS N(I-1)) 730 USING "###,###."+LEFT$ (US$,KE3) 740 AV=MDF ((N+M)/2) 750 LOCATE 18,3:PRINT MDF AV 760 USING "###,###."+LEFT$ (US$,KE4) 770 VO=MDF (AV*L) 780 LOCATE 29,3:PRINT MDF VO 790 NEXT I 800 GOTO *KEISAN 810 REM 820 REM 830 REM 840 REM 850 *LIST:' -------- データ リスト --------- 860 CLS 870 WAIT 0 880 PRINT 890 PRINT " NO. L Area Average Volume" 900 PRINT " 1 "; 910 USING "####."+LEFT$ (US$,KE2) 920 PRINT MDF M(1) 930 FOR I=2TO 100 940 IF L(I)=0LET I=100:GOTO 1170 950 USING "####."+LEFT$ (US$,KE1) 960 L=MDF L(I) 970 USING "####."+LEFT$ (US$,KE2) 980 N=MDF (ABS M(I-1)):M=MDF (ABS M(I)) 990 IF M(I-1)>0THEN 1010 1000 N=MDF (ABS N(I-1)) 1010 USING "###,###."+LEFT$ (US$,KE3) 1020 AV=MDF ((N+M)/2) 1030 USING "###,###."+LEFT$ (US$,KE4) 1040 VO=MDF (AV*L) 1050 WAIT 0 1060 USING "###":PRINT I; 1070 USING "####."+LEFT$ (US$,KE1) 1080 LOCATE 4,3:PRINT L 1090 USING "####."+LEFT$ (US$,KE2) 1100 LOCATE 12,3:PRINT M 1110 IF M(I)<=0PRINT :LOCATE 12,3:PRINT N(I) 1120 USING "####."+LEFT$ (US$,KE3) 1130 LOCATE 21,3:PRINT AV 1140 WAIT 1150 USING "###,###."+LEFT$ (US$,KE4) 1160 LOCATE 29,3:PRINT VO 1170 NEXT I 1180 REM 1190 REM 1200 *KEISAN:' --------- ケイサン --------- 1210 WAIT 0 1220 PRINT " ------------------------------------ " 1230 TL=0:TV=0 1240 FOR I=2TO 100 1250 USING "####."+LEFT$ (US$,KE1) 1260 L=MDF L(I) 1270 IF L(I)=0LET I=100:GOTO 1380 1280 USING "####."+LEFT$ (US$,KE2) 1290 N=MDF (ABS M(I-1)):M=MDF (ABS M(I)) 1300 IF M(I-1)>0THEN 1320 1310 N=MDF (ABS N(I-1)) 1320 USING "###,###."+LEFT$ (US$,KE3) 1330 AV=MDF ((N+M)/2) 1340 USING "###,###."+LEFT$ (US$,KE4) 1350 VO=MDF (AV*L) 1360 TL=TL+L 1370 TV=TV+VO 1380 NEXT I 1390 WAIT 0 1400 USING "#,###."+LEFT$ (US$,KE1) 1410 PRINT "Total L=";TL; 1420 USING "#####,###."+LEFT$ (US$,KE4) 1430 PRINT " Volume =";TV 1440 PRINT 1450 BEEP 1 1460 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ケタシテイ 3:セーブ 4:リスト]";Y 1470 IF Y<=1THEN *TEISEI 1480 IF Y=2GOSUB *KETA 1490 IF Y=3THEN *SAVE 1500 IF Y=4THEN *LIST 1510 GOTO *KEISAN 1520 REM 1530 REM 1540 REM 1550 *TEISEI:' --------- テイセイ --------- 1560 WAIT 1570 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ソウニュウ 3:サクジョ 4:シンキ]";Y 1580 IF Y>4THEN *KEISAN 1590 IF Y=4THEN *INPUT 1600 IF Y=3THEN *DELETE 1610 IF Y=2THEN *INSERT 1620 N=0:INPUT "テイセイ NO. ";N 1630 IF N<=0THEN *KEISAN 1640 WAIT 0 1650 PRINT " NO. L Area Average Volume" 1660 USING "###":PRINT N; 1670 USING "####.###" 1680 PRINT " ";L(N);M(N) 1690 IF M(N)>0THEN 1710 1700 PRINT " ";N(N) 1710 INPUT " L=";L(N) 1720 INPUT " M=";M(N) 1730 IF M(N)<=0INPUT " N=";N(N) 1740 GOTO 1620 1750 *INSERT:' -------- ソウニュウ --------- 1760 J=0:INPUT "ソウニュウ NO. ";J 1770 IF J<=0THEN *KEISAN 1780 WAIT 0 1790 PRINT " NO. L Area Average Volume" 1800 USING "###":PRINT J; 1810 USING "####.###" 1820 PRINT " ";L(J);M(J) 1830 L1=0:INPUT " L=";L1 1840 IF L1=0THEN *INSERT 1850 INPUT " M=";M1 1860 IF M1<=0INPUT " N=";N1 1870 FOR I=J TO 100 1880 L=L(I):M=M(I):N=N(I) 1890 L(I)=L1:M(I)=M1:N(I)=N1 1900 L1=L:M1=M:N1=N 1910 IF L(I)=0LET I=100 1920 NEXT I 1930 GOTO *INSERT 1940 REM 1950 *DELETE:' -------- サクジョ --------- 1960 J=0:INPUT "サクジョ NO. ";J 1970 IF J<=0THEN *KEISAN 1980 WAIT 0 1990 PRINT " NO. L Area Average Volume" 2000 USING "###":PRINT J; 2010 USING "####.###" 2020 PRINT " ";L(J);M(J) 2030 Y$="N":INPUT "サクジョ (Y/N) ";Y$ 2040 IF Y$<>"Y"THEN 2090 2050 FOR I=J TO 100 2060 L(I)=L(I+1):M(I)=M(I+1):N(I)=N(I+1) 2070 IF L(I)=0LET M(I+1)=0:N(I+1)=0:I=100 2080 NEXT I 2090 GOTO *DELETE 2100 *SAVE:' ------- データセーブ --------- 2110 WAIT 0 2120 SL=1 2130 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル]";S 2140 IF S>=5THEN *KEISAN 2150 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 2160 LOCATE 9,3:INPUT FN$ 2170 IF FN$="C"THEN *KEISAN 2180 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2220 2190 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2220 2200 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2220 2210 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 2220 WAIT 0:PRINT "・・・・・・ セ-ブ チュウ Just a moment Please !!" 2230 PRINT #1,KE1,KE2,KE3,KE4,TV,L(*),M(*),N(*) 2240 CLOSE #1 2250 GOTO *KEISAN 2260 REM 2270 REM 2280 REM 2290 REM 2300 *ERR:' --------- エラー ショリ --------- 2310 BEEP 2 2320 WAIT 0 2330 IF ERN =72AND SL=0PRINT "I/O error":RESUME 270 2340 IF ERN =72AND SL=1PRINT "I/O error":RESUME 2130 2350 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 270 2360 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 2130 2370 IF ERN =76AND SL=1PRINT "File write protected":RESUME 2130 2380 IF ERN =77PRINT "Disk full":RESUME 2130 2390 IF ERN =94PRINT "File not found":RESUME 270 2400 RESUME *LIST 2410 REM 2420 REM 2430 REM 2440 REM 2450 *HYOUJI:' ・・・・・・・・ ヒョウジ ・・・・・・・・・ 2460 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 2470 RETURN 2480 REM 2490 REM 2500 *KETA:' ・・・・・・・・・ ケタシテイ ・・・・・・・・・ 2510 CLS :USING "##" 2520 LOCATE 0,0:PRINT "**************** ケタシテイ *****************" 2530 LOCATE 0,1:PRINT "[ コウモク | L Area Average Volume ]" 2540 LOCATE 0,2:PRINT "[ゲンザイ| ]" 2550 LOCATE 0,3:PRINT "[ ヘンコウ | ]" 2560 LOCATE 10,2:PRINT KE1 2570 LOCATE 15,2:PRINT KE2 2580 LOCATE 24,2:PRINT KE3 2590 LOCATE 33,2:PRINT KE4 2600 LOCATE 11,3:INPUT KE1 2610 LOCATE 16,3:INPUT KE2 2620 LOCATE 25,3:INPUT KE3 2630 LOCATE 34,3:INPUT KE4 2640 CLS 2650 RETURN    SHARP PC-E500 測量計算 プログラム Indonesia 国内用   DEGREE 10 CLS :WAIT 0:DEGREE 20 PRINT "SURVEY Indonesia DEGREE PC-1401 1" 30 A$=" " 40 PRINT " [ A:TR 1 S:TR 2 D:TR 3 F:CS 1 G:CS 2 ]" 50 PRINT " [ H:VLEN J:VER K:W.A L:DCAL Z:STA1 ]" 60 PRINT " [ X:STA2 C:STA3 ,:INT _:REV ] "; 70 INPUT A$ 80 CLS 90 GOTO A$ 100 GOTO 20 110 GOSUB 150:X=A+DX:Y=B+DY:RETURN 120 L0=ABS L0:L=ABS (L0*COS V):GOSUB 430:RETURN 130 V=90-V:RETURN 140 L0=ABS L0:L=ABS (L0*SIN V):RETURN 150 DX=L*SIN AZ:DY=L*COS AZ:RETURN 160 J=DX+0.5/TEN F*SGN DX:K=DY+0.5/TEN F*SGN DY 170 N=X+0.5/TEN F*SGN X:M=Y+0.5/TEN F*SGN Y 180 RETURN 190 AZ=Z0+OA 200 GOSUB 310 210 RETURN 220 Z=DMS (Z+5/TEN 6) 230 D=INT Z:C=(Z-D)*TEN 2:E=INT C:G=INT ((C-E)*TEN 3)/10 240 S$=CHR$ 34:SS$=STR$ D+S$+STR$ E+S$+STR$ G 250 S$="+":RETURN 260 DX=O-Q:DY=P-W 270 L=SQR (SQU DX+SQU DY):IF L=0LET AZ=0:GOTO 330 280 AZ=ASN (DX/L) 290 IF DY>=0LET AZ=360+AZ 300 IF DY<0LET AZ=180-AZ 310 IF AZ>=360LET AZ=AZ-360 320 IF AZ<0LET AZ=AZ+360 330 Z=AZ 340 RETURN 350 GOSUB 810:GOSUB 140:F=3:GOSUB 710:RETURN 360 DH=-DH:GOSUB 450:RETURN 370 GOSUB 530 380 INPUT "S1=";S1:IF S1>=0INPUT "S2=";S2 390 GOSUB 810:S=ABS (S1-S2):IF S1<0LET S=ABS S1 400 GOSUB 130 410 L=TEN 2*S*SQU COS V:H=TEN 2*S*COS V*SIN V:GOSUB 440 420 RETURN 430 H=L0*SIN V 440 DH=H+IH-FH 450 EL=GH+DH:RETURN 460 INPUT "X0=";A,"Y0=";B,"Z0=";Z0:X=A:Y=B:Z0=DEG Z0:IF Z0<0LET Z0=ABS Z0-180:IF Z0<0LET Z0=Z0+360 470 RETURN 480 GOSUB 790:GOSUB 560:IF L<0GOSUB 350 490 RETURN 500 IF G>=0INPUT "GH=";G:GH=ABS G 510 IF I>=0INPUT "IH=";I:IH=ABS I 520 RETURN 530 IF R>=0INPUT "FH=";R:FH=ABS R 540 RETURN 550 GOSUB 810 560 INPUT " L=";L0:L=L0 570 RETURN 580 INPUT "X1=";Q,"Y1=";W:A=Q:B=W 590 RETURN 600 INPUT "X2=";O,"Y2=";P 610 RETURN 620 PRINT "AZ= ";SS$ 630 PRINT "DX=";J:PRINT "DY=";K 640 PRINT " X=";N:PRINT " Y=";M 650 RETURN 660 USING "######.#":RETURN 670 USING "######.##":RETURN 680 USING "#######.###":RETURN 690 USING "######.####":RETURN 700 PRINT "AZ= ";SS$ 710 ON F GOSUB 660,670,680,690 720 PRINT " L=";L+0.5/TEN F*SGN L:RETURN 730 PRINT " H=";H+0.5/TEN F*SGN H:RETURN 740 PRINT " D=";D+0.5/TEN F*SGN D:RETURN 750 GOSUB 710 760 PRINT "DH=";DH+0.5/TEN F*SGN DH 770 PRINT "EL=";EL+0.5/TEN F*SGN EL 780 RETURN 790 INPUT "OA=";OA:OA=DEG OA:IF OA<0LET OA=OA+360 800 RETURN 810 INPUT " V=";V0 820 V=DEG V0:IF V>0RETURN 830 V=ABS V:V=450-V:IF V>=360 LET V=V-360 840 RETURN 850 INPUT " V=";V:V=DEG V 860 RETURN 870 "A":DEGREE :WAIT :PRINT "TR 1":CLEAR :F=4 880 GOSUB 460 890 GOSUB 480:GOSUB 190:GOSUB 220:GOSUB 110 900 GOSUB 160:ON F GOSUB 660,670,680,690:GOSUB 620 910 BEEP 1:GOTO 890 920 "S":DEGREE :WAIT :PRINT "TR 2":CLEAR :F=2 930 GOSUB 460:GOSUB 500 940 GOSUB 530:GOSUB 790:GOSUB 190:GOSUB 810:GOSUB 130:GOSUB 560:GOSUB 220:GOSUB 120 950 GOSUB 110:GOSUB 160:GOSUB 700:GOSUB 630:GOSUB 760:BEEP 1:GOTO 940 960 "D":DEGREE :WAIT :BEEP 1:PRINT "TR 3":CLEAR :F=4 970 GOSUB 460:AZ=Z0-180:GOSUB 310 980 GOSUB 480:AZ=AZ+OA-180:GOSUB 310 990 GOSUB 220:GOSUB 150:X=X+DX:Y=Y+DY 1000 GOSUB 160:ON F GOSUB 660,670,680,690 1010 GOSUB 620:BEEP 2:GOTO 980 1020 "F":DEGREE :WAIT :PRINT "CS 1":CLEAR :F=2 1030 GOSUB 500 1040 GOSUB 530:GOSUB 550:GOSUB 130:GOSUB 120 1050 GOSUB 750:BEEP 1:GOTO 1040 1060 "G":DEGREE : BEEP 2:WAIT :PRINT "CS 2 (REV)":CLEAR :F=2 1070 INPUT "*GH=";GH,"*FH=";FH,"*IH=";IH 1080 GOSUB 550:GOSUB 130:GOSUB 120:GOSUB 360 1090 GOSUB 750:GOTO 1060 1100 "H":DEGREE :WAIT :PRINT "V.LEN":CLEAR :F=3:ON F GOSUB 660,670,680,690 1110 GOSUB 580:K=W:GOSUB 600:B=O:L=P 1120 INPUT "X3=";C,"Y3=";M:L=P 1130 FOR I=2 TO 3 1140 DX=A(I)-A:DY=A(I+10)-K:GOSUB 270 1150 A(I+20)=AZ:A(I+17)=L 1160 NEXT I 1170 AZ=W-V:GOSUB 310:L=REC (T,AZ):H=Z 1180 GOSUB 730:GOSUB 720:BEEP 1:GOTO 1120 1190 "J":DEGREE :WAIT :PRINT "VER":CLEAR 1200 INPUT " B=";B,"LB=";LB:B=DEG B:LB=DEG LB:IF B>LB LET B1=B:B2=LB:B=B2:LB=B1 1210 T=B+LB:U=ABS (360-T):Z=T:GOSUB 220 1220 PRINT "TAL=";SS$:Z=U:GOSUB 220:IF T<360LET S$="-" 1230 PRINT " E=";S$+SS$:V2=B-LB:IF V2<0LET V2=V2+360 1240 Z=V2:GOSUB 220:PRINT "2Z= ";SS$ 1250 V1=V2/2:Z=V1:GOSUB 220 1260 PRINT " Z= ";SS$:V=ABS (90-V1):Z=V:GOSUB 220:IF V1>90LET S$="-" 1270 PRINT " V=";S$+SS$:BEEP 1:GOTO 1200 1280 "K":DEGREE :WAIT :PRINT "W.A":CLEAR :F=4 1290 GOSUB 500:GOSUB 530 1300 IF T>=0 INPUT "TM=";T:TM= ABS T 1310 GOSUB 850 1320 INPUT "L(1)=";A:B=A:SS$=STR$ INT A+".###" 1330 FOR U=2 TO 10 1340 S$=STR$ U 1350 PAUSE "L(";S$;")=";SS$:INPUT C 1360 C=C/TEN 3+INT B:A=A+C 1370 NEXT U 1380 L=A/10:J=((L* SIN V)/2+GH)*0.003+1.7+(TM-30)*0.085:D=J*L/TEN 5:D0=L+D 1390 GOSUB 680:PRINT "TAL=";A 1400 GOSUB 690:PRINT "T/";STR$ (U-1);"=";L 1410 GOSUB 670:PRINT " *=";J+0.005:GOSUB 690:GOSUB 740 1420 ON F GOSUB 660,670,680,690:PRINT "D0=";D0+0.5/TEN F 1430 BEEP 1:GOTO 1290 1440 "L":DEGREE :WAIT :PRINT "D.CAL":CLEAR 1450 INPUT "D0=";L0 1460 GOSUB 850:GOSUB 500:GOSUB 530 1470 D=L0*COS V:GOSUB 430:AH=(GH+EL)/2 1480 DD=-AH*D/637/TEN 4:L=D+DD 1490 F=3:ON F GOSUB 660,670,680,690:GOSUB 730:GOSUB 770:GOSUB 670:PRINT "AH=";AH+0.005 1500 F=4:ON F GOSUB 660,670,680,690: GOSUB 740:PRINT "*D=";DD-0.5/TEN F:GOSUB 720 1510 BEEP 1:GOTO 1450 1520 " ":DEGREE :WAIT :PRINT "REV":CLEAR :F=4 1530 GOSUB 580:GOSUB 600:GOSUB 260:GOSUB 220 1540 GOSUB 700:BEEP 1:GOTO 1530 1550 "Z":DEGREE :WAIT :PRINT "STA 1":CLEAR :F=2 1560 GOSUB 500 1570 GOSUB 370:GOSUB 750 1580 BEEP 1:GOTO 1570 1590 "X":DEGREE :WAIT :PRINT "STA 2":CLEAR :F=2 1600 GOSUB 460:GOSUB 500 1610 GOSUB 790:GOSUB 370:GOSUB 750:GOSUB 190 1620 GOSUB 110:GOSUB 160:GOSUB 640 1630 BEEP 1:GOTO 1610 1640 "C":DEGREE :BEEP 2:WAIT :PRINT "STA 3 (REV)":CLEAR :F=2 1650 INPUT "*GH=";GH,"*IH=";IH 1660 GOSUB 370:GOSUB 360 1670 GOSUB 750:GOTO 1640 1680 ",":DEGREE :WAIT :PRINT "INT 90":CLEAR :F=3 1690 ON F GOSUB 660,670,680,690:GOSUB 580 1700 GOSUB 600:GOSUB 260:Z0=AZ 1710 A=Q:B=W:AZ=Z0:GOSUB 560:IF L=0BEEP 2:GOTO 1700 1720 GOSUB 110:GOSUB 170:X3=X:Y3=Y:A=X:B=Y 1730 PAUSE "INT:":GOSUB 640 1740 AZ=AZ+90:GOSUB 310 1750 A=X3:B=Y3:L=0:INPUT "L(-L:R+)=";L 1760 IF L=0 BEEP 2:GOTO 1710 1770 GOSUB 110:GOSUB 170 1780 IF L>0 PAUSE "R:":GOTO 1800 1790 IF L<0 PAUSE "L:" 1800 GOSUB 640:BEEP 1:GOTO 1750   GRAD 10 CLS :WAIT 0:GRAD 20 PRINT "SURVEY Indonesia GRAD PC-1401 2" 30 A$=" " 40 PRINT " [ A:TR 1 S:TR 2 D:TR 3 F:CS 1 G:CS 2 ]" 50 PRINT " [ H:VLEN J:VER K:W.A L:DCAL Z:STA1 ]" 60 PRINT " [ X:STA2 C:STA3 ,:INT _:REV ] "; 70 INPUT A$ 80 CLS 90 GOTO A$ 100 GOTO 20 110 GOSUB 150:X=A+DX:Y=B+DY: RETURN 120 L0= ABS L0:L= ABS (L0* COS V): GOSUB 400: RETURN 130 V=100-V: RETURN 140 L0= ABS L0:L= ABS (L0* SIN V): RETURN 150 DX=L* SIN AZ:DY=L* COS AZ: RETURN 160 J=DX+0.5/ TEN F* SGN DX:K=DY+0.5/ TEN F* SGN DY 170 N=X+0.5/ TEN F* SGN X:M=Y+0.5/ TEN F* SGN Y 180 RETURN 190 AZ=Z0+OA 200 GOSUB 280 210 RETURN 220 S$="+": RETURN 230 DX=O-Q:DY=P-W 240 L= SQR ( SQU DX+ SQU DY): IF L=0 LET AZ=0: GOTO 300 250 AZ= ASN (DX/L) 260 IF DY>=0 LET AZ=400+AZ 270 IF DY<0 LET AZ=200-AZ 280 IF AZ>=400 LET AZ=AZ-400 290 IF AZ<0 LET AZ=AZ+400 300 Z=AZ 310 RETURN 320 GOSUB 800: GOSUB 140:F=3: GOSUB 700: RETURN 330 DH=-DH: GOSUB 420: RETURN 340 GOSUB 500 350 INPUT "S1=";S1: IF S1>=0 INPUT "S2=";S2 360 GOSUB 800:S= ABS (S1-S2): IF S1<0 LET S= ABS S1 370 GOSUB 130 380 L= TEN 2*S* SQU COS V:H= TEN 2*S* COS V* SIN V: GOSUB 410 390 RETURN 400 H=L0* SIN V 410 DH=H+IH-FH 420 EL=GH+DH: RETURN 430 INPUT "X0=";A,"Y0=";B,"Z0=";Z0:X=A:Y=B: IF Z0<0 LET Z0= ABS Z0-200: IF Z0<0 LET Z0=Z0+400 440 RETURN 450 GOSUB 780: GOSUB 530: IF L<0 GOSUB 320 460 RETURN 470 IF G>=0 INPUT "GH=";G:GH= ABS G 480 IF I>=0 INPUT "IH=";I:IH= ABS I 490 RETURN 500 IF R>=0 INPUT "FH=";R:FH= ABS R 510 RETURN 520 GOSUB 800 530 INPUT " L=";L0:L=L0 540 RETURN 550 INPUT "X1=";Q,"Y1=";W:A=Q:B=W 560 RETURN 570 INPUT "X2=";O,"Y2=";P 580 RETURN 590 GOSUB 650 600 PRINT "AZ= ";Z 610 ON F GOSUB 650,660,670,680 620 PRINT "DX=";J: PRINT "DY=";K 630 PRINT " X=";N: PRINT " Y=";M 640 RETURN 650 USING "####.#####": RETURN 660 USING "######.##": RETURN 670 USING "#######.###": RETURN 680 USING "######.####": RETURN 690 GOSUB 650: PRINT "AZ= ";Z 700 ON F GOSUB 650,660,670,680 710 PRINT " L=";L+0.5/ TEN F* SGN L: RETURN 720 PRINT " H=";H+0.5/ TEN F* SGN H: RETURN 730 PRINT " D=";D+0.5/ TEN F* SGN D: RETURN 740 GOSUB 700 750 PRINT "DH=";DH+0.5/ TEN F* SGN DH 760 PRINT "EL=";EL+0.5/ TEN F* SGN EL 770 RETURN 780 INPUT "OA=";OA: IF OA<0 LET OA=OA+400 790 RETURN 800 INPUT " V=";V0 810 V=V0: IF V>0 RETURN 820 V= ABS V:V=500-V: IF V>=400 LET V=V-400 830 RETURN 840 INPUT " V=";V 850 RETURN 860 "A": GRAD : WAIT : PRINT "TRAVERSE 1 (GRAD)": CLEAR :F=4 870 GOSUB 430 880 GOSUB 450: GOSUB 190: GOSUB 220: GOSUB 110 890 GOSUB 160:ON F GOSUB 650,660,670,680: GOSUB 590 900 BEEP 1: GOTO 880 910 "S": GRAD : WAIT : PRINT "TRAVERSE 2 (GRAD)": CLEAR :F=2 920 GOSUB 430: GOSUB 470 930 GOSUB 500: GOSUB 780: GOSUB 190: GOSUB 800: GOSUB 130: GOSUB 530: GOSUB 220: GOSUB 120 940 GOSUB 110: GOSUB 160: GOSUB 690: GOSUB 600: GOSUB 750: BEEP 1: GOTO 930 950 "D": GRAD : WAIT : BEEP 1: PRINT "TRAVERSE 3 (GRAD)": CLEAR :F=4 960 GOSUB 430:AZ=Z0-200: GOSUB 280 970 GOSUB 450:AZ=AZ+OA-200: GOSUB 280 980 GOSUB 220: GOSUB 150:X=X+DX:Y=Y+DY 990 GOSUB 160:ON F GOSUB 650,660,670,680 1000 GOSUB 590: BEEP 2: GOTO 970 1010 "F": GRAD : WAIT : PRINT "CROSS SECTION 1 (GRAD)": CLEAR :F=2 1020 GOSUB 470 1030 GOSUB 500: GOSUB 520: GOSUB 130: GOSUB 120 1040 GOSUB 740: BEEP 1: GOTO 1030 1050 "G": GRAD : BEEP 2: WAIT : PRINT "CROSS SECTION 2 REVERSE (GRAD)": CLEAR :F=2 1060 INPUT "*GH=";GH,"*FH=";FH,"*IH=";IH 1070 GOSUB 520: GOSUB 130: GOSUB 120: GOSUB 330 1080 GOSUB 740: GOTO 1050 1090 "H": GRAD : WAIT : PRINT "VERTICAL LENGTH (GRAD)": CLEAR :F=3:ON F GOSUB 650,660,670,680 1100 GOSUB 550:K=W: GOSUB 570:B=O:L=P 1110 INPUT "X3=";C,"Y3=";M:L=P 1120 FOR I=2 TO 3 1130 DX=A(I)-A:DY=A(I+10)-K: GOSUB 240 1140 A(I+20)=AZ:A(I+17)=L 1150 NEXT I 1160 AZ=W-V: GOSUB 280:L= REC (T,AZ):H=Z 1170 GOSUB 720: GOSUB 710: BEEP 1: GOTO 1110 1180 "J": GRAD : WAIT : PRINT "VERTICAL (GRAD)": CLEAR : GOSUB 650 1190 INPUT " B=";B,"LB=";LB: IF B>LB LET B1=B:B2=LB:B=B2:LB=B1 1200 T=B+LB:U= ABS (400-T):Z=T: GOSUB 220 1210 PRINT "TAL=";Z:Z=U: GOSUB 220: IF T<400 LET S$="-" 1220 PRINT " E=";S$;Z:V2=B-LB: IF V2<0 LET V2=V2+400 1230 Z=V2: GOSUB 220: PRINT "2Z= ";Z 1240 V1=V2/2:Z=V1: GOSUB 220 1250 PRINT " Z= ";Z:V= ABS (100-V1):Z=V: GOSUB 220: IF V1>100 LET S$="-" 1260 PRINT " V=";S$;Z: BEEP 1: GOTO 1190 1270 "K": GRAD : WAIT : PRINT "WILD ATMOSPHERE (GRAD)": CLEAR :F=4 1280 GOSUB 470: GOSUB 500 1290 IF T>=0 INPUT "TM=";T:TM= ABS T 1300 GOSUB 840 1310 INPUT "L(1)=";A:B=A:SS$= STR$ INT A+".###" 1320 FOR U=2 TO 10 1330 S$= STR$ U 1340 PAUSE "L(";S$;")=";SS$: INPUT C 1350 C=C/ TEN 3+ INT B:A=A+C 1360 NEXT U 1370 L=A/10:J=((L* SIN V)/2+GH)*0.003+1.7+(TM-30)*0.085:D=J*L/ TEN 5:D0=L+D 1380 GOSUB 670: PRINT "TAL=";A 1390 GOSUB 680: PRINT "T/"; STR$ (U-1);"=";L 1400 GOSUB 660: PRINT " *=";J+0.005: GOSUB 680: GOSUB 730 1410 ON F GOSUB 650,660,670,680: PRINT "D0=";D0+0.5/ TEN F 1420 BEEP 1: GOTO 1280 1430 "L": GRAD : WAIT : PRINT "DISTANCE CALCULATION (GRAD)": CLEAR 1440 INPUT "D0=";L0 1450 GOSUB 840: GOSUB 470: GOSUB 500 1460 D=L0* COS V: GOSUB 400:AH=(GH+EL)/2 1470 DD=-AH*D/637/ TEN 4:L=D+DD 1480 F=3:ON F GOSUB 650,660,670,680: GOSUB 720: GOSUB 760: GOSUB 660: PRINT "AH=";AH+0.005 1490 F=4:ON F GOSUB 650,660,670,680: GOSUB 730: PRINT "*D=";DD-0.5/ TEN F: GOSUB 710 1500 BEEP 1: GOTO 1440 1510 " ": GRAD : WAIT : PRINT "REVERSE (GRAD)": CLEAR :F=4 1520 GOSUB 550: GOSUB 570: GOSUB 230: GOSUB 220 1530 GOSUB 690: BEEP 1: GOTO 1520 1540 "Z": GRAD : WAIT : PRINT "STADIA 1 (GRAD)": CLEAR :F=2 1550 GOSUB 470 1560 GOSUB 340: GOSUB 740 1570 BEEP 1: GOTO 1560 1580 "X": GRAD : WAIT : PRINT "STADIA 2 (GRAD)": CLEAR :F=2 1590 GOSUB 430: GOSUB 470 1600 GOSUB 780: GOSUB 340: GOSUB 740: GOSUB 190 1610 GOSUB 110: GOSUB 160: GOSUB 610 1620 BEEP 1: GOTO 1600 1630 "C": GRAD : BEEP 2: WAIT : PRINT "STADIA 3 REVERSE (GRAD)": CLEAR :F=2 1640 INPUT "*GH=";GH,"*IH=";IH 1650 GOSUB 340: GOSUB 330 1660 F=2: GOSUB 740: GOTO 1630 1670 ",": GRAD : WAIT : PRINT "INTERPOINT 100 (GRAD)": CLEAR :F=3 1680 ON F GOSUB 650,660,670,680: GOSUB 550 1690 GOSUB 570: GOSUB 230:Z0=AZ 1700 A=Q:B=W:AZ=Z0: GOSUB 530: IF L=0 BEEP 2: GOTO 1690 1710 GOSUB 110: GOSUB 170:X3=X:Y3=Y:A=X:B=Y 1720 PAUSE "INT:": GOSUB 610 1730 AZ=AZ+100: GOSUB 280 1740 A=X3:B=Y3:L=0: INPUT "L(-L:R+)=";L 1750 IF L=0 BEEP 2: GOTO 1700 1760 GOSUB 110: GOSUB 170 1770 IF L>0 PAUSE "R:": GOTO 1790 1780 IF L<0 PAUSE "L:" 1790 GOSUB 610: BEEP 1: GOTO 1740 SHARP PC-E500 水理計算   下水道計算 10 ' ゲスイドウケイサン 20 REM ------------ ジョウケン ------------ 30 VU=0.25:' カンケイ 40 T=0.0085:' カンアツ 50 YO=0.1:' ヨユウ 60 REM 70 *MAIN:' ----------- MAIN ---------- 80 CLS :WAIT 0 90 USING "#.###" 100 PRINT "ゲスイドウケイサン [ カンケイ ";VU; 110 USING "#.####" 120 PRINT " カンアツ ";T;" ]" 130 USING "#.###" 140 PRINT " [ ヨユウ ";YO;" ]" 150 WAIT 0:USING "##,###.###" 160 LOCATE 2,2:INPUT "ジバンダカ=";GH 170 LOCATE 2,2:PRINT "ジバンダカ=";MDF GH 180 LOCATE 22,2:INPUT "カンテイダカ=";EL 190 LOCATE 22,2:PRINT "カンテイダカ=";MDF EL 200 MH=GH-EL 210 DH=GH-EL-VU-T 220 KH=GH-EL+T+YO 230 BEEP 1:WAIT 0:USING "##.###" 240 LOCATE 0,3:PRINT "マンホールシン=";MDF MH; 250 WAIT :USING "##.##" 260 LOCATE 14,3:PRINT " ドカブリ=";MDF DH;" クッサクシン=";MDF KH 270 K=2:GOSUB 300 280 K=3:GOSUB 300 290 GOTO *MAIN 300 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 310 RETURN   下水道推進工法 推進延長の計算 10 AUTOGOTO *DEF 20 ' スイシン エンチョウ ノ ケイサン 30 REM 40 REM 50 REM ------------ ジョウケン ------------ 60 H=3.6:' カン ノ ドカブリ m 70 PA=25:' ツチ ノ ナイブ マサツカク ゚ 80 C=0:' ツチ ノ ネンチャクリョク t/m2 90 G=1.8:' ツチ ノ タンイジュウリョウ t/m3 100 BC=1.2:' カン ノ ガイケイ m 110 K=1:' テルツァギー ノ ソクホウ ドアツケイスウ 120 R=0.55:' カンヘキ ノ チュウシンハンケイ m 130 PP=4.2:' カン ノ ガイアツツヨサ t/m 140 WW=0.847:' カン ノ ジュウリョウ t/m 150 N=9:' ヒョウジュン カンニュウシケン 160 KA=1:' カツザイ コウカ 170 CO=130:' コンクリート ノ キョヨウ ヘイキン アッシュクオ ウリョクド kg/cm2 180 A=0.2897:' カン ノ ユウコウダンメンセキ m2 190 FA=400:' サイダイ スイリョク t 200 *DEF:DEFDBL 210 REM 220 REM 230 REM 240 REM 250 *INPUT:' ----- ジョウケン ニュウリョク ------ 260 WAIT 100:CLS 270 USING "####.###" 280 PRINT "スイシン エンチョウ ノ ケイサン" 290 WAIT 0 300 LOCATE 0,0:PRINT "BC=";BC;" m カン ノ ガイケイ" 310 LOCATE 0,1:PRINT " R=";R;" m カンヘキ ノ チュウシンハンケイ" 320 LOCATE 0,2:PRINT " P=";PP;" t/m カン ノ ガイアツツヨサ" 330 LOCATE 0,3:PRINT " W=";WW;" t/m カン ノ ジュウリョウ" 340 LOCATE 17,0:INPUT BC 350 LOCATE 17,1:INPUT R 360 LOCATE 17,2:INPUT PP 370 LOCATE 17,3:INPUT WW 380 CLS 390 LOCATE 0,0:PRINT " A=";A;" m2 カン ノ ユウコウダンメンセキ" 400 LOCATE 0,1:PRINT " H=";H;" m カン ノ ドカブリ" 410 LOCATE 0,2:PRINT " r=";G;" t/m3 ツチ ノ タンイジュウリョウ" 420 LOCATE 0,3:PRINT "PA=";PA;" ゚ ツチ ノ ナイブ マサツカク" 430 LOCATE 17,0:INPUT A 440 LOCATE 17,1:INPUT H 450 LOCATE 17,2:INPUT G 460 LOCATE 17,3:INPUT PA 470 CLS 480 LOCATE 0,0:PRINT " C=";C;" t/m2 ツチ ノ ネンチャクリョク" 490 LOCATE 0,1:PRINT " N=";N;" ヒョウジュン カンニュウシケン" 500 LOCATE 0,2:PRINT "KA=";KA;" カツザイ コウカ" 510 LOCATE 0,3:PRINT "FA=";FA;" t サイダイ スイリョク" 520 LOCATE 17,0:INPUT C 530 LOCATE 17,1:INPUT N 540 LOCATE 17,2:INPUT KA 550 LOCATE 17,3:INPUT FA 560 REM 570 REM 580 REM 590 REM 600 *CAL:' ----------- ケイサン ----------- 610 CLS 620 USING "##,###.###" 630 BT=MDF (BC+0.1):' トンネル ノ チョッケイ 640 BE=MDF (BT*(1+SIN (45-PA/2))/COS (45-PA/2)):' ツチ ノ ユルミハバ 650 KK=(2*K*TAN PA)/BE 660 USING "##,###.###" 670 CE=MDF ((1/KK)*(1-EXP (-KK*H))) 680 W=MDF ((G-2*C/BE)*CE):' トウブンプ カジュウ 690 P=MDF (3.78/(H+0.1)):P1=P:' カツカジュウ 700 IF P<1LET P=1 710 Q=MDF (W+P):' トウブンプ カジュウ 720 REM ---------- 730 USING "##,###.####" 740 M1=MDF (TAN PA):' カン ト ツチ ノ マサツケイスウウ 750 USING "##,###.###" 760 MR=MDF (0.318*PP*R+0.239*WW*R) 770 QR=MDF (1/(0.275*R^2)*MR):' カン ノ タイカリョク 780 G1=BE/(2*K*M1) 790 G2=G-2*C/BE 800 G3=G2/(G2-(QR/1.2-1)/G1) 810 IF G3<=0LET HA=0:GOTO 840 820 USING "##,###.###" 830 HA=MDF (G1*LN (G2/(G2-(QR/1.2-1)/G1))) 840 M=MDF (0.275*Q*R^2):' トウブンプカジュウ モーメント 850 USING "##,###.##" 860 F=MDF (MR/M):' カン ノ ヒビワレ アンゼンリツ 870 REM ---------- 880 USING "##,###.##" 890 F0=1.32*3.14*BC*N:' ショキ テイコウ 900 USING "##,###.####" 910 M2=MDF (TAN (PA/2)):' カン ト ツチ ノ マサツケイスウ 920 USING "##,###.###" 930 QQ=MDF (((3.14*BC*Q+WW)*M2+3.14*BC*C)*KA) 940 USING "##,###.##" 950 FR=MDF (10*CO*A):' カン ノ キョヨウ タイカリョク 960 REM ---------- 970 USING "##,###.##" 980 LA=MDF (((FR-F0)/QQ)):' キョヨウ スイシン エンチョウ 990 FB=MDF (FA*(1/1.4)):' ユウコウ スイリョク 1000 LB=MDF ((FB-F0)/QQ):' キョヨウ スイシン エンチョウ 1010 REM 1020 REM 1030 REM 1040 REM 1050 REM -------- アウトプット ---------- 1060 CLS 1070 USING "##,###.###" 1080 BEEP 1 1090 LOCATE 0,0:PRINT " Bt=";MDF BT;" m トンネル チョッケイ Bc+0.100" 1100 LOCATE 0,1:PRINT " Be=";MDF BE;" m ツチ ノ ユルミハバ" 1110 LOCATE 0,2:PRINT " Ce=";MDF CE;" m テルツァギー ドカジュウ ケイスウ" 1120 WAIT 1130 LOCATE 0,3:PRINT " w =";MDF W;" t/m2 ツチ ノ トウブンプ カジュウ" 1140 WAIT 0:CLS 1150 IF P1>=1THEN 1180 1160 LOCATE 0,0:PRINT " p =";MDF P1;" < 1.000 t/m2" 1170 GOTO 1190 1180 LOCATE 0,0:PRINT " p =";MDF P1;" > 1.000 t/m2" 1190 LOCATE 0,1:PRINT " p =";MDF P;" t/m2 カツカジュウ" 1200 LOCATE 0,2:PRINT " q =";MDF Q;" t/m2 トウブンプ カジュウ w+p" 1210 WAIT 1220 LOCATE 0,3:PRINT " Mr=";MDF MR;" t・m カン ノ テイコウ モーメント" 1230 WAIT 0:CLS 1240 LOCATE 0,0:PRINT " M =";MDF M;" t・m トウブンプ カジュウ モーメント" 1250 USING "##,###.##" 1260 LOCATE 0,1:PRINT " f =";MDF F;" カン ノ ヒビワレ アンゼンリツ" 1270 USING "##,###.###" 1280 LOCATE 0,2:PRINT " Qr=";MDF QR;" t/m2 カン ノ タイカリョク" 1290 USING "##,###.####" 1300 WAIT 1310 LOCATE 0,3:PRINT " m1=";MDF M1;" カン ト ツチ ノ マサツケイスウ tan*" 1320 WAIT 0:CLS 1330 USING "##,###.##" 1340 IF G3>0THEN 1370 1350 LOCATE 0,0:PRINT " Ha= *********";" m キョヨウ ドカブリ" 1360 GOTO 1380 1370 LOCATE 0,0:PRINT " Ha=";MDF HA;" m キョヨウ ドカブリ" 1380 LOCATE 0,1:PRINT " F0=";MDF F0;" t ショキ テイコウ" 1390 USING "##,###.####" 1400 LOCATE 0,2:PRINT " m2=";MDF M2;" カン ト ツチ ノ マサツケイスウ tan*/2" 1410 WAIT 1420 USING "##,###.###" 1430 LOCATE 0,3:PRINT " Q =";MDF QQ;" t/m [ F=F0+Q*L ]" 1440 WAIT 0:CLS 1450 USING "##,###.##" 1460 LOCATE 0,0:PRINT " Fr=";MDF FR;" t カン ノ キョヨウ タイカリョク" 1470 LOCATE 0,1:PRINT " La=";MDF LA;" m キョヨウ スイシン エンチョウ" 1480 LOCATE 0,2:PRINT " Fa=";MDF FB;" t ユウコウ スイリョク" 1490 WAIT 1500 LOCATE 0,3:PRINT " Lb=";MDF LB;" m キョヨウ スイシン エンチョウ" 1510 BEEP 1 1520 GOTO *INPUT   下水道推進工法 推進支圧壁の計算 10 AUTOGOTO *DEF 20 ' スイシン シアツヘキ ノ ケイサン 30 REM 40 REM 50 REM ------------ ジョウケン ------------ 60 B=2.5:' シアツヘキ ノ ハバ m 70 G=1.8:' ツチ ノ タンイジュウリョウ t/m3 80 H=2.1:' シアツヘキ ノ タカサ m 90 PA=25:' ツチ ノ ナイブ マサツカク ゚ 100 C=5:' ツチ ノ ネンチャクリョク t/m2 110 H1=3.57:'シアツヘキ ノ ドカブリ m 120 D=1.2:' シアツヘキ ノ アツサ m 130 L=0.25:' シアツヘキ ノ ネイレ フカサ m 140 CO=10:' コンクリート ノ ヒッパリ キョウド ヤク 10kg/cm2 150 AR=2:' ケイスウ 1.5 ~ 2.5 160 Q=1:' ********** 170 REM 180 REM 190 *DEF:DEFDBL 200 *INPUT:' ----- ジョウケン ニュウリョク ------ 210 WAIT 100 :CLS 220 PRINT "スイシン シアツヘキ ノ ケイサン" 230 WAIT 0:CLS 240 USING "###.###" 250 LOCATE 0,0:PRINT " B=";B;" m シアツヘキ ノ ハバ" 260 LOCATE 0,1:PRINT " d=";D;" m シアツヘキ ノ アツサ" 270 LOCATE 0,2:PRINT " H=";H;" m シアツヘキ ノ タカサ" 280 LOCATE 0,3:PRINT "h1=";H1;" m シアツヘキ ノ ドカブリ" 290 LOCATE 17,0:INPUT B 300 LOCATE 17,1:INPUT D 310 LOCATE 17,2:INPUT H 320 LOCATE 17,3:INPUT H1 330 WAIT 0:CLS 340 LOCATE 0,0:PRINT " L=";L;" m シアツヘキ ノ ネイレ フカサ" 350 LOCATE 0,1:PRINT " r=";G;" t/m3 ツチ ノ タンイジュウリョウ" 360 LOCATE 0,2:PRINT "PA=";PA;" ゚ ツチ ノ ナイブ マサツカク" 370 LOCATE 0,3:PRINT " C=";C;" t/m2 ツチ ノ ネンチャクリョク" 380 LOCATE 17,0:INPUT L 390 LOCATE 17,1:INPUT G 400 LOCATE 17,2:INPUT PA 410 LOCATE 17,3:INPUT C 420 REM 430 REM 440 REM 450 *CAL:' ----------- ケイサン ----------- 460 USING "#######,###.####" 470 KP=MDF ((TAN (45+PA/2))^2):' ジュドウ ドアツ ケイスウ 480 USING "#########,###.###" 490 R1=MDF (G*(H^2)*KP/2):' ハンリョク 1 500 R2=MDF (2*C*H*(SQR KP)):' ハンリョク 2 510 R3=MDF (G*H1*H*KP):' ハンリョク 3 520 H3=MDF (H+H1) 530 H2=MDF (H3-L) 540 USING "##########,###.##" 550 R=MDF (AR*B*(R1+R2+R3)):' シアツヘキ ノ ハンリョク 560 MR=0.28*(B*100)*(D*100)^2*CO 570 P3=MDF ((G*H3+Q)*KP+2*C*SQR KP) 580 P2=MDF ((G*H2+Q)*KP+2*C*SQR KP) 590 ME=((L*100)^2)/6*(2*(P3/10)+(P2/10))*(B*100):' ジュドウドアツ マゲモーメント 600 REM -------- アウトプット ---------- 610 CLS :BEEP 1 620 USING "#########,###.####" 630 LOCATE 0,0:PRINT " kp=";MDF KP;" ジュドウドアツケイスウ" 640 USING "#########,###.##" 650 LOCATE 0,1:PRINT " R =";MDF R;" t シアツヘキ ハンリョク" 660 USING "#,###.###" 670 LOCATE 0,2:PRINT " h3=";H;" + ";H1;" =";MDF H3;" m" 680 WAIT 690 LOCATE 0,3:PRINT " h2=";H3;" - ";L;" =";MDF H2;" m" 700 WAIT 0:CLS 710 USING "##########,###.##" 720 LOCATE 0,0:PRINT " p3=";MDF P3;" t/m2 ジュドウドアツ" 730 LOCATE 0,1:PRINT " p2=";MDF P2;" t/m2 ジュドウドアツ" 740 USING "##########,###" 750 LOCATE 0,2:PRINT " Mr=";MDF MR;" kg・cm テイコウモーメント" 760 WAIT 770 LOCATE 0,3:PRINT " Me=";MDF ME;" kg・cm マゲモーメント" 780 BEEP 1 790 GOTO *INPUT   下水道推進工法 薬液注入量の計算 10 AUTOGOTO *DEF 20 ' ヤクエキ チュウニュウ ノ ケイサン 30 REM 40 REM 50 REM ------------ ジョウケン ------------ 60 REM --- タイショウ メンセキ --- 70 A=17.58:' メンセキ m2 80 REM --- チュウニュウ タカサ --- 90 L1=0.75:' ネンセイド ノ タカサ m 100 L2=0.65:' サシツド ノ タカサ m 110 L3=2.305:' サレキド ノ タカサ m 120 REM --- ボーリング タカサ --- 130 L4=1:' ネンセイド ノ タカサ m 140 L5=1.4:' サシツド ノ タカサ m 150 L6=2.305:' サレキド ノ タカサ m 160 REM --- カンゲキリツ --- 170 KN=0.6:' ネンセイド ノ カンゲキリツ % 180 KS=0.5:' サシツド ノ カンゲキリツ % 190 KL=0.35:' サレキド ノ カンゲキリツ % 200 REM --- ジュウテンリツ --- 210 JN=0.5:' ネンセイド ノ ジュウテンリツ % 220 JS=0.8:' サシツド ノ ジュウテンリツ % 230 JL=0.8:' サレキド ノ ジュウテンリツ % 240 REM --- 1m アタリ チュウニュウリョウ --- 250 QN=0.385:' ネンセイド 1m チュウニュウリョウ kl/m 260 QS=0.4:' サシツド 1m チュウニュウリョウ kl/m 270 QL=0.4:' サレキド 1m チュウニュウリョウ kl/m 280 REM --- 1m アタリ ボーリング ジカン --- 290 VBN=7:'ネンセイド 1m ボーリング ジカン min/m 300 VBS=9:'サシツド 1m ボーリング ジカン min/m 310 VBL=19:'サレキド 1m ボーリング ジカン min/m 320 REM --- ソノタ ノ ジョウケン --- 330 VC=2:' 1m アタリ ノ ロッドトリツケ、ハズシ min/m 340 QQ=0.02:' 1min トシュツ リョウ kl/min 350 T=15:' センジョウ、キカイ イドウ ジカン min/ホン 360 REM 370 REM 380 REM 390 *DEF:DEFDBL 400 *INPUT:' ----- ジョウケン ニュウリョク ------ 410 WAIT 100 :CLS 420 PRINT "ヤクエキ チュウニュウ ノ ケイサン" 430 WAIT 0:CLS 440 USING "####,###.###" 450 LOCATE 0,0:PRINT "************* タイショウ メンセキ ***************" 460 LOCATE 0,2:PRINT " A=";A;" m2 タイショウ メンセキ" 470 LOCATE 20,2:INPUT A 480 WAIT 0:CLS 490 USING "###.###" 500 LOCATE 0,0:PRINT "************* チュウニュウ タカサ ***************" 510 LOCATE 0,1:PRINT "L1=";L1;" m ネンセイド ノ タカサ" 520 LOCATE 0,2:PRINT "L2=";L2;" m サシツド ノ タカサ" 530 LOCATE 0,3:PRINT "L3=";L3;" m サレキド ノ タカサ" 540 LOCATE 17,1:INPUT L1 550 LOCATE 17,2:INPUT L2 560 LOCATE 17,3:INPUT L3 570 WAIT 0:CLS 580 LOCATE 0,0:PRINT "************* ボーリング タカサ **************" 590 LOCATE 0,1:PRINT "L4=";L4;" m ネンセイド ノ タカサ" 600 LOCATE 0,2:PRINT "L5=";L5;" m サシツド ノ タカサ" 610 LOCATE 0,3:PRINT "L6=";L6;" m サレキド ノ タカサ" 620 LOCATE 17,1:INPUT L4 630 LOCATE 17,2:INPUT L5 640 LOCATE 17,3:INPUT L6 650 WAIT 0:CLS 660 LOCATE 0,0:PRINT "************** カンゲキリツ *****************" 670 LOCATE 0,1:PRINT "KN=";KN;" (%) ネンセイド ノ カンゲキリツ" 680 LOCATE 0,2:PRINT "KS=";KS;" (%) サシツド ノ カンゲキリツ" 690 LOCATE 0,3:PRINT "KL=";KL;" (%) サレキド ノ カンゲキリツ" 700 LOCATE 15,1:INPUT KN 710 LOCATE 15,2:INPUT KS 720 LOCATE 15,3:INPUT KL 730 WAIT 0:CLS 740 LOCATE 0,0:PRINT "************** ジュウテンリツ ****************" 750 LOCATE 0,1:PRINT "JN=";JN;" (%) ネンセイド ノ ジュウテンリツ" 760 LOCATE 0,2:PRINT "JS=";JS;" (%) サシツド ノ ジュウテンリツ" 770 LOCATE 0,3:PRINT "JL=";JL;" (%) サレキド ノ ジュウテンリツ" 780 LOCATE 15,1:INPUT JN 790 LOCATE 15,2:INPUT JS 800 LOCATE 15,3:INPUT JL 810 WAIT 0:CLS 820 LOCATE 0,0:PRINT "************* 1m アタリ チュウニュウリョウ *********" 830 LOCATE 0,1:PRINT "QN=";QN;" kl/m ネンセイド 1m チュウニュウリョウ" 840 LOCATE 0,2:PRINT "QS=";QS;" kl/m サシツド 1m チュウニュウリョウ" 850 LOCATE 0,3:PRINT "QL=";QL;" kl/m サレキド 1m チュウニュウリョウ" 860 LOCATE 16,1:INPUT QN 870 LOCATE 16,2:INPUT QS 880 LOCATE 16,3:INPUT QL 890 WAIT 0:CLS 900 LOCATE 0,0:PRINT "*********** 1m アタリ ボーリング ジカン ********" 910 LOCATE 0,1:PRINT "VBN=";VBN;" min/m ネンセイド1mボーリングジカン" 920 LOCATE 0,2:PRINT "VBS=";VBS;" min/m サシツド 1mボーリングジカン" 930 LOCATE 0,3:PRINT "VBL=";VBL;" min/m サレキド 1mボーリングジカン" 940 LOCATE 18,1:INPUT VBN 950 LOCATE 18,2:INPUT VBS 960 LOCATE 18,3:INPUT VBL 970 WAIT 0:CLS 980 LOCATE 0,0:PRINT "************* ソノタ ノ ジョウケン *************" 990 LOCATE 0,1:PRINT "VC=";VC;" min/m 1m ロッドトリツケ ジカン" 1000 LOCATE 0,2:PRINT "QQ=";QQ;" kl/min 1min トシュツ リョウ" 1010 LOCATE 0,3:PRINT "T =";T;" min/ホン センジョウ イドウ ジカン" 1020 LOCATE 18,1:INPUT VC 1030 LOCATE 18,2:INPUT QQ 1040 LOCATE 18,3:INPUT T 1050 *CAL:' ----------- ケイサン ---------- 1060 USING "######,###.###" 1070 REM ********* タイショウ ドリョウ ******** 1080 V1=MDF (A*L1):'ネンセイド ノ タイショウドリョウ 1090 V2=MDF (A*L2):'サシツド ノ タイショウドリョウ 1100 V3=MDF (A*L3):'サレキド ノ タイショウドリョウ 1110 TV=MDF (V1+V2+V3):'トータル ドリョウ 1120 REM ********* チュウニュウリョウ ********** 1130 V4=MDF (V1*KN*JN):'ネンセイドチュウニュウリョウ 1140 V5=MDF (V2*KS*JS):'サシツド チュウニュウリョウ 1150 V6=MDF (V3*KL*JL):'サレキド チュウニュウリョウ 1160 TQ=V4+V5+V6:' トータル チュウニュウリョウ 1170 REM ********* ボーリングチョウ ********* 1180 TL1=MDF (L1+L2+L3):'ヤクエキ チュウニュウチョウ 1190 TL2=MDF (L4+L5+L6):'ボーリングチョウ 1200 REM *** 1m アタリ ノ チュウニュウリョウ Q1 ** 1210 Q1=MDF ((QN*L1+QS*L2+QL*L3)/TL1) 1220 REM ** 1day アタリ ノ チュウニュウリョウ Q ** 1230 USING "######,###.##" 1240 VB=MDF ((VBN*L4+VBS*L5+VBL*L6)/TL2):' 1m アタリ ノ ボーリング ジカン 1250 N=(MDF 420/((VB+VC)*TL2+Q1*TL1/QQ+T)):' 1day アタリ ノ チュウニュウ ホンスウ 1260 USING "######,###.###" 1270 Q=Q1*TL1*N:' 1day アタリ ノ チュウニュウリョウ 1280 USING "######,###.##" 1290 D=MDF (TQ/Q):' ショヨウ ニッスウ 1300 REM -------- アウトプット ---------- 1310 CLS :BEEP 1 1320 USING "######,###.###" 1330 LOCATE 0,0:PRINT " V1=";MDF V1;" m3 ネンセイド ドリョウ" 1340 LOCATE 0,1:PRINT " V2=";MDF V2;" m3 サシツド ドリョウ" 1350 LOCATE 0,2:PRINT " V3=";MDF V3;" m3 サレキド ドリョウ" 1360 WAIT 1370 LOCATE 0,3:PRINT " TV=";MDF TV;" m3 トータル ドリョウ" 1380 WAIT 0:CLS 1390 LOCATE 0,0:PRINT " V4=";MDF V4;" kl ネンセイド チュウニュウリョウ" 1400 LOCATE 0,1:PRINT " V5=";MDF V5;" kl サシツド チュウニュウリョウ" 1410 LOCATE 0,2:PRINT " V6=";MDF V6;" kl サレキド チュウニュウリョウ" 1420 WAIT 1430 LOCATE 0,3:PRINT " TQ=";MDF TQ;" kl トータル チュウニュウリョウ" 1440 WAIT 0:CLS 1450 USING "######,###.###" 1460 LOCATE 0,0:PRINT " L4=";MDF L4;" m ネンセイド ボーリングチョウ" 1470 LOCATE 0,1:PRINT " L5=";MDF L5;" m サシツド ボーリングチョウ" 1480 LOCATE 0,2:PRINT " L6=";MDF L6;" m サレキド ボーリングチョウ" 1490 WAIT 1500 LOCATE 0,3:PRINT "TL2=";MDF TL2;" m トータル ボーリングチョウ" 1510 WAIT 0:CLS 1520 USING "####,###.###" 1530 LOCATE 0,0:PRINT " Q'=";MDF Q1;" kl/m 1m アタリ チュウニュウ リョウ" 1540 LOCATE 0,1:PRINT " l=";MDF TL1;" m 1ホン アタリ チュウニュウ タカサ" 1550 LOCATE 0,2:PRINT " L=";MDF TL2;" m 1ホン アタリ ボーリングタカサ" 1560 WAIT 1570 USING "####,###.##" 1580 LOCATE 0,3:PRINT " VB=";MDF VB;" min/m 1mアタリ ボーリングジカン" 1590 WAIT 0:CLS 1600 LOCATE 0,0:PRINT " N=";MDF N;" ホン/d 1ニチ アタリ チュウニュウホンスウ" 1610 USING "####,###.###" 1620 LOCATE 0,1:PRINT " Q=";MDF Q;" kl/d 1ニチ アタリ チュウニュウリョウ" 1630 USING "####,###.##" 1640 LOCATE 0,2:PRINT " D=";MDF D;" days ショヨウ ニッスウ" 1650 WAIT 1660 LOCATE 0,3:PRINT " ---------------------------------------" 1670 BEEP 1 1680 GOTO *INPUT   水理計算 クッター 流量計算 10 AUTOGOTO *DEF 20 ' クッター リュウリョウ ケイサン 30 REM 40 REM 50 REM ------------ ジョウケン ------------ 60 WA=0.0707:' リュウスイ メンセキ m2 70 WP=0.9425:' リュウスイ ヘンチョウ m 80 N=0.013:' ソドケイスウ 90 I=6:' コウバイ ゚/。。 100 *DEF:DEFDBL 110 *INPUT:' ----- ジョウケン ニュウリョク ------ 120 WAIT 100 :CLS 130 PRINT "クッター リュウリョウ ケイサン" 140 CLS :WAIT 0 150 USING "##,###.####" 160 LOCATE 0,0:PRINT "WA=";WA;" m2 リュウスイ メンセキ" 170 LOCATE 0,1:PRINT "WP=";WP;" m リュウスイ ヘンチョウ" 180 LOCATE 0,2:PRINT " I=";I;" ゚/。。 コウバイ" 190 LOCATE 0,3:PRINT " n=";N;" ソドケイスウ" 200 LOCATE 20,0:INPUT WA 210 LOCATE 20,1:INPUT WP 220 LOCATE 20,2:INPUT I 230 LOCATE 20,3:INPUT N 240 REM 250 *CAL:' ----------- ケイサン ----------- 260 USING "#######,###.####" 270 R=MDF (WA/WP):' ドウスイ ハンケイ m 280 V=MDF ((23+1/N+0.00155/(I/1000))/(1+(23+0.00155/(I/1000))*N/SQR R)*SQR (R*(I/1000))):' リュウソク m/sec 290 Q=MDF (WA*V):' リュウリョウ m3/sec 300 REM -------- アウトプット ---------- 310 CLS :BEEP 1 320 USING "####.##" 330 LOCATE 0,0:PRINT "** クッター [ I =";MDF I;" ゚/。。"; 340 USING "##.###" 350 PRINT " n=";MDF N;" ] **" 360 USING "#########,###.####" 370 LOCATE 0,1:PRINT " R =";MDF R;" m ドウスイ ハンケイ" 380 LOCATE 0,2:PRINT " V =";MDF V;" m/s リュウソク" 390 WAIT 400 LOCATE 0,3:PRINT " Q =";MDF Q;" m3/s リュウリョウ" 410 BEEP 1 420 GOTO *INPUT   水理計算 マニング 流量計算 10 AUTOGOTO *DEF 20 ' マニング リュウリョウ ケイサン 30 REM 40 REM 50 REM ------------ ジョウケン ------------ 60 WA=0.0707:' リュウスイ メンセキ m2 70 WP=0.9425:' リュウスイ ヘンチョウ m 80 I=6:' コウバイ ゚/。。 90 N=0.013:' ソドケイスウ 100 *DEF:DEFDBL 110 *INPUT:' ----- ジョウケン ニュウリョク ------ 120 WAIT 100 :CLS 130 PRINT "マニング リュウリョウ ケイサン" 140 CLS :WAIT 0 150 USING "##,###.####" 160 LOCATE 0,0:PRINT "WA=";WA;" m2 リュウスイ メンセキ" 170 LOCATE 0,1:PRINT "WP=";WP;" m リュウスイ ヘンチョウ" 180 LOCATE 0,2:PRINT " I=";I;" ゚/。。 コウバイ" 190 LOCATE 0,3:PRINT " n=";N;" ソドケイスウ" 200 LOCATE 20,0:INPUT WA 210 LOCATE 20,1:INPUT WP 220 LOCATE 20,2:INPUT I 230 LOCATE 20,3:INPUT N 240 REM 250 *CAL:' ----------- ケイサン ----------- 260 USING "#######,###.####" 270 R=MDF (WA/WP):' ドウスイ ハンケイ m 280 V=MDF (1/N*R^(2/3)*(I/1000)^(1/2)):'リュウソク m/sec 290 Q=MDF (WA*V):' リュウリョウ m3/sec 300 REM -------- アウトプット ---------- 310 CLS :BEEP 1 320 USING "####.##" 330 LOCATE 0,0:PRINT "** マニング [ I=";MDF I;" ゚/。。"; 340 USING "##.###" 350 PRINT " n=";MDF N;" ] **" 360 USING "#########,###.####" 370 LOCATE 0,1:PRINT " R =";MDF R;" m ドウスイ ハンケイ" 380 LOCATE 0,2:PRINT " V =";MDF V;" m/s リュウソク" 390 WAIT 400 LOCATE 0,3:PRINT " Q =";MDF Q;" m3/s リュウリョウ" 410 BEEP 1 420 GOTO *INPUT   水理計算 ヘーゼン・ウイリアムズ 流量計算 10 AUTOGOTO *DEF 20 ' ヘーゼン・ウイリアムズ リュウリョウ ケイサン 30 REM 40 REM 50 REM ------------ ジョウケン ------------ 60 WA=0.0707:' リュウスイ メンセキ m2 70 WP=0.9425:' リュウスイ ヘンチョウ m 80 I=6:' コウバイ ゚/。。 90 C=130:' リュウソクケイスウ (コンクリート) 100 *DEF:DEFDBL 110 *INPUT:' ----- ジョウケン ニュウリョク ------ 120 WAIT 100 :CLS 130 PRINT "ヘーゼン・ウイリアムズ リュウリョウ ケイサン" 140 CLS :WAIT 0 150 USING "##,###.####" 160 LOCATE 0,0:PRINT "WA=";WA;" m2 リュウスイ メンセキ" 170 LOCATE 0,1:PRINT "WP=";WP;" m リュウスイ ヘンチョウ" 180 LOCATE 0,2:PRINT " I=";I;" ゚/。。 コウバイ" 190 LOCATE 0,3:PRINT " C=";C;" リュウソクケイスウ" 200 LOCATE 20,0:INPUT WA 210 LOCATE 20,1:INPUT WP 220 LOCATE 20,2:INPUT I 230 LOCATE 20,3:INPUT C 240 REM 250 *CAL:' ----------- ケイサン ----------- 260 USING "#######,###.####" 270 R=MDF (WA/WP):' ドウスイ ハンケイ m 280 V=MDF (0.84935*C*R^0.63*(I/1000)^0.54):' リュウソク m/sec 290 Q=MDF (WA*V):' リュウリョウ m3/sec 300 REM -------- アウトプット ---------- 310 CLS :BEEP 1 320 USING "####.##" 330 LOCATE 0,0:PRINT "** ヘーゼン [ I=";MDF I;" ゚/。。"; 340 USING "####" 350 PRINT " C=";MDF C;" ] ****"; 360 USING "#########,###.####" 370 LOCATE 0,1:PRINT " R =";MDF R;" m ドウスイ ハンケイ" 380 LOCATE 0,2:PRINT " V =";MDF V;" m/s リュウソク" 390 WAIT 400 LOCATE 0,3:PRINT " Q =";MDF Q;" m3/s リュウリョウ" 410 BEEP 1 420 GOTO *INPUT   水理計算 マニング 流量計算 PART 2 10 AUTOGOTO *DEF 20 ' マニング リュウリョウ ケイサン PART 2 30 REM 40 REM 50 REM ------------ ジョウケン ------------ 60 WA=0.0707:' リュウスイ メンセキ m2 70 WP=0.9425:' リュウスイ ヘンチョウ m 80 N=0.013:' ソドケイスウ 90 I=0:' コウバイ ゚/。。 100 V=0:' リュウソク m/s 110 Q=0:' リュウリョウ m3/s 120 REM 130 REM 140 REM 150 *DEF:DEFDBL 160 *INPUT:' ----- ジョウケン ニュウリョク ------ 170 WAIT 100 :CLS 180 PRINT "マニング リュウリョウ ケイサン PART 2" 190 CLS :WAIT 0 200 USING "##,###.####" 210 LOCATE 0,0:PRINT "WA=";WA;" m2 リュウスイ メンセキ" 220 LOCATE 0,1:PRINT "WP=";WP;" m リュウスイ ヘンチョウ" 230 LOCATE 0,2:PRINT " n=";N;" ソドケイスウ" 240 REM 250 *IN:' --- ジョウケン I V Q ノ ニュウリョク --- 260 LOCATE 0,3:PRINT " I=";I;" ゚/。。 コウバイ " 270 LOCATE 20,0:INPUT WA 280 LOCATE 20,1:INPUT WP 290 LOCATE 20,2:INPUT N 300 LOCATE 20,3:INPUT I 310 IF I<>0THEN *CAL1 320 GOSUB *CL 330 LOCATE 0,3:PRINT " V=";V;" m/s リュウソク " 340 LOCATE 20,3:INPUT V 350 IF V<>0THEN *CAL2 360 GOSUB *CL 370 LOCATE 0,3:PRINT " Q=";Q;" m3/s リュウリョウ" 380 LOCATE 20,3:INPUT Q 390 IF Q<>0THEN *CAL3 400 GOTO *IN 410 REM 420 REM 430 REM 440 REM 450 *CAL1:' --- コウバイ I ニヨル ケイサン ------ 460 R=WA/WP:' ドウスイ ハンケイ m 470 V=1/N*R^(2/3)*(I/1000)^(1/2):'リュウソク m/sec 480 Q=WA*V:' リュウリョウ m3/sec 490 GOTO *PRINT 500 *CAL2:' --- リュウソク V ニヨル ケイサン ------ 510 R=WA/WP:' ドウスイ ハンケイ m 520 I=((N*V/R^(2/3))^2)*1000:' コウバイ ゚/。。 530 Q=WA*V:' リュウリョウ m3/sec 540 GOTO *PRINT 550 *CAL3:' --- リュウリョウ Q ニヨル ケイサン ----- 560 R=WA/WP:' ドウスイ ハンケイ m 570 V=Q/WA 580 I=((N*V/R^(2/3))^2)*1000:' コウバイ ゚/。。 590 REM 600 *PRINT:' -------- アウトプット --------- 610 CLS :BEEP 1 620 USING "####.##" 630 LOCATE 0,0:PRINT "** マニング [ I=";MDF I;" ゚/。。"; 640 USING "##.###" 650 PRINT " n=";MDF N;" ] **" 660 USING "#########,###.####" 670 LOCATE 0,1:PRINT " R =";MDF R;" m ドウスイ ハンケイ" 680 LOCATE 0,2:PRINT " V =";MDF V;" m/s リュウソク" 690 WAIT 700 LOCATE 0,3:PRINT " Q =";MDF Q;" m3/s リュウリョウ" 710 BEEP 1 720 GOTO *INPUT 730 REM 740 REM 750 *CL:' ****** カーソル クリアー *********** 760 LOCATE 0,3:PRINT " " 770 RETURN 隅切り計算   入力     X1,Y1 器械点座標     X2,Y2 後視点座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角            Y2 = 0 ( ゼロ ) とする。 X3,Y3 前視点座標 L 隅切り長          + ( プラス ) 入力 ---> 隅切り長 - ( マイナス ) 入力 ---> 器械点から後視点、前視点への隅切り除長  出力 AN 器械点を中心とする後視点と前視点との内角 L 器械点から前視点までの距離 L1 隅切り長     L2 器械点から後視点、前視点への隅切り除長 S 隅切り面積     X4,Y4 隅切り点座標     X5,Y5 隅切り点座標 10 ' スミキリケイサン Ver. 3.23 20 CLS :DEGREE :DEFDBL :WAIT 0:USING "#######,###.###" 30 WAIT 0:PRINT "スミキリケイサン Ver. 3.23" 40 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 50 LOCATE 20,0:INPUT "Y1=";Y1 60 LOCATE 20,0:PRINT "Y1=";Y1 70 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 80 LOCATE 20,1:INPUT "Y2=";Y2 90 LOCATE 20,1:PRINT "Y2=";Y2 100 X0=X1:Y0=Y1 110 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 120 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 130 GOSUB 510 140 Z0=AZ:Z=DMS AZ 150 K=2:GOSUB 570:GOSUB 540:PRINT "AZ=";Z$:LOCATE 20,2:PRINT "L =";MDF L0 160 K=3:GOSUB 570:INPUT "X3=";X3:LOCATE 0,3:PRINT "X3=";X3 170 LOCATE 20,3:INPUT "Y3=";Y3 180 LOCATE 20,3:PRINT "Y3=";Y3 190 DX3=X3-X1:DY3=Y3-Y1:L3=SQR (DX3^2+DY3^2):AZ3=ASN (DY3/(L3+ABS (L3=0))) 200 AZ3=(360+AZ3)*ABS (DX3>=0)+(180-AZ3)*ABS (DX3<0) 210 AN=AZ3-AZ+360 220 IF AN>=360LET AN=AN-360:GOTO 220 230 Z=DMS AN:GOSUB 540 240 BEEP 1 250 K=2:GOSUB 570 260 LOCATE 0,2:PRINT "X3=";X3 270 LOCATE 20,2:PRINT "Y3=";Y3 280 K=3:GOSUB 570 290 LOCATE 0,3:PRINT "AN=";Z$ 300 WAIT :LOCATE 20,3:PRINT "L =";MDF (L3):K=3:GOSUB 570 310 INPUT "L=";L 320 IF L=0 THEN 30 330 IF L<0 THEN 370 340 AN2=AN/2:H1=L/2 350 H2=H1/TAN AN2 360 L2=SQR (H1^2+H2^2):GOTO 380 370 L2=ABS L:H1=L2*SIN AN2:H2=L2*COS AN2 380 DX4=L2*COS AZ:DY4=L2*SIN AZ:DX5=L2*COS AZ3:DY5=L2*SIN AZ3 390 X4=X1+DX4:Y4=Y1+DY4:X5=X1+DX5:Y5=Y1+DY5 400 S=H1*H2 405 IF L<0LET S=0:H1=0 410 K=0:GOSUB 570 420 K=1:GOSUB 570 430 K=2:GOSUB 570 440 K=3:GOSUB 570 450 LOCATE 0,0:PRINT "L1=";MDF (H1*2);" L2=";MDF L2 460 LOCATE 0,1:PRINT "S =";MDF S 470 LOCATE 0,2:PRINT "X4=";MDF X4;" Y4=";MDF Y4 480 WAIT :LOCATE 0,3:PRINT "X5=";MDF X5;" Y5=";MDF Y5 490 GOTO 310 500 END 510 IF AZ>=360LET AZ=AZ-360:GOTO 510 520 IF AZ<0LET AZ=AZ+360:GOTO 520 530 RETURN 540 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 550 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 560 RETURN 570 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 580 RETURN 590 K=3:GOSUB 570 600 RETURN 平行移動付 4 点交点計算( 3 点 1 方向角、 2 点 2 方向角交点計算)   入力     X1,Y1 既知点座標     X2,Y2 既知点座標          X2=出射方向角 Y2=0 ( ゼロ )とした場合方向角による計算 -W+ 平行移動量          + ( プラス ) 入力 右側 ( 1 -----> 2 )          - ( マイナス ) 入力 左側 ( 1 -----> 2 )     X3,Y3 既知点座標     X4,Y4 既知点座標          X4=出射方向角 Y4=0 ( ゼロ )とした場合方向角による計算 -W+ 平行移動量          + ( プラス ) 入力 右側 ( 3 -----> 4 )          - ( マイナス ) 入力 左側 ( 3 -----> 4 )  出力 X 求点の X 座標 Y 求点の Y 座標 10 ' ヘイコウイドウツキ 4テンコ-テン Ver.3.17 20 DEFDBL :DEGREE 30 CLS :USING "#######,###.###" 40 W1=0:W2=0 50 K=0:GOSUB 930 60 K=1:GOSUB 930 70 LOCATE 0,0 80 PRINT "ヘイコウイドウツキ 4テンコ-テン Ver.3.17" 90 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 100 LOCATE 20,0:INPUT "Y1=";Y1 110 LOCATE 20,0:PRINT "Y1=";Y1 120 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 130 LOCATE 20,1:INPUT "Y2=";Y2 140 LOCATE 20,1:PRINT "Y2=";Y2 150 IF Y2=0LET AZ1=DEG X2:GOTO 200 160 DX=X2-X1:DY=Y2-Y1:L1=SQR (DX^2+DY^2):AZ1=ASN (DY/(L1+ABS (L1=0))) 170 AZ=(360+AZ1)*ABS (DX>=0)+(180-AZ1)*ABS (DX<0) 180 GOSUB 950 190 AZ1=AZ:Z=DMS AZ1:GOSUB 980 200 IF Y2<>0THEN 220 210 IF Y2=0LET Z=DMS AZ1:GOSUB 980 220 LOCATE 0,2:PRINT "AZ1=";Z$ 230 IF Y2=0THEN 250 240 LOCATE 20,2:PRINT "L1=";MDF L1 250 LOCATE 0,3:PRINT "-W+=";W1 260 LOCATE 20,3:INPUT W1 270 X6=X1+W1*COS (AZ1+90) 280 Y6=Y1+W1*SIN (AZ1+90) 290 X7=X2+W1*COS (AZ1+90) 300 Y7=Y2+W1*SIN (AZ1+90) 310 K=0:GOSUB 930 320 K=1:GOSUB 930 330 K=2:GOSUB 930 340 K=3:GOSUB 930 350 LOCATE 0,0:INPUT "X3=";X3:LOCATE 0,0:PRINT "X3=";X3 360 LOCATE 20,0:INPUT "Y3=";Y3 370 LOCATE 20,0:PRINT "Y3=";Y3 380 LOCATE 0,1:INPUT "X4=";X4:LOCATE 0,1:PRINT "X4=";X4 390 LOCATE 20,1:INPUT "Y4=";Y4 400 LOCATE 20,1:PRINT "Y4=";Y4 410 IF Y4=0LET AZ2=DEG X4:GOTO 470 420 DX=X4-X3:DY=Y4-Y3:L2=SQR (DX^2+DY^2):AZ2=ASN (DY/(L2+ABS (L2=0))) 430 AZ=(360+AZ2)*ABS (DX>=0)+(180-AZ2)*ABS (DX<0) 440 GOSUB 950 450 AZ2=AZ:Z=DMS AZ2:GOSUB 980 460 IF Y4<>0THEN 480 470 IF Y4=0LET Z=DMS AZ2:GOSUB 980 480 LOCATE 0,2:PRINT "AZ2=";Z$ 490 IF Y4=0THEN 510 500 LOCATE 20,2:PRINT "L2=";MDF L2 510 LOCATE 0,3:PRINT "-W+=";W2 520 LOCATE 20,3:INPUT W2 530 X8=X3+W2*COS (AZ2+90) 540 Y8=Y3+W2*SIN (AZ2+90) 550 X9=X4+W2*COS (AZ2+90) 560 Y9=Y4+W2*SIN (AZ2+90) 570 IF Y2=0AND Y4=0THEN 770 580 IF Y2=0THEN 650 590 IF Y4=0THEN 710 600 M1=(Y7-Y6)/(X7-X6) 610 M2=(Y9-Y8)/(X9-X8) 620 X=(M2*X8-M1*X6+Y6-Y8)/(M2-M1) 630 Y=M1*(X-X6)+Y6 640 GOTO 840 650 M1=TAN AZ1 660 M2=(Y9-Y8)/(X9-X8) 670 DX=(M1*(X6-X8)-(Y6-Y8))/(M1-M2) 680 X=X8+DX 690 Y=Y8+DX*M2 700 GOTO 840 710 M1=TAN AZ2 720 M2=(Y7-Y6)/(X7-X6) 730 DX=(M1*(X8-X6)-(Y8-Y6))/(M1-M2) 740 X=X6+DX 750 Y=Y6+DX*M2 760 GOTO 840 770 X7=X6+1000*COS AZ1:Y7=Y6+1000*SIN AZ1 780 X9=X8+1000*COS AZ2:Y9=Y8+1000*SIN AZ2 790 M1=(Y7-Y6)/(X7-X6) 800 M2=(Y9-Y8)/(X9-X8) 810 X=(M2*X8-M1*X6+Y6-Y8)/(M2-M1) 820 Y=M1*(X-X6)+Y6 830 GOTO 840 840 BEEP 1 850 K=2:GOSUB 930 860 LOCATE 0,2:PRINT "W1=";MDF W1 870 LOCATE 20,2:PRINT "W2=";MDF W2 880 K=3:GOSUB 930 890 LOCATE 0,3:PRINT "X =";MDF X 900 LOCATE 20,3:PRINT "Y =";MDF Y 910 GOTO 50 920 END 930 LOCATE 0,K:PRINT " " 940 RETURN 950 IF AZ>=360LET AZ=AZ-360:GOTO 950 960 IF AZ<0LET AZ=AZ+360:GOTO 960 970 RETURN 980 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 990 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 1000 RETURN 連続平行移動交点計算   入力     IP 0 X 既知点 X 座標      Y 既知点 Y 座標     IP n X 既知点 X 座標(最終点の次は X=0 とする事)      Y 既知点 Y 座標(最終点の次は Y=0 とする事) -W+ 平行移動量          + ( プラス ) 入力 右側 ( 0 -----> 1 )          - ( マイナス ) 入力 左側 ( 0 -----> 1 )  出力 WX 求点の X 座標 WY 求点の Y 座標 10 ' レンゾクヘイコウイドウケイサン Ver. 3.17 20 *MAIN:DEFDBL :' --- メイン ルーチン --- 30 CLS :DEGREE 40 S1$="E:" 50 S2$="F:" 60 S3$="X:" 70 S4$="CAS:" 80 SD$=".DAT" 90 FN$="レンゾク" 100 ON ERROR GOTO *ERR 110 WAIT 0:PRINT "レンゾクヘイコウイドウケイサン Ver.3.17 [ IP 50テン ]" 120 Y=1:LOCATE 4,2:INPUT " [ 1:ケイゾク 2:シンキ 3:ロード ] ";Y 130 IF Y=1THEN *LIST 140 IF Y=2THEN *INPUT1 150 IF Y>=4THEN *MAIN 160 REM 170 REM 180 REM 190 REM 200 *LOAD:' -------- データロード --------- 210 SL=0 220 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ]";S 230 IF S>=5THEN *MAIN 240 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 250 LOCATE 9,3:INPUT FN$ 260 IF FN$="C"THEN *MAIN 270 ERASE IP,W,WP 280 DIM IP(51,2),W(51),WP(51,2) 290 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 330 300 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 330 310 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 330 320 OPEN S1$+FN$+SD$ FOR INPUT AS #1 330 WAIT 0:PRINT "・・・・・・ ロ-ド チュウ Just a moment Please !!" 340 INPUT #1,IP(*),W(*),WP(*) 350 CLOSE #1 360 GOTO *LIST 370 REM 380 REM 390 REM 400 *INPUT1:' ----- インプット ----- 410 USING "###,###.###" 420 ERASE IP,W,WP 430 DIM IP(51,2),W(51),WP(51,2) 440 FOR I=0TO 50 450 CLS 460 LOCATE 0,3:PRINT "[ サイシュウテンノ ツギノ IP テンハ X=0,Y=0 トスルコト ]" 470 IP(I,1)=0:LOCATE 0,0:PRINT "IP";STR$ I;:INPUT " X=";IP(I,1) 480 LOCATE 0,0:PRINT "IP";STR$ I;" X=";IP(I,1); 490 IP(I,2)=0:INPUT " Y=";IP(I,2) 500 IF I=0THEN 550 510 IF IP(I,1)=0AND IP(I,2)=0LET I=50:GOTO 550 520 W=0:LOCATE 3,1:PRINT "-W+=";W 530 LOCATE 19,1:INPUT W 540 W(I)=W 550 NEXT I 560 REM 570 REM 580 REM 590 REM 600 *TEISEI:' --------- テイセイ --------- 610 WAIT 0 620 K=3:GOSUB 1940 630 Y=1:LOCATE 0,3:INPUT "データ ノ [1:テイセイ 2:ソウニュウ 3:サクジョ 4:セ-ブ]";Y 640 IF Y>4THEN *LIST 650 IF Y=4THEN *SAVE 660 IF Y=3THEN *DELETE 670 IF Y=2THEN *INSERT 680 Y=1:INPUT "テイセイ [ 1:IP 2:IP0 3:ケイサン 4:リスト]";Y 690 IF Y>=4THEN *LIST 700 IF Y=3THEN *CAL 710 IF Y=2THEN *TEISEI1 720 N=0:INPUT "テイセイ NO. ";N 730 IF N<=0THEN *CAL 740 GOSUB *TEISEI2 750 GOTO 720 760 REM 770 REM 780 REM 790 REM 800 *TEISEI1:' --------- テイセイ 1 ----- 810 CLS :WAIT 0 820 USING "####,###.###":' シモケタ 3 ケタ 830 LOCATE 0,0:PRINT "IP 0 X=";IP(0,1) 840 LOCATE 0,1:PRINT " Y=";IP(0,2) 850 REM 860 LOCATE 20,0:INPUT IP(0,1) 870 LOCATE 20,1:INPUT IP(0,2) 880 GOTO *TEISEI 890 REM 900 *TEISEI2:' --------- テイセイ 2 ----- 910 CLS :WAIT 0 920 USING "####,###.###":' シモケタ 3 ケタ 930 LOCATE 0,0:PRINT "IP ";STR$ N;" X=";IP(N,1) 940 LOCATE 0,1:PRINT " Y=";IP(N,2) 950 LOCATE 0,2:PRINT " -W+=";W(N) 960 LOCATE 21,0:INPUT IP(N,1) 970 LOCATE 21,1:INPUT IP(N,2) 980 LOCATE 21,2:INPUT W(N) 990 RETURN 1000 *INSERT:' ----- ソウニュウ ----- 1010 N=0:INPUT "ソウニュウ NO. ";N 1020 IF N<=0THEN *LIST 1030 CLS :WAIT 0 1040 USING "##":PRINT "IP ";N; 1050 USING "####,###.###" 1060 LOCATE 6,0:PRINT "X=";IP(N,1) 1070 LOCATE 6,1:PRINT "Y=";IP(N,2) 1080 LOCATE 4,2:PRINT "-W+=";W(N) 1090 X=IP(N,1):LOCATE 21,0:INPUT X 1100 Y=IP(N,2):LOCATE 21,1:INPUT Y 1110 W=W(N):LOCATE 21,2:INPUT W 1120 FOR I=N TO 50 1130 X1=IP(I,1):Y1=IP(I,2):W1=W(I) 1140 IP(I,1)=X:IP(I,2)=Y:W(I)=W 1150 X=X1:Y=Y1:W=W1 1160 IF IP(I,1)=0AND IP(I,2)=0LET I=50 1170 NEXT I 1180 GOTO *INSERT 1190 REM 1200 *DELETE:' ----- サクジョ ----- 1210 N=0:INPUT "サクジョ NO. ";N 1220 IF N<=0THEN *LIST 1230 CLS :WAIT 0 1240 USING "##":PRINT N; 1250 USING "####,###.###":' シモケタ 3 ケタ 1260 PRINT " IP ";STR$ N;" X=";IP(N,1) 1270 LOCATE 9,1:PRINT "Y=";IP(N,2) 1280 LOCATE 7,2:PRINT "-W+=";W(N) 1290 Y$="N":INPUT " サクジョ (Y/N) ";Y$ 1300 IF Y$<>"Y"THEN 1350 1310 FOR I=N TO 50 1320 IP(I,1)=IP(I+1,1):IP(I,2)=IP(I+1,2):W(I)=W(I+1) 1330 IF IP(I,1)=0AND IP(I,2)=0LET I=50 1340 NEXT I 1350 GOTO *DELETE 1360 REM 1370 REM 1380 REM 1390 REM 1400 *LIST:' ----- リスト ----- 1410 USING "####,###.###":' シモケタ 3 ケタ 1420 FOR I=1TO 50 1430 CLS :WAIT 0 1440 PRINT " IP ";STR$ I;" X=";IP(I,1) 1450 LOCATE 7,1:PRINT "Y=";IP(I,2) 1460 WAIT :LOCATE 5,2:PRINT "-W+=";W(I) 1470 IF IP(I+1,1)=0AND IP(I+1,2)=0LET I=50 1480 NEXT I 1490 REM 1500 *CAL:' ----- ケイサン ----- 1510 USING "####,###.###":' シモケタ 3 ケタ 1520 FOR I=0TO 49 1530 IF IP(I+2,1)=0AND IP(I+2,2)=0LET I=49:GOTO 1920 1540 X0=IP(I,1):Y0=IP(I,2) 1550 X1=IP(I+1,1):Y1=IP(I+1,2) 1560 X2=IP(I+2,1):Y2=IP(I+2,2) 1570 DX=X1-X0:DY=Y1-Y0:L1=SQR (DX^2+DY^2):AZ1=ASN (DY/(L1+ABS (L1=0))) 1580 AZ=(360+AZ1)*ABS (DX>=0)+(180-AZ1)*ABS (DX<0) 1590 GOSUB 1960 1600 AZ1=AZ:Z=DMS AZ1:GOSUB 1990 1610 X6=X0+W(I+1)*COS (AZ1+90) 1620 Y6=Y0+W(I+1)*SIN (AZ1+90) 1630 X7=X1+W(I+1)*COS (AZ1+90) 1640 Y7=Y1+W(I+1)*SIN (AZ1+90) 1650 DX=X2-X1:DY=Y2-Y1:L2=SQR (DX^2+DY^2):AZ2=ASN (DY/(L2+ABS (L2=0))) 1660 AZ=(360+AZ2)*ABS (DX>=0)+(180-AZ2)*ABS (DX<0) 1670 GOSUB 1960 1680 AZ2=AZ:Z=DMS AZ2:GOSUB 1990 1690 X8=X1+W(I+2)*COS (AZ2+90) 1700 Y8=Y1+W(I+2)*SIN (AZ2+90) 1710 X9=X2+W(I+2)*COS (AZ2+90) 1720 Y9=Y2+W(I+2)*SIN (AZ2+90) 1730 M1=(Y7-Y6)/(X7-X6) 1740 M2=(Y9-Y8)/(X9-X8) 1750 X=(M2*X8-M1*X6+Y6-Y8)/(M2-M1) 1760 Y=M1*(X-X6)+Y6 1770 WP(I+1,1)=X 1780 WP(I+1,2)=Y 1790 BEEP 1 1800 K=0:GOSUB 1940 1810 LOCATE 0,0:PRINT "IP";STR$ I;"=";MDF IP(I,1) 1820 LOCATE 20,0:PRINT "Y=";MDF IP(I,2) 1830 K=1:GOSUB 1940 1840 LOCATE 0,1:PRINT "IP";STR$ (I+1);"=";MDF IP(I+1,1) 1850 LOCATE 20,1:PRINT "Y=";MDF IP(I+1,2) 1860 K=2:GOSUB 1940 1870 LOCATE 0,2:PRINT "IP";STR$ (I+2);"=";MDF IP(I+2,1) 1880 LOCATE 20,2:PRINT "Y=";MDF IP(I+2,2) 1890 K=3:GOSUB 1940 1900 LOCATE 0,3:PRINT " WX=";MDF WP(I+1,1) 1910 WAIT :LOCATE 19,3:PRINT "WY=";MDF WP(I+1,2) 1920 NEXT I 1930 GOTO *TEISEI 1940 WAIT 0:LOCATE 0,K:PRINT " " 1950 RETURN 1960 IF AZ>=360LET AZ=AZ-360:GOTO 1960 1970 IF AZ<0LET AZ=AZ+360:GOTO 1970 1980 RETURN 1990 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 2000 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 2010 RETURN 2020 REM 2030 REM 2040 REM 2050 *SAVE:' -------- データセーブ -------- 2060 WAIT 0 2070 SL=1 2080 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ]";S 2090 IF S>=5THEN *CAL 2100 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 2110 LOCATE 9,3:INPUT FN$ 2120 IF FN$="C"THEN *LIST 2130 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2170 2140 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2170 2150 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2170 2160 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 2170 WAIT 0:PRINT "・・・・・・ セ-ブ チュウ Just a moment Please !!" 2180 PRINT #1,IP(*),W(*),WP(*) 2190 CLOSE #1 2200 GOTO *TEISEI 2210 REM 2220 REM 2230 REM 2240 REM 2250 *ERR:' -------- エラー ショリ ---------- 2260 BEEP 2 2270 WAIT 0 2280 IF ERN =72AND SL=0PRINT "I/O error":RESUME 220 2290 IF ERN =72AND SL=1PRINT "I/O error":RESUME 2080 2300 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 220 2310 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 2080 2320 IF ERN =76AND SL=1PRINT "File write protected":RESUME 2080 2330 IF ERN =77PRINT "Disk full":RESUME 2080 2340 IF ERN =94PRINT "File not found":RESUME 220 2350 RESUME *TEISEI 2360 REM 2370 Z=DMS (Z+5/10^6) 2380 D=INT Z:F=(Z-D)*100:E=INT F:G=INT ((F-E)*1000)/10 2390 Z$=STR$ D+"゚"+STR$ E+"'"+STR$ G 2400 RETURN 連続逆計算  2 点間の距離と方向角を連続に求める計算   入力     X1,Y1 器械点座標     X2,Y2 後視点座標  出力     AZ 方向角 ( 器械点 ---> 後視点 ) 出射方向角     L 距離 10 ' レンゾク ギャクケイサン 20 CLS :DEGREE :DEFDBL :USING "#######,###.###" 30 WAIT 0:PRINT "レンゾク ギャクケイサン" 40 LOCATE 0,1:INPUT "X1=";X1 50 LOCATE 0,1:PRINT "X1=";X1 60 LOCATE 20,1:INPUT "Y1=";Y1 70 LOCATE 20,1:PRINT "Y1=";Y1 80 K=2:GOSUB 360 90 K=3:GOSUB 360 100 LOCATE 0,2:INPUT "X2=";X2 110 LOCATE 0,2:PRINT "X2=";X2 120 LOCATE 20,2:INPUT "Y2=";Y2 130 LOCATE 20,2:PRINT "Y2=";Y2 140 X0=X1:Y0=Y1 150 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 160 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 170 GOSUB 300 180 Z0=AZ:Z=DMS AZ 190 BEEP 1 200 K=3:GOSUB 360:GOSUB 330:PRINT "AZ=";Z$ 210 LOCATE 20,3:WAIT :PRINT "L =";MDF L0 220 X1=X2:Y1=Y2 230 K=1:GOSUB 360 240 K=2:GOSUB 360 250 K=3:GOSUB 360 260 LOCATE 0,1:PRINT "X1=";X1 270 LOCATE 20,1:PRINT "Y1=";Y1 280 GOTO 100 290 END 300 IF AZ>=360LET AZ=AZ-360:GOTO 300 310 IF AZ<0LET AZ=AZ+360:GOTO 310 320 RETURN 330 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 340 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 350 RETURN 360 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 370 RETURN 連続内角計算   入力     X1,Y1 器械点座標     X2,Y2 後視点座標  方向角 ( 器械点 ---> 後視点 ) 出射方向角が既知の           場合は、X2 = 方向角 ( 器械点 ---> 後視点 ) 出射方向角            Y2 = 0 ( ゼロ ) とする。 X3,Y3 求点座標  出力 AN 器械点を中心とする後視点と求点との内角 L 器械点から求点までの距離 10 ' レンゾク ナイカクケイサン Ver. 3.17 20 CLS :DEGREE :DEFDBL :WAIT 0:USING "#######,###.###" 30 PRINT "レンゾク ナイカクケイサン Ver. 3.17" 40 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 50 LOCATE 20,0:INPUT "Y1=";Y1 60 LOCATE 20,0:PRINT "Y1=";Y1 70 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 80 LOCATE 20,1:INPUT "Y2=";Y2 90 LOCATE 20,1:PRINT "Y2=";Y2 100 X0=X1:Y0=Y1 110 DX=X2-X1:DY=Y2-Y1:L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 120 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 130 GOSUB 420 140 Z0=AZ:Z=DMS AZ 150 K=2:GOSUB 480:GOSUB 450:PRINT "AZ=";Z$:LOCATE 20,2:PRINT "L =";MDF L0 160 K=3:GOSUB 480:INPUT "X3=";X3:LOCATE 0,3:PRINT "X3=";X3 170 LOCATE 20,3:INPUT "Y3=";Y3 180 LOCATE 20,3:PRINT "Y3=";Y3 190 DX3=X3-X1:DY3=Y3-Y1:L3=SQR (DX3^2+DY3^2):AZ3=ASN (DY3/(L3+ABS (L3=0))) 200 AZ3=(360+AZ3)*ABS (DX3>=0)+(180-AZ3)*ABS (DX3<0) 210 AN=AZ3-AZ+360 220 IF AN>=360LET AN=AN-360:GOTO 220 230 Z=DMS AN:GOSUB 450 240 BEEP 1 250 K=2:GOSUB 480 260 LOCATE 0,2:PRINT "X3=";X3 270 LOCATE 20,2:PRINT "Y3=";Y3 280 K=3:GOSUB 480 290 LOCATE 0,3:PRINT "AN=";Z$ 300 WAIT :LOCATE 20,3:PRINT "L =";MDF (L3):K=3:GOSUB 480 310 X2=X1:Y2=Y1:X1=X3:Y1=Y3 320 K=0:GOSUB 480 330 K=1:GOSUB 480 340 K=2:GOSUB 480 350 K=3:GOSUB 480 360 LOCATE 0,0:PRINT "X1=";X1 370 LOCATE 20,0:PRINT "Y1=";Y1 380 LOCATE 0,1:PRINT "X2=";X2 390 LOCATE 20,1:PRINT "Y2=";Y2 400 GOTO 110 410 END 420 IF AZ>=360LET AZ=AZ-360:GOTO 420 430 IF AZ<0LET AZ=AZ+360:GOTO 430 440 RETURN 450 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 460 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 470 RETURN 480 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 490 RETURN 500 K=3:GOSUB 480 510 RETURN 平行移動付直線と円との交点計算 ( CIRCL319.546 )   入力     X1,Y1 既知点座標(直線)     X2,Y2 既知点座標(直線)          X2=出射方向角 Y2=0 ( ゼロ )とした場合方向角による計算 -W+ 平行移動量          + ( プラス ) 入力 右側 ( 1 -----> 2 )          - ( マイナス ) 入力 左側 ( 1 -----> 2 )     RX,RY 円の中心点座標 R 円の半径  出力     AN 円の中心角     L 長弦     R 半径     H 垂線長(直線を基準にして円が左側に有る場合 - マイナス)             (直線を基準にして円が右側に有る場合 + プラス) X 求点の X 座標 Y 求点の Y 座標 X 求点の X 座標 Y 求点の Y 座標 10 ' チョクセン---エン コ-テン Ver.3.19 20 DEFDBL :DEGREE :ON ERROR GOTO 50 30 CLS :USING "#######,###.###" 40 W1=0:W2=0 50 WAIT 0:K=0:GOSUB 680 60 K=1:GOSUB 680 70 LOCATE 0,0 80 PRINT "チョクセン---エン コ-テン Ver.3.19" 90 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 100 LOCATE 20,0:INPUT "Y1=";Y1 110 LOCATE 20,0:PRINT "Y1=";Y1 120 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 130 LOCATE 20,1:INPUT "Y2=";Y2 140 LOCATE 20,1:PRINT "Y2=";Y2 150 IF Y2=0LET AZ1=DEG X2:GOTO 200 160 DX=X2-X1:DY=Y2-Y1:L1=SQR (DX^2+DY^2):AZ1=ASN (DY/(L1+ABS (L1=0))) 170 AZ=(360+AZ1)*ABS (DX>=0)+(180-AZ1)*ABS (DX<0) 180 GOSUB 700 190 AZ1=AZ:Z=DMS AZ1:GOSUB 730 200 IF Y2<>0THEN 220 210 IF Y2=0LET Z=DMS AZ1:GOSUB 730 220 LOCATE 0,2:PRINT "AZ1=";Z$ 230 IF Y2=0THEN 250 240 LOCATE 20,2:PRINT "L1=";MDF L1 250 LOCATE 0,3:PRINT "-W+=";W1 260 LOCATE 20,3:INPUT W1 270 X6=X1+W1*COS (AZ1+90) 280 Y6=Y1+W1*SIN (AZ1+90) 290 X7=X2+W1*COS (AZ1+90) 300 Y7=Y2+W1*SIN (AZ1+90) 310 INPUT "RX=";RX:LOCATE 0,3:PRINT "RX=";RX 320 LOCATE 20,3:INPUT "RY=";RY 330 LOCATE 20,3:PRINT "RY=";RY 340 DX=RX-X6:DY=RY-Y6:L2=SQR (DX^2+DY^2):AZ2=ASN (DY/(L2+ABS (L2=0))) 350 AZ=(360+AZ2)*ABS (DX>=0)+(180-AZ2)*ABS (DX<0) 360 GOSUB 700 370 AZ2=AZ:Z=DMS AZ2:GOSUB 730 380 AN2=AZ2-AZ1+360 390 IF AN2>=360LET AN2=AN2-360:GOTO 390 400 Z=DMS AN2:GOSUB 730 410 PRINT "R =";R1;" ";:INPUT R1 420 L3=L2*COS AN2 430 H=L2*SIN AN2 440 L4=SQR (R1^2-H^2) 450 L=L4*2 460 AN=(ACS ((ABS H)/R1))*2 470 Z=DMS AN:GOSUB 730 480 X8=X6+(L3-L4)*COS AZ1 490 Y8=Y6+(L3-L4)*SIN AZ1 500 X9=X6+(L3+L4)*COS AZ1 510 Y9=Y6+(L3+L4)*SIN AZ1 520 BEEP 1 530 K=0:GOSUB 680 540 K=1:GOSUB 680 550 K=2:GOSUB 680 560 K=3:GOSUB 680 570 LOCATE 0,0:PRINT "AN=";Z$ 580 LOCATE 20,0:PRINT "L =";MDF L 590 LOCATE 0,1:PRINT "R =";MDF R1 600 LOCATE 20,1:PRINT "H =";MDF H 610 K=3:GOSUB 680 620 LOCATE 0,2:PRINT "X =";MDF X8 630 LOCATE 20,2:PRINT "Y =";MDF Y8 640 LOCATE 0,3:PRINT "X =";MDF X9 650 WAIT :LOCATE 20,3:PRINT "Y =";MDF Y9 660 GOTO 50 670 END 680 LOCATE 0,K:PRINT " " 690 RETURN 700 IF AZ>=360LET AZ=AZ-360:GOTO 700 710 IF AZ<0LET AZ=AZ+360:GOTO 710 720 RETURN 730 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 740 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 750 RETURN 円周上の 3 既知点より円の中心座標計算 ( CENT319.547 )   入力     X1,Y1 既知点座標(円周上)     X2,Y2 既知点座標(円周上)     X3,Y3 既知点座標(円周上)  出力 AZ1 方向角       L1 距離 AZ2 方向角       L2 距離      R 半径 RX 円の中心点 X 座標 RY 円の中心点 Y 座標 10 ' エンノチュウシンテン Ver.3.19 20 DEFDBL :DEGREE 30 CLS :USING "#######,###.###" 40 W1=0:W2=0 50 WAIT 0:K=0:GOSUB 660 60 K=1:GOSUB 660 70 LOCATE 0,0 80 PRINT "エンノチュウシンテン Ver.3.19" 90 INPUT "X1=";X1:CLS :LOCATE 0,0:PRINT "X1=";X1 100 LOCATE 20,0:INPUT "Y1=";Y1 110 LOCATE 20,0:PRINT "Y1=";Y1 120 INPUT "X2=";X2:LOCATE 0,1:PRINT "X2=";X2 130 LOCATE 20,1:INPUT "Y2=";Y2 140 LOCATE 20,1:PRINT "Y2=";Y2 150 IF Y2=0LET AZ1=DEG X2:GOTO 200 160 DX=X2-X1:DY=Y2-Y1:L1=SQR (DX^2+DY^2):AZ1=ASN (DY/(L1+ABS (L1=0))) 170 AZ=(360+AZ1)*ABS (DX>=0)+(180-AZ1)*ABS (DX<0) 180 GOSUB 680 190 AZ1=AZ:Z=DMS AZ1:GOSUB 710 200 IF Y2<>0THEN 220 210 IF Y2=0LET Z=DMS AZ1:GOSUB 710 220 LOCATE 0,2:PRINT "AZ1=";Z$ 230 IF Y2=0THEN 250 240 LOCATE 20,2:PRINT "L1=";MDF L1 250 REM 260 INPUT "X3=";X3:LOCATE 0,3:PRINT "X3=";X3 270 LOCATE 20,3:INPUT "Y3=";Y3 280 LOCATE 20,3:PRINT "Y3=";Y3 290 DX=X3-X1:DY=Y3-Y1:L2=SQR (DX^2+DY^2):AZ2=ASN (DY/(L2+ABS (L2=0))) 300 AZ=(360+AZ2)*ABS (DX>=0)+(180-AZ2)*ABS (DX<0) 310 GOSUB 680 320 AZ2=AZ:Z=DMS AZ2:GOSUB 710 330 IF Y4<>0THEN 350 340 IF Y4=0LET Z=DMS AZ2:GOSUB 710 350 K=3:GOSUB 660 360 LOCATE 0,3:PRINT "AZ2=";Z$ 370 IF Y4=0THEN 390 380 LOCATE 20,3:PRINT "L2=";MDF L2 390 X6=X1+(L1/2)*COS AZ1 400 Y6=Y1+(L1/2)*SIN AZ1 410 X8=X1+(L2/2)*COS AZ2 420 Y8=Y1+(L2/2)*SIN AZ2 430 X7=X6+1000*COS (AZ1+90):Y7=Y6+1000*SIN (AZ1+90) 440 X9=X8+1000*COS (AZ2+90):Y9=Y8+1000*SIN (AZ2+90) 450 M1=(Y7-Y6)/(X7-X6) 460 M2=(Y9-Y8)/(X9-X8) 470 X=(M2*X8-M1*X6+Y6-Y8)/(M2-M1) 480 Y=M1*(X-X6)+Y6 490 DX=X-X1:DY=Y-Y1:R0=SQR (DX^2+DY^2):AZ0=ASN (DY/(R0+ABS (R0=0))) 500 BEEP 1 510 Z=DMS AZ1:GOSUB 710 520 K=0:GOSUB 660 530 K=1:GOSUB 660 540 K=2:GOSUB 660 550 K=3:GOSUB 660 560 LOCATE 0,0: PRINT "AZ1=";Z$ 570 LOCATE 20,0: PRINT "L1=";MDF L1 580 Z=DMS AZ2:GOSUB 710 590 LOCATE 0,1: PRINT "AZ2=";Z$ 600 LOCATE 20,1: PRINT "L2=";MDF L2 610 LOCATE 0,2:PRINT "R =";MDF R0 620 LOCATE 0,3:PRINT "RX=";MDF X 630 WAIT :LOCATE 20,3:PRINT "RY=";MDF Y 640 GOTO 50 650 END 660 LOCATE 0,K:PRINT " " 670 RETURN 680 IF AZ>=360LET AZ=AZ-360:GOTO 680 690 IF AZ<0LET AZ=AZ+360:GOTO 690 700 RETURN 710 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 720 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 730 RETURN ヘロン面積計算 ( HERON001.545 )   入力     X1,Y1 既知点座標(円周上)     X2,Y2 既知点座標(円周上)     X3,Y3 既知点座標(円周上)  出力 AZ1 方向角       L1 距離 AZ2 方向角       L2 距離      R 半径 RX 円の中心点 X 座標 RY 円の中心点 Y 座標 10 ' ヘロン メンセキ ・・・ a,b,c:サンペン 200メンセキ 20 ' 30 ' 2002.06.20 40 ' Version 001 50 DEFDBL 60 *MAIN:' --------- メイン ルーチン --------- 70 KE1=3:KE2=7:' ----- ケタシテイ ----- 80 US$="#########" 90 S1$="E:" 100 S2$="F:" 110 S3$="X:" 120 S4$="CAS:" 130 SD$=".DAT" 140 FN$="ヘロン" 150 CLS 160 ON ERROR GOTO *ERR 170 WAIT 0:PRINT "ヘロン メンセキ [ a,b,c:サンペン 200テン ] Ver.001" 180 WAIT 0 190 Y=1:LOCATE 5,2:INPUT "[ 1:ケイゾク 2:シンキ 3:ロード 4:ケタシテイ ] ";Y 200 IF Y=1THEN *KEISAN 210 IF Y=2THEN *INPUT 220 IF Y=3THEN *LOAD 230 IF Y=4GOSUB *KETA 240 GOTO 150 250 *LOAD:' -------- データロード --------- 260 SL=0 270 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル ] ";S 280 IF S>=5THEN *MAIN 290 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 300 LOCATE 9,3:INPUT FN$ 310 IF FN$="C"THEN *MAIN 320 ERASE A,B,C 330 DIM A(201),B(201),C(201) 340 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 380 350 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 380 360 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 380 370 OPEN S1$+FN$+SD$ FOR INPUT AS #1 380 WAIT 0:PRINT "・・・・・・ ロ-ド チュウ Just a moment Please !!" 390 INPUT #1,KE1,KE2,TA,A(*),B(*),C(*) 400 CLOSE #1 410 GOTO *KEISAN 420 REM 430 REM 440 REM 450 *INPUT:' -------- インプット -------- 460 CLS :WAIT 0 470 PRINT 480 PRINT 490 PRINT " NO. a b c Area" 500 ERASE A,B,C 510 DIM A(201),B(201),C(201) 520 FOR I=1TO 200 530 USING "###":PRINT I; 540 LOCATE 4,3:INPUT " ";A(I) 550 IF A(I)<=0LET I=200:GOTO 750 560 K=3:GOSUB *HYOUJI 570 USING "###":PRINT I 580 USING "###."+LEFT$ (US$,KE1) 590 A=MDF A(I) 600 LOCATE 3,3:PRINT A 610 LOCATE 11,3:INPUT " ";B(I) 620 B=MDF B(I) 630 LOCATE 11,3:PRINT B 640 LOCATE 19,3:INPUT " ";C(I) 650 C=MDF C(I) 660 LOCATE 19,3:PRINT C 670 USING "##,###."+LEFT$ (US$,KE2) 680 IF C(I)=0THEN 730 690 IF C(I)>0THEN 710 700 IF C(I)<0THEN 740 710 T=(A+B+C)/2:S=SQR (T*ABS (T-A)*ABS (T-B)*ABS (T-C)) 720 LOCATE 26,3:PRINT MDF S:GOTO 750 730 LOCATE 26,3:PRINT MDF (A*B)/2:GOTO 750 740 LOCATE 26,3:PRINT MDF (A+B)*(ABS C)/2:GOTO 750 750 NEXT I 760 GOTO *KEISAN 770 REM 780 REM 790 REM 800 *LIST:' -------- データ リスト --------- 810 WAIT 0 820 CLS 830 PRINT 840 PRINT 850 PRINT " NO. a b c Area" 860 PRINT 870 FOR I=1TO 200 880 IF A(I)=0LET I=200:GOTO 1090 890 USING "##,###."+LEFT$ (US$,KE1) 900 A=MDF A(I):B=MDF B(I):C=MDF C(I) 910 USING "#####,###."+LEFT$ (US$,KE2) 920 IF C(I)>0THEN 950 930 IF C(I)=0THEN 960 940 IF C(I)<0THEN 970 950 T=(A+B+C)/2:AA=SQR (T*ABS (T-A)*ABS (T-B)*ABS (T-C)):GOTO 980 960 AA=MDF (A*B)/2:GOTO 980 970 AA=MDF (A+B)*(ABS C)/2:GOTO 980 980 USING "###" 990 LOCATE 0,3:PRINT I 1000 USING "###."+LEFT$ (US$,KE1) 1010 LOCATE 3,3:PRINT A 1020 LOCATE 11,3:PRINT B 1030 LOCATE 19,3:PRINT C 1040 USING "##,###."+LEFT$ (US$,KE2) 1050 WAIT 1060 LOCATE 26,3:PRINT AA 1070 WAIT 0 1080 PRINT 1090 NEXT I 1100 WAIT 1110 PRINT " -------------------------------------- " 1120 REM 1130 REM 1140 REM 1150 *KEISAN:' --------- ケイサン --------- 1160 CLS 1170 WAIT 0 1180 TA=0:AA=0 1190 FOR I=1TO 200 1200 IF A(I)=0LET I=200:GOTO 1330 1210 USING "##,###."+LEFT$ (US$,KE1) 1220 A=MDF A(I):B=MDF B(I):C=MDF C(I) 1230 USING "######,###."+LEFT$ (US$,KE2) 1240 IF C(I)>0THEN 1270 1250 IF C(I)=0THEN 1290 1260 IF C(I)<0THEN 1310 1270 T=(A+B+C)/2:AA=SQR (T*ABS (T-A)*ABS (T-B)*ABS (T-C)) 1280 GOTO 1320 1290 AA=(A*B)/2 1300 GOTO 1320 1310 AA=(A+B)*(ABS C)/2 1320 TA=TA+AA 1330 NEXT I 1340 WAIT 0 1350 PRINT " "; 1360 PRINT " Total Area = ";MDF TA 1370 PRINT " ツボ メンセキ = ";MDF (ABS TA*0.3025) 1380 BEEP 1 1390 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ケタシテイ 3:セーブ 4:リスト]";Y 1400 IF Y<=1THEN *TEISEI 1410 IF Y=2GOSUB *KETA 1420 IF Y=3THEN *SAVE 1430 IF Y=4THEN *LIST 1440 GOTO *KEISAN 1450 *TEISEI:' --------- テイセイ --------- 1460 WAIT 1470 Y=1:INPUT "データ ノ [ 1:テイセイ 2:ソウニュウ 3:サクジョ 4:シンキ]";Y 1480 IF Y>4THEN *KEISAN 1490 IF Y=4THEN *INPUT 1500 IF Y=3THEN *DELETE 1510 IF Y=2THEN *INSERT 1520 J=0:INPUT "テイセイ NO. ";J 1530 IF J<=0THEN *KEISAN 1540 WAIT 0 1550 PRINT " NO. a b c" 1560 PRINT 1570 USING "###" 1580 LOCATE 0,3:PRINT J 1590 USING "#,###.###" 1600 LOCATE 3,3:PRINT A(J) 1610 LOCATE 13,3:PRINT B(J) 1620 LOCATE 23,3:PRINT C(J) 1630 INPUT " a=";A(J) 1640 INPUT " b=";B(J) 1650 INPUT " c=";C(J) 1660 GOTO 1520 1670 REM 1680 REM 1690 REM 1700 *INSERT:' -------- ソウニュウ --------- 1710 J=0:INPUT "ソウニュウ NO. ";J 1720 IF J<=0THEN *KEISAN 1730 WAIT 0 1740 PRINT " NO. a b c" 1750 PRINT 1760 USING "###" 1770 LOCATE 0,3:PRINT J 1780 USING "##,###.###" 1790 LOCATE 3,3:PRINT A(J) 1800 LOCATE 13,3:PRINT B(J) 1810 LOCATE 23,3:PRINT C(J) 1820 A1=0:INPUT " a=";A1 1830 IF A1=0THEN *INSERT 1840 B1=0:INPUT " b=";B1 1850 IF B1=0THEN *INSERT 1860 C1=0:INPUT " c=";C1 1870 FOR I=J TO 200 1880 A=A(I):B=B(I):C=C(I) 1890 A(I)=A1:B(I)=B1:C(I)=C1 1900 A1=A:B1=B:C1=C 1910 IF A(I)=0LET I=200 1920 NEXT I 1930 GOTO *INSERT 1940 REM 1950 REM 1960 REM 1970 REM 1980 REM 1990 REM 2000 *DELETE:' -------- サクジョ --------- 2010 J=0:INPUT "サクジョ NO. ";J 2020 IF J<=0THEN *KEISAN 2030 WAIT 0 2040 PRINT " NO. a b c" 2050 PRINT 2060 USING "###" 2070 LOCATE 0,3:PRINT J 2080 USING "##,###.###" 2090 LOCATE 3,3:PRINT A(J) 2100 LOCATE 13,3:PRINT B(J) 2110 LOCATE 23,3:PRINT C(J) 2120 Y$="N":INPUT "サクジョ (Y/N) ";Y$ 2130 IF Y$<>"Y"THEN 2180 2140 FOR I=J TO 200 2150 A(I)=A(I+1):B(I)=B(I+1):C(I)=C(I+1) 2160 IF A(I)=0LET B(I+1)=0:C(I+1)=0:I=200 2170 NEXT I 2180 GOTO *DELETE 2190 REM 2200 *SAVE:' ------- データセーブ ------- 2210 WAIT 0 2220 SL=1 2230 S=1:INPUT " ソウチメイ [ 1:E 2:F 3:X 4:CAS 5:キャンセル]";S 2240 IF S>=5THEN *KEISAN 2250 PRINT "ファイルメイ [ ] ";" { ";FN$;SD$;" }" 2260 LOCATE 9,3:INPUT FN$ 2270 IF FN$="C"THEN *KEISAN 2280 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2320 2290 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2320 2300 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 2320 2310 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 2320 WAIT 0:PRINT "・・・・・・ セ-ブ チュウ Just a moment Please !!" 2330 PRINT #1,KE1,KE2,TA,A(*),B(*),C(*) 2340 CLOSE #1 2350 GOTO *KEISAN 2360 REM 2370 REM 2380 REM 2390 REM 2400 *ERR:' --------- エラー ショリ --------- 2410 BEEP 2 2420 WAIT 0 2430 IF ERN =72AND SL=0PRINT "I/O error":RESUME 270 2440 IF ERN =72AND SL=1PRINT "I/O error":RESUME 2230 2450 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 270 2460 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 2230 2470 IF ERN =76AND SL=1PRINT "File write protected":RESUME 2230 2480 IF ERN =77PRINT "Disk full":RESUME 2230 2490 IF ERN =94PRINT "File not found":RESUME 270 2500 RESUME *MAIN 2510 REM 2520 REM 2530 REM 2540 REM 2550 *HYOUJI:' ・・・・・・・・ ヒョウジ ・・・・・・・・・ 2560 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 2570 RETURN 2580 REM 2590 REM 2600 *KETA:' ・・・・・・・・・ ケタシテイ ・・・・・・・・・ 2610 CLS :USING "##" 2620 LOCATE 0,0:PRINT "**************** ケタシテイ *****************" 2630 LOCATE 0,1:PRINT "[ コウモク | ( a b c ) Area ]" 2640 LOCATE 0,2:PRINT "[ゲンザイ| ]" 2650 LOCATE 0,3:PRINT "[ ヘンコウ | ]" 2660 LOCATE 13,2:PRINT KE1 2670 LOCATE 34,2:PRINT KE2 2680 LOCATE 14,3:INPUT KE1 2690 KE2=2*KE1+1 2700 LOCATE 35,3:INPUT KE2 2710 CLS 2720 RETURN 2008.5.1 Toshio Kawaguchi E-mail to khf00050@yahoo.co.jp ----------------------------------------------------------------------------