La HP40G
et la Topo

présentation,
communication, téléchargement,
installation,
TOPO, Dossier, Entrer
1 pt, Lister tout, Lister
1 pt, Supprimer, Visualiser ,
Retour, la suite.
I) Présentation
Hewlett Packard a sorti, en juin
2000, voici déjà un an, une petite nouvelle, adressée aux élèves de 3ème
et aux lycéens. Voulant être percutant, commercialement, auprès de ce public,
HP a choisi le mode algébrique et
abandonné le mode reposant sur une gestion de la pile, particulière, qui
rebutait un certain nombre d'utilisateurs. HP a donc mis, à disposition, 256Ko
de mémoires "utilisateurs" (la 48 n'en avait que 32
puis 128), le mode graphique, bien sûr,
des fonctions classiques trouvées aussi sur les calculatrices de marques
concurrentes puis des particulières, bien utiles.
Tout ceci au prix attractif de 690
FF TTC avec le câble de connexion au PC.
Quand j'ai entrepris d'écrire le
programme "topo" pour la 48G et la 49G, il y a de cela, environ, 5
ans, la 48G existait depuis 5-6 ans, déjà. Une calculatrice vit environ une
dizaine d'années. La HP48G est donc morte, vive la 40G! J'ai donc choisi cette
dernière car son prix la rend accessible aux jeunes entrant en BEP et est,
aussi, adaptée aux problèmes posés à des BTS, y compris en sciences. J'ai
donc écrit une première version des programmes "topo" afin qu'ils
soient utilisables pendant presque 10 ans sans avoir à recommencer.
Vous trouverez donc, ci-dessous:
- l'adresse internet Hewlett Packard pour télécharger le logiciel
de communication entre la HP40G et le PC,
- le programme "topo" à télécharger puis installer sur
votre HP40G,
- un mode d'emploi de ce programme ainsi que les listings commentés,
- puis un fichier exemple.
II) La communication
entre PC et HP40G

Le site http://www.hp.com/calculators/france/
vous permet d'accéder à un fichier compressé comprenant l'installation du
logiciel de communication entre votre PC et votre HP40G.
Pour cela, accéder d'abord aux détails sur la HP40G puis au téléchargement
du logiciel en français intitulé "hpcomm40.zip" de 1.33Mo. Vous
aurez, de plus, des compléments sur cette calculatrice.
Vous pouvez aussi le télécharger
directement de ce site et pour se faire,
.
L'installation est des plus simples
en suivant, à l'enveloppe, les instructions. Vous devriez, en cliquant sur
, obtenir:

III) Le téléchargement
des programmes "topo"

Là, encore, il vous suffit de
pour télécharger les programmes "topo" adaptés à la HP40G. Ils
sont compressés dans un fichier intitulé "HP40G.zip". Il vous suffit
de décompresser dans un répertoire que je vous conseille dédié à la HP40G
comme par exemple C:\HP40G\TOPO\HP40G.zip.
Vous pouvez aussi télécharger un
petit fichier "HP40G.doc" contenant une suite d'exercices destinée à
vous faire manipuler tous les outils programmés mis à votre disposition dans
la HP40G. Vous pourrez, ainsi et aussi, vous faire une idée de leur
fonctionnalité. Comme d'habitude,

IV) L'installation
des programmes "topo"

