Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
.<br />
•<br />
Cette procédure Pascal permet de<br />
saisir et de modifier un tableau de<br />
chiffres avec le nombre de lignes et<br />
de colonnes et tous les libellés horizontaux<br />
et verticaux que ['on désire.<br />
Cette saisie peut s'intégrer à n'importe<br />
quel programme susceptible<br />
d'en tirer profit (statistiques, geslion<br />
... ), soit généralement toute application<br />
simi<strong>la</strong>ire à Visicalc, mais réc<strong>la</strong>mant<br />
un traitement précis<br />
(régression, analyse factorielle, alleul<br />
matriciel, saisies de mouvements de<br />
stock. .. J.<br />
Le processus de saisie/modification<br />
ressemble à celui de Visicalc. On dép<strong>la</strong>ce<br />
le curseur d'une case à une<br />
autre dans les quatre directions el<br />
['écran est une fenêtre qui suit le curseur<br />
sur le tableau. Les "flèches"<br />
permettent le dép<strong>la</strong>cement el <strong>la</strong> barre<br />
d'espacement sert de bascule entre le<br />
sens vertical et le sens horizontaL<br />
Toutefois, contrairement à Visicalc, <strong>la</strong><br />
fenêtre passe "brutalement" d'une<br />
page à une autre.<br />
Intégration<br />
à d'autres programmes<br />
Pour <strong>la</strong> réaliser, il suffit de changer<br />
les CONST MAXUGTB (nombre de<br />
lignes) et MAXCOLTB (nombre de<br />
colonnes) en tête de programme et<br />
de modifier éventuellement le type<br />
des nombres du tableau T AB. Les<br />
pa.ramètres à fournir pour l'appel de<br />
<strong>la</strong> saisie sont :<br />
Nombre maximum de colonnes :<br />
MAXCOL (inférieur ou égal à MAX<br />
COLTS)<br />
Nombre maximum de lignes : MAX<br />
LlG (inférieur ou égal à MAXLIGTB)<br />
Nombre de colonnes par page :<br />
PASCOl<br />
Nombre de lignes par page : PASLIG<br />
Largeur des libellés verticaux : LAR<br />
LlBV<br />
Largeur des colonnes : LARGCOL<br />
Tableau des libellés horizontaux : LH<br />
Tableau des libellés verticaux : LV<br />
Tableau d'entiers (long integer) : TB<br />
(à saisir et modifier). N'oubliez pas<br />
de remettre ce tableau à zéro en cas<br />
de premier remplissage, ce que fait<br />
INlT dans mon programme.<br />
<strong>Pom's</strong> n" 9<br />
Saisie multipage en Pascal<br />
A noter qu'il faut que MAXCOL soit<br />
un multiple de PASCOL et MAXLIG<br />
un multiple de PASUG.<br />
Remarques sur les<br />
procédures habituelles<br />
J'ai utilisé les procédures habituelles<br />
déjà publiées par <strong>Pom's</strong>, auxquelles<br />
j'ai ajouté :<br />
• PROCEDURE EXPlO(P INTEGER;<br />
VAR RESJNT);<br />
Retoume RES qui a pour valeur 10 à<br />
<strong>la</strong> puissance P.<br />
• PROCEDURE VAL(S:STRING;VAR<br />
VALEUR INTI;<br />
Transforme une chaîne en un nombre<br />
entier (même fonction que le<br />
VAL de l'Applesoftl. Attention, il n'y<br />
a pas de contrôle sur l'appartenance<br />
de C à [0.:9J.<br />
J'aurais préféré utiliser des fonctions<br />
à <strong>la</strong> p<strong>la</strong>ce de ces deux procédures,<br />
ERGUN - Mode Inverse<br />
Sortie pa, GRAFTEXT (p. 7)<br />
Michel Lafon<br />
mais elles m'ont refusé des INTE<br />
GER [N] comme résultaI.<br />
• PROCEDURE EMPIlE(CCHAR;<br />
VAR S5TRING);<br />
Empile le caractère C dans <strong>la</strong> chaîne<br />
S.<br />
• PROCEDURE SWITCH(VAR 5<br />
BOOlEANI;<br />
Met S à "!rue" si S est "false" et réciproquement.<br />
Description des<br />
différentes procédures<br />
PRlNlVERT : affiche < ou 6. suivant<br />
que les flèches assurent un dép<strong>la</strong>cement<br />
horizontal ou vertical.<br />
SAISINT(lMAXINTEGER; VAR N;<br />
INTEGER;VAR CAR:CHAR) : fait <strong>la</strong><br />
saisie d'un entier et contrôle qu'il ne<br />
dépasse pas <strong>la</strong> <strong>la</strong>rgeur des colonnes.<br />
Retourne cet entier (N) et CAR qui<br />
contient <strong>la</strong> touche tapée après le<br />
nombre (flèches, espace, ou F).<br />
SAISIPAGE(PREMCOl,DERCOl,<br />
PREMLIG,DERLIG;lNTEGER) : procède<br />
à <strong>la</strong> saisie de <strong>la</strong> page commençant<br />
à <strong>la</strong> colonne PREMCOL, ligne<br />
PREMUG, et finissant à <strong>la</strong> colonne<br />
DERCOL, ligne DERLIG. Cette procédure<br />
appelle successivement<br />
SAUTE et SAlSINT. On en sort si<br />
l'on touche un bord ou si l'on appuie<br />
sur F.<br />
CADRE : affiche le cadre de saisie et<br />
ses libellés horizontaux et verticaux.<br />
SAUTE : aiguille sur BAS, HAUT,<br />
GAUCHE, DROITE. Bascule également<br />
VERT si on a appuyé sur "espace".<br />
BAS,HAUT,GAUCHE,DROITE : modifient<br />
X et Y, paramètres utilisés<br />
dans SAlS1PAGE pour positionner le<br />
curseur, ainsi que les numéros de<br />
lignes et de colonnes (NL et NC).<br />
PAGEGAUCHE à PAGEBAS : modifient<br />
les paramètres PREMLlG, DER<br />
LlG, PREMCOL et DERCOL. Informent<br />
également si l'on a touché l'un<br />
des bords du tableau (BORD est mis<br />
à "!rue").<br />
CORPS SAISIMUL TIPAGE : appelle<br />
les autres - procédures jusqu'à ce<br />
qu'on ait appuyé sur F.<br />
41