• Aucun résultat trouvé

Le générateur d'interrogations

N/A
N/A
Protected

Academic year: 2022

Partager "Le générateur d'interrogations"

Copied!
9
0
0

Texte intégral

(1)

Extrait du @YvesDelhaye.Be http://www.yvesdelhaye.be

Le générateur d'interrogations

- Informatique - LaTeX - Générateur d'interrogations -

Date de mise en ligne : lundi 26 février 2007

Description :

LaTeX et giac : même combat

@YvesDelhaye.Be

(2)

Faisant suite à mes premiers essais, où j'explique le principe et la méthode pour l'implémenter, je présente ici un exemple d'utilisation d'un programme de calcul formel (Giac) pour générer

automatiquement des exercices de physique (ou de mathématique, ou de chimie) dans \LaTeX.

Un même exercice de physique est présenté trois fois. Dans les deux dernières versions, les calculs sont faits par Giac. Dans le dernier exerice, les valeurs de départ sont aléatoires.

Nous avons choisi un exercice de mouvement circulaire uniforme que nous utilisons dans une interrogation.

Le même exercice est présenté trois fois. Enoncé et solutionnaire sont présentés à chaque fois.

Le premier est fait "à la main" (enfin... à la calculatrice !).

Le deuxième est identique au premier mais les calculs sont fait lors de la compilation \LaTeX par Giac. Les valeurs de départ ayant été fournies au programme de calcul formel.

Le troisième suit le même schéma que les deux premiers mais les valeurs dans l'énoncé sont générées aléatoirement par Giac. Les calculs sont fait lors de la compilation \LaTeX par Giac.

Ceci constitue la "brique de base" pour un générateur d'interrogation !

Il devient facile de donner des exercices différents à tous les élèves pour un devoir ou une interrogation. Les élèves

peuvent communiquer entre eux sur les méthodes mais pas sur les résultats. Ils font exactement ce que nous

voulons : du travail intelligent !

(3)

% inspired by http://www.mathematex.net/phpBB2/2-vt1220-20.html %cinquieme essai: calculs et resultats multiples s'enchainant %Declaration de variables

%Calculs de certaines variables à partir de variables initiales \documentclass[12pt]{article}

%

\usepackage{listings}

\usepackage{graphicx}

\usepackage{graphics}

\usepackage{moreverb}

\usepackage[francais]{babel}

\usepackage[latin1]{inputenc}

%\usepackage[dvips]{graphics}

%

\usepackage{answers} % pour utiliser le module answers

\Newassociation{sol}{Solution}{ans} % pour définitir l'étiquette Solution du module answers \newtheorem{ex}{Exercice} % pour définitir l'étiquette Exercice du module answers %

%\makeatletter

%commande pour faire appel a giac \newcommand{\executGiac}[1]{

%\immediate\write18{@echo off}

\immediate\write18{giac <#1 } } %\makeatother

\title{Le générateur d'interrogations}

\author{Yves Delhaye}

\begin{document}

\maketitle

\begin{abstract}

Un exemple d'utilisation d'un programme de calcul formel (Giac) pour générer automatiquement des exercices de physique (ou de mathématique, ou de chimie) dans \LaTeX.

Un même exercice de physique est présenté trois fois. Dans les deux dernières versions, les calculs sont faits par Giac. Dans le dernier exerice, les valeurs de départ sont aléatoires.

\end{abstract}

\section{Introduction}

Nous avons choisi un exercice de mouvement circulaire uniforme que nous utilisons dans une interrogation.

Le même exercice est présenté trois fois.

Enoncé et solutionnaire sont présentés à chaque fois.

Le premier est fait "à la main" (enfin... à la calculatrice!).

Le deuxième est identique au premier mais les calculs sont fait lors de la compilation \LaTeX par Giac.

Les valeurs de départ ayant été fournies au programme de calcul formel.

(4)

Le troisième suit le même schéma que les deux premiers mais les valeurs dans l'énoncé sont générées aléatoirement par Giac. Les calculs sont fait lors de la compilation \LaTeX par Giac.

Ceci constitue la "brique de base" pour un générateur d'interrogation!

Il devient facile de donner des exercices différents à tous les élèves pour un devoir ou une

interrogation. Les élèves peuvent communiquer entre eux sur les méthodes mais pas sur les résultats. Ils font exactement ce que nous voulons: du travail intelligent!

\pagebreak % sur une autre page

%\begin{center}Les trois calculs\end{center}

\section{Les trois calculs}

% \Opensolutionfile{ans}[Solutions_MCU] % ouvre le fichier Solutions_MCU.tex qui va contenir les solutions

% Il y a un probleme ici. Soit je définis les variables avant la ligne précédente et les solutions recoivent les valeurs d'initialisation (tout a 1!). Soit je ne le fais pas et je ne sais pas avoir les solution sur une feuille à part!

% Je vais probalement jouer avec "NotesDuProf".

\subsection{Sans Giac}

\begin{ex}

(.../5) Une roue de 60 cm de diamètre tourne régulièrement à raison de 120 tours/min.

\begin{enumerate}

\item Quelle est la vitesse angulaire \$\omega\$ de la roue?

\item Calculer la vitesse d'un point situé à la circonférence de la roue.

\item Calculer l'accélération d'un point situé à la circonférence de la roue. \\ \\

\end{enumerate}

\begin{sol}

\underline{\textbf{Roue}}

\begin{itemize}

\item \underline{Données}:

\begin{itemize}

\item R = 0,6/2 (m) = 0,3 (m) \item 120 (Tours/min) = 2 (Tours/s) \end{itemize}

\item \underline{Inconnues}:

\$ \omega,\ v,\ a\$

\item \underline{Formules}:

\begin{itemize}

\item \$ \omega = \frac{2\pi}{T} \$ (rad/s) \item \$ v = \omega . R \$ (m/s)

\item \$ a = \omega^2 . R \$ (m/s) \end{itemize}

\item \underline{Solution}:

\begin{enumerate}

\item

\begin{itemize}

(5)

\item \$T = \frac{1}{2 (Tours/s)} = 0,5 (s)\$

\item \$ \omega = \frac{2\pi}{1/2 (s)} = 2 .2\pi (rad/s)= 4\pi (rad/s) \simeq 12.5 (rad/s)\$

\end{itemize}

\item \$ v = \omega . R = 12,5 (rad/s) . 0,3 (m) \simeq 3,8 (m/s) \$

\item \$ a = \omega_1^2 . R \simeq 157,9 (rad^2/s^2) . 0,3 (m) = 47,4 (m/s^2) \simeq 4,7.10^2 (m/s^2)

\simeq 5 g\ ! \$

\end{enumerate}

\end{itemize}

\end{sol}

\end{ex}

\pagebreak % sur une autre page

\subsection{Avec Giac}

\subsubsection{Avec Giac:les mêmes valeurs que l'exercice précédent (vérification)}

\begin{ex}

% Valeurs intitialisées a 1 Pour éviter une erreur % lors de la première compilation.

\def\diamcm1{1} % \def\diam1{1} % \def\rayon1{1} % \def\tourmin1{1} % \def\fq1{1} % \def\per1{1} % \def\vit1{1} % \def\omeg1{1} % \def\omegsq1{1} % \def\acc1{1} %

% on ecrit les commande giac dans le fichier test5.in \begin{verbatimwrite}{test5.in}

maple_mode(0);

Sortie:=fopen("test5.out.tex");

Digits:=4;

diamcm1:=60.0;

Resultat:=cat("\\def\\diamcm1\{",ans(),"} ");

diam1:=diamcm1/100.0;

Resultat:=cat(Resultat," ","\\def\\diam1\{",ans(),"} ");

rayon1:=diam1/2.0;

Resultat:=cat(Resultat," ","\\def\\rayon1\{",ans(),"} ");

tourmin1:=120.0;

Resultat:=cat(Resultat," ","\\def\\tourmin1\{",ans(),"} ");

fq1:=tourmin1/60.0;

Resultat:=cat(Resultat," ","\\def\\fq1\{",ans(),"} ");

per1:=1.0/fq1;

Resultat:=cat(Resultat," ","\\def\\per1\{",ans(),"} ");

omeg1:=2.0*pi*fq1;

Resultat:=cat(Resultat," ","\\def\\omeg1\{",ans(),"} ");

omegsq1:=omeg1^2;

Resultat:=cat(Resultat," ","\\def\\omegsq1\{",ans(),"} ");

vit1:=omeg1 * rayon1;

Resultat:=cat(Resultat," ","\\def\\vit1\{",ans(),"} ");

(6)

acc1:=omegsq1 * rayon1;

Resultat:=cat(Resultat," ","\\def\\acc1\{",ans(),"} ");

fprint(Sortie,Unquoted,Resultat);

fclose(Sortie);

\end{verbatimwrite}

\executGiac{test5.in}

% on va inclure l'output cree par giac dans le document \input{test5.out}

(.../5) Une roue de \diamcm1 cm de diamètre tourne régulièrement à raison de \tourmin1 tours/min.

\begin{enumerate}

\item Quelle est la vitesse angulaire \$\omega\$ de la roue?

\item Calculer la vitesse d'un point situé à la circonférence de la roue.

\item Calculer l'accélération d'un point situé à la circonférence de la roue. \\ \\

\end{enumerate}

\begin{sol}

\underline{\textbf{Roue}}

\begin{itemize}

\item \underline{Données}:

\begin{itemize}

\item R = (\diamcm1 /100)/ 2 = \diam1 /2 (m) = \rayon1 (m)

\item \tourmin1 (Tours/min) = \tourmin1/60 (Tours/s) = \fq1 (Tours/s) = \fq1 (Hz) \end{itemize}

\item \underline{Inconnues}:

\$ \omega,\ v,\ a\$

\item \underline{Formules}:

\begin{itemize}

\item \$ \omega = \frac{2\pi}{T} \$ (rad/s) \item \$ v = \omega . R \$ (m/s)

\item \$ a = \omega^2 . R \$ (m/s) \end{itemize}

\item \underline{Solution}:

\begin{enumerate}

\item

\begin{itemize}

\item \$ T = \frac{1}{ \fq1 (Tours/s)} = \per1 (s)\$

\item \$ \omega = \frac{2\pi}{ \per1 (s)} = \fq1 .2\pi (rad/s)= \omeg1 (rad/s) \$

\end{itemize}

\item \$ v = \omega . R = \omeg1 (rad/s) . \rayon1 (m) = \vit1 (m/s) \$

\item \$ a = \omega_1^2 . R = (\omeg1)^2 (rad^2/s^2) . \rayon1 (m) = \omegsq1 (rad^2/s^2) . \rayon1 (m) =

\acc1 (m/s^2)\$

\end{enumerate}

\end{itemize}

\end{sol}

\end{ex}

\pagebreak % sur une autre page

\subsubsection{Avec Giac:valeurs de départ aléatoires}

(7)

\begin{ex}

% Valeurs intitialisées a 1 Pour éviter une erreur % lors de la première compilation.

\def\diamcm1{1} % \def\diam1{1} % \def\rayon1{1} % \def\tourmin1{1} % \def\fq1{1} % \def\per1{1} % \def\vit1{1} % \def\omeg1{1} % \def\omegsq1{1} % \def\acc1{1} %

% on ecrit les commande giac dans le fichier test5b.in \begin{verbatimwrite}{test5b.in}

maple_mode(0);

Sortie:=fopen("test5b.out.tex");

Digits:=4;

srand;

diamcm1:=1+rand(100);

Resultat:=cat("\\def\\diamcm1\{",ans(),"} ");

diam1:=diamcm1/100.0;

Resultat:=cat(Resultat," ","\\def\\diam1\{",ans(),"} ");

rayon1:=diam1/2.0;

Resultat:=cat(Resultat," ","\\def\\rayon1\{",ans(),"} ");

tourmin1:=1+rand(200);

Resultat:=cat(Resultat," ","\\def\\tourmin1\{",ans(),"} ");

fq1:=tourmin1/60.0;

Resultat:=cat(Resultat," ","\\def\\fq1\{",ans(),"} ");

per1:=1.0/fq1;

Resultat:=cat(Resultat," ","\\def\\per1\{",ans(),"} ");

omeg1:=2.0*pi*fq1;

Resultat:=cat(Resultat," ","\\def\\omeg1\{",ans(),"} ");

omegsq1:=omeg1^2;

Resultat:=cat(Resultat," ","\\def\\omegsq1\{",ans(),"} ");

vit1:=omeg1 * rayon1;

Resultat:=cat(Resultat," ","\\def\\vit1\{",ans(),"} ");

acc1:=omegsq1 * rayon1;

Resultat:=cat(Resultat," ","\\def\\acc1\{",ans(),"} ");

fprint(Sortie,Unquoted,Resultat);

fclose(Sortie);

\end{verbatimwrite}

\executGiac{test5b.in}

% on va inclure l'output cree par giac dans le document \input{test5b.out}

(.../5) Une roue de \diamcm1 cm de diamètre tourne régulièrement à raison de \tourmin1 tours/min.

\begin{enumerate}

\item Quelle est la vitesse angulaire $\omega\$ de la roue?

(8)

\item Calculer la vitesse d'un point situé à la circonférence de la roue.

\item Calculer l'accélération d'un point situé à la circonférence de la roue. \\ \\

\end{enumerate}

\begin{sol}

\underline{\textbf{Roue}}

\begin{itemize}

\item \underline{Données}:

\begin{itemize}

\item R = (\diamcm1 /100)/ 2 = \diam1 /2 (m) = \rayon1 (m)

\item \tourmin1 (Tours/min) = \tourmin1/60 (Tours/s) = \fq1 (Tours/s) = \fq1 (Hz) \end{itemize}

\item \underline{Inconnues}:

\$ \omega,\ v,\ a\$

\item \underline{Formules}:

\begin{itemize}

\item \$ \omega = \frac{2\pi}{T} \$ (rad/s) \item \$ v = \omega . R \$ (m/s)

\item \$ a = \omega^2 . R \$ (m/s) \end{itemize}

\item \underline{Solution}:

\begin{enumerate}

\item

\begin{itemize}

\item \$ T = \frac{1}{ \fq1 (Tours/s)} = \per1 (s)\$

\item \$ \omega = \frac{2\pi}{ \per1 (s)} = \fq1 .2\pi (rad/s)= \omeg1 (rad/s)\$

\end{itemize}

\item \$ v = \omega . R = \omeg1 (rad/s) . \rayon1 (m) = \vit1 (m/s) \$

\item \$ a = \omega_1^2 . R = (\omeg1)^2 (rad^2/s^2) . \rayon1 (m) = \omegsq1 (rad^2/s^2) . \rayon1 (m) =

\acc1 (m/s^2) \$

\end{enumerate}

\end{itemize}

\end{sol}

\end{ex}

% \Closesolutionfile{ans} % ferme le fichier Solutions.tex qui contient les solutions % \pagebreak % met les solutions sur une autre page

% \section{Solutions}

% \Readsolutionfile{ans} % importe les données du fichier Solutions.tex

\end{document}

(9)

Post-scriptum :

Suite à mon installation d'un moteur mathml sur le site, les formules LaTeX sont parfois traduites depuis le code. J'ai du mettre des "backslash"

pour empêcher l'interprétation des dollards : \$

Parfois ces "backslash" apparaissent, parfois pas. Il est péférable de recopier les fichiers de code source que de faire des copier coller dans les pages.

Vous voilà prévenu !

Références

Documents relatifs

Si l'on en croit Jesse Fox, auteur principal d'une étude et professeur assistante en communication à l'Université de l'Ohio, les hommes qui publient beaucoup de selfies sur

Pour un objet en rotation, la vitesse moyenne se calcule avec la formule v = π×D×n , ou π×D représente la distance parcourue en 1 tour et n la fréquence de rotation..

Les élèves ne disposant pour l’instant que d’informations qualitatives sur l’énergie potentielle et l’énergie cinétique d’un système, le but de

marge brute – remise – prix d’achat net – prix de vente hors taxe – coût d’achat prix de vente toute taxe comprise – prix d’achat net – frais d’achat – prix

En traction, torsion ou flexion il est possible de résoudre un système qui est hyperstatique et d’en déterminer sa déformation, ou la contrainte. Pour cela la même méthode pour

Sony a également annoncé qu'il se lancerait directement sur le marché du jeu sur portable. Sa PlayStation Suite 20 distribuera d'anciens jeux pour.. PlayStation 21 One 22 pour

Réaliser une analyse de l’arbre généalogique suivant pour déterminer quel risque pour III4 d’avoir un enfant malade. Les femmes sont symbolisées par des ronds, et les hommes par

On rappelle qu’un fil ou câble de longueur L et de section S réalisé avec un matériau conducteur de résistivité  oppose une résistance au passage du courant