IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

[TP] Lecture d'une touche


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 1
    Par défaut [TP] Lecture d'une touche
    salut tout le monde
    je suis une etudiante en informatique et actuellement je suis entrain de faire un pgm en pascal, et je veux le faire en sorte qu'il demande a lutilisateur d'appuyer sur la touche 'c' par exemple pour executer une partie du pgm principale.. comment faire cette procedure aidez moi svp .Merci

  2. #2
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    bonjour et bienvenue
    il suffit de lire la touche sur laquelle tu veux que l'utilisateur appuie par la fonction readkey et apres
    tu pouras faire ce que tu veux exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      ........
      touche:=readkey;
      if(touche='c')
           writeln('c''est la touche ',c);
      else  
           writeln('autre touche');
      .........
      .......
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
         if(touche='c')
         begin
              {      Execution de mon programme.........}
              {    instructionsssssssssss.........}
         end;
    n'oublies pas que touche est un caractere
    apres tu peux ecrire ta procedure avec les instructions que tu veux
    @+

  3. #3
    Membre expérimenté Avatar de Ultima
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 223
    Par défaut Exemple avec deux choix
    Bonjour,
    On rencontre souvent les logiciels qui donnent plusieurs choix à son utilisateur.
    Voici un petit programme qui donne deux choix à son utilisateur, Oui ou Non.
    Ce qui est intéressant ici, c’est que tout les choix autres que ceux attendus, ne sont pas pris en compte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    uses crt; // pour pouvoir utiliser Readkey
     
    function YesOrNo : BOOLEAN;  // Le programme va attendre que l'utilisateur choisisse entre Oui et Non les autres choix ne seront pas considérés.
      var car : CHAR;
      begin
        repeat
          car:= ReadKey
        until (car = 'o') or (car = 'O') or (car = 'n') or (car = 'N');
     
      YesOrNo := (car = 'o') or (car = 'O');
    end;  // YesOrNo vaut TRUE, si l'utilisateur appui sur O, ou sur o
     
     
    begin
      writeln('Vous avez un choix');
      writeln('Quitter le programme? [O/N]');
     
      while not YesOrNo do
        writeln('Vous avez décidé de rester dans le programme');
     
      writeln('Vous quittez le programme');
    end.

  4. #4
    Membre émérite
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    Oooh, l'affreux !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        until car in ['O','o','N','n'];
    mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        car:= upcase(ReadKey)
        until car in ['O','N'];
    C'est tout de suite mieux...

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 049
    Billets dans le blog
    2
    Par défaut
    Bonjour !
    Citation Envoyé par CapJack
    Oooh, l'affreux !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        until car in ['O','o','N','n'];
    mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        car:= upcase(ReadKey)
        until car in ['O','N'];
    C'est tout de suite mieux...
    Le "mieux" est discutable car remplacer deux tests de comparaison par un appel de fonction est peut-être plus élégant visuellement mais ne me semble pas très rentable dans l'exécutable final.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Kol,
    Citation Envoyé par Alcatîz
    Bonjour !

    Le "mieux" est discutable car remplacer deux tests de comparaison par un appel de fonction est peut-être plus élégant visuellement mais ne me semble pas très rentable dans l'exécutable final.
    Ce n'est pas le temps d'exécution d'une lecture du clavier, opération manuelle par définition, qui compte pour un programme, même sur de vieilles bécanes antédiluviennes.

    Sauf cas particulier de calculs intensifs et/ou temps de réponse critique, il vaut mieux écrire du code "élégant" que de chercher la petite bête qui se compte au plus en microsecondes, et même moins, avec les machines modernes.

    En l'occurrence, il est clair que l'entrée d'une donnée au clavier ne peut pas être considérée comme une partie de code critique pour le temps d'exécution, le temps de réaction de l'opérateur est très largement supérieur au temps d'exécution d'une petite fonction comme upCase

Discussions similaires

  1. [Think Pascal] Mettre la lecture de la touche ENTRER dans une variable de type char
    Par inidark dans le forum Autres IDE
    Réponses: 1
    Dernier message: 21/05/2009, 23h21
  2. inverser la lecture d'une requète
    Par nilaco dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/08/2003, 12h16
  3. [Turbo Pascal] Lire une touche au clavier sans interrompre le programme
    Par Allelouia dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 29/03/2003, 22h31
  4. faire de la touche F1 une touche de raccourci?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 06/08/2002, 10h11
  5. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo