チェックボックスの使い方

  1. 正誤判定:正解集合と回答集合との重なり関係で判定(正誤で分岐)
  2. 正誤判定は上と同じだが、正解するまで繰り返し
  3. 正誤判定:正誤判定して正誤の2つで分岐先を変える
  4. 正誤判定は上と同じだが、正解するまで繰り返し
  5. 正誤判定と繰り返しは上と同じだが、FBを1回に1つずつ
  6. 多肢選択:部品・材料などを選ぶ(何を選んでも、行き先は同一)
  7. 多肢選択:何個以上[または以下]選択しないといけないかが決まっている(何を選んでも、行き先は同一)
  8. 多肢選択:上と同じだが、特定の要素に着目して、分岐先を変更

正誤判定:正解、不要な要素あり、足りない要素あり、部分一致、全く違う(正誤で分岐)

(CHECK-1 ((*prog (t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから (CORRECT = (1 2)) (GO = (ID1 ID2)) (FB = ("正解です。" "不要な選択肢があります。" "足りない選択肢があります。" "不要な選択肢と足りない選択肢の両方があります。" "全く間違っています。")) )) ;ここまで (t ((CORRECT = (*NTHS $CORRECT $OPTIONS)))) ((FB = nil) ((FB = "不正解です。") (FB = ("正解です。" $FB $FB $FB $FB)))) ;次の1行は、並び替えをする場合 (t ((L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS)))) ;上の1行は、並び替えをする場合 ) "メッセージ" <BR> ;ここも変更 ) (CHECK $OPTIONS) $GO ( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS)))) ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ((FB = (*FIRST $FB-KARI)) (GO = (*FIRST $GO)) (PASS <- $_NOW))) ((FB = "")(OPTIONS } $CORRECT) ((FB = (*NTHS 2 $FB-KARI)) (GO = (*LAST $GO)))) ((FB = "")(OPTIONS { $CORRECT) ((FB = (*NTHS 3 $FB-KARI)) (GO = (*LAST $GO)))) ((FB = "")(OPTIONS & $CORRECT) ((FB = (*NTHS 4 $FB-KARI)) (GO = (*LAST $GO)))) ((FB = "") ((FB = (*LAST $FB-KARI)) (GO = (*LAST $GO)))) ) ( (t ("あなたは、" $OPTIONS "を選びました。" <BR> <BR> $FB <BR>)) ) )

正誤判定:正解、不要な要素あり、足りない要素あり、部分一致、全く違う(正解するまで繰り返し)

(CHECK-2 ((*prog (t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから (CORRECT = (1 2)) (GO = ID1) (FB = ("正解です。" "不要な選択肢があります。" "足りない選択肢があります。" "不要な選択肢と足りない選択肢の両方があります。" "全く間違っています。")) )) ;ここまで ((_FROM != self) ((COUNT = 0))) ((FB = nil) ((FB = "不正解です。") (FB = ("正解です。" $FB $FB $FB $FB)))) ;次の1行は、並び替えをする場合 (t ((CORRECT = (*NTHS $CORRECT $OPTIONS)) (L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS)))) ;上の1行は、並び替えをする場合 ) "メッセージ" <BR> ;ここも変更 ) (CHECK $OPTIONS) ( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) $GO) (t self) ) ( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS)) (COUNT += 1))) ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ((FB = (*FIRST $FB-KARI)) (PASS <- ($_NOW $COUNT)))) ((FB = "")(OPTIONS } $CORRECT) ((FB = (*NTHS 2 $FB-KARI)))) ((FB = "")(OPTIONS { $CORRECT) ((FB = (*NTHS 3 $FB-KARI)))) ((FB = "")(OPTIONS & $CORRECT) ((FB = (*NTHS 4 $FB-KARI)))) ((FB = "") ((FB = (*LAST $FB-KARI)))) ) ( (t ("あなたは、" $OPTIONS "を選びました。" <BR> <BR> $FB <BR>)) ) )

正誤判定:正解が含まれていない、誤答が含まれている(正誤で分岐)

(CHECK-3 ((*prog (t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから (CORRECT = (1 2)) (GO = (ID1 ID2)) (FB = ("正解1は条件を満たしています。" "正解2は条件を満たしています。" "誤答1は条件を満たしていません。" "誤答2は条件を満たしていません。")) )) ;ここまで (t ((CORRECT = (*NTHS $CORRECT $OPTIONS)))) ((FB != nil) ((FB = (*MAPPING (1 2) (*LIST $OPTIONS $FB))))) ;次の1行は、並び替えをする場合 (t ((L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS)))) ;上の1行は、並び替えをする場合 ) "メッセージ" <BR> ;ここも変更 ) (CHECK $OPTIONS) $GO ( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS)) (LACK = (*DELETE-LIST $OPTIONS $CORRECT)) (OVER = (*DELETE-LIST $CORRECT $OPTIONS)) )) ((LACK = nil)(OVER = nil) ((FB = "正解です。") (GO = (*FIRST $GO)) (PASS <- $_NOW))) ((FB-KARI != nil)(LACK != nil) ((LACK <= $OVER) (FB = (*MAPPING 1 (*ASSOC $LACK $FB-KARI))) (FB = (*MAPPING 1 (*LAST $FB))) (FB -> *UL) (GO = (*LAST $GO)))) ((FB-KARI != nil)(LACK = nil)(OVER != nil) ((FB = (*MAPPING 1 (*ASSOC $OVER $FB-KARI))) (FB = (*MAPPING 1 (*LAST $FB))) (FB -> *UL) (GO = (*LAST $GO)))) ((FB-KARI = nil)(LACK = nil)(OVER != nil) ((FB = (*CONC $OVER "は不要です。")) (GO = (*LAST $GO)))) ((FB-KARI = nil)(LACK != nil)(OVER = nil) ((FB = (*CONC $LACK "が必要です。")) (GO = (*LAST $GO)))) ((FB-KARI = nil)(LACK != nil)(OVER != nil) ((FB = (*CONC $LACK "が必要で、" $OVER "は不要です。")) (GO = (*LAST $GO)))) ) ( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ("あなたは、" $OPTIONS "を選びました。その通り、" $FB <BR>)) (t ("あなたは、" $OPTIONS "を選びましたが、" $FB <BR>)) ) )

正誤判定:正解が含まれていない、誤答が含まれている(正解するまで繰り返し)

(CHECK-4 ((*prog (t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから (CORRECT = (1 2)) (GO = ID1) (FB = ("正解1は条件を満たしています。" "正解2は条件を満たしています。" "誤答1は条件を満たしていません。" "誤答2は条件を満たしていません。")) )) ;ここまで ((_FROM != self) ((COUNT = 0))) ((FB != nil) ((FB = (*MAPPING (1 2) (*LIST $OPTIONS $FB))))) ;次の1行は、並び替えをする場合 (t ((CORRECT = (*NTHS $CORRECT $OPTIONS)) (L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS)))) ;上の1行は、並び替えをする場合 ) "メッセージ" <BR> ;ここも変更 ) (CHECK $OPTIONS) ( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) $GO) (t self) ) ( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS)) (COUNT += 1) (LACK = (*DELETE-LIST $OPTIONS $CORRECT)) (OVER = (*DELETE-LIST $CORRECT $OPTIONS)) )) ((LACK = nil)(OVER = nil) ((FB = "正解です。") (PASS <- ($_NOW $COUNT)))) ((FB-KARI != nil)(LACK != nil) ((LACK <= $OVER) (FB = (*MAPPING 1 (*ASSOC $LACK $FB-KARI))) (FB = (*MAPPING 1 (*LAST $FB))) (FB -> *UL))) ((FB-KARI != nil)(LACK = nil)(OVER != nil) ((FB = (*MAPPING 1 (*ASSOC $OVER $FB-KARI))) (FB = (*MAPPING 1 (*LAST $FB))) (FB -> *UL))) ((FB-KARI = nil)(LACK = nil)(OVER != nil) ((FB = (*CONC $OVER "は不要です。")))) ((FB-KARI = nil)(LACK != nil)(OVER = nil) ((FB = (*CONC $LACK "が必要です。")))) ((FB-KARI = nil)(LACK != nil)(OVER != nil) ((FB = (*CONC $LACK "が必要で、" $OVER "は不要です。")))) ) ( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ("あなたは、" $OPTIONS "を選びました。その通り、" $FB <BR>)) (t ("あなたは、" $OPTIONS "を選びましたが、" $FB <BR>)) ) )

正誤判定:正解が含まれていない、誤答が含まれている(正解するまで繰り返し、FBは1回に1項目のみ(重要度順))

(CHECK-5 ((*prog (t ((OPTIONS = ("正解1" "正解2" "誤答1" "誤答2")) ;ここから (CORRECT = (1 2)) (GO = ID1) (FB = (("正解1" "正解1は条件を満たしています。") ("誤答1" "誤答1は条件を満たしていません。") ("誤答2" "誤答2は条件を満たしていません。") ("正解2" "正解2は条件を満たしています。"))) )) ;ここまで ((_FROM != self) ((COUNT = 0))) ;次の1行は、並び替えをする場合 (t ((CORRECT = (*NTHS $CORRECT $OPTIONS)) (L = (*LEN $OPTIONS)) (L = (*RANDOM $L $L)) (OPTIONS = (*NTHS $L $OPTIONS)))) ;上の1行は、並び替えをする場合 ) "メッセージ" <BR> ;ここも変更 ) (CHECK $OPTIONS) ( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) $GO) (t self) ) ( (t ((FB-KARI = $FB) (FB = "") (OPTIONS = (*NTHS $_SW $OPTIONS)) (COUNT += 1) (ERROR = (*DELETE-LIST $OPTIONS $CORRECT)) (ERROR <= (*DELETE-LIST $CORRECT $OPTIONS)) (ORDER = (*MAPPING 1 (*FIRST $FB-KARI))) (NON-ERROR = (*DELETE-LIST $ERROR $ORDER)) (ERROR = (*DELETE-LIST $NON-ERROR $ORDER)) )) ((ERROR = nil) ((FB = "正解です。") (PASS <- ($_NOW $COUNT)))) ((ERROR != nil) ((FB = (*LAST (*ASSOC (*FIRST $ERROR) $FB-KARI))) )) ) ( ((OPTIONS { $CORRECT)(OPTIONS } $CORRECT) ("あなたは、" $OPTIONS "を選びました。" <BR> <BR> "その通り、" $FB <BR>)) (t ($FB <BR>)) ) )

多肢選択:部品・材料などを選ぶ。何を選んでも、行き先は同一。

(CHECK-6 ((*prog (t ((OPTIONS = ("選択肢1" "選択肢2" "選択肢3")) ;ここから (GO = ID1))) ;ここまで ) "メッセージ" <BR> ;ここも変更 ) (CHECK $OPTIONS) $GO ( (t ((OPTIONS = (*NTHS $_SW $OPTIONS)) (PASS <- ($_NOW $OPTIONS)))) ) ( (t ($OPTIONS "を選びました。" <BR>)) ) )

多肢選択:何個以上[または以下]選択しないといけないかが決まっている。何を選んでも、行き先は同一。

(CHECK-7 ((*prog (t ((OPTIONS = ("選択肢1" "選択肢2" "選択肢3")) ;ここから (GO = ID1) (CORRECT = 2))) ;ここまで ) "メッセージ" <BR> ;ここも変更 ) (CHECK $OPTIONS) ( ((CORRECT <= 0) $GO) (t self) ) ( (t ((KOSU = (*LEN $_SW)))) ((CORRECT <= $KOSU) ((OPTIONS = (*NTHS $_SW $OPTIONS)) (CORRECT = (*- $CORRECT $KOSU)) (PASS <- ($_NOW $OPTIONS)))) ;以下の時は、上の行を消して、下の行を使う(以上の時は、以下の行を消す) ((CORRECT >= $KOSU) ((OPTIONS = (*NTHS $_SW $OPTIONS)) (CORRECT = (*- $KOSU $CORRECT)) (PASS <- ($_NOW $OPTIONS)))) ) ( ((CORRECT <= 0) ($OPTIONS "を選びました。" <BR>)) (t ($CORRECT "個以上選んで下さい。" <BR>)) ;以下の時は、上の行を消して、下の行を使う(以上の時は、以下の行を消す) (t ("選べる項目は、" $CORRECT "個以下です。" <BR>)) ) )

多肢選択:何個以上[または以下]選択しないといけないかが決まっている。特定の要素に着目して、分岐先を変更。

(CHECK-8 ((*prog (t ((OPTIONS = ("選択肢1" "選択肢2" "選択肢3")) ;ここから (GO = (("選択肢1" ID1) ("選択肢3" ID3)))) ) ;ここまで ) "メッセージ" <BR> ;ここも変更 ) (CHECK $OPTIONS) $GO ( (t ((OUT = (*DELETE-LIST (*NTHS $_SW $OPTIONS) $OPTIONS)) (ORDER = (*MAPPING 1 (*FIRST $GO))) (ORDER = (*DELETE-LIST $OUT $ORDER)) (OPTIONS = (*NTHS $_SW $OPTIONS)))) ((ORDER != nil) ((GO = (*LAST (*ASSOC (*FIRST $ORDER) $GO))) (PASS <- ($_NOW $OPTIONS)))) ((ORDER = nil) ((GO = self))) ) ( ((GO != self) ($OPTIONS "を選びました。" <BR>)) (t ("次のステップに進む上で不可欠な要素が選択されませんでした。" <BR>)) ) )