<p class="spip">Je vous avais parlé dans le <a href="http://www.coagul.org/article.php3?id_article=407" class="spip_out">1er tutoriel</a> d’une petite application en C++. C’est elle que je vais convertir en Python.</p>

<p class="spip">Il s’agit d’un logiciel qui permet à nos chères têtes blondes de réviser entre autres leurs tables de multiplications.</p>

<p class="spip">L’application utilise une boite de dialogue avec 2 onglets.</p>

<h3>Le premier onglet permet de choisir, créer/modifier et enregistrer les différents exercices.</h3>
<p class="spip"><span class='spip_document_787 spip_documents spip_documents_left'  style='float:left; width:516px;'>
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/revcalChoixExo.png' width="516" height="482" alt="" /></span><p>

<p class="spip">Pour un exercice, il faut définir :
<br /> le délai imparti pour répondre
<br /> le nombre de questions
<br /> la position de la question (entre 1 et 7, voir plus bas pour les explications sur ce codage)
<br /> l’opération
<br /> les valeurs min et max des 2 opérandes
<br /> la valeur maximum de la réponse</p>

<p class="spip">Toutes ces valeurs sont enregistrées dans un fichier texte qui est chargé au lancement du programme.
Les boutons situés en bas permettent d’ajouter, modifier et supprimer des lignes d’exercices.</p>

<p class="spip">Le gros bouton grisé en bas à droite représente une disquette. Ce bouton devient actif si on modifie  une ligne d’exercice. Un clic dessus lancera la sauvegarde sur le disque de tous les exercices créés.</p>

<p class="spip">Le fait de cliquer sur une ligne copie toutes les valeurs dans les champ correspondants situés au dessus. Ce sont ces valeurs qui serviront à faire l’exercice.</p>

<h3>Le second onglet permet de faire l’exercice.</h3>
<p class="spip"><span class='spip_document_788 spip_documents spip_documents_center' >
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/revcalReviser.png' width="416" height="381" alt="" /></span><p>

<p class="spip">Le programme tire au hasard les 2 opérandes et calcule la réponse en vérifiant que celle-ci ne dépasse pas la valeur maximum. Il choisit ensuite au hasard également la position du trou qu’il faudra compléter. Comme indiqué précédemment celle-ci est représentée par une valeur comprise entre 1 et 7. Il faut utiliser le codage binaire du nombre pour savoir ou le trou peut être. 
<br /> 1 (001) : c’est toujours le premier opérande qu’il faut trouver
<br /> 2 (010) : c’est toujours le deuxième opérande qu’il faut trouver
<br /> 4 (100) : c’est toujours le résultat
<br /> 3,5,6 : c’est une des 2 possibilités
<br /> 7 (111) : c’est une des trois possibilités</p>

<p class="spip">La barre de progression indique le temps restant pour répondre.
En cas de mauvaise réponse (ou de non réponse avant la limite de temps) le programme affiche la solution. En plus il mémorise l’opération pour la phase de révision.
Les 3 compteurs indiquent respectivement
<br /> le nombre de bonnes réponses
<br /> le nombre de mauvaises réponses
<br /> le nombre total de questions déjà posées</p>

<p class="spip">Le bouton grisé en bas à droite sur la copie d’écran permet de démarrer l’exercice.
Le bouton rouge permet de quitter le programme. Ou plus exactement permettra de le faire une fois les révisions terminées. En effet le premier appui grise le bouton et le programme entre dans la phase de révision. Il repose toutes les questions qui n’ont pas eu de réponse correcte. Le processus continue tant qu’il reste des questions. La question posée est tirée au hasard dans la liste. Si la réponse est correcte on la supprime. Lorsque toutes les questions ont été posées le bouton quitter redevient actif.</p>

<p class="spip">Je joins à cet article le fichier .UI qui contient l’interface complète de l’application.</p>
<dl class='spip_document_790 spip_documents spip_documents_center' >
<dt><a href="http://download.tuxfamily.org/assocoagul/drupal-files/spip/mainform.ui.zip" title='Zip - 17.9 ko' type="application/zip"><img src='dist/vignettes/zip.png' width='52' height='52' alt='Zip - 17.9 ko' /></a><dt>
<dt class='spip_doc_titre' style='width:120px;'><strong>L’interface</strong></dt>
</dl>
<p class="spip"><a href="http://www.coagul.org/article.php3?id_article=417" class="spip_out">Pour la suite, c’est ici</a></p>

<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>28/02/2006</td><td>Création par Jibux</td></tr>
<tr class="row_odd"><td>0.2</td><td>04/03/2006</td><td>Correction de coquilles (merci [Nemo])</td></tr>
<tr class="row_even"><td>0.3</td><td>03/04/2006</td><td>Ajout du lien vers le 1er tutoriel (merci Tony)</td></tr>
<tr class="row_odd"><td>0.4</td><td>26/11/2006</td><td>Ajout d’un lien vers l’article suivant</td></tr>
</tbody>
</table>