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

Pascal Discussion :

Compter les occurences d'un mot dans une chaîne


Sujet :

Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Compter les occurences d'un mot dans une chaîne
    mon prgramme ne s'execute pas; il consiste a compter les occurences du mot (mot) dans la chaine de caractères(ch) ,le voici:
    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
     
    function occ_mot(ch: string;var mot: string):integer;
     var l,cpt:integer;
         m:string;
         begin
          l:=1;
          cpt:=0;
          while l<=length(ch) do
             begin
                  while (ch[l] in sep) do
                      begin
                          l:=l+1;
                      end;
                  if ch[l]= mot[1] then
                     begin
                         while not (ch[l] in sep) do
                             l:=l+1;
                         if l= length(mot)-1 then
                            begin
                                  m:=copy(ch,l-length(mot)+1,length(mot));
                                  if m=mot then
                                     cpt:=cpt+1;
                           end;
                     end;
             end;
         occ_mot:=cpt;
       end;
    aidez moi svp.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 946
    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 946
    Points : 59 446
    Points
    59 446
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Lorsque tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (ch[l] in sep) do
    qu'est-ce exactement que sep ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    sep: set of char
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sep :=[' ',';','!','?','.'];

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 946
    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 946
    Points : 59 446
    Points
    59 446
    Billets dans le blog
    2
    Par défaut
    Ben oui, sep = séparateur, comment n'y ai-je pas pensé.

    Il y a quelques problèmes dans ton code, je pense que ces quelques corrections devraient fonctionner :
    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
    Function occ_mot (ch : String; var Mot : String) : Integer;
    Var l, cpt, Debut : Integer;
        m : String;
    Begin
      l :=1 ;
      cpt := 0;
      while l <= Length(ch) do
        begin
          while (ch[l] in sep) do
            begin
              l := l + 1;
            end;
          if ch[l]= mot[1]
             then
               begin
                 Debut := l;
                 while not (ch[l] in sep) do
                   l := l + 1;
                 m := Copy(ch,Debut,l - Debut);
                 if m = mot
                    then
                      cpt := cpt + 1;
               end
             else
               l := l + 1;
        end;
      occ_mot := cpt;
    End;
    Il faut garder trace de l'indice du début du mot, lorsque ch[l] est identique à la 1ère lettre du mot à chercher. D'où une nouvelle variable Début.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    merci pour votre aide ça marche mnant

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

Discussions similaires

  1. compter le nombre d'occurences d'un mot dans une chaine
    Par huître dans le forum VBA Access
    Réponses: 8
    Dernier message: 15/10/2014, 15h19
  2. Compter le nombre d'occurences d'un mot dans une table
    Par Scots dans le forum Requêtes
    Réponses: 0
    Dernier message: 11/03/2011, 09h36
  3. [RegEx] Compter les occurences d'un mot dans un PHP
    Par FoxLeRenard dans le forum Langage
    Réponses: 2
    Dernier message: 19/02/2009, 08h18
  4. Réponses: 2
    Dernier message: 09/04/2008, 21h03
  5. Compter les occurences d'un car dans une chaine/variable
    Par sherlockfr dans le forum Windows
    Réponses: 2
    Dernier message: 10/11/2005, 07h48

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