一括処理部品集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 走者(チーム)別に並べ替えて、ラップタイムを求めます。

【参考】
 計測中です。何周目(区間)も表示してもよかったかな。


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

                      END of FILE  戻る 玄関へ