diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/progkeys/demo |
Initial commit
Diffstat (limited to 'macros/latex/contrib/progkeys/demo')
-rw-r--r-- | macros/latex/contrib/progkeys/demo/demo.tex | 72 | ||||
-rw-r--r-- | macros/latex/contrib/progkeys/demo/prog1.tex | 13 | ||||
-rw-r--r-- | macros/latex/contrib/progkeys/demo/prog2.tex | 13 | ||||
-rw-r--r-- | macros/latex/contrib/progkeys/demo/prog3.tex | 57 |
4 files changed, 155 insertions, 0 deletions
diff --git a/macros/latex/contrib/progkeys/demo/demo.tex b/macros/latex/contrib/progkeys/demo/demo.tex new file mode 100644 index 0000000000..712f4eb295 --- /dev/null +++ b/macros/latex/contrib/progkeys/demo/demo.tex @@ -0,0 +1,72 @@ +\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} diff --git a/macros/latex/contrib/progkeys/demo/prog1.tex b/macros/latex/contrib/progkeys/demo/prog1.tex new file mode 100644 index 0000000000..8fb99fe635 --- /dev/null +++ b/macros/latex/contrib/progkeys/demo/prog1.tex @@ -0,0 +1,13 @@ +\begin{programs}[0.5cm] +\PROCEDURE FORT\_TYPAGE \IS + \TYPE COULEURS \IS + (ROUGE, ORANGE, JAUNE, VERT, BLEU, INDIGO, VIOLET); + A : \ARRAY (1..5) \OF COULEURS + := (BLEU, ROUGE, VERT, JAUNE, VIOLET); + B : \ARRAY (1..5) \OF COULEURS; +\BEGIN + B(1) := A(1); \label{progFORTTYPAGEinstruction1} + B(1..5) := A(1..5); \label{progFORTTYPAGEinstruction2} + B := A; \label{progFORTTYPAGEinstruction3} +\END FORT\_TYPAGE; +\end{programs}
\ No newline at end of file diff --git a/macros/latex/contrib/progkeys/demo/prog2.tex b/macros/latex/contrib/progkeys/demo/prog2.tex new file mode 100644 index 0000000000..2fcbf9be32 --- /dev/null +++ b/macros/latex/contrib/progkeys/demo/prog2.tex @@ -0,0 +1,13 @@ +\begin{programs}[0.5cm] +\PROCEDURE FORT\_TYPAGE \IS + \TYPE COULEURS \IS + (ROUGE, ORANGE, JAUNE, VERT, BLEU, INDIGO, VIOLET); + \TYPE T \IS \ARRAY (INTEGER \RANGE <>) \OF COULEURS; + A : T(1..5) := (BLEU, ROUGE, VERT, JAUNE, VIOLET); + B : T(1..5); +\BEGIN + B(1) := A(1); + B(1..5) := A(1..5); + B := A; +\END FORT\_TYPAGE; +\end{programs}
\ No newline at end of file diff --git a/macros/latex/contrib/progkeys/demo/prog3.tex b/macros/latex/contrib/progkeys/demo/prog3.tex new file mode 100644 index 0000000000..df33fd7d26 --- /dev/null +++ b/macros/latex/contrib/progkeys/demo/prog3.tex @@ -0,0 +1,57 @@ +\begin{programs}* + \WITH TEXT\_IO; \USE TEXT\_IO; + \PROCEDURE NUMEROTATION + (FICHIER\_ENTREE : \IN STRING; + FICHIER\_SORTIE : \IN STRING := "") IS + \SUBTYPE LONGUEUR\_LIGNE \IS INTEGER + \RANGE 1..255; + FICHIER\_IN : FILE\_TYPE; + FICHIER\_OUT : FILE\_TYPE; + COMPTEUR : NATURAL := 0; + LIGNE : STRING (LONGUEUR\_LIGNE); + FIN\_DE\_LIGNE : NATURAL; + \BEGIN + OPEN (FILE => FICHIER\_IN, + MODE => IN\_FILE, + NAME => FICHIER\_ENTREE); + \IF FICHIER\_SORTIE = "" \THEN + CREATE (FILE => FICHIER\_OUT, + MODE => OUT\_FILE, + NAME => FICHIER\_ENTREE \& ".num"); + \ELSE + CREATE (FILE => FICHIER\_OUT, + MODE => OUT\_FILE, + NAME => FICHIER\_SORTIE); + \END \IF; + RESET (FICHIER\_IN); + \WHILE \NOT END\_OF\_FILE (FICHIER\_IN) \LOOP + GET\_LINE (FILE => FICHIER\_IN, + ITEM => LIGNE, + LAST => FIN\_DE\_LIGNE); + COMPTEUR := COMPTEUR + 1; + PUT\_LINE (FILE => FICHIER\_OUT, + ITEM => NATURAL'IMAGE (COMPTEUR) \& + " " \& LIGNE (1..FIN\_DE\_LIGNE)); + \END \LOOP; + CLOSE (FILE => FICHIER\_IN); + CLOSE (FILE => FICHIER\_OUT); + \END NUMEROTATION; + + \WITH TEXT\_IO; \USE TEXT\_IO; + \WITH NUMEROTATION; + \PROCEDURE TEST\_NUMEROTATION \IS + CARACTERES : NATURAL; + NOM\_FICHIER : STRING (1..50); + \BEGIN + PUT ("quel fichier voulez-vous "); + PUT ("numeroter ? "); + GET\_LINE (NOM\_FICHIER,CARACTERES); + NUMEROTATION (NOM\_FICHIER (1..CARACTERES)); + PUT\_LINE ("C'est fini"); + \END TEST\_NUMEROTATION; +\end{programs} + +% Local Variables: +% mode: latex +% TeX-master: t +% End: |