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

Lazarus Pascal Discussion :

Chercher le nombre de lettres distinctes dans un mot [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Chercher le nombre de lettres distinctes dans un mot
    Bonjour,
    Je souhaiterais connaitre le nombre de lettre distincte dans un mot, mais je ne sais pas comment m'y prendre.

    Ex: STATUT --> 4 lettres distinctes

    Pourriez-vous m'aider ?

    Merci par avance

  2. #2
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Tu pourrais par exemple regarder chaque lettre du mot, et a chaque fois, vérifier si elle est présente dans le début du mot. Si elle y est, on passe a la lettre suivante, si elle n'y est pas, on ajoute 1 au résultat final et on passe a la lettre suivante.

    Bonne chance.

  3. #3
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    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
    function CountDistinctChar(S: string): integer;
    var
      N, L : integer;
      Cs : Set of char;
    begin
      result := 0;
      Cs     := [];
      L      := Length(S);
     
      for N := 1 to L do
        if not (S[N] in Cs) then
        begin
          Cs := Cs + [S[N]];
          inc(result);
        end;
    end;

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci Dr. Who

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Bou,

    Et hop, un exercice clés en mains de plus ...

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut PARFAIS
    C'est nickel !!!
    C'est ce qu'il me fallait du coup comme c'était dans le cadre d'un projet tout le monde en a profité !
    Merci encore
    A la prochaine !

  7. #7
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 963
    Points : 59 646
    Points
    59 646
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Hum... Recopier un code tout fait, penses-tu vraiment que ce soit la meilleure manière d'apprendre ?

    Rien ne vaut la pose du problème et sa résolution sur papier, puis la construction d'un pseudo-code avant la traduction finale en Pascal.
    Apprendre à programmer, c'est acquérir une nouvelle façon de penser. Chaque exercice de programmation "muscle" les facultés de raisonnement. De la même manière qu'un athlète ne progressera pas si c'est un autre que lui qui s'entraîne, faire faire ses exercices par d'autres n'est pas une bonne solution.


  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Noe,
    Citation Envoyé par Alcatîz Voir le message
    Bonjour,

    Hum... Recopier un code tout fait, penses-tu vraiment que ce soit la meilleure manière d'apprendre ?

    Rien ne vaut la pose du problème et sa résolution sur papier, puis la construction d'un pseudo-code avant la traduction finale en Pascal.
    Apprendre à programmer, c'est acquérir une nouvelle façon de penser. Chaque exercice de programmation "muscle" les facultés de raisonnement. De la même manière qu'un athlète ne progressera pas si c'est un autre que lui qui s'entraîne, faire faire ses exercices par d'autres n'est pas une bonne solution.

    S'il n'y avait pas de tentateurs ...

  9. #9
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Ce n’est pas pour vous importuner mais comme cela fait plusieurs fois que je tombe sur cette file, je ne peux m’empêcher de vous signaler qu’en Python la réponse à la question (le nombre de lettres dans un mot) tient en une ligne:


    len() donne évidemment la longueur ou la taille d’un objet

    set() est une fonction qui met dans un ensemble les éléments d’une collection (ici la collection est une chaîne). Un ensemble contient des éléments tous différents, si on ajoute à un ensemble un élément qui s’y trouve déjà, le contenu ne change pas. Autrement dit, set() fait toute seule le travail.

    Voilà voilà.

    Salutations.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Points : 506
    Points
    506
    Par défaut
    T'aurais pas plutôt la version en assembleur ? Parce que python c'est leeeeeeeeent.

  11. #11
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Boi,
    Citation Envoyé par eyquem Voir le message
    Ce n’est pas pour vous importuner mais comme cela fait plusieurs fois que je tombe sur cette file, je ne peux m’empêcher de vous signaler qu’en Python la réponse à la question (le nombre de lettres dans un mot) tient en une ligne
    Oui, mais il se trouve que nous sommes dans le forum consacré à Pascal.

    Comme nous sommes ignares, tu veux bien nous donner le code dans tous les langages existants ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 48
    Points : 55
    Points
    55
    Par défaut
    unicode safe:

    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
     
    function CountDistinctChar(S:UTF8String):integer;
    var L:TList;
    i:Integer;
    aText:WideString;
    begin
     aText:=UTF8Decode(S);
     L:=TList.Create;
     for i:=1 to Length(aText) do
      if L.IndexOf(Pointer(Word(aText[i])))=-1 then
        L.Add(Pointer(Word(aText[i])));
     Result:=L.Count;
     L.free;
    end;
     
     
    procedure TForm1.Button1Click(Sender:TObject);
    begin
     Caption:=Inttostr(CountDistinctChar('nmabcdabcdéààààà'));  
    end;

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

Discussions similaires

  1. Nombre de clients distincts dans les 6 derniers mois
    Par juju44 dans le forum SAS Base
    Réponses: 1
    Dernier message: 07/05/2013, 21h05
  2. compter le nombre de valeurs distinctes dans une colonne
    Par huître dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/06/2011, 19h31
  3. Trouver nombre de lettre distincte
    Par StarFlor dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 05/02/2010, 11h34
  4. Réponses: 0
    Dernier message: 27/05/2009, 14h21
  5. Réponses: 1
    Dernier message: 20/03/2009, 09h53

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