La
décompression du fichier "HP40G.zip" fait apparaître cette liste de
fichiers:
-l'un est spécial et permet de définir
un curseur (HP39DIR.CUR) lors des transferts. Il n'est d'aucune utilité pour la
résolution des problèmes "topo". Il n'a pas à être transféré
dans la HP.
- celui, nommé HP39DIR.000, contient la liste et le type des fichiers contenus
dans le même répertoire. Il ne faut donc pas le dissocier des fichiers
programmes. Son contenu est aisément éditable sous n'importe quel éditeur. Il
n'est pas, non plus à transférer dans votre HP40G. Voici, dévoilé, celui,
ci-dessus:
HP39AscA D 12 CERCAP00.0006 CERCAPD
12 VERIMAT3.0008 VERIMAT3D 12 TOPO0000.0004 TOPOD 12 DOSS0000.0004 DOSSD 12
CALC0000.0004 CALCD 12 TRIA0000.0004 TRIAD 12 STLI0000.0004 STLID 12
ENT10000.0004 ENT1D 12 LISTT000.0005 LISTTD 12 LIST1000.0005 LIST1D 12
SUP10000.0004 SUP1D 12 VISU0000.0004 VISUD 12 VERIFMAT.0008 VERIFMATD 12
CHXY0000.0004 CHXYD 12 RVP00000.0003 RVPD 12 PVR00000.0003 PVRD 12 SPCR0000.0004
SPCRD 12 IDD00000.0003 IDDD 12 ICC00000.0003 ICCD 12 IDC00000.0003 IDCD 12
CHDEBA00.0006 CHDEBAD 12 DIPTD000.0005 DIPTDD 12 RAYCEN00.0006 RAYCEND 12
REL30000.0004 REL3D 12 POLYG000.0005 POLYGD 12 RACIR000.0005 RACIRD 12
MIL00000.0003 MILD 12 DIVSU000.0005 DIVSUD 12 CLITO000.0005 CLITO
En
fait, la description d'un fichier est caractérisée par:
D 12 PVR00000.0003 PVR
Le D caractérise le type du fichier, ici un programme, le E, une liste, le C,
une note et le B, une équation.
Le 3 caractérise le nombre de lettres du nom du fichier. Il est complété à 8
par des zéros (0). Le nom de l'extension est "000".
Vous pouvez donc modifier, à volonté, ce fichier nécessaire à la gestion des
transferts, en ajoutant ou retranchant des séquences similaires à celle décrite
ci-dessus.
Quand vous cliquez sur la touche
, c'est ce fichier qui est lu pour que l'affichage, ci-contre, soit possible.
Après
avoir installé, sur votre PC, le logiciel de transfert entre PC et HP40G, vous
devriez voir le logo, ci-contre, sur votre bureau. Il faut donc activer ce
logiciel afin que la communication soit possible. Choisissez le répertoire où
vous avez décompressé les programmes "topo". Ça, c'est la
communication vue du PC.
Voyons celle-ci vue de la HP40G.
Appuyez successivement sur
et sur
.
Vous
vous retrouvez dans l'environnement "programmes". Les touches blanches
du menu vous permettent d'accéder à la fonction qui nous intéresse, pour
l'instant, celle de recevoir (RECV) des programmes.
Activez la, ce qui vous donnera accès au catalogue, catalogue généré par le
fichier "HP39DIR.000". A l'aide des flèches de déplacement du
curseur,
et
, choisissez le programme à transférer puis patientez.
Le processus devra se répéter
autant de fois qu'il y a de procédures "topo" soit 28 à ce jour. Bon
courage!
V) Le mode
d'emploi et les fonctionnalités

Contrairement aux procédures écrites
pour la HP48 ou 49G, celles, pour la 40G, sont indépendantes. Vous pourriez
donc, dans l'environnement "programmes" sélectionner la procédure
qui vous intéresse et l'activer en appuyant sur (RUN). Toutefois, pour une
bonne compréhension, nous suivrons l'arborescence logique, copie conforme de
celle écrite pour la HP48G avec, en plus, quelques améliorations.
"TOPO",
étant sélectionné, activez la touche menu correspondante à (RUN).
Le listing est le suivant avec les commentaires en italique.
Chaque commande est séparée de la suivante par ":"
HP39AscD 4 TOPO
Entête de la procédure générée par la HP40G ou par
vous en respectant le format
3\|>Angle: Initialise
le mode angulaire en gons
4\|>Digits: Initialise
le nombre de décimales affichées à 4
2\|>Format: Le
format des nombres affichés est standard
1\|>A:CHOOSE
A;"CHOIX";"Dossier";"Calculs";"Triangle";"ST
libre";"Clothoïde";"Fin":
Permet l'affichage des différentes fonctionnalités en
affectant la valeur 1 à la variable A, ce qui impose le curseur en ligne 1,
l'affichage du nom de la fenêtre, ici "CHOIX" puis les différentes
fonctionnalités. La valeur de la variable A correspond au n° de ligne sélectionnée
par l'utilisateur.
IF A==1 THEN RUN "DOSS": BREAK:END:
Alternative activant la procédure "DOSS" si
A vaut 1. Le principe est le même ci-dessous avec A=2 pour CALC, etc, etc.
IF A==2 THEN RUN "CALC": BREAK:END:
IF A==3 THEN RUN "TRIA": BREAK:END:
IF A==4 THEN RUN "STLI": BREAK:END:
IF A==5 THEN RUN "CLITO": BREAK:END:
IF A==6 THEN BREAK:END:
Vous accédez à 6 fonctionnalités
compréhensibles par tout topographe.
- (Dossier) concerne la gestion du chantier,
- (Calculs) concerne les calculs usuels,
- (Triangle), la résolution des 4 cas usuels,
- (St libre), la station libre,
- (Clothoïde), la génération de la table de Klaus,
- puis un moyen de quitter le programme "topo".
Vous pourriez suivre le mode
d'emploi de la HP48G pour la compréhension, c'est presque le même. Néanmoins
le petit fichier "HP40G.doc" pourra vous aider un peu plus dans le détail
avec ce qui suit.
5.1) La
gestion du dossier

J'ai bien dit "du
dossier". En effet, on ne peut gérer qu'un seul dossier à la fois qui
sera contenu dans la liste 1 (L1).
Cette gestion se fait hors et dans le programme "topo". En particulier
si vous recommencez un dossier nouveau, il vous faut accéder à l'environnement
des listes en tapant sur
puis sur
. (Pour cela, il faut être sorti du programme "TOPO".)
Mettez
le curseur sur L1 puis appuyez sur
. Une confirmation est demandée puis la taille (size) est réduite à 0. Vous
pouvez à nouveau accéder à la gestion du dossier du programme "TOPO"
avec, en ligne, le fichier "HP40G.doc". Si vous ne suivez pas cette
procédure, les dossiers différents se cumuleront dans cette même liste. Pour
l'instant, je ne sais pas faire autrement.
L'activation
de "Dossier" fait apparaître les fonctionnalité nécessaire à sa
gestion. La procédure appelée est "DOSS".
Le listing est le suivant avec les commentaires en italique:
HP39AscD 4 DOSS Entête de la procédure
générée par la HP40G
1\|>A:CHOOSE A;"CHOIX";"Entrer 1 pt";"Lister
tout";"Lister 1pt";
"Supprimer 1 pt";"Visualiser";"Retour":
Permet l'affichage des différentes fonctionnalités en
affectant la valeur 1 à la variable A, ce qui impose le curseur en ligne 1,
l'affichage du nom de la fenêtre, ici "CHOIX" puis les différentes
fonctionnalités. La valeur de la variable A correspond au n° de ligne sélectionnée
par l'utilisateur.
IF A==1 THEN
RUN ENT1:BREAK:
END: Alternative
activant la procédure "ENT1" si A vaut 1. Le principe est le même
ci-dessous.
IF A==2 THEN
RUN LISTT:BREAK:
END:
IF A==3 THEN
RUN LIST1:BREAK:
END:
IF A==4 THEN
RUN SUP1:BREAK:
END:
IF A==5 THEN
RUN VISU:BREAK:
END:
IF A==6 THEN
RUN TOPO:
END:
5.1.1)
Entrer un point: 
La fonctionnalité est de mémoriser
dans la liste L1 un point identifié par son matricule et localisé par son
abscisse et son ordonnée.
Tout topographe s'attend donc à une demande de matricule. Le n° 1 est proposé
par défaut.
Une vérification est faite
pour éviter les doublons. Si le matricule existe déjà dans le fichier, un
beep se fait entendre (c'est marrant en classe) et le masque de saisie se réaffiche.

Le masque de saisie de l'abscisse
apparaît avec 500 par défaut.

Puis celui de l'ordonnée surgit
avec 1000 par défaut.

Dans l'exemple, ci-dessus, le détail
7 (550.369 / 1552.469) a été mémorisé.
Voici le listing de la procédure "ENT1".
HP39AscD 4 ENT1
INPUT N;"Ajouter POINT";"Matricule";"Entrer No";1:
Affichage du masque et affectation à la variable N de
la valeur par défaut 1 ou de celle entrée par l'utilisateur.
RUN VERIFMAT: Appel
de la procédure "VERIFMAT" contrôlant le doublon.
INPUT X;"Ajouter POINT";"Abscisse";"Entrer E";500:
INPUT Y;"Ajouter POINT";"Ordonnee";"Entrer
N";1000:
{N,X,Y}\|>L0: Affectation des
valeurs des 3 variables N, X, Y à la liste L0
CONCAT(L1,L0)\|>L1: Concaténation
(somme) de la liste L0 à la liste L1
RUN DOSS: Retour
à la procédure "DOSS"
Voici aussi celui de "VERIFMAT":
Le décalage constaté,
ci-dessous, permet de distinguer le contenu des différentes boites alternatives
ou répétitives.
HP39AscD 8 VERIFMAT
Alternative permettant de shunter l'analyse de la présence
du matricule si le dossier est vide.
IF SIZE(L1)\=/0 THEN
La variable V, prenant la valeur (-1) ou
(0), sert à gérer la répétitive de demande du matricule.
-1\|>V:
Recherche, dans la liste
L1, d'un matricule existant éventuel. S'il existe, alors V est mis à 0, valeur
permettant de rentrer dans la répétitive.
FOR I=1 TO SIZE(L1)-2 STEP 3;
IF L1(I) == N THEN 0\|>V : BEEP
500;0.1:END:
END:
Tant que l'utilisateur mettra un matricule
existant, alors il lui sera demandé de rectifier.
WHILE V==0 REPEAT
-1\|>V: INPUT N;"Ajouter
POINT";"Matricule";"Entrer No";1:
FOR I=1 TO SIZE(L1)-2 STEP 3;
IF L1(I) == N
THEN 0\|>V : BEEP 500;0.1:END:
END:
END:
END:
5.1.2) Lister
tout

