\documentclass[a4paper,11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}
\usepackage[a4paper,top=3.2cm,bottom=2cm,left=2cm,right=2cm]{geometry}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\usepackage{fancyhdr}
\usepackage{qrcode}
\usepackage[table]{xcolor}
\usepackage{amsmath,amssymb}
\usepackage{enumitem}
% Puces nettes (babel-french remplace sinon la puce par un tiret « – » peu pro).
% Vaut pour TOUTES les fiches qui importent ce module. AtBeginDocument pour
% passer après la personnalisation des listes faite par babel-french.
\AtBeginDocument{%
  \setlist[itemize]{leftmargin=1.8em,itemsep=0.5ex,topsep=0.4ex,parsep=0pt}%
  \setlist[itemize,1]{label=\textcolor{red!75!black}{\small\textbullet}}%
  \setlist[itemize,2]{label=\textcolor{red!75!black}{\scriptsize\textbullet}}%
}
% Titres compacts (gain de place vertical, fiches plus denses) — vaut pour tous.
\usepackage{titlesec}
\titlespacing*{\section}{0pt}{1.4ex}{0.6ex}
\titlespacing*{\subsection}{0pt}{1.0ex}{0.3ex}
% multicol : listes denses (calcul mental) sur 2 colonnes — neutre tant qu'il
% n'est pas utilisé, dispo pour tous les générateurs.
\usepackage{multicol}
\setlength{\columnsep}{1.5em}
% needspace : empêche un titre d'exercice de rester orphelin en bas de page
% (réserve quelques lignes ; sinon le titre passe à la page suivante avec sa
% liste). Neutre tant qu'il n'est pas appelé — dispo pour tous les générateurs.
\usepackage{needspace}
\usepackage{tikz}
\usetikzlibrary{decorations.text}

\usepackage{tgheros}
\pagestyle{fancy}
\fancyhf{}
\setlength{\headheight}{75pt}
\setlength{\headsep}{10pt}

\newcommand{\logowouf}{%
\begin{tikzpicture}[baseline={(current bounding box.center)},scale=0.55,
                    line cap=round,line join=round]
    \path[use as bounding box] (-2.20,-1.45) rectangle (2.20,2.20);
    \path[
        postaction={decorate},
        decoration={
            text along path,
            text={|\fontfamily{qhv}\bfseries\fontsize{9}{9}\selectfont|site2wouf.fr},
            text align={center},
            raise=0.03ex
        }
    ] (-1.29,0.48) arc[start angle=160,end angle=20,radius=1.29];
    \begin{scope}[xshift=-0.06cm]
        \fill[black] (-0.66,0.14) ellipse (0.21 and 0.31);
        \fill[black] ( 0.66,0.14) ellipse (0.21 and 0.31);
        \fill[black] (-0.23,0.49) ellipse (0.22 and 0.35);
        \fill[black] ( 0.23,0.49) ellipse (0.22 and 0.35);
        \fill[black]
            (0,-0.10)
            .. controls (-0.36,-0.02) and (-0.63,-0.24) .. (-0.58,-0.58)
            .. controls (-0.52,-0.93) and (-0.16,-1.12) .. (0,-0.90)
            .. controls (0.16,-1.12) and (0.52,-0.93) .. (0.58,-0.58)
            .. controls (0.63,-0.24) and (0.36,-0.02) .. (0,-0.10)
            -- cycle;
    \end{scope}
\end{tikzpicture}%
}

