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

Delphi Discussion :

Vérifier qu'un element "char" est un entier "integer"


Sujet :

Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par défaut Vérifier qu'un element "char" est un entier "integer"
    Bonjour,
    Je débute en delphi (pascal).

    J'ai une variable de type char "variable", je voudrais verifier si la variable contient un entier.
    J'ai cree un ensemble d'entier "ens".

    If variable in ens
    Then ...


    Il me dit que char n'est pas compatible avec integer.
    Comment faire alors pour arriver a faire cette verification?

    Merci

    Nico

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 974
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 974
    Par défaut
    Lai,

    Le passage char vers entier se fait avec ord.

    Mais pourquoi ne pas tester directement avec un ensemble de char ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par défaut
    Comment faire un ensemble de char en enlevant les entiers?

    Merci

  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
    Pourrais-tu poster le code stp ? Parce que là, j'ai beaucoup de mal...

    Si je prends ta requête à la lettre, la syntaxe juste est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if variable in ['0'..'9'] then // <- avec des guillements pour les caractères.
    Mais j'ai un gros doute.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par défaut
    en fait je fais un projet d'algorithmique (sur delphi).
    Je realise un jeu de domino.
    Et donc mon pb et que lors du jeu, je stocke ce que veut faire l'utilisateur dans une variable "choix" (de type char) ('le numero' du domino qu'il veut jouer ou 'P' pour piocher ou 'Q' pour passer).

    Donc je voudrais savoir si dans "choix", il y a un entier pour traiter le cas de l'ajout du domino.

    Capjack, avec ton code, il me dit que les types sont incompatibles.?

    Encore merci

    Nicolas

  6. #6
    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
    Poste le code que tu as programmé. Sans ça, on va tourner en rond.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par défaut
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Procedure AFFICH_MENU_TOUR (var choix:char; dom_max_pioche:integer);
    Begin
      Writeln ('Que voulez-vous faire?');
      writeln ('Jouer un domino (Taper le numero du domino à jouer),');
      If dom_max_pioche<>0
      Then
        writeln ('Piocher (Taper ''P'').')
      Else
        writeln ('Je passe mon tour (Taper ''Q'').');
      readln (choix);
      choix:=upcase(choix);
    end;
     
    ////////////////////////////////////////////////////////////////////////////////
    Procedure TOUR (var pdeb_p,pdeb_pl,pfin_pl:T_ptr_dom;var dom_max_pioche:integer;pcour_j:T_ptr_joueurs);
    var
      choix:char;
      pcour_d:T_ptr_dom;
      cote:char;
      cote_aux:integer;
    Begin
      writeln ('Les dominos du plateau sont : ');
      writeln;
      AFFICH_PLATEAU (pdeb_pl);
      writeln ('Les dominos de la main de ',pcour_j^.nom,' sont : ');
      writeln;
      AFFICH_MAIN (pcour_j^.main);
      writeln;
      AFFICH_MENU_TOUR (choix,dom_max_pioche);
      If choix in ['1'..'28']                  //Ajout d'un domino au plateau
        Then
          begin
            //Retrait du domino de la main du joueur
            RETRAIT_VD_DOM (pcour_j^.main,choix,pcour_d);
            //Recherche des possibilités d'ajout du domino sur le plateau et ajout
    Delphi me marque :[DCC Erreur] fonctionnalites.pas(73): E2010 Types incompatibles : 'Char' et 'string'
    [DCC Erreur] fonctionnalites.pas(74): E2010 Types incompatibles : 'string' et 'Char'

  8. #8
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Tu as 28 dominos différents ? Dans ce cas tu ne peux travailler avec des Char : du dois utiliser des string et faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NoDomino := StrToIntDef(Choix, 0);
    if (NoDomino > 0) and (NoDomino <= 28) then
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  9. #9
    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
    Oui, c'est bien ce que je craignais. Encore des confusions autour de la notion de variable et de type. Ici, nous avons une confusion entier (Integer) / caractère (Char) / chaîne de caractères (String).

    On ne peut pas stocker une chaîne de deux caractères ou plus telles que '28' dans un variable de type Char, qui ne peut contenir qu'un seul caractère. Pour stocker plus d'un caractère, il faut utiliser le type String.

    On ne peut pas comparer une variable de type Integer avec une variable de type String.

    Si tu as pratiqué a programmation via un langage de marquage ou de script qui n'est pas très regardant au niveau des types, bienvenue dans un langage structuré et rigoureux qui ne permet pas ce genre de bricolage (sauf avec les variants, mais beurk) !

    Je te conseille d'approfondir la notion de variable et les différents types de variable en prenant un peu de ton temps pour étudier les excellents tutoriels que le site propose.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par défaut
    Tout marche bien maintenant, merci à sjrd et à capjack!

    J'aurais juste une autre question sans doute idiote (la question est dans le code suivant) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If ok=true
    Then
      If ok2=true
      Then
        writeln ('Tout est ok')
     Else 
       writeln ('comment l''ordi fait pour savoir avec quel ''if'' va ce ''else'' (le premier ou le deuxieme)??')
    Merci bien

  11. #11
    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
    Il va avec le plus proche en remontant.

    Pour faire correspondre le dernier else avec le premier then il faut mettre le premeir then dans un bloc begin.. end.

    Ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If ok=true
    Then
      If ok2=true
      Then
        writeln ('ok true, ok2 true')
      Else 
       writeln ('ok true, ok2 false');
    Autre code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If ok=true
    Then
     begin
      If ok2=true
      Then
        writeln ('ok true, ok2 true')
     end
    Else 
       writeln ('ok false');

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WPF][ListBox]Type d'elements d'une ListBox est une form?
    Par bakonu dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 18/02/2008, 11h00
  2. vérifier qu'un nombre est un entier en java
    Par paolo2002 dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2008, 14h00
  3. vérifier qu'un nombre est un entier
    Par baya1 dans le forum Langage
    Réponses: 4
    Dernier message: 19/04/2007, 22h29
  4. Vérifier qu'un element d'un formulaire existe
    Par RegiO dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/09/2006, 18h55

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