式構成および表形式の使い方

  1. 式構成:正誤分岐または繰り返し
  2. 対応づけ(各行毎に1つ選択):正誤分岐または繰り返し
  3. 対応づけ(各行毎に複数選択可):正誤分岐または繰り返し
  4. 対応づけ(各行毎に1つ選択):正誤分岐または繰り返し
  5. 対応づけ(各行に対応する正解を1つ選択):全て正解するまで繰り返し
(OPTIONS nil) (OPTIONS2 nil) (GO nil) (PASS nil) (CORRECT nil) (FB nil) (LIMIT 0) (COUNT 0) (TIME 0) (N 0)

式構成:正誤分岐または繰り返し

(COMB-1 ((*prog (t ((OPTIONS = ("式=" ("選択肢1" "選択肢2" "選択肢3") "×" ("選択肢A" "選択肢B" "選択肢C") "+定数")) ;ここから (GO = (ID1 ID2)) ;ここまで(繰り返しの時は、(ID1 self)) (CORRECT = (("選択肢1" "選択肢A") ("選択肢3" "選択肢C"))) (FB = ("正解の時" "不正解の時" "不正解の時2")) )) ;ここまで ((_FROM != self) ((COUNT = 1))) ) "メッセージ" <BR> ;ここも変更 ) (COMB $OPTIONS) $GO ((t ((FB-KARI = $FB)(L = (*LEN $FB))(COUNT += 1)(GO-KARI = $GO)(GO = (*LAST $GO)) (OPT-KARI = (*APPLY *LIST $OPTIONS *STRINGP $OPTIONS)) ;STRINGを部分をリストに (OPT-KARI = (*APPLY *BUTFIRST $OPT-KARI *STRINGP $OPTIONS)) ;STRINGをnilに (OPT-KARI -<< nil)(OPTIONS = (*MAPPING (1 2) (*NTHS $_SW $OPT-KARI))))) ;選択肢群だけにする ((FB != nil)(OPTIONS {{ $CORRECT) ((FB = (*FIRST $FB-KARI)))) ((FB != nil)(OPTIONS !{{ $CORRECT) ((FB = (*LAST $FB-KARI)))) ((FB != nil)(OPTIONS !{{ $CORRECT)(COUNT <= $L) ((FB = (*NTHS $COUNT $FB-KARI)))) ((FB = nil) ((FB = ""))) ((OPTIONS {{ $CORRECT) ((GO = (*FIRST $GO-KARI))(PASS <- $_NOW))) ) ( ((OPTIONS {{ $CORRECT) ("正解です。" <BR> $FB <BR>)) (t ("間違いです。" <BR> $FB <BR>)) ) )

対応づけ(各行毎に1つ選択):正誤分岐または繰り返し

(MAP-1 ((*prog (t ((OPTIONS = ("選択肢1" "選択肢2" "選択肢3")) ;ここから (OPTIONS2 = ("質問A" "質問B" "質問C")) (GO = (ID1 ID2)) ;ここまで(繰り返しの時は、(ID1 self)) (CORRECT = ("選択肢1" "選択肢2" "選択肢3")) (FB = ("正解の時" "不正解の時" "不正解の時2")) )) ;ここまで ((_FROM != self) ((COUNT = 1))) ) "メッセージ" <BR> ;ここも変更 ) (MAP $OPTIONS $OPTIONS2) $GO ((t ((FB-KARI = $FB)(L = (*LEN $FB))(COUNT += 1)(GO-KARI = $GO)(GO = (*LAST $GO)) (OPTIONS = (*NTHS $_SW $OPTIONS)))) ((FB != nil)(OPTIONS = $CORRECT) ((FB = (*FIRST $FB-KARI)))) ((FB != nil)(OPTIONS != $CORRECT) ((FB = (*LAST $FB-KARI)))) ((FB != nil)(OPTIONS != $CORRECT)(COUNT <= $L) ((FB = (*NTHS $COUNT $FB-KARI)))) ((FB = nil) ((FB = ""))) ((OPTIONS = $CORRECT) ((GO = (*FIRST $GO-KARI))(PASS <- $_NOW))) ) ( ((OPTIONS = $CORRECT) ("正解です。" <BR> $FB <BR>)) (t ("間違いです。" <BR> $FB <BR>)) ) )

対応づけ(各行毎に複数選択可):正誤分岐または繰り返し

(MAP-2 ((*prog (t ((OPTIONS = ("選択肢1" "選択肢2" "選択肢3")) ;ここから (OPTIONS2 = ("質問A" "質問B" "質問C")) (GO = (ID1 ID2)) ;ここまで(繰り返しの時は、(ID1 self)) (CORRECT = ("選択肢1" "選択肢2" "選択肢3")) (FB = ("正解の時" "不正解の時" "不正解の時2")) )) ;ここまで ((_FROM != self) ((COUNT = 1))) ) "メッセージ" <BR> ;ここも変更 ) (VMAP $OPTIONS2 $OPTIONS) $GO ((t ((FB-KARI = $FB)(L = (*LEN $FB))(COUNT += 1)(GO-KARI = $GO)(GO = (*LAST $GO)) (OPTIONS = (*NTHS $_SW $OPTIONS)))) ((FB != nil)(OPTIONS = $CORRECT) ((FB = (*FIRST $FB-KARI)))) ((FB != nil)(OPTIONS != $CORRECT) ((FB = (*LAST $FB-KARI)))) ((FB != nil)(OPTIONS != $CORRECT)(COUNT <= $L) ((FB = (*NTHS $COUNT $FB-KARI)))) ((FB = nil) ((FB = ""))) ((OPTIONS = $CORRECT) ((GO = (*FIRST $GO-KARI))(PASS <- $_NOW))) ) ( ((OPTIONS = $CORRECT) ("正解です。" <BR> $FB <BR>)) (t ("間違いです。" <BR> $FB <BR>)) ) ) ;別のMAPの使い方

評定尺度法:左から1,2,3,・・・点(反転項目あり)で合計点を求める

(ID3-2 ((*prog (t ((GO = ID1) ;ここから (OPTIONS = ("黒が好き" "日曜日が好き" "ステーキが好き" "トカゲが好き" "遊びが好き")) (COLS = ("あてはまる" "ややあてはまる" "ややあてはまらない" "あてはまらない")) (POSITIVE = (2 3 5)) )) ;ここまで ) "作業1です。" <BR> "次の質問に4段階のいずれかで回答してください。" ) (MAP $COLS $OPTIONS) $GO ( (t ((NEGATIVE = (*DELETE-LIST $POSITIVE (*NUMLIST (*LEN $OPTIONS)))) (ANSWER = (*- (*SUM (*NTHS $POSITIVE $_SW)) (*SUM (*NTHS $NEGATIVE $_SW)))) (ANSWER += (** (*LEN $NEGATIVE) (*+ 1 (*LEN $COLS)))) (PASS <- $_NOW) )) ) ( (t ("あなたの▼▼度は、" $ANSWER "点です。")) ) )

対応づけ(各行に対応する正解を1つ選択):全て正解するまで繰り返し

(ID3-3 ((*prog (t ((GO = ID1) ;ここから (OPTIONS = ("average" "sum" "countif" "rank" "index")) (COLS = ("平均" "合計" "条件別度数" "順位" "配列要素")) ;ここまで (ANSWER = (*MAPPING (1 2) (*CONC $OPTIONS $COLS))) ;以下の2行は並べ替えのため (L = (*LEN $OPTIONS)) (OPTIONS = (*NTHS (*RANDOM $L $L) $OPTIONS)) (L = (*LEN $COLS)) (COLS = (*NTHS (*RANDOM $L $L) $COLS)) )) ;上の2行は並べ替えのため ) "作業2です。" <BR> "行の項目に対応する列の適切な項目を選びなさい。" ) (MAP $COLS $OPTIONS) (((N = 0) $GO) (t self)) ( (t ((X = (*NTHS $_SW $COLS)) ;行項目に対して選択された列項目の文字列 (Y = (*MAPPING (1 2) (*CONC $OPTIONS $X))) ;行項目と列項目をつなぐ (MIX = (*MERGE ($Y $ANSWER))) ;正解と回答の和集合を求める (N = (*- (*LEN $MIX) (*LEN $OPTIONS))))) ;間違った項目の個数(L) ((N = 0) ((PASS <- $_NOW))) ((N = 0) ((GO = (*FIRST $STATES)) (STATES -< $GO))) ) ( ((N = 0) "正解です。") (t ($N "個の間違いがあります。")) ) )