Cet outil permet d'afficher,
successivement, le matricule, l'abscisse et l'ordonnée de chaque point contenu
dans la liste L1.

L'appui sur la touche menu (OK) ou
la touche (ENTER) permet l'affichage du point suivant. On revient aux outils de
gestion du dossier à la fin du fichier.
Le nom de la procédure est "LISTT".
En voici le listing.
HP39AscD 5 LISTT
Efface l'écran
CLEAR:
Alternative éliminant l'affichage dans le cas d'une
liste L1 vide.
IF SIZE(L1)\=/0 THEN
Répétitive d'affichage, le nombre
d'affichage = la taille de la liste L1 / 3
FOR I=1 TO SIZE(L1)-2 STEP 3;
0\|>Digits:
Affichage en
ligne 1, du texte "Matricule:" et de la valeur de la variable L1(I), I
étant la variable compteur.
DISP 1;"Matricule: "L1(I):
4\|>Digits:
DISP 2;"E= "L1(I+1):
DISP 3;"N= "L1(I+2):FREEZE:
Gel de l'affichage jusqu'à ce que l'utilisateur appuie
sur une touche.
END:
ELSE MSGBOX "PAS DE POINT": Apparition
d'une boite message qui disparait avec l'appui sur (ENTER)
END:
RUN DOSS:
5.1.3) Lister
1 point:

Affiche les coordonnées d'un point
identifié par son matricule.

Le nom de la procédure est "LIST1".
En voici le listing.
HP39AscD 5 LIST1
CLEAR:
INPUT N;"Lister POINT";"Matricule";"Entrer No";1:
O\|>V: La
variable V sert de valeur de vérité
IF SIZE(L1)\=/0 THEN
FOR I=1 TO SIZE(L1)-2 STEP 3;
IF N==L1(I) THEN
0\|>Digits:
DISP
1;"Matricule: "L1(I):
4\|>Digits:
DISP
2;"E= "L1(I+1):
DISP
3;"N= "L1(I+2):FREEZE:
-1\|>V:
END:
END:
IF V==0 THEN MSGBOX "PAS DE POINT": END:
ELSE MSGBOX "PAS DE POINT":
END:
RUN DOSS:
5.1.4) Supprimer
1 point:

Supprime, vous vous en sauriez douté, le
matricule, quand il existe, l'abscisse et l'ordonnée correspondantes de la
liste L1.

Le nom de la procédure est "SUP1".
En voici le listing.
HP39AscD 4 SUP1
CLEAR:
INPUT N;"Supprimer POINT";"Matricule";"Entrer
No";1:
O\|>V:
IF SIZE(L1)\=/0 THEN
P est la variable repérant le rang
du matricule dans la liste L1
POS(L1,N)\|>P:
IF P==0 THEN
MSGBOX "PAS DE POINT":
ELSE
SIZE(L1)\|>N:(N-2-P)/3\|>M:
La variable N n'est plus à ce niveau le matricule mais la taille de L1
Alternative
traitant la suppression du point quand il est en dernière position dans la
liste L1
IF P==N-2
THEN
Répétitive recopiant L1 dans L2 moins les 3 derniers
éléments correspondants aux matricule, abscisse et ordonnée du point à
supprimer qui se trouve en dernière position.
FOR Z=1 TO N-3;
IF Z==1 THEN
{L1(1)}\|>L2:
ELSE
{L1(Z)}\|>L0:
CONCAT(L2,L0)\|>L2:
END:
END:
Répétitive recopiant L2 dans L1 .
FOR Z=1 TO SIZE(L2);
IF Z==1 THEN
{L2(1)}\|>L1:
ELSE
{L2(Z)}\|>L0:
CONCAT(L1,L0)\|>L1:
END:
END:
ELSE
1\|>Z:
Répétitive décalant successivement la triplette
(matricule, abscisse, ordonnée) de toutes les positions supérieures à celle
repérée du point à supprimer.
WHILE Z\<=M REPEAT
L1(P+3*Z)\|>L1(P+3*(Z-1)):
L1(P+3*Z+1)\|>L1(P+3*(Z-1)+1):
L1(P+3*Z+2)\|>L1(P+3*(Z-1)+2):
1+Z\|>Z:
END:
1\|>Z:N-3\|>N:{L1(1)}\|>L2:2\|>Z:
Les 2 répétitives suivantes sont nécessaires à la
suppression des 3 derniers rangs de L1. C'est la même stratégie que ci-dessus.
WHILE Z\<=N REPEAT
{L1(Z)}\|>L0:
CONCAT(L2,L0)\|>L2:
1+Z\|>Z:
END:
FOR Z=1 TO N;
IF Z==1 THEN
{L2(Z)}\|>L1:
ELSE
{L2(Z)}\|>L0:
CONCAT(L1,L0)\|>L1:
END:
END:
END:
END:
ELSE
MSGBOX "PAS DE POINT":
END:
RUN DOSS:
Vous vous apercevrez, en utilisant cette procédure,
qu'elle est longue à s'exécuter. Il est un moyen plus simple en dehors du
programme "topo".
Mettez vous dans l'environnement des listes :
, vous obtenez :
, en appuyant sur la touche menu (EDIT), vous faites apparaître :
, sélectionnez le point 1,
, appuyez sur la touche
,
, à nouveau sur
,
et
encore une fois,
.
La liste L1 a bien été tronquée des 3 éléments
supprimés.

5.1.5) Visualiser

Je ne gère pas encore les affichages graphiques
sur la HP40G. Ce sera pour la version deux du programme car faire apparaître un
petit chantier à l'écran permet d'apprécier l'ordre de grandeur. Cette
fonction est en usage sur la 48G et la 49G.
5.1.6) Retour

Cette fonction renvoie le masque de la procédure
(TOPO).
5.1.7) La suite

Le mode d'emploi des outils de calculs est présenté
à la page
suivante.