\newcommand{\titre}{Le programme de calcul}
\newcommand{\soustitre}{Probl\`eme --- Fiche n\textdegree 150}

\fancyhead[C]{%
\raisebox{4pt}{%
\begin{minipage}[c]{0.15\textwidth}
    \centering
    \logowouf
\end{minipage}
\begin{minipage}[c]{0.62\textwidth}
    \centering
    {\Large\bfseries \titre\par}
    {\small\color{gray} \soustitre}
\end{minipage}
\begin{minipage}[c]{0.21\textwidth}
    \centering
    \qrcode[height=1.5cm]{https://site2wouf.fr/programmes_calcul.php?x=150}\\[2pt]
    {\small\ttfamily\bfseries\color{red} PCAL0150}
\end{minipage}%
}
}

\begin{document}

\begin{center}
    \small Un programme de calcul à appliquer, un résultat à observer, et surtout une propriété à démontrer. Essayer sur deux ou trois nombres ne prouve rien : il faut appeler n le nombre choisi et mener le calcul avec la lettre.
\end{center}
\vspace{0.5em}
\sloppy
\needspace{5\baselineskip}
\subsection*{\textcolor{red}{Le programme de calcul}}
\noindent Voici un programme de calcul :\par\addvspace{0.35em}
\begin{enumerate}
  \item Choisis un nombre.
  \item Retranche le double du nombre choisi.
  \item Ajoute 8.
  \item Ajoute le triple du nombre choisi.
  \item Ajoute 15.
  \item Retranche le double du nombre choisi.
\end{enumerate}
\noindent Réponds aux trois questions, dans l'ordre : la première se fait de tête, la dernière demande une démonstration.\par\addvspace{0.45em}
\begin{enumerate}
  \item Applique ce programme au nombre \textbf{3}, puis au nombre \textbf{19}.
  \item Que remarques-tu ? Essaie avec un troisième nombre de ton choix.
  \item Démontre que le résultat est \textbf{toujours le même}, quel que soit le nombre choisi.
\end{enumerate}
\noindent Fais tes calculs au brouillon, puis rédige.\par\addvspace{0.35em}
\newpage
\section*{\textcolor{red}{Correction}}
\needspace{5\baselineskip}
\subsection*{\textcolor{red}{Le programme de calcul — Correction}}
\noindent \textbf{1.} On applique le programme pas à pas :\par\addvspace{0.35em}
\begin{center}
\renewcommand{\arraystretch}{1.35}
\begin{tabular}{|c|c|c|}
\hline
\cellcolor{blue!7}\bfseries Étape & \cellcolor{blue!7}\bfseries avec 3 & \cellcolor{blue!7}\bfseries avec 19 \\ \hline
Nombre choisi & 3 & 19 \\ \hline
Retranche le double du nombre choisi & \(-\)3 & \(-\)19 \\ \hline
Ajoute 8 & 5 & \(-\)11 \\ \hline
Ajoute le triple du nombre choisi & 14 & 46 \\ \hline
Ajoute 15 & 29 & 61 \\ \hline
Retranche le double du nombre choisi & 23 & 23 \\ \hline
\end{tabular}
\end{center}
\noindent \textbf{2. et 3.} Un tableau de nombres ne démontre rien : il faut refaire le calcul avec une lettre.\par\addvspace{0.35em}
\noindent On appelle \textbf{n} le nombre choisi et on refait le programme avec la lettre :\par\addvspace{0.35em}
\noindent\hspace{1.2em}Nombre choisi : \textbf{n}\par\addvspace{0.3em}
\noindent\hspace{1.2em}Retranche le double du nombre choisi : \textbf{\(-\)n}\par\addvspace{0.3em}
\noindent\hspace{1.2em}Ajoute 8 : \textbf{\(-\)n + 8}\par\addvspace{0.3em}
\noindent\hspace{1.2em}Ajoute le triple du nombre choisi : \textbf{2n + 8}\par\addvspace{0.3em}
\noindent\hspace{1.2em}Ajoute 15 : \textbf{2n + 23}\par\addvspace{0.3em}
\noindent\hspace{1.2em}Retranche le double du nombre choisi : \textbf{23}\par\addvspace{0.3em}
\noindent{\color{red!80!black}\bfseries \textbf{Le résultat est toujours 23}, quel que soit le nombre choisi.}\par\addvspace{0.4em}
\noindent L'expression finale est \textbf{23} : la lettre \textbf{n} a disparu. C'est exactement ce que veut dire « le résultat ne dépend pas du nombre choisi » — et aucun essai numérique, si nombreux soit-il, ne pouvait l'établir.\par\addvspace{0.35em}
\noindent{\color{green!45!black}\textbf{La règle du jeu.} Un exemple peut \textbf{infirmer} une affirmation — il suffit d'un contre-exemple. Il ne peut jamais la \textbf{confirmer} : pour cela il faut un calcul qui vaut pour tous les nombres à la fois, et c'est précisément à quoi sert la lettre n.}\par\addvspace{0.4em}
\end{document}
