Vos recrutements informatiques

700 000 développeurs, chefs de projets, ingénieurs, informaticiens...

Contactez notre équipe spécialiste en recrutement

Developpez.com - Pascal
X

Choisissez d'abord la catégorieensuite la rubrique :

 

CHAPITRE XXII : Une bonne interface MS-DOS

Par Hugo ETIEVANT

Lors de la création d'un programme informatique, l'élaboration de l'interface utilisateur est très critique, demande du code et de la patience. Outre les procédures systématiques de gestion des erreurs et de contrôle des entrées, la présentation des données aussi bien en mode MS-DOS qu'en mode graphique conditionne bien souvent la qualité de la difusion d'un programme. Il est vrai qu'en règle générale, un programme écrit en Pascal est surtout destiné à une utilisation personnelle mais dans le cas d'une distribution plus large (internet, amis...) il est capital de présenter à l'utilisateur les données de façon ordonnée, aérée et claire. Car quand dans un programme des informations apparaissent à l'écran et qu'on ne sait pas d'où elles viennent, ni comment intervenir sur son déroulement, l'utilisateur est frustré et l'abandonne.
Il est donc nécessaire, ne serait-ce que pour être à l'aise devant son écran, de construire une interface simple et claire.

Doter son programme d'une inferface efficace commence déjà par lui donner nom ou du moins un descriptif de l'objectif ou du travail qu'il doit produire ainsi que des diverses opérations qu'il est capable de réaliser. En générale, cela commence par l'affichage d'un menu du type suivant :

    - GESTION D'UN TABLEAU -

[A] - Abandon
[B] - Création du tableau
[C] - Affichage du tableau
[D] - Modification d'un élément du tableau
[E] - Ajout d'un élément à la fin du tableau
[F] - Suppression d'un élément du tableau
[G] - Insertion d'un élément dans le tableau
[H] - Recherche du plus petit élément dans le tableau
[I] - Recherche du plus grand élément dans le tableau

Entrez votre choix au clavier : _

Il faut être capable de gérer correctement l'entrée de l'utilisateur pour être sûr qu'il entre un paramètre correct :
Syntaxe :

Procedure menu(Var reponse : Char) ;
Begin
Repeat
ClrScr;
WriteLn('
[A] - Abandon') ;
WriteLn('
[B] - Création du tableau') ;
WriteLn('
[C] - Affichage du tableau') ;
WriteLn('
[D] - Modification d''un élément du tableau') ;
WriteLn('
[E] - Ajout d''un élément à la fin du tableau') ;
WriteLn('
[F] - Suppression d''un élément du tableau') ;
WriteLn('
[G] - Insertion d''un élément dans le tableau');
WriteLn('
[H] - Recherche du plus petit élément dans le tableau') ;
WriteLn('
[I] - Recherche du plus grand élément dans le tableau') ;
WriteLn;
Write('
Entrez votre choix au clavier : ');
ReadLn(
reponse) ;
Until UpCase(
reponse) In ['A'..'I'] ;
End ;

Ensuite, il faut pouvoir détailler les opération et leurs résultats afin d'offir le maximum d'information à l'utilisateur :

[H] - RECHERCHE DU PLUS PETIT ELEMENT DU TABLEAU

Résultat de la recherche :
                -   rang : 27
                - valeur : -213

Recherche terminée, tapez sur <ENTREE> pour retourner au menu.

La recherche d'erreur fait également parti des prorogatives du programmeur, c'est-à-dire que le programme doit être capable de repérer des entrées éronnées, d'expliquer à l'utilsateur ce qui ne vas pas, pourquoi ça ne vas pas et lui permettre de recommencer sa saisie.
Syntaxe :

Procedure modifier(Var tab1:tableau; n:Integer) ;
Var
rang,valeur : Integer ;
    
test : Boolean ;
Begin
ClrScr ;
WriteLn('
[D] - MODIFICATION D'UN ELEMENT DU TABLEAU') ;
If
n>=1 Then
Begin
     Repeat
     Write('
Entrez le rang [1,',n,'] de l''élément à modifier : ') ;
     ReadLn(
rang) ;
     
test := (rang>0) And (rang<=n) ;
     Until
test ;
Write('
Entrez la nouvelle valeur de l''élément : ') ;
ReadLn(
valeur) ;
tab1[rang] := valeur ;
WriteLn('
Modification terminée, tapez sur ENTREE pour retourner au menu.') ;
End
Else WriteLn('
Aucun élément dans le tableau.') ;
ReadLn ;
End ;

Très souvent le tableau est la forme la plus appropriée pour présenter des données à l'écran texte, il est donc souhaite de construire des tableau multi-cardes afin d'avoir à l'écran plusieurs informations simultanément comme le montre l'exemple suivant :

Exemple sous dos d'un tableau de cractères ASCII

Ici, les caractères spéciaux de la table ASCII (pour MS-DOS) ont été remplacés par des tirets ou des I car non affichables sous Windows.

Program exemple28 ;

Uses Crt ;

Var
i,j : Integer;
    
x : Real ;
    
test : Boolean ;

Procedure
menu(i : Integer; test : Boolean) ;
Begin
WriteLn('
----------------------------------------------------------------') ;
WriteLn('
I      SuperCalculator      2.5       I') ;
WriteLn('
----------------------------------------------------------------') ;
If
test Then WriteLn('Faire afficher le menu principal...')
Else
Begin
     WriteLn('
----------------------------------------------------------------') ;
     WriteLn('
I   Module : CALCUL DE FONCTION   I  Page : ',i,' I') ;
     WriteLn('
----------------------------------------------------------------') ;
     WriteLn('
I       Valeur de X       I       Valeur de Y=f(X)       I') ;
     WriteLn('
I           I           I') ;
End ;
End ;

Function
f(x : Real) : Real ;
Begin
     
f:=Sqr(x) ;
End ;

BEGIN
ClrScr ;
i := 0 ;
j := 1 ;
test := False ;
menu(j,test) ;
x := 0 ;
Repeat
  Inc(
i) ;
  
x := x+50 ;
  WriteLn('
I',Round(x):12,'     I',Round(f(x)):15,' I') ;
  
test := x>1700;
  If ((
i Mod 14)=0) Or test Then
  Begin
       WriteLn('
--------------------------------') ;
       WriteLn('
I      Appuyez sur <ENTREE> pour continuer...      I') ;
       Write('
--------------------------------') ;
       ReadLn ;
       ClrScr ;
       Inc(
j) ;
       
menu(j,test) ;
  End ;
Until
test ;
ReadLn ;
END.

Responsables bénévoles de la rubrique Pascal : Gilles Vasseur - Alcatîz -