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 : 18
    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 : 113
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
    Lycéen de terminale
    Inscrit en
    avril 2013
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Lycéen de terminale

    Informations forums :
    Inscription : avril 2013
    Messages : 143
    Points : 266
    Points
    266

    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
    Membre expert
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2002
    Messages
    2 333
    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 : 2 333
    Points : 3 625
    Points
    3 625

    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 Delphi

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    février 2013
    Messages
    996
    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 : 996
    Points : 11 099
    Points
    11 099
    Billets dans le blog
    33

    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
    Membre expert
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2002
    Messages
    2 333
    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 : 2 333
    Points : 3 625
    Points
    3 625

    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 Delphi

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    février 2013
    Messages
    996
    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 : 996
    Points : 11 099
    Points
    11 099
    Billets dans le blog
    33

    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
    2 970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 970
    Points : 10 784
    Points
    10 784
    Billets dans le blog
    4

    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

  8. #8
    Membre expert
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2002
    Messages
    2 333
    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 : 2 333
    Points : 3 625
    Points
    3 625

    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