test~algebra~oefsyslin.fr test~analysis~oeftaylor.fr test~stat~table.frqui deviendront ensuite
U1~algebra~oefsyslin.fr U1~analysis~oeftaylor.fr tool~stat~table.fret même lors de la publication et de la mise en place définitive
U1/algebra/oefsyslin.fr U1/analysis/oeftaylor.fr tool/stat/table.frTant que le module n'est pas publié et que vous ne l'utilisez pas dans une classe, vous pouvez sans difficulté changer son nom. Ensuite, cela est tout à fait déconseillé. D'autre part, il est fortement conseillé de commencer le nom par oef dans le cas d'un module OEF, par doc s'il s'agit d'un document.
!header !read Exindex Ce module regroupe pour l'instant $exototal exercices sur ...
!read oef/$module_language/intromenu.phtml !tail
Ce module regroupe pour l'instant $exototal exercices sur ...Tout ce que vous mettrez là sera dans le menu d'introduction de votre module avant la fenêtre de choix. Vous pouvez utiliser des balises html.
!set introhook_exists=noSi ce fichier n'existe pas, il faut le créer.
!set introhook_exists=yesLe texte que vous voulez ajouter, s'incorporant dans un grand tableau html, devra être formaté de la façon suivante :
<tr> <td> </td> <td> </td> </tr>Si vous ne désirez pas utiliser cette possibilité, mettez au début du fichier
!set introhook_tableless=yes.
<tr> <td class="wimscenter">Catégorie : </td> <td> !formradio confparm1 from 1 to 3 prompt facile, moyen,difficile </td> </tr>
!if $status=waiting !read tool.phtml linear/vector linear/matrix linear/linsolver !href module=U2/analysis/docstokes.fr Un document !endifCe lien n'apparaîtra ici que lorsque l'exercice est en cours. Il disparaîtra lorsque l'exercice est terminé et résolu ( status est une variable prédéfinie utilisée dans le module qui attend qu'on réponde (=waiting) et qui change de valeur lorsqu'on a répondu à l'exercice. )
!changeto oef/$module_language/about.phtmlCette ligne permet de faire de manière automatique le tableau donnant l'adresse, le nom de l'auteur ... Si vous rajoutez une ligne de texte AVANT, elle apparaîtra. Vous pouvez donc y mettre les références que vous avez utilisées, vos remerciements etc !
# This file registers changes to the module. # Please write in reverse order: the last version first.
Version 1.00: First publication.
# Change to 0 if you don't want the choice `I don't know' idontknow=1
# Change to 1 of you want all choices to be present allchoices=0
# Computational precisions: you can change the defaults here. # pari_precision=18 # maxima_precision=8 # print_precision=8
# Change to no if you don't want classes to import exercises in this module. # A typical situation is that these exercises use common resources of the module. class_importation=yes
# Change to yes if you want to put images in common (images/) to all exercises. # If you do so, you must disable class_importation. common_images=no
!changeto oef/var.proc
<div class="wimscenter">toto</div>plutôt que
<div class="wimscenter"> toto </div>à moins qu'il n'y ait une réelle intention. Eviter les balises successives en ajoutant un style css
<span style="color:red; font-weight:bold;">toto</span>et même définir une classe css que vous mettrez dans la commande
\css{}
<div class="wims_instruction">Entrez non si aucun développement n'existe.</div>donne
\text{monaide=wims(record 0 of aide)} \help{\monaide}
:bla bla bla etc : blo blo blo etcet selon les exercices, vous irez chercher la première aide (entre le premier : et le second) ou la seconde aide
\text{monaide=wims(record 1 of aide)} \help{\monaide}ou
\text{monaide=wims(record 2 of aide)} \help{\monaide}
<tr><td class="wimscenter">Niveau de difficulté</td> <td> !formbar confparm1 from 1 to 3 Taille du graphe </td></tr>L'utilisateur voit un formulaire lui demandant la "Taille du graphe'', et peut répondre un entier compris entre 1 et 3. Il n'est pas obligé de rentrer une valeur. (On se trouve dans un tableau HTML, dont on vient de définir une ligne.) Attention les seuls noms autorisés pour ces variables sont les mots confparm1, confparm2, confparm3, confparm4, confparm5.
\integer{ n = \confparm1=1? randint(3..4):randint(3..4) } \integer{ n = \confparm1=2? randint(5..7) } \integer{ n = \confparm1=3? randint(10..12)}On peut utiliser d'autres types de paramètres. Par exemple,
<tr><td class="wimscenter">Choix d'animal</td> <td> !formradio confparm1 list A,B,C prompt Loup, Chèvre, Mouton </td></tr>Le paramètre vaut ici A, B ou C. En remplaçant formradio par formcheckbox, on autorise la sélection de plusieurs animaux.
<tr> <td>Exclure les éléments au-dessus du numéro</td> <td><input size="3" name="confparm3" value="54" /></td> </tr> <tr> <td>ou une liste de numéros des éléments à tester :</td> <td><input size="40" name="confparm4" /></td> </tr>Ne pas oublier de donner une valeur par défaut à tous les paramètres confparm1, ... et surtout une valeur par défaut à toutes les variables aléatoires qui en dépendent.
!set wims_html_mode=li <ul> !formradio confparm1 list 1,2 prompt xxx, yyy </ul>La variable wims_html_mode peut aussi prendre la valeur <div> ou <span>, mais cela est a priori moins utile.
\title{Choix et/est/ai} \language{fr}
\text{tableau =randomrow( Je suis grand ??et,est,ai?? brun. Le café ??est,et,ai?? chaud. La fleur ??est,et,ai?? rouge. Le soleil ??est,et,ai?? chaud J'??ai,est,et?? chaud)}
\matrix{A = slib(text/cutchoices \tableau)} \text{good=\A[2;]} \text{cnt = items(\good)} \text{mix = shuffle(\cnt)} \matrix{good= \good[\mix]} \text{rep = position(1,\mix)}
\statement{ Faire le bon choix : <div class="wimscenter"> \A[1;] \embed{reply 1} \A[3;] </div> }
\answer{}{\rep[1];\good}{type=menu}
:Je suis grand ??et,est,ai?? brun. Le café ??est,et,ai?? chaud. La fleur ??est,et,ai?? rouge. Le soleil ??est,et,ai?? chaud J'??ai,est,et?? chaudRemarquez le signe de ponctuation : que nous avons un peu grossi. Il va être possible maintenant dans un exercice de charger ces données soit en entier, soit sélectivement pour la partie entre deux signes : consécutifs.
:L'élève ??est,et?? sérieux ??et,est?? appliqué. Paul se ramasse ??et,est?? se relève. Le pull ??est,et?? chaud ??et,est?? léger. La rue ??est,et?? étroite ??et,est?? en pente. Pierre ??est,et?? fort en mathématiques ??et,est?? en français. La lumière sur le vieux port ??est,et?? très belle en hiver ??et,est?? en été.
\text{Tableau = wims(record 1 of tableau)} \text{a = randomrow(\Tableau)}
\text{Tableau = wims(record 2 of tableau)} \text{a = randomrow(\Tableau)}
\text{Tableau = wims(record 0 of tableau)} \text{a = randomrow(\Tableau)}
\integer{m = wims(recordcnt tableau)} \matrix{Tableau = } \for{ i = 1 to \m}{ \text{Tableau = \tableau randrow(wims(record \i of tableau))}
\author{Ambali} \integer{m = randint(1..wims(recordcnt tableau))} \matrix{Tableau = } \text{Tableau= randrow(wims(record \m of tableau))} \matrix{A= slib(text/cutchoices \Tableau)} \text{cntrow=rows(\A)} \integer{cntQ=(\cntrow-\cntrow%2)/2} \matrix{good1=} \text{rep= } \for{i= 1 to \cntQ}{ \text{good=\A[2*\i;]} \text{cnt= items(\good)} \text{mix= shuffle(\cnt)} \matrix{good1=\good1 \good[\mix]} \text{rep= \rep, position(1,\mix)} } \text{rep=wims(nonempty items \rep)} \text{STEP= wims(makelist r x for x = 1 to \cntQ)} \steps{\STEP}
\statement{<div style="text-align:center; background-color:#faffe6; padding:1%; margin:5% 20%;"> \for{k = 1 to \cntQ}{\A[2*\k-1;] \embed{r \k} } \A[2*\cntQ+1;] <div/>}
\answer{}{\rep[1];\good1[1;]}{type=menu} \answer{}{\rep[2];\good1[2;]}{type=menu} \answer{}{\rep[3];\good1[3;]}{type=menu}
azote:..... hydrogene:....
\text{ligne= wims(lookup azote in tableau)}et récupérer ensuite les informations qui suivent et dont vous avez besoin.
target=toto1 toto2 toto3 toto4
Ensuite, chaque exercice aura un titre différent
#if defined TARGET_toto1 \title{Premier exercice} #endif #if defined TARGET_toto2 \title{Second exercice} #endif #if defined TARGET_toto3 \title{Troisième exercice} #endif #if defined TARGET_toto4 \title{Quatrième exercice} #endifEtc ...
target= et_est ou_ou la_la #define TITLE Choix #if defined #TARGET_et_est \title{TITLE et/est} \text{Type=tableau_et} #endif #if defined #TARGET_ou_ou \title{TITLE ou/où} \text{Type=tableau_ou} #endif #if defined #TARGET_la_la \title{TITLE la/là/l'a} \text{Type=tableau_la} #endif
#include "commun.inc"
\text{tableau = wims(record 0 of \Type)} \text{a = randomrow(\tableau)} teste si le premier champ est une question \text{testa= wims(nospace \a)} \text{first = wims(replace internal ? by | in wims(char 1 of \testa))} \text{u= \first issametext | ? 1 : 0} \text{u1 = \u = 0 ? -1:1} \matrix{A = slib(text/cutchoices \a)} \text{cntrow = rows(\A)} \integer{cntQ = (\cntrow+\u1*\cntrow%2)/2} \matrix{good1 = } \text{rep = } \for{i= 1 to \cntQ}{ \text{good=\A[2*\i -\u;]} \text{cnt = items(\good)} \text{mix = shuffle(\cnt)} \matrix{good1=\good1 \good[\mix]} \text{rep = \rep, position(1,\mix)} } \text{rep =wims(nonempty items \rep)} \text{STEP = wims(makelist r x for x = 1 to \cntQ)} \steps{\STEP}
\statement{ <div class="wimscenter moncss"> \for{k = 1 to \cntQ}{ \A[2*\k-1-\u;] \embed{r \k} } \A[2*\cntQ+1-\u;] <p/>}
\answer{}{\rep[1];\good1[1;]}{type=menu} \answer{}{\rep[2];\good1[2;]}{type=menu} \answer{}{\rep[3];\good1[3;]}{type=menu} \answer{}{\rep[4];\good1[4;]}{type=menu} \answer{}{\rep[5];\good1[5;]}{type=menu} \answer{}{\rep[6];\good1[6;]}{type=menu} \answer{}{\rep[7];\good1[7;]}{type=menu} \answer{}{\rep[8];\good1[8;]}{type=menu}
!set wims_ref_target=wims_internal !href module=adresse_du_module nom du lien
Vous pouvez aller voir le document !set wims_ref_target=wims_internal !href module=H2/algebra/docpuissance.fr Tout sur les puissances pour réviser le cours.
target=toto(toto est le nom du fichier sans extension). Tous les fichiers à créer dans la suite seront dans src/cpp . Bien sûr, si vous avez déjà utilisé les fonctionnalités de cpp pour mutualiser des données communes à plusieurs exercices, cette étape est à passer.
\text{lang=slib(oef/env lang)}On peut y mettre pour commodité des instructions communes à tous les exercices comme \author{} \precision{}. L'inclure dans toto.cpp
#include "common.inc"
#if defined TARGET_toto \text{name_instruction= Instruction de l'exercice toto} #endif #if defined TARGET_tata \text{name_instruction= Instruction de l'exercice tata} #endif
#include "lang.inc" #include "lang_title.inc"quelque part dans le fichier toto.cpp. L'endroit dépend de ce qu'on met dedans (s'il y des variables de l'auteur, il faut bien sûr que ces variables soient connues lorsque le fichier lang.inc est inclus.)
#include "lang_fr.inc" \if{\lang=en}{ #include "lang_en.inc" }Cela dépend bien sûr des langues traduites. Attention, il faut toujours qu'il y ait un défaut (si la langue n'est pas traduite, la version originelle (ici française) doit y être.
#if defined TARGET_toto #define TITLE Titre de l'exercice toto #define TITLE_en Title of the exercise toto #endif #if defined TARGET_tata #define TITLE Titre de l'exercice tata #define TITLE_en Title of the exercise tata #endifet continuer avec tous les exercices. Dans le fichier toto.cpp, écrire
#include "lang_title.inc" \title{TITLE} \title_en{TITLE_en}On peut bien sûr faire pareil pour toutes les langues.
document d'aide pour passer de Createxo à Modtool.
: wimshelp, interactive mathematics, interactive math, server side interactivity
Veuillez noter que les pages WIMS sont générées interactivement; elles ne sont pas des fichiers HTML ordinaires. Elles doivent être utilisées interactivement EN LIGNE. Il est inutile pour vous de les ramasser par un programme robot.
Description: document d'aide pour passer de Createxo à Modtool. interactive exercises, online calculators and plotters, mathematical recreation and games
Keywords: interactive mathematics, interactive math, server side interactivity, documentation, wimshelp