Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

関数ベースの受講者の解答に対する評価の作成

関数ベースの解答の場合、変数の等価性、キーワードまたは関数の存在をチェックする組み込み関数を使用して、MATLAB® コードを作成できます。

  • assessVariableEqual — 受講者の解答の変数が、指定された値と許容誤差の範囲内で等しいかどうかをチェックします。

  • assessFunctionPresence — 受講者の解答に、特定の関数またはキーワードが存在するかどうかをチェックします。

  • assessFunctionAbsence — 受講者の解答に、特定の関数またはキーワードが存在しないことを確認します。

実行モデル

  • 通常、関数ベースの解答用に作成する各評価テストには、受講者の解答への呼び出しが含まれます。関数への入力を提供して、返された値を評価できます。また、模範解答に対して呼び出しを行って、その出力を受講者の解答の出力と比較することもできます。

  • 各評価は、他の評価とは独立して順番に実行されます。1 つの評価で不合格となった場合でも、後続の評価は実行されます。

  • ある評価テストで作成された変数を、次の評価テストで使用することはできません。各評価テストで必要な変数をすべて定義します。

  • コードがエラーなしで終了した場合、評価結果には合格のステータスが表示されます。それ以外の場合、評価結果には不合格のステータスが表示されます。

    評価テストがプレテストの場合、解答が合格したか不合格となったかに関わらず、受講者はテスト名の左側にある矢印をクリックして、評価に関する情報を表示できます。

  • 関数ベースの問題で assessVariableEqual を使用する場合は、受講者の関数を呼び出すときに作成される出力変数に、受講者による関数の宣言で使用する変数と同じ名前を使用します。既定のフィードバック メッセージは、評価テストで作成された出力変数名を参照します。宣言と一致しない場合、受講者は出力変数を認識できないことがあります。

評価テストでの受講者の解答に対する呼び出し

受講者が解答として提出する関数を評価するために、各評価テストでは受講者の解答に対して呼び出しが実行されます。

関数 triangleArea の評価テストの例は次のようになります。

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = 7.5;
assessVariableEqual('area',areaCorrect)

受講者が [提出] をクリックすると、この評価テストは受講者が作成した triangleArea を呼び出します。

模範解答を使用した受講者の解答の評価

受講者の解答と模範解答を比較するために、両方の関数を呼び出します。

  • 受講者の解答に対する呼び出しには、構文 myFunction を使用します。

  • 模範解答に対する呼び出しには、構文 reference.myFunction を使用します。

どちらの場合も、myFunction を、解答テンプレートで使用している関数名に置き換えます。

関数 triangleArea の評価テストの例は次のようになります。

b = 5;
h = 3;
area = triangleArea(b,h);
areaCorrect = reference.triangleArea(b,h);
assessVariableEqual('area',areaCorrect)

ベクトルの反転

受講者は、ベクトル内の値の順序を逆にして、入力ベクトルを反転する flipIt という関数を作成しなければなりません。受講者は、flip 関数を使用してはなりません。

模範解答

function w = flipIt(v)
    w = v(end:-1:1);
end

評価テスト.  入力ベクトル [1 2 3 4] を使用して、受講者の解答に対する呼び出しを行います。受講者の解答が模範解答と一致し、flip を使用していないことを、次のようにテストします。

v = [1 2 3 4];
w = flipIt(v)
w_correct = reference.flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

今度は入力ベクトル [4] を使用して、受講者の解答に対する呼び出しを再度行います。

v = [4];
w = flipIt(v);
assessVariableEqual('w',w_correct);
assessFunctionAbsence('flip','FileName','flipIt.m')

関連するトピック