Pocket computer programs
ポケコン用プログラム集  


 このページはラリーナビゲーション スペシャル&ウルトラテクニックでご紹介したパスコンをポケコンで処理できるプログラム集です。これらのプログラムはシャープの「PC-E5000」で作成したものです。このためプログラム中にSHARP-BASIC独自のコマンドを用いているものが含まれています。機種が違う場合には、変換してご利用下さい。 なお、一部にカシオのfx-7200Gで作成したプログラムも掲載しました。カシオ派の方はご利用下さい。
 尚、このプログラムはラリーエントラントチームWINの水野卓哉君(長岡技大自動車部OB)の好意により掲載させてもらっています。この場を借りて御礼申し上げます。水野君の意見により、理系の人ばかりで無いので、プログラムを公開しようということになりました。プログラムの御利用は全くの自由です。但し、著作権はあくまで水野君と一部は西田にありますので、無断転載等はご遠慮下さい。
 また、掲載しましたプログラムにバグがありましたら遠慮なくご指摘下さい。また、もっと良いプログラムがあるよという方は是非ご連絡の程お願い申しあげます。


ホームページに戻る

1.N分割PC処理プログラム
2.手前PC
3.所用時間・再スタート時間 計算プログラム
4.一定時間・距離で速度を増減するPCの処理プログラム
5.ODまでPCの処理プログラム

1.N分割PC処理プログラム <FILE NAME "N-PC">

 このプログラムは、「ウルトラテクニックのStage5 内分PC 及びスペシャルテクニックの中間PC」でご紹介しました中間PCの分割数が2,3,4...分割の問題の場合の平均走行速度を求めるプログラムです。
<使用方法>

  1. PC分割数を入力する。              (2分割)
  2. AVEを走行順に順次入力する。(単位:km/h) (30km/h、20km/h)
  3. 平均走行速度を表示する。(km/h)       (24.0km/h)

 5  'FILE NAME "N-PC"
 10 CLEAR
 20 INPUT "PC 分割数";BU
 30 DIM A(BU)
 40 FOR i=1 TO BU
 50 PRINT I;:INPUT”バンメノ AVE(km/h)";A(i)
 60 AV=(RCP(A(I))+AV)
 70 NEXT i
 80 AVE=RCP(AV)*BU
 90 PRINT"ヘイキン AVE(km/h)";:PRINTUSING"###.####";AVE
 100 FOR J=1 TO 5000:NEXT J


2.手前PC

 このプログラムは「スペシャルテクニックのチョット難しいPC」で紹介しました、手前PCの処理において、実際に車を走行させなくても、手前PC指示地点でのレスコン入力値(時間差)を自動的に計算するものです。

シャープBASIC  FILE NAME BEF-PC

  1. 手前PCの指示されている距離数を入力する(km)    (入力例2km/h)
  2. 手前PCの指示されているAVEを入力する。(km/h) (50km/h)
  3. ここまで走行してきたAVEを入力する。(km/h)   (30km/h)
  4. 手前PCの目標物を通過する時点での、レスコン(時間差)が表示される。 (1分36秒先行させる。(-RC))
 5 ’FILE NAME "BEF-PC"
 10  CLEAR
 20  INPUT"テマエPC ノ シジキョリ(km/h)";L
 30  INPUT"テマエPC ノ シジ";A1
 40  INPUT"ソウコウ シテキタ AVE(km/h)";A2
 50  J1=ABS(L/A1-L/A2):J1=DMS(J1)
 60  IF A1 > A2 THEN SEN$="センコウ サセル (-RC)” ELSE SEN$="オクラセル (+RC)"
 70  PRINTUSING"##.####";J1;:PRINT"(60 シンホウ)";SEN$
 80  FOR I=1 TO 5000 :NEXT I


 カシオの電卓派の為のプログラム(西田)
 シャープのポケコンがどうにも性に合わない人に。。。(私だけでしょうか?)
  1. 現在のAVEを入力  (MAENO ABE km/h    30km/h)
  2. 手前PCからのAVE (PC〜NO AVE?    50km/h)
  3. 手前の距離を入力  (DISTANCE km     2km)
  4. 手前PCの目標物(コマ図)を通過する時点での、レスコン値が表示される。(単位:秒  −96 96秒遅れということ)
