MATLAB/Wikiquiz writer (MATLAB)/write25versions.m
Appearance
< MATLAB
function [pagedone]= write25versions( quizarray,headertext,extralines, textline1,textline2) %WRITEFIRSTPAGE writes the first page, consisting of two conceptual tests, %the first in original question order but with answers random, the second %with both random. %firstpagedone=false; don't think I need %start remove (comment out) questioncount=size(quizarray,1); %Output first page, with two wikiquizzes, outputfilename = ['outputFolder/' headertext ' 25 versions.txt']; fout = fopen(outputfilename, 'w+'); if extralines>0 s =textline1; fprintf(fout,'%s\n',s); end; %s ='* [[/Testbank/]]<ref>software by user:Clockworks</ref>'; fprintf(fout,'%s\n',s); if extralines>1 s =textline2; fprintf(fout,'%s\n',s); end; for versioncount = 2:26 x=char(versioncount+64); s =['== ',headertext,' ','version ',' ',x,' ==']; fprintf(fout,'%s\n',s); s ='<quiz display=simple>'; fprintf(fout,'%s\n',s); orderofquestions=randperm(questioncount); for questionindex = 1:questioncount questionposition=orderofquestions(questionindex);%we are randomizing questions answercount = cell2mat(quizarray(questionposition,2)); orderofanswers=randperm(answercount); if answercount==2 orderofanswers=[1 2]; end s=char(quizarray(questionposition,1)); fprintf(fout,'%s\n',s);% prints question for answerindex = 1:answercount answerposition=orderofanswers(answerindex); s=char(quizarray(questionposition,answerposition+2)); sa=[char(96+answerindex) ') ']; sb=[s(1),sa,s(2:end)];%If problems arise replace 3 by 2 fprintf(fout,'%s\n',[sb]);% prints answer end s=' '; fprintf(fout,'%s\n',s); end s ='</quiz>'; fprintf(fout,'%s\n',s); end fclose(fout); pagedone=true; end