Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal
Pascal Forum d'entraide sur la programmation en langage Pascal et sur les EDI. Avant de poster -> la F.A.Q Pascal, les cours
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/12/2012, 14h32   #1
Mushro0mRaper
Invité de passage
 
Homme
Étudiant
Inscription : novembre 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2012
Messages : 1
Points : 0
Points : 0
Par défaut Comment s'assurer de la validité de la saisie de valeurs numériques

Bonjour à tous,

On me demande de faire un petit projet en Pascal : une calculatrice qui effectue les 4 opérations de base sur des entiers énormes sans limite particulière de chiffres.

Je sais comment m'y prendre mais ayant créé un Menu dans le Terminal, je me rends compte que si l'utilisateur rentre une mauvaise saisie cela plante tout mon programme et en sort. Du style, mon Menu demande a l'utilisateur de rentrer "1" pour l'addition, "2" pour la soustraction, "3" pour la multiplication, "4" pour la division et 0 pour quitter. Si je rentre "5" il me remet le choix de l'opération mais si je rentre "a" il me met Error et il quitte le programme.

J'en vient donc à ma question : comment faire pour "blinder" la saisie de variables en Pascal ?

Merci.
Mushro0mRaper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2012, 16h17   #2
droggo
Expert Confirmé
 
Inscription : août 2006
Messages : 3 416
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 3 416
Points : 3 771
Points : 3 771
Kai,

Lire une chaîne de caractères.

PUIS vérifier si ça correspond à ce que tu attends.

Dans le cas présent :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
  longueur = 1 ?
 
    NON : refusé, on relit
 
    OUI : est-ce un chiffre ?
 
        NON : refusé, on relit
 
        OUI : est-il dans les valeurs admises ?
 
            NON : refusé, on relit
 
            OUI : ok, on peut le traiter pour orienter le programme
Eh oui, sécuriser les entrées génère beaucoup de code, mais à mon avis, c'est indispensable pour avoir un programme fiable (dans mes programmes pros, les contrôles de saisie correspondent souvent de 10 à 25 % des lignes de code !)
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/12/2012, 21h00   #3
EpiTouille
Membre expérimenté
 
Avatar de EpiTouille
 
Homme Titouan Créac'h
Epitech
Inscription : mai 2009
Messages : 250
Détails du profil
Informations personnelles :
Nom : Homme Titouan Créac'h
Âge : 19
Localisation : France

Informations professionnelles :
Activité : Epitech

Informations forums :
Inscription : mai 2009
Messages : 250
Points : 529
Points : 529
Salut,
Si mes souvenir sont bon, tu pourrais par exemple convertir la chaine qu'on te donne en eniter grace à la commande val, qui prend en paramètre un entier qui est le code d'erreur. Donc tu peux savoir si la saisie est correcte ou pas et géré en conséquence.

Tu peux aussi regarder du coté de {$I-} et {$I+} et checker IOResult, après fais comme tu le sent, mais à ce niveau là, le pascal te fais un peu le café
EpiTouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h02.


 
 
 
 
Partenaires

Hébergement Web