%!TEX pdflatex

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{eurosym}
\usepackage{ProfLycee}

\usepackage{tikz}
\usetikzlibrary{angles, quotes, decorations.markings, calc, decorations.pathmorphing, intersections}

\usetheme{CambridgeUS}
\usecolortheme{seahorse}
\setbeamercolor{frametitle}{fg=cyan!60!black}


\usepackage{qrcode}
\usepackage{hyperref}
\usepackage{ragged2e}
\usepackage{animate} % Package pour l'animation
\usepackage{enumitem}
\usepackage{multicol}
\usepackage{ccicons}

\usepackage{amsmath}
\usepackage{pgf} % Pour la génération de nombres aléatoires
\usepackage{etoolbox}

% Fixer la graine pour la génération aléatoire basée sur le temps actuel
\makeatletter
\pgfmathsetseed{\number\pdfrandomseed} % Utilise la graine aléatoire basée sur la date et l'heure actuelle
\makeatother

\TirageAleatoireEntiers[ValMin=10,ValMax=50,NbVal=10]{\TestAddition}%
\TirageAleatoireEntiers[ValMin=10,ValMax=50,NbVal=10]{\TestSoustraction}%
\readlist*\ListeAdd{\TestAddition}%
\readlist*\ListSoust{\TestSoustraction}%

\newcommand\addition[2]{
	\itemtomacro\ListeAdd[#1]{\tmpn}%
	\itemtomacro\ListeAdd[#2]{\tmpm}%
%	\pgfmathsetmacro{\n}{int(random(10,50))} % Génère un entier aléatoire entre 3 et 9
%	\pgfmathsetmacro{\m}{int(random(10,50))} % Génère un entier aléatoire entre 0 et 10
	\pgfmathtruncatemacro{\result}{\tmpn + \tmpm} % Calcul du résultat
	\pgfmathsetmacro{\mydice}{int(random(1,3))}  % Génère un entier aléatoire entre 1 et 4
	\ifnum\mydice=1
	$\tmpn + \ldots = \result$
	\fi
	\ifnum\mydice=2
	$\tmpn + \tmpm = \ldots$
	\fi 
	\ifnum\mydice=3
	$\ldots + \tmpn = \result$
	\fi
}

\newcommand\soustraction[2]{
	\itemtomacro\ListSoust[#1]{\tmpn}%
	\itemtomacro\ListSoust[#2]{\tmpm}%
	\ifnum\tmpn<\tmpm
		\itemtomacro\ListSoust[#2]{\tmpn}%
		\itemtomacro\ListSoust[#1]{\tmpm}%
	\fi
%	\pgfmathsetmacro{\n}{int(random(10,50))} % Génère un entier aléatoire entre 3 et 9
%	\pgfmathsetmacro{\m}{int(random(10,50))} % Génère un entier aléatoire entre 0 et 10
	\pgfmathtruncatemacro{\result}{\tmpn - \tmpm} % Calcul du résultat
	\ifnum\pgfmathresult=1 %à modifier, car ça bugguera sans doute...
	\soustraction{#1}{#2}
	\else
	\pgfmathsetmacro{\mydice}{int(random(1,3))}  % Génère un entier aléatoire entre 1 et 4
	\ifnum\mydice=1
	$\tmpn - \ldots = \result$
	\fi
	\ifnum\mydice=2
	$\tmpn - \tmpm = \ldots$
	\fi 
	\ifnum\mydice=3
	$\ldots - \tmpm = \result$
	\fi
}

% Nouvelle commande pour générer les données de l'exercice sur les véhicules avec proportionnalité et nombres entiers
\newcommand{\NumbForSpeed}{
	% Sélection aléatoire du type de véhicule
	\pgfmathsetmacro{\vehicleDice}{int(random(1,4))} % 1: Bicyclette, 2: Moto, 3: Automobile, 4: Locomotive
	\ifnum\vehicleDice=1
	\def\vehicle{Une bicyclette}
	\pgfmathsetmacro{\speed}{int(random(1,3))*10} % Vitesse entre 10 et 30 km/h
	\else\ifnum\vehicleDice=2
	\def\vehicle{Une moto}
	\pgfmathsetmacro{\speed}{int(random(4,12))*10} % Vitesse entre 40 et 120 km/h
	\else\ifnum\vehicleDice=3
	\def\vehicle{Une automobile}
	\pgfmathsetmacro{\speed}{int(random(4,12))*10} % Vitesse entre 40 et 120 km/h
	\else\ifnum\vehicleDice=4
	\def\vehicle{Une locomotive}
	\pgfmathsetmacro{\speed}{int(random(13,15))*10} % Vitesse entre 130 et 150 km/h
	\fi\fi\fi\fi
	
	% Génération d'un facteur multiplicatif entre 3 et 9 (temps en heures)
	\pgfmathsetmacro{\factor}{int(random(3,9))}
	
	% Calcul de la distance en km (distance = vitesse × temps)
	\pgfmathsetmacro{\distance}{\speed * \factor}
	
	% Garantie que la vitesse est un nombre entier
	\pgfmathtruncatemacro{\speedint}{\speed}
	\pgfmathparse{\speed *10 == \speedint *10}
	\ifnum\pgfmathresult=1
	\pgfmathsetmacro{\speed}{\speedint}
	\fi
	
	% Garantie que la distance est un nombre entier
	\pgfmathtruncatemacro{\distanceint}{\distance}
	\pgfmathparse{\distance *10 == \distanceint *10}
	\ifnum\pgfmathresult=1
	\pgfmathsetmacro{\distance}{\distanceint}
	\fi
}

\newcommand{\NumbForFrac}{
	\pgfmathsetmacro{\x}{int(random(2,10))} % Génère un entier aléatoire entre 3 et 12
	\pgfmathsetmacro{\y}{int(random(3,12))} % Génère un entier aléatoire entre 2 et 12
	
	\ifnum\y<\x
	\pgfmathsetmacro{\x}{\y}
	\fi
	
	\ifnum\y=\x
	\NumbForFrac
	\fi
	
	\pgfmathsetmacro{\mydice}{int(random(1,2))} % Génère un entier aléatoire entre 1 et 3
	
	\ifnum\y=11 % Pas de onzième (pénible à compter)
	\NumbForFrac
	\fi
	
	\ifnum\mydice=1
	\def\lafiguretikz{\begin{tikzpicture}[scale=0.75]
			\newcommand{\NumSectors}{\y} % Nombre total de secteurs
			\newcommand{\NumColSectors}{\x} % Nombre de secteurs consécutifs à colorier
			\pgfmathsetmacro{\angle}{360/\NumSectors} % Angle de chaque secteur
			
			% Dessiner et colorier les secteurs
			\foreach \s in {1,...,\NumSectors}{
				% Calculer l'angle de début et de fin pour chaque secteur
				\pgfmathsetmacro{\startAngle}{(\s-1)*\angle}
				\pgfmathsetmacro{\endAngle}{\s*\angle}
				
				% Colorier les premiers \NumColSectors secteurs, puis dessiner les autres normalement
				\ifnum\s>\NumColSectors
				\draw[line width=0.75pt] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\else
				\fill[red!50] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\draw[line width=0.75pt] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\fi
			}
		\end{tikzpicture}
	}
	\else
	\def\lafiguretikz{\begin{tikzpicture}[scale=0.7]
			\newcommand{\NumSectors}{\y} % Nombre total de secteurs
			\newcommand{\NumColSectors}{\y} % Nombre de secteurs consécutifs à colorier
			\pgfmathsetmacro{\angle}{360/\NumSectors} % Angle de chaque secteur
			
			% Dessiner et colorier les secteurs
			\foreach \s in {1,...,\NumSectors}{
				% Calculer l'angle de début et de fin pour chaque secteur
				\pgfmathsetmacro{\startAngle}{(\s-1)*\angle}
				\pgfmathsetmacro{\endAngle}{\s*\angle}
				
				% Colorier les premiers \NumColSectors secteurs, puis dessiner les autres normalement
				\ifnum\s>\NumColSectors
				\draw[line width=0.75pt] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\else
				\fill[red!50] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\draw[line width=0.75pt] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\fi
			}
		\end{tikzpicture}~\begin{tikzpicture}[scale=0.7]
			\newcommand{\NumSectors}{\y} % Nombre total de secteurs
			\newcommand{\NumColSectors}{\x} % Nombre de secteurs consécutifs à colorier
			\pgfmathsetmacro{\angle}{360/\NumSectors} % Angle de chaque secteur
			
			% Dessiner et colorier les secteurs
			\foreach \s in {1,...,\NumSectors}{
				% Calculer l'angle de début et de fin pour chaque secteur
				\pgfmathsetmacro{\startAngle}{(\s-1)*\angle}
				\pgfmathsetmacro{\endAngle}{\s*\angle}
				
				% Colorier les premiers \NumColSectors secteurs, puis dessiner les autres normalement
				\ifnum\s>\NumColSectors
				\draw[line width=0.75pt] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\else
				\fill[red!50] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\draw[line width=0.75pt] (0,0) -- (\startAngle:2cm) arc (\startAngle:\endAngle:2cm) -- cycle;
				\fi
			}
		\end{tikzpicture}
	}
	\fi
}

%\title{Automatisme 6e}
\author{\texttt{lmdbt.fr}}
\institute{\ccby}
\date{2024-2025}

\begin{document}

%	\frame{\titlepage}

\begin{frame}[plain]
	\frametitle{AutomaTex 3}

\begin{minipage}{0.47\textwidth}
	\textcolor{cyan!75!black}{\textbf{Exercice 1}}
	\vspace{-0.25cm}
	
	\begin{multicols}{2}
		\begin{itemize}[left=0pt]
			\large
			\item \addition{1}{2}
			\item \addition{3}{4}
			\item \addition{5}{6}
			\item \addition{7}{8}
			\item \addition{9}{10}
		\end{itemize}
		
		\begin{itemize}[left=0pt]
			\large
			\item \soustraction{1}{2}
			\item \soustraction{3}{4}
			\item \soustraction{5}{6}
			\item \soustraction{7}{8}
			\item \soustraction{9}{10}
		\end{itemize}
	\end{multicols}
	\bigskip

\NumbForSpeed

\textcolor{cyan!75!black}{\textbf{Exercice 2}}\\
\vehicle{} roule à une vitesse de $\speed\,\textrm{km/h}$. \\
Combien de temps met-elle pour parcourir $\distance\,\textrm{km}$ ?

\end{minipage}
\hfill
\begin{minipage}{0.47\textwidth}

\NumbForFrac
\textcolor{cyan!75!black}{\textbf{Exercice 3}}
	
	 Écrire la proportion coloriée en rouge sous la forme d'une fraction puis indiquer sa position sur l'axe gradué ci-dessous.
	 \medskip
	
	\centering
	\lafiguretikz\smallskip
	
\begin{tikzpicture}[scale=0.25]
		% Axe horizontal
		\draw[->, line width= 1pt] (0,0) -- (21,0);
		
		\pgfmathtruncatemacro{\ydemint}{\y/2}
		\pgfmathtruncatemacro{\yquaint}{\y/4}
		\pgfmathtruncatemacro{\ythint}{\y/3}
		
		\pgfmathsetmacro{\ydem}{\y/2}
		\pgfmathsetmacro{\yqua}{\y/4}
		\pgfmathsetmacro{\yth}{\y/3}
		\pgfmathsetmacro{\pasdeth}{1}
		
		\pgfmathparse{\ydemint*10==\ydem*10}
		\ifnum\pgfmathresult=1
		\pgfmathsetmacro{\pas}{10/\y}
		% Graduations
		\foreach \newx in {0,5,...,20}
		\draw[thick] (\newx,0.8) -- (\newx,-0.8) ;
		\fi
		
		\pgfmathparse{\yquaint*10==\yqua*10}
		\ifnum\pgfmathresult=1
		\pgfmathsetmacro{\pas}{10/\y}
		% Graduations
		\foreach \newx in {0,2.5,...,20}
		\draw[thick] (\newx,0.6) -- (\newx,-0.6) ;
		\pgfmathsetmacro{\pasdeth}{0}
		\fi
		
		\pgfmathparse{\ythint*10==\yth*10}
		\ifnum\pgfmathresult=1
		\ifnum\pasdeth=1
		\pgfmathsetmacro{\pas}{10/\y}
		% Graduations
		\pgfmathsetmacro{\pasth}{10/3}
		\foreach \newx in {0,\pasth,...,20}
		\draw[thick] (\newx,0.6) -- (\newx,-0.6) ;
		\fi
		\fi
		
		
		\pgfmathsetmacro{\pas}{10/\y}
		% Graduations
		\foreach \newx in {0,\pas,...,20}
		\draw[thick] (\newx,0.4) -- (\newx,-0.4) ;
		
		\draw[thick] (0,1) -- (0,-1) ;
		\draw[thick] (10,1) -- (10,-1) ;
		\draw[thick] (20,1) -- (20,-1) ;
		
		\foreach \newx/\label in {0/$0$,10/$1$,20/$2$}
		\draw (\newx,-0.4) node[below, yshift=-4] {\label}; %
	\end{tikzpicture}
\end{minipage}
\end{frame}

	
\end{document}