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 mots d'un texte


Sujet :

Pascal

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Compter les mots d'un texte
    Bonjour !

    J'ai rencontré un problème.

    Voici le sujet :

    Nom : Capture.PNG
Affichages : 1354
Taille : 73,2 Ko

    Et voici mon propre essai :

    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
    program analy;
    uses wincrt;
    var
    t:array[1..100] of integer;
    n,m,i,j,p:integer;
    ch,c:string;
    begin
    writeln('donner le nombre des phrases');
    readln(n);
    writeln('donner le nombre de mots dans chaque phrase');
    readln(m);
    for i:=1 to 100 do
    begin
    t[i] :=0;
    end;
    for i:=1 to n do begin
    writeln('donner la phrases n°',i);
    readln(ch);
    while (pos(' ',ch)<>0) do
       begin 
    c:=(copy(ch,1,pos(' ',ch)-1));
       t[length(c)]:=t[length(c)]+1;
       delete(ch,1,pos(' ',ch));
       end;
       t[length(ch)]:=t[length(ch)]+1
     
      end;
     
    for i:=1 to 100 do
    begin
    if t[i] <>0 then
    writeln(i,': ', t[i]);
    end;
    end.
    L'auto test du site me dit qu'il y a une faute dans le programme.

    Donnez-moi la solution SVP.

    Merci

  2. #2
    Membre actif Avatar de Basile le disciple
    Homme Profil pro
    étudiant Centrale Supélec
    Inscrit en
    Avril 2013
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : étudiant Centrale Supélec

    Informations forums :
    Inscription : Avril 2013
    Messages : 147
    Points : 279
    Points
    279
    Par défaut
    bonjour à tous,

    à part un petit point virgule qui manque, je ne vois pas d'erreurs :

    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
    program analy;
    uses wincrt;
    var
    t:array[1..100] of integer;
    n,m,i,j,p:integer;
    ch,c:string;
    begin
    writeln('donner le nombre des phrases');
    readln(n);
    writeln('donner le nombre de mots dans chaque phrase');
    readln(m);
    for i:=1 to 100 do
    begin
    t[i] :=0;
    end;
    for i:=1 to n do begin
    writeln('donner la phrases n°',i);
    readln(ch);
    while (pos(' ',ch)<>0) do
    begin 
    c:=(copy(ch,1,pos(' ',ch)-1));
    t[length(c)]:=t[length(c)]+1;
    delete(ch,1,pos(' ',ch));
    end;
    t[length(ch)]:=t[length(ch)]+1; // ici
    
    end;
    
    for i:=1 to 100 do
    begin
    if t[i] <>0 then
    writeln(i,': ', t[i]);
    end;
    end.
    si cela ne marche toujours pas, il faudrait connaître le message d'erreur en entier et qu'elles sont les phrases(on peut tricher en utilisant un try...except en affichant les phrases s'il y a une erreur), peut être un dépassement de tableau, j'ai pas trop regardé en détail...

    moi aussi j'avais fait ce concours l'année dernière (j'avais échoué en demi-finale à 3 places près ) et il me semble me souvenir que pour s'entrainer, on pouvais utiliser le pascal mais pas dans le concours. Je ne sais pas si ça a changé mais si c'est toujours pareil, il faudra t'orienter vers un autre language accepté comme python ou java (de mémoire) pour pouvoir participer.

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 416
    Points : 5 814
    Points
    5 814
    Par défaut
    salut

    voici la trame que j'aurais utilisé pour lire une phrase


    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
     
    ...
    i := 1;
    while i < length(Phrase) do 
    begin
      if Phrase[i] = ' ' Then 
      begin
        t[length(Mot)]:=t[length(Mot)]+1;
        Mot := '';
      end
      else 
        mot := Mot+Phrase[i];  
      inc(i);
    end;
     if length(Mot) > 0 Then 
       t[length(Mot)]:=t[length(Mot)]+1;
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    voici la trame que j'aurais utilisé pour lire une phrase


    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
     
    ...
    i := 1;
    while i < length(Phrase) do 
    begin
      if Phrase[i] = ' ' Then 
      begin
        t[length(Mot)]:=t[length(Mot)]+1;
        Mot := '';
      end
      else 
        mot := Mot+Phrase[i];  
      inc(i);
    end;
     if length(Mot) > 0 Then 
       t[length(Mot)]:=t[length(Mot)]+1;
    Il s'agit d'une trame, mais elle contient au moins une erreur : si le dernier mot de la phrase n'est pas suivi d'un espace, il ne sera jamais comptabilisé.
    [J'aurais aussi initialisé les variables, car si elles sont locales (dans une routine), elles ne seront pas initialisées et provoqueront des erreurs erratiques.]
    Mais le principe est bon
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 416
    Points : 5 814
    Points
    5 814
    Par défaut
    Citation Envoyé par gvasseur58 Voir le message
    Il s'agit d'une trame, mais elle contient au moins une erreur : si le dernier mot de la phrase n'est pas suivi d'un espace, il ne sera jamais comptabilisé.
    [J'aurais aussi initialisé les variables, car si elles sont locales (dans une routine), elles ne seront pas initialisées et provoqueront des erreurs erratiques.]
    Mais le principe est bon

    pour le dernier mots
    apres la boucle je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      if length(Mot) > 0 Then 
       t[length(Mot)]:=t[length(Mot)]+1;
    tu pense que ce code est là pour faire jolie

    sinon pour les variables tu as raison il est préférable de les initialisé mais c’était sous entendu dans les ...
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  6. #6
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par anapurna Voir le message
    tu pense que ce code est là pour faire jolie

    sinon pour les variables tu as raison il est préférable de les initialisé mais c’était sous entendu dans les ...
    Oups, désolé, je n'avais pas vu que le listing défilait
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 069
    Points : 15 448
    Points
    15 448
    Billets dans le blog
    9
    Par défaut
    Par contre pas de raison d'ignorer le dernier caractère, on est d'accord ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while i <= length(Phrase) do
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 416
    Points : 5 814
    Points
    5 814
    Par défaut
    salut

    effectivement, je me suis loupé sur le dernier caractère
    mais bon c’était surtout pour montrer le principe ^^
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. [Alimentation] besoin de votre aide svp
    Par crisvalere dans le forum Composants
    Réponses: 1
    Dernier message: 28/04/2011, 21h06
  2. [JTABLE] Besoin de votre aide SVP
    Par vpourchet dans le forum Débuter
    Réponses: 17
    Dernier message: 11/04/2008, 11h36
  3. besoin de votre aide SVP
    Par paula dans le forum GLUT
    Réponses: 3
    Dernier message: 26/06/2006, 12h48

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