MLTutorBeispielerstellung: Unterschied zwischen den Versionen
Camhy (Diskussion | Beiträge) |
Winny (Diskussion | Beiträge) |
||
Zeile 8: | Zeile 8: | ||
drinnenstehen, damit das Programm weiß, welche Variablen überprüft werden sollten. Im XML-File, dass man dazu erstellt, kann man dann definieren, mit welcher Genauigkeit der Check abläuft und ähnliches. |
drinnenstehen, damit das Programm weiß, welche Variablen überprüft werden sollten. Im XML-File, dass man dazu erstellt, kann man dann definieren, mit welcher Genauigkeit der Check abläuft und ähnliches. |
||
--[[User:Camhy|Camhy]] 15:39, 3 Nov 2005 (CET) |
--[[User:Camhy|Camhy]] 15:39, 3 Nov 2005 (CET) |
||
Ich bin total dagegen, dass jemand eigene Überprüfungsroutinen schreibt. Das gehört total zum mlTutor und hat überhaupt nichts mit den Beispielen selbst zu tun. Bitte unbedingt nur die Syntax von David verwenden. Wenn irgendetaws für den gewünschten Test nicht ausreicht, dann unbedingt als Anregung an David und mich leiten. Dann müssen wir uns auf Seite des mlTutor darum kümmern. |
|||
<br> |
<br> |
Version vom 8. November 2005, 15:32 Uhr
Inhaltsverzeichnis
Beispiel2
Projektverzeichnissname:
andrej.sommer2005.aufgabe2a
Weis nicht ob es so gedacht war, aber jedenfalls die erste aufgabe mit Testscript:
Nur eine Anmerkung: Das Überprüfen des Ergebnisses vom Studenten übernimmt das MLTutor-Programm, aber im Prinzip läuft es genau so ab, wie du es geschrieben hast. Wenn du selber die Überprüfung übernehmen willst, dann kannst du natürlich gerne deine eigene Routine schreiben, aber im ml_test1_check.m würde bei diesem Test nur
V2,F2,R2,r2
drinnenstehen, damit das Programm weiß, welche Variablen überprüft werden sollten. Im XML-File, dass man dazu erstellt, kann man dann definieren, mit welcher Genauigkeit der Check abläuft und ähnliches. --Camhy 15:39, 3 Nov 2005 (CET)
Ich bin total dagegen, dass jemand eigene Überprüfungsroutinen schreibt. Das gehört total zum mlTutor und hat überhaupt nichts mit den Beispielen selbst zu tun. Bitte unbedingt nur die Syntax von David verwenden. Wenn irgendetaws für den gewünschten Test nicht ausreicht, dann unbedingt als Anregung an David und mich leiten. Dann müssen wir uns auf Seite des mlTutor darum kümmern.
regpol.m
function [V,F,R,r]=regpol(typ,a) switch lower(typ(1)) case 't' V=a^3/12*sqrt(2); F=a^2*sqrt(3); R=a/4*sqrt(6); r=a/12*sqrt(6); case 'w' V=a^3; F=6*a^2; R=a/2*sqrt(3); r=a/2; case 'o' V=a^3/3*sqrt(2); F=2*a^2*sqrt(3); R=a/2*sqrt(2); r=a/6*sqrt(6); case 'd' V=a^3/4*(15+7*sqrt(5)); F=3*a^2*sqrt(5*(5+2*sqrt(5))); R=a/4*(1+sqrt(5))*sqrt(3); r=a/4*sqrt((50+22*sqrt(5))/5); case 'i' V=5*a^3/12*(3+sqrt(5)); F=5*a^2*sqrt(3); R=a/4*sqrt(2*(5+sqrt(5))); r=a/2*sqrt((7+3*sqrt(5))/6); end
ml_test1_after.m
typ = 'W'; a=2; [V2,F2,R2,r2] = regpol(typ,a);
ml_test1_check.m
switch lower(typ(1)) case 't' V=a^3/12*sqrt(2); F=a^2*sqrt(3); R=a/4*sqrt(6); r=a/12*sqrt(6); case 'w' V=a^3; F=6*a^2; R=a/2*sqrt(3); r=a/2; case 'o' V=a^3/3*sqrt(2); F=2*a^2*sqrt(3); R=a/2*sqrt(2); r=a/6*sqrt(6); case 'd' V=a^3/4*(15+7*sqrt(5)); F=3*a^2*sqrt(5*(5+2*sqrt(5))); R=a/4*(1+sqrt(5))*sqrt(3); r=a/4*sqrt((50+22*sqrt(5))/5); case 'i' V=5*a^3/12*(3+sqrt(5)); F=5*a^2*sqrt(3); R=a/4*sqrt(2*(5+sqrt(5))); r=a/2*sqrt((7+3*sqrt(5))/6); end variable_names = {'V','F','R','r'}; variable_student = {V2,F2,R2,r2}; variable_tutor = {V,F,R,r}; for j=[1:numel(variable_names)] if check(variable_student{j},variable_tutor{j}) disp([variable_names{j},' richtig berechnet']); else disp([variable_names{j},' falsch berechnet']); end end
Mit der check.m funktion
check.m
function result = check(a,b) if abs(a-b) < 10*eps() result = 1; else result = 0; end