summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/progkeys/demo
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/progkeys/demo
Initial commit
Diffstat (limited to 'macros/latex/contrib/progkeys/demo')
-rw-r--r--macros/latex/contrib/progkeys/demo/demo.tex72
-rw-r--r--macros/latex/contrib/progkeys/demo/prog1.tex13
-rw-r--r--macros/latex/contrib/progkeys/demo/prog2.tex13
-rw-r--r--macros/latex/contrib/progkeys/demo/prog3.tex57
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: