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')

関連するトピック