\ifx\documentclass\undefined \documentstyle[fr,programs,keywords]{article} \else \documentclass{article} \usepackage{CheckForDef} \usepackage{fr} \usepackage{programs} \usepackage{keywords} \fi \def\p#1{{\bf{}#1}} \def\wideoutput{% \setlength{\topmargin}{-1.54cm}% \setlength{\headsep}{0cm}% \setlength{\textwidth}{17.5cm}% \setlength{\textheight}{25.5cm}% \setlength{\oddsidemargin}{-1cm}% \setlength{\evensidemargin}{-1cm}} \wideoutput \InBodyLeftNumberLine \ProgKeywords \begin{document} Dans le programme suivant, quel est le type de \p{A}? celui de~\p{B}? \p{A} et~\p{B} ont-ils m\^eme type? Les instructions des lignes~\ref{progFORTTYPAGEinstruction1}--\ref{progFORTTYPAGEinstruction3} sont-elles correctes? Pourquoi? \input{prog1.tex} La variable \p{A} est d'un type anonyme tableau \`a une dimension de \p{COULEURS}. Il en est de m\^eme pour \p{B}. Bien que la description des deux types soit identique, ils sont diff\'erents. L'instruction de la ligne~\ref{progFORTTYPAGEinstruction1} est correcte (affectation d'une valeur de type \p{COULEURS} dans une variable du m\^eme type). Les instructions des lignes~\ref{progFORTTYPAGEinstruction2} et~\ref{progFORTTYPAGEinstruction3} sont ill\'egales (les types sont diff\'erents). Par contre, si l'on avait \'ecrit le programme comme suit \NewKeyword{\BEGIN}{this is the beginning}[ceci est le d\'ebut] \FUAlgoKeywords \input{prog2.tex} \noindent% il n'y aurait pas eu d'erreur. Dans ce cas, en effet, \p{A} et \p{B} appartiennent au m\^eme sous-type initial, et un contr\^ole sera mis en place pour v\'erifier les bornes des intervalles \`a l'ex\'ecution. \bigskip Un exercice de num\'erotation: \NewKeyword{\END}{this IS the real end} \AlgoKeywords \input{prog3.tex} \end{document}