03.07.2013 Views

Magazine Pom's : la collection

Magazine Pom's : la collection

Magazine Pom's : la collection

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!