\ProvidesClass{examen}
%%% Nouvelle classe pour les sujets d'examen, avec solution incorporée
%
\RequirePackage{ifthen}         % nécessaire toute de suite
%% variables locales
\newboolean{@solution}          % pour l'option
\setboolean{@solution}{true}   % initialisation
\newboolean{@documents}         % pour l'option
\setboolean{@documents}{false}  % initialisation
\newcounter{@lignes}            % pour les lignes de copie
%% autres paquetages
%% traitement des options
\DeclareOption{solution}{\setboolean{@solution}{true}}
\DeclareOption{documents}{\setboolean{@documents}{false}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions                 % toutes transmises à la classe article
\LoadClass[a4paper]{article}    % et a4paper est par défaut
\RequirePackage{%
graphicx,%
alltt,%
verbatim,%
pstricks,%
afterpage}
% environnement pour les solutions
\newenvironment{solution}
   {\ifthenelse{\boolean{@solution}}{\par\hrulefill}{\comment}}
   {\ifthenelse{\boolean{@solution}}{\par\dotfill}{\endcomment}}
% environnement pour ce qui n'apparaît que dans la copie
\newenvironment{copie}
   {\ifthenelse{\boolean{@solution}}{\comment}{}}
   {\ifthenelse{\boolean{@solution}}{\endcomment}{}}
% lignes sur la largeur de la feuille
\newcommand{\lignes}[1]{%
   \ifthenelse{\boolean{@solution}}{}{%
   \begin{center}
      \setcounter{@lignes}{0}
      \whiledo{\value{@lignes}<#1}{%
         \hrulefill\\[1.5ex]%
         \stepcounter{@lignes}}
   \end{center}}}
% en-tête de la copie ou du sujet
\newcommand{\DocumentsOuAutres}{Tous documents autorisés}
\newcommand{\ExamHead}[5]{
{\large
\begin{center}
\mbox{Universit\'{e} de Nice-Sophia Antipolis}\hfill\mbox{#1}\\
\mbox{#2}\\
\mbox{20#3--20#4}\\[0.5cm]
#5\\[1cm]
\end{center}
}

\ifthenelse{\boolean{@documents}}{\DocumentsOuAutres}{}
}
% en-tête général :
% 1. filière
% 2. module
% 3. année de début
% 4. année de fin
% 5. «partiel» ou non, mois et matière

\newcommand{\entete}[5]{%
   \ifthenelse{\boolean{@solution}}{}{%
      \vspace*{-9mm}
      \hspace*{-2cm}\begin{minipage}[b]{10cm}}
   \ExamHead{#1}{#2}{#3}{#4}{Examen #5}

   \ifthenelse{\boolean{@solution}}{}{%
      
      \vspace{\baselineskip}
      \hspace{1cm}\fbox{\parbox[t]{2cm}{Note :\\ \ \\ \ \\ \ }}

      \end{minipage}
      \hspace*{1cm}\pspolygon[fillstyle=solid,fillcolor=gray](0,8)(8,8)(8,0)%
             \rput{315}(3,3){\begin{tabular}[t]{l}
                \textbf{Nom :}\rule[-0.5ex]{6cm}{1pt}\\[2ex]
                \textbf{Pr\'enom :}\rule[-0.5ex]{5.5cm}{1pt}\\[2ex]
                \textbf{Groupe:}\rule[-0.5ex]{5.5cm}{1pt}\end{tabular}}

      \vspace*{1cm}

     
         
      }
   }

% Les commentaires dans les programmes
\newcommand{\ct}[1]{\{\textit{#1}\}}

% Les mots-clés dans les programmes
\newcommand{\mc}[1]{\textrm{\textbf{#1}}}

% remettre à zéro les compteurs
\newcommand{\raz}{
\newpage
\setcounter{page}{1}
\setcounter{footnote}{0}
\setcounter{section}{0}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
}

% un algorithme
\newcommand{\algo}[1]{\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
#1
\end{tabbing}}
\newenvironment{algoE}
        {
        \begin{tabbing}
        xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
        }
        {
        \end{tabbing}
        }


% un morceau d'algorithme encadré et centré
\newcommand{\algoCadre}[1]{\centerline{\fbox{\parbox[t]{1cm}{\algo{#1}\vspace{-\baselineskip}}}}}

% d\'efinition de macros utiles \`a SuperPascal

% SuperPascal
\newcommand{\supp}{\texttt{SuperPascal}}

% Signe de danger
\newcommand{\danger}{{\Huge
$\triangle$}\hspace{-13pt}\raisebox{3pt}{\large !}\hspace{11pt}}

% Signe de pointeur ou chapeau ^
\newcommand{\ptr}{\textbf{\^{}}}

% le dollar
\newcommand{\dollar}{\$}        %$

\endinput
