Selection aléatoire d'un nombre parmi une liste de nombre définie

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
TL13
Utilisateur débutant
Utilisateur débutant
Messages : 2
Inscription : vendredi 20 septembre 2024, 15:34
Statut actuel : Enseignant

Selection aléatoire d'un nombre parmi une liste de nombre définie

Message non lu par TL13 »

Bonjour,
Je souhaiterais pouvoir faire une fiche d'exercices sur la formation des prix. Afin de faire des calculs sur le montant TVA je souhaiterais choisir aléatoirement un taux de TVA parmi les 4 taux de TVA français pour chaque exercice.
Voici un extrait de code dont je ne vous ai recopié que la partie qui bloque (code fonctionnel mais en erreur !):

Code : Tout sélectionner

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}      						% Gestion des accents
\usepackage{helvet}           % Utilise Helvetica (proche d'Arial)
\renewcommand{\familydefault}{\sfdefault}  % Définit la police sans-serif par défaut (Helvetica)
\usepackage[table,xcdraw]{xcolor} % Pour ajouter des couleurs aux tableaux
\usepackage{amsmath}   % Pour les symboles mathématiques
\usepackage{xcolor}    % Pour les couleurs
\usepackage{pgfmath} % Pour les calculs aléatoires
\usepackage{array}     % Pour mieux formater les tableaux
\usepackage{multicol} % Pour les multiples colonnes
\usepackage{colortbl}  % Pour colorer les lignes du tableau
\usepackage[most]{tcolorbox}
\usepackage{geometry} % Pour ajuster les marges
\geometry{a4paper, margin=1in} % Ajuste les marges de la page


% Commande pour ajuster la hauteur des lignes
\renewcommand{\arraystretch}{2.3} % Ajuste la hauteur des cellules

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Tableau des taux de TVA disponibles
\pgfmathdeclarefunction{selectTaux}{1}{%
  \pgfmathparse{
    ifthenelse(#1 == 0, 2.1, ifthenelse(#1 == 1, 5.5, ifthenelse(#1 == 2, 10, 20)))%
  }%
}

% Fonction pour générer un taux de TVA aléatoire
\newcommand{\generateTauxTVA}{%
    \pgfmathparse{int(random(0,3))} % Générer un index aléatoire entre 0 et 3
    \let\index=\pgfmathresult
    \pgfmathparse{selectTaux(\index)} % Utiliser l'index pour choisir un taux
    \pgfmathresult
}

\begin{document}
 \pgfmathsetmacro{\taux}{\generateTauxTVA}
essai
\end{document}
Me génère une erreur alors qu'avec

Code : Tout sélectionner

\begin{document}
 \pgfmathsetmacro{\taux}{0}%\generateTauxTVA}
essai
\end{document}
m'ouvre bien le pdf !
Si vous avez une piste, je suis preneur. :)
Merci à vous
Dernière modification par MB le vendredi 20 septembre 2024, 18:03, modifié 1 fois.
Arathorn
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 297
Inscription : mercredi 24 avril 2013, 19:47
Statut actuel : Enseignant

Re: Selection aléatoire d'un nombre parmi une liste de nombre définie.

Message non lu par Arathorn »

Je ne sais pas utiliser pgf mais pour des listes prédéfinies avec une sélection aléatoire (comme les noyaux d'atomes), j'aime bien utiliser le paquet listofitems, de Christian Tellechea, qui est facile à utiliser avec une documentation en français.

Code : Tout sélectionner

\documentclass[french,12pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{xfp,listofitems,siunitx}
\sisetup{locale=FR}
\usepackage{babel}

\ExplSyntaxOn
\sys_gset_rand_seed:n{4586}% la racine des nombres pseudo-aléatoires.
\ExplSyntaxOff

\begin{document}
\readlist{\tauxTVA}{2.1,5.5,10,20}	

Le taux de TVA est de \qty{\tauxTVA[\fpeval{randint(1,4)}]}{\percent}

Le taux de TVA est de \qty{\tauxTVA[\fpeval{randint(1,4)}]}{\percent}

Le taux de TVA est de \qty{\tauxTVA[\fpeval{randint(1,4)}]}{\percent}
\end{document}
TL13
Utilisateur débutant
Utilisateur débutant
Messages : 2
Inscription : vendredi 20 septembre 2024, 15:34
Statut actuel : Enseignant

Re: Selection aléatoire d'un nombre parmi une liste de nombre définie.

Message non lu par TL13 »

Super,
Merci pour ta proposition, je vais m'empresser de l'intégrer à mon code.
Cordialement
Thierry