Subversion Repositories wimsdev

Rev

Rev 13556 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

type=question first
textarea="datatrue datafalse explain"
iEdit="explain"
asis="datatrue datafalse explain"

:Domanda a scelta multipla con rimescolamento.

Classica domanda a scelta multipla. L'ordine di presentazione
delle domande è casuale, nonché l'elenco delle scelte, purché ne siano
definite un numero sufficiente.
Quando sono presenti più risposte corrette è sufficiente che ne venga
selezionata una.

<p>Le domande non sono casuali, ma uguali per tutti gli studenti. È disponibile
il modello <b>Scelta multipla avanzata</b> che permette di selezionare
casualmente le domande.</p>

$image_help

$math_help

<p class="wims_credits">Autore del modello: Gang Xiao <qualite@wimsedu.info></p>

:%%%%%%%%%%%%%%%%%      ATTENZIONE      %%%%%%%%%%%%%%%%%%%%

Se si rimuovono le indicazioni del modulo modelli (le righe che
cominciano con ':') è necessario rimuovere tutta questa parte
introduttiva del file. Altrimenti Createxo potrebbe non accettare il
codice dell'esercizio.

:%%%%%%%% Parametri che possono essere ridefiniti %%%%%%%%%%%%%%%%%

:\title{Scelte multiple}
:\author{XIAO, Gang}
:\email{qualite@wimsedu.info}
:\credits{}

:Numero di scelte da presentare. Massimo 10.
Occorre definire abbastanza scelte, altrimenti l'esercizio si limiterà
a presentare tutte le scelte disponibili.
\integer{tot=5}

:Numero di scelte corrette in ogni esercizi. Non può essere superiore al totale.
\integer{givetrue=2}

:Numero di risposte sbagliate che devono essere presenti in ogni esercizio.
Per esempio, se questo numero è 2, allora 2 risposte sbagliate saranno presenti
nella lista di risposte possibili.
<p>Nel dubbio, mettere 0.</p>
\integer{minfalse=0}

:Testo che spiega cosa deve essere fatto.
$embraced_randitem
\text{explain=Classico modello di domande a scelta multipla. L'ordine delle risposte
è scelto in maniera casuale, come pure le stesse risposte (se viene dato
un elenco sufficiente di possibilità). Per creare un esercizio di questo
tipo è sufficiente modificare il testo che segue.
<br/>
Seleziona la risposta corretta.
Se ci sono più risposte corrette, la scelta di una qualsiasi delle
risposte corrette permette di ottenere il massimo dei punti.
}

:Risposte corrette, una per riga.
Si possono inserire (una per riga) parecchie scelte.
Meglio evitare frasi troppo lunghe. Non è possibile utilizzare
punti e virgola ";".

$embraced_randitem
\matrix{datatrue=Risposta corretta 1.
Risposta corretta 2.
Risposta corretta 3.
Risposta corretta 4.
}

:Risposte errate, una per riga.
Si possono inserire (una per riga) parecchie scelte.
Meglio evitare frasi troppo lunghe. Non è possibile utilizzare
punti e virgola ";".
$embraced_randitem
\matrix{datafalse=Risposta errata 1.
Risposta errata 2.
Risposta errata 3.
Risposta errata 4.
Risposta errata 5.
Risposta errata 6.
Risposta errata 7.
Risposta errata 8.
}

:Opzioni dell'esercizio: <span class="tt wims_code_words">checkbox</span>,  <span class="tt wims_code_words">split</span>.
L'opzione <span class="tt wims_code_words">checkbox</span> indica che ci sono più risposte corrette e che lo
studente le deve indicare tutte per avere un punteggio pieno. In questo caso
l'opzione <span class="tt wims_code_words">split</span> permette di assegnare un punteggio anche a risposte parziali,
purché senza errori.
\text{option=}

:Feedback Generale
Testo che viene mostrato dopo la rispota dello studente, in qualsiasi caso.
\text{feedback_general=}

:Feedback in caso di risposta corretta
Testo che viene mostrato dopo la rispota dello studente, nel caso che questa sia corretta o parziale.
\text{feedback_bon=}

:Feedback in caso di risposta errata
Testo che viene mostrato dopo la rispota dello studente, nel caso contenga almeno un errore.
\text{feedback_mauvais=}

:Suggerimento
Un testo che può aiutare lo studente ad arrivare alla risposta corretta
\text{exo_hint=}

:Scelte casuali di elementi inseriti tra parentesi graffe
$embraced_randitem
\text{accolade=item(1,1 sì,
2 no)}


:%%%%%%%%%%% Parte che precede l'enunciato: da non modificare %%%%%%%%%%%%%
\text{accolade=wims(word 1 of \accolade)}

\text{empty=}
\if{\feedback_general != \empty}{
  \text{feedback_general=<p class="feedback">\feedback_general</p>}
}
\if{\feedback_bon != \empty}{
  \text{feedback_bon=<p class="feedback good_answer">\feedback_bon</p>}
}
\if{\feedback_mauvais != \empty}{
  \text{feedback_mauvais=<p class="feedback bad_answer">\feedback_mauvais</p>}
}
\if{\exo_hint != \empty}{
  \hint{\exo_hint}
}

\text{datatrue=wims(nonempty rows \datatrue)}
\text{datafalse=wims(nonempty rows \datafalse)}
\integer{truecnt=rows(\datatrue)}
\integer{falsecnt=rows(\datafalse)}
\integer{givetrue=\givetrue<1?1}
\integer{givetrue=\givetrue>\truecnt?\truecnt}
\integer{tot=\tot > \falsecnt+\givetrue?\falsecnt+\givetrue}
\integer{givetrue=\givetrue>\tot-1?\tot-1}
\integer{minfalse=\minfalse>\tot-\givetrue?\tot-\givetrue}
\text{tsh=shuffle(\truecnt)}
\text{true=row(\tsh,\datatrue)}
\if{\minfalse>0}{
 \text{false1=row(1..\minfalse,\datafalse);}
 \text{false2=row(\minfalse+1..\falsecnt,\datafalse)}
}{
 \integer{minfalse=0}
 \text{false1=}
 \text{false2=\datafalse}
}
\text{fsh=shuffle(\falsecnt)}
\text{false2=row(\fsh,\false2)}
\text{pick=row(1..\givetrue,\true);\false1 row(1..\tot-\givetrue-\minfalse,\false2)}
\text{ind=wims(makelist 1 for x=1 to \givetrue),wims(makelist 0 for x=1 to \tot-\givetrue)}

\text{sh=shuffle(\tot)}
\text{ind=item(\sh,\ind)}
\text{pick=row(\sh,\pick)}
\text{pick=\accolade=1 ? wims(embraced randitem \pick)}
\text{explain=\accolade=1 ? wims(embraced randitem \explain)}
\text{ans=positionof(1,\ind)}
\text{list=item(1..\tot,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)}
\text{anstype=checkbox iswordof \option?checkbox:radio}

%%% for latex print
\text{latextext=}
\for{ll=1 to \tot}{
  \text{latextext=\latextext
  \item \list[\ll] : \pick[\ll;]}
}
%%%

:%%%%%%%%%%%%% Maintenant l'énoncé en code html. %%%%%%%%%%%%%%%%%%%%

::In questa parte non dovrebbe esserci nulla da modificare.

\statement{
  <div class="oef_explain">\explain</div>
  \for{i=1 to \tot}
  {<div class="oefreply">\embed{reply 1,\i, \list[\i] : \pick[\i;]}</div>}
}

:%%%%%%%%%%%%% Non modificare nulla da qui in poi. %%%%%%%%%%%%%%%%%5

\answer{Risposta}{\ans;\list}{type=\anstype}{option=\option}

\feedback{1=1}{\feedback_general}
\feedback{\reply1 isitemof \list[\ans]}{\feedback_bon}
\feedback{\reply1 notitemof \list[\ans]}{\feedback_mauvais}
:%%%%%%%%%%%%% Maintenant l'énoncé en latex. %%%%%%%%%%%%%%%%%%%%
\latex{
  \begin{statement}
    \explain
\begin{\option}
  \latextext
\end{\option}
\end{statement}
}