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
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    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
    8 027
    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 027
    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 ?
    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]

  3. #3
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    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
    8 027
    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 027
    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.
    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]

  5. #5
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    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