‖一括処理部品集2‖laptime.html 《戻る》 《玄関へ》
《 ラップタイムを測る 》
【内容】
各周のラップタイムを計算します。
30人(チーム)まで測れます。
ただし、測定は同一地点に限られます。
【用例】
・・・・・・
名札 着順時刻
名札 計測続行 @
・・・・・・
画面表示 (05,03)-(05,50),"☆ 通過時に1〜;のキーを入力してください。",黄
画面表示 (06,03)-(06,50)," 最終ゴール後、ESCキーを入力してください。",赤
画面表示 (09,03)-(09,50),#連結(" スタート時刻=( ",&S時刻," )"),水
&KU1=0,&KU2=0,&KU3=0,&KU4=0,&KU5=0,&KU6=0,&KU7=0,&KU8=0,&KU9=0,&KU10=0 A
&KU11=0,&KU12=0,&KU13=0,&KU14=0,&KU15=0,&KU16=0,&KU17=0,&KU18=0,&KU19=0,&KU20=0
&KU21=0,&KU22=0,&KU23=0,&KU24=0,&KU25=0,&KU26=0,&KU27=0,&KU28=0,&KU29=0,&KU30=0
表
表 &TBL1
B
手続き実行 表初期
位置指定 行番号=終端
繰り返し (&着順<10001)
繰り返し
画面表示 (05,55)-(05,58),"時計",黄
画面表示 (05,61)-(05,80),#全角(#時刻),黄
機能キー入力 (08,55)-(08,80),プロンプト="通過毎に1〜;キーを押す。"
\ C
,文字キー=有効,入力待ち=しない,&機キ
条件 ((&機キ=>48
.and &機キ<=57) .or (&機キ=>68
.and &機キ<=76) \
.or (&機キ=>79
.and &機キ<=85) .or &機キ=59 .or
&機キ=65 \
.or &機キ=87
.or &機キ=89 .or &機キ=&ESC .or
&機キ=9) 繰り返し中止
繰り返し終了
ケース開始
ケース (&機キ=49) *走者1
D
手続き実行 ラップ1
&KU1=&KU1+1
行挿入 [着順]=&着順,[時刻]=&T時刻,[タイム]=&タイム,[走者]=1,[区間]=&KU1
手続き実行 ラップ2
・・・・・・
ケース (&機キ=59) *走者30
手続き実行 ラップ1
&KU30=&KU30+1
行挿入 [着順]=&着順,[時刻]=&T時刻,[タイム]=&タイム,[走者]=30,[区間]=&KU30
手続き実行 ラップ2
ケース (&機キ=9) E
手続き実行 途中ラップ
ケース (&機キ=&ESC)
F
繰り返し中止
ケース終了
繰り返し終了
手続き実行 表初期
表形式編集 ガイド="訂正:f・2
追加:f・3 終了:f・4 /Q",初期項目="タイム"
表
分岐 START
手続き終了
*-----------------------------------------
名札 ラップ1
G
位置指定 行番号=終端
&着順=&着順+1,&T時刻=#時刻
&タイム=#時間文字列(#時間(&S時刻,&T時刻,3),3)
手続き終了
*-----------------------------------------
名札 ラップ2
H
画面表示 (11,05)-(11,12),#全角(#STR(&着順)),右,黄
画面表示 (11,13)-(11,15),"
着",黄
画面表示 (11,17)-(11,24),"タイム=",白
画面表示 (11,27)-(11,44),&タイム,白
画面表示 (08,03)-(08,50),#連結(" 通過時刻=( ",&T時刻," )"),水
画面表示 (10,47)-(10,50),"走者",水
画面表示 (11,47)-(11,50),#全角(#STR(#COND(&機キ=49,1,&機キ=50,2,&機キ=51,3
\
,&機キ=52,4,&機キ=53,5,&機キ=54,6,&機キ=55,7,&機キ=56,8,&機キ=57,9
\
,&機キ=48,10,&機キ=81,11,&機キ=87,12,&機キ=69,13,&機キ=82,14,&機キ=84,15
\
,&機キ=89,16,&機キ=85,17,&機キ=73,18,&機キ=79,19,&機キ=80,20,&機キ=65,21
\
,&機キ=83,22,&機キ=68,23,&機キ=70,24,&機キ=71,25,&機キ=72,26,&機キ=74,27
\
,&機キ=75,28,&機キ=76,29,&機キ=59,30))),水
手続き終了
*-----------------------------------------
名札 途中ラップ
手続き実行 表初期
&N=1
繰り返し &N=1,30 I
整列 "ラップ",{[走者]昇順,[着順]昇順}
位置指定 行番号=先頭
選択 [走者]=&N
条件 (&選択件数>0)
\
置換 [ラップ]=#時間文字列(#時間(#直前値([タイム],"00:00:00"),[タイム],3),3)
手続き実行 表初期
繰り返し終了
手続き実行 表初期
整列 "ラップ",{[走者]昇順,[着順]昇順}
表形式編集 ガイド="訂正:f・2
追加:f・3 終了:f・4 /Q",カーソル=↓,初期項目="タイム"
手続き実行 表初期
位置指定 行番号=終端
・・・・・・
画面表示 (05,03)-(05,50),"☆ 通過時に1〜;のキーを入力してください。",黄
画面表示 (06,03)-(06,50)," 最終ゴール後、ESCキーを入力してください。",赤
画面表示 (09,03)-(09,50),#連結(" スタート時刻=( ",&S時刻," )"),水
手続き終了
【解説】
@ スタート時刻は別のメニューで記録します。
A 周回数または区間値を初期化します。
それを変数に取り込みます。
B 記録表を設定します。先頭行にスタート時刻が入力されています。
C 割り付けキーは、1〜0(1〜10)、Q〜P(11〜20)、A〜;(21〜30)です。
D 走者(チーム)別に処理をおこないます。
通過順、通過時刻、スタートからの時間、走者(チーム)、何周目(区間)を
記録表の下端に挿入します。
E 記録中で、ラップを計算することができます。
F 計測を中止します。
G 過順、通過時刻、スタートからの時間を求めます。
H 通過順、通過時刻、スタートからの時間、走者(チーム)を表示します。
I 走者(チーム)別に並べ替えて、ラップタイムを求めます。
【参考】
計測中です。何周目(区間)も表示してもよかったかな。

ラップタイム計算と区間順位の処理を済ませたものです。