<fx-7200G用プログラム>          <fxー502p,602P等  ,は入力しません>
   "MAENO AVE(km/h)"               FP,C6-07,FP,C6-08,FP,C6-09,C0
   ?→M:"PC〜NO AVE"              C7-07,E2,C7-08,E4,01,C1,E1,C7-09
   ?→P:"DISTANCE(km)"              E2,C7-07,E5,FF-F7,FP
   ?→D:(M/P-1)*D/M*3600
 
先頭に戻る
3.所用時間・再スタート時間 計算プログラム(FILE NAME "ST-TIM")
<問題例>
 区間キョリ3.5kmをAVE30km/hで走ると、所用時間は何分か。
また、この区間のスタート時刻を10:01:10にスタートしたとすると、次の区間の再スタート時間(この区間の正解スタート時間)は何時何分か。
 メモリに余裕がある場合にこのプログラムを入れておくと、何かと便利でしょう。
<使用方法>
  1. その区間のトリップを入力する。(km)    (3.5km)
  2. その区間のAVEを入力する。(km/h)      (30km/h)
  3. その区間のスタート時刻(ST)を入力する。(10.0101  10:01:10のつもり)
     (再スタート時刻を計算する必要が無い場合は、そのまま「RETURN」キーを押す。)
  4. その区間の所用時間            (0.0700   7分00秒の意味)
       と次の区間の再スタート時間         (10.0810 10:08:10)が表示される。

  5   'FILE NAME "ST-TIM"
 10  CLEAR
 20  INPUT"TRIP (キョリ:km)     ";TRIP
 30  INPUT"AVE (ソクド:km/h)  ";AVE
 40  INPUT"1ツマエノ PCノ スタートジカン(60シンホウ)";STT1
 50  '
 60  SJ=TRIP/AVE
 70  STT2=(DEG(STT1))+(SJ)
 80  STT3=DMS(STT2)
 90  STT4=DMS(SJ)
100  '
110  CLS:PRINT" TRIP ";TRIP;"(km)   AVE";AVE;"(km/H)"
120  PRINTUSING" 1ツ テマエ PCノ スタートジカン(60シンホウ)  ##.####";STT1
130  PRINTUSING"   * ショヨウジカン (60シンホウ) ##.######";STT4
140  PRINTUSING" *   スタート タイム  (60シンホウ) ##.######";STT3
150  FOR I=1 TO 5000 :NEXT I
160  END


先頭に戻る
4.一定時間・距離で速度を増減するPCの処理プログラム

 このPCは「ウルトラテクニック の最後 STAGE7 ウルトラ順不同PC」で紹介しました一定の距離と時間ごとに前速度の何%または、何km/hのUP・DOWNしながら走行するという一番難しいPCを自動で計算してしまおうというプログラムです。ただ、突然の目標物PCには対応出来ませんので、あくまで、計算の補助と考えて下さい。単純な区間のみこのプログラムを使うようにして、基本的には表に距離とAVE、所用時間を記入しながら計算しましょう。
 もっと良いプログラムを考案された方はご一報下さい。
<問題例>
 この先10km地点まで
  (1) 3kmごとにAVEを10%UPせよ。
  (2) 5分走行ごとにAVEを10%UP・DOWNせよ。
(但しPCからのAVEは22km/h)

<使用方法>

  1. スタート時のAVE(初速度)を入力する。(km/h)       (22km/h)
  2. 時間PCにおいて指定された時間を入力する。(分)     (5分)
  3. 時間PCのAVEの変化が(%)のUP/DOWNかを入力する。(%)    (−10%)
  4. 時間PCのAVEの変化が(km/h)のUP/DOWNかを入力(km/h)   (0)
  5. 距離PCにおいて指定された距離を入力する。(km)     (3km)
  6. 距離PCのAVEの変化が(%)のUP/DOWNかを入力する。(%)    (+10%)
  7. 距離PCのAVEの変化が(km/h)のUP/DOWNかを入力(km/h)   (0)
  8. スタートより走行すべき距離とAVEが表示される。(初期部分:1.833kmの距離を、AVE22km/hで走行する)
  9. 次の計算に進むときは「RETURN」キーを押す。
  10. (8)〜(9)の演算が繰り返されるので、表示された距離とAVEをラリーコンピュータに入力または、走行していく。

 AVEの変更が(%のUP/DOWN)だったら、(km/h UP/DOWN)の入力の時に「0」を入力する。逆にAVEの変更が(km/hのUP/DOWNだったら、(% UP/DOWN)の入力の時に「0」を入力する。

 UP/DOWNの数値入力は、UPの場合には数値の前に「+」をつける。逆にDOWNの場合には、数値の前に「−」をつける。

 このプログラムは内部において、「m未満生き残り」、「秒未満生き残り」として、計算をしています。(有効数字8桁:単精度演算)。そのため、関東地方でよく見られる「m単位切り捨て」、「秒未満切り捨て」の場合には、計算を繰り返すごとに、誤差が大きくなっていきますので、注意して下さい。(その場合には計算ルールを変えるルーチンをいれると良いのですが。。。めんどくさい)。

漢字かなの部分はカタカナに直して下さい。

2  'FILENAME "J-K-PC"
4  CLEAR
10  INPUT"START-AVE  スタート時の速度";SHOSOKU
20  INPUT"時間PCの指定時間数(min)":M
30  INPUT" % UP OR DOWN (ナシ=0)";PM
40  INPUT" (km/h) UP or DOWN (ナシ=0)";KM
50  INPUT"距離PCの指定の距離数 (km)";L
60  INPUT" % UP OR DOWN (ナシ=0)";PL
70  INPUT" (km/h) UP OR DOWN (ナシ=0)";KL
80  '
100  IF PM=0 THEN GOTO 110 ELSE GOTO 120
110 IF PL=0 THEN GOTO 4000 ELSE GOTO 3000
120 IF PL=0 THEN GOTO 2000 ELSE GOTO 1000
130 '---------------------------------------------------
1000 'SUBROUTINE (M-%:L-%)
1020 L1=L:M1=M
1030 JINVL=M*SHOSOKU/60
1040 IF L> JINVL THEN GOTO 1060 ELSE GOTO 1130
1050 '
1060 PRINT:PRINTUSING"##.###";JINVL;:PRINTUSING"KMをAVE ##.### kmで走行する”;SHOSOKU
1070 L=L-JINVL
1080 M=M1
1090 SHOSOKU=SHOSOKU*(1+PL/100)
1100 INPUT "次の計算 -PUSH [RETURN] ";SG
1110 GOTO 1030
1120 '
1130 PRINT:PRINTUSING"##.###";L;:PRINTUSING"kmをAVE ##.### km/hで走行せよ";SHOSOKU
1140 LINVJ=L/SHOSOKU*60
1150 SHOSOKU=SHOSOKU*(1+PL/100)
1160 M=LINVJ : M=M1-M
1170 L=L1
1180 INPUT" 次の計算 PUSH [RETURN]";SG
1190 GOTO 1030
1200 '--------------------------------------------------
2000 'SUBROUTINE (M-%:L-KM)
2020 L1=L :M1=M
2030 JINVL=M*SHOSOKU/60
2040 IF L > JINVL THEN GOTO 2060 ELSE GOTO 2130
2050 '
2060 PRINT:PRINTUSING"##.###";JINVL;:PRINTUSING"kmをAVE ##.### km/hで走行せよ";SHOSOKU
2070 L=L-JINVL
2080 M=M1
2090 SHOSOKU=SHOSOKU*(1+PM/100)
2100 INPUT"次の計算  PUSH [RETURN]";SG
2110 GOTO 2030
2120 '
2130 PRINT:PRINTUSING"##.###";L;:PRINTUSING" kmを AVE ##.###km/hで走行する”;SHOSOKU
2140 LINVJ=L/SHOSOKU*60
2150 SHOSHOKU=SHOSOKU+KL
2160 M=LINVJ : M=M1-M
2170 L=L1
2180 INPUT "次の計算  PUSH [RETURN]";SG
2190 GOTO 2030
2200 '--------------------------------------------------
3000 'SUBROUTINE (M-KM;L-%)
3020 L1=L :M1=M
3030 JINVL=M*SHOSOKU/60
3040 IF L > JINVL THEN GOTO 3060 ELSE GOTO 3130
3050 '
3060 PRINT:PRINTUSING"##.###";JINVL;:PRINTUSING"kmをAVE ##.### km/hで走行せよ";SHOSOKU
3070 L=L-JINVL
3080 M=M1
3090 SHOSOKU=SHOSOKU+KM
3100 INPUT"次の計算  PUSH [RETURN]";SG
3110 GOTO 3030
3120 '
3130 PRINT:PRINTUSING"##.###";L;:PRINTUSING" kmを AVE ##.###km/hで走行する”;SHOSOKU
3140 LINVJ=L/SHOSOKU(1+PL/100)
3150 SHOSHOKU=SHOSOKU+(1+PL/100)
3160 M=LINVJ : M=M1-M
3170 L=L1
3180 INPUT "次の計算  PUSH [RETURN]";SG
3190 GOTO 3030
3200 '-------------------------------------------------
4000 'SUBROUTINE (M-KM:L-KM)
4020 L1=L :M1=M
4030 JINVL=M*SHOSOKU/60
4040 IF L > JINVL THEN GOTO 4060 ELSE GOTO 4130
4050 '
4060 PRINT:PRINTUSING"##.###";JINVL;:PRINTUSING"kmをAVE ##.### km/hで走行せよ";SHOSOKU
4070 L=L-JINVL
4080 M=M1
4090 SHOSOKU=SHOSOKU+KM
4100 INPUT"次の計算  PUSH [RETURN]";SG
4110 GOTO 4030
4120 '
4130 PRINT:PRINTUSING"##.###";L;:PRINTUSING" kmを AVE ##.###km/hで走行する”;SHOSOKU
4140 LINVJ=L/SHOSOKU*60
4150 SHOSHOKU=SHOSOKU+KL
4160 M=LINVJ : M=M1-M
4170 L=L1
4180 INPUT "次の計算  PUSH [RETURN]";SG
4190 GOTO 4030
4200 '--------------------------------------------------

END OF PROGRAM-------------------------------------------

先頭のもどる
5.ODまでPCの処理プログラム FILE NAME"OD-PC"

 このプログラムはウルトラ テクニックのStage7でご紹介しましたOMCPまでにPCが出現する場合のアシストプログラムです。ODまでのPCでの未補正の積算トリップと、ラリーコンピューターで計算された補正係数「K」を入力することにより、自動的にOMCPまでの正解所用時間を計算するものです。
 但しこのプログラムは、看板PC(目標物)、コマ図PCの処理が可能ですが、ODまでPC中の時間PC・距離PCには、対応していませんので、ご注意下さい。
<問題例>
ウルトラテクニック Stage7を参照して下さい。
<使用方法>

  1. OMCPまでのPC数を入力する。(但し、START,OMCPはPCには、数えない)
  2. ラリーコンピューターで求められた補正係数「K」を入力する。・・・(0.9244)
  3. STARTからPC1までのトリップ(km)・・・(2.00)
               AVE(km/h)・・・(10)    入力する。
  4. PC1からPC2までの、積算トリップ(km)・・・(5.35)
               AVE(km/h)・・・(20)    入力する。
  5. (2)の操作をOMCPまで繰り返す。
  6. 「K」で補正されたOMCPまでの所用時間が表示される。・・・(0.3015:30分15秒)

 (2)(3)での数値の入力は、未補正積算トリップを入力すること。
(積算トリップをK補正したり、区間距離に直す操作は必要ありません。)

<プログラム>
5  'FILE NAME"OD-PC"
10 CLEAR
20 INPUT"OMCP マデノPC スウ”;PC:PCC=PC+1
30 INPUT"ホセイケイスウ K (ジシャTRIP/オフィシャルTRIP)”;L(1)
40 DIM L(PCC),V(PCC),LL(PCC)
50 PRINT:INPUT"START カラ PC1までのAVE (km/h)
60 INPUT"START カラ PC1までのAVE(km/h) ";V(I)
70 IF PC=1 THEN GOTO 120 ELSE GOTO 80
80 FOR I=2 TO PC
90 PRINT:PRINT"PC”;I-1;"カラ PC"I;:INPUT"マデノセキサンTRIP(km)";L(I)
100 PRINT"PC ";I-1;"カラPC ";I;INPUT"マデノAVE (km/h)";V(PCC)
110 NEXT I
120 PRINT:PRINT"PC";PC;” カラ OMCP";:INPUT” マデノセキサンTRIP(km)";L(PCC)
130 PRINT"PC";PC;" カラOMCP";INPUT"マデノAVE (km/h)”;V(PCC)
140 '
150 FOR J=1 TO PCC
160 LL(J)=L(J)-L(J-1)
170 NEXT J
180 ’
200 FOR I=1 TO PCC
210 LL(I)=LL(I)/K
220 JIKAN=LL(I)/V(I)+JIKAN
230 NEXT I
240 PRINT:PRINT"セイカイジカン(60進法)";:PRINTUSING"##.####";DMS(JIKAN)
250 FOR J=1 TO 5000:NEXT J
260 '-------END OF PROGRAM-----------