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

Turbo Pascal Discussion :

Exercice d'analyse de phrase


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut Exercice d'analyse de phrase
    Bonjour à tous avant

    Voilà, j'ai un un exercice sur Turbo Pascal et j'aimerais s.v.p que vous m'aidiez. Voilà l'exercice :
    On se propose d'écrire une analyse, un algorithme puis un programme Pascal qui saisit une phrase qui doit s'achever par un point ('.') et permet :
    -d'afficher le nombre de caractères de cette phrase
    -d'afficher le nombre de mot (:s)
    -d'afficher la position du mot le plus long
    -de saisir un mot de l'insérer a la place du mot le plus long s'il n'existe pas auparavant dans la phrase
    J'ai juste besoin du code Pascal.

    Merci d'avance.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Qoa,
    Citation Envoyé par obilisk Voir le message
    j' ai juste besoin du code pascal
    Tu accepteras quand même une petit supplément, genre 200 € et une boîte de Mars ?

    Sans blague, personne n'est ici pour faire ton travail.

    Alors, tu t'y mets, PUIS tu nous montres où tu en es, tu nous expliques ce qui te bloque, et PEUT-ÊTRE obtiendras-tu de l'aide.

    PEUT-ÊTRE parce que ta demande directe de code défrise un peu, et ne donne pas vraiment envie de t'aider. La balle est dans ton camp.

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    program phrase;
    uses wincrt;
    var
    ch:string;
    {nombre de caractére}
     
    function nb_caracter(var ch:string):integer;
    var
    nb,i:integer;
    begin
    nb:=0;
    for i:=1 to length(ch) do
    if ch[i] in  (upcase ['a'..'z']) or( ['0'..'9']) then
    nb:=nb+1;
    nb_caracter:=nb;
    end;
     
    {nombre de mot}
     
    function nb_mot(var ch:string):integer;
    var
    nb,i:integer;
    begin
    nb:=0;
    for i:=1 to length(ch) do
    if ch[i]='' then
    nb:=nb+1;
    nb_mot:=nb;
    end;
    begin
    writeln('saisir une phraze');
    read(ch);
    writeln('le nb de caractére est:',nb_caracter(ch));
    writln('le nb de mot est:',nb_mot(ch));
    end.
    voila juste la dernière étape, je sais pas comment faire merci encore

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    A vu d'oeil, je serais étonné que ton code compile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ch[i] in  (upcase ['a'..'z']) or ( ['0'..'9']) then
    Sinon, j'aimerais bien savoir comment tu définis un mot : est ce une suite de caractère différent du caractère espace?

    Autre chose que j'ai remarqué dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function nb_caracter(var ch:string):integer;
    pourquoi passer un parametre par référence alors que tu ne compte pas modifier sa valeur dans la fonction? Je crois qu'il faut faire le passage par valeur pour eviter tout effet de bord.

  5. #5
    Membre très actif
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Par défaut RE
    Bonsoir,
    et ça ?

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    program exo_extraction_mots;
     
    type
    info_Mot  = record
     Mot      :string;
     Position :integer;
    end;
    list_Mots=array[1..100] of info_Mot;
    var
      phrase :string; {la chaine qui contiendra ta phrase}
      list:List_Mots; {ce tableau contiendra la list de tous les mots ainsi que l'indice du d‚but de chacun}
     
     
    procedure extraire_Mots(phrase:string;var tabMots:list_Mots) ;
    var
      indice:integer;
      mot_Temporaire:string;
      indice_Mot_Courant:integer;
    begin
        mot_Temporaire:='';
        indice_Mot_Courant:=0;
        for indice:=0 to length(phrase) do
        begin
           if(phrase[indice]<>' ') then
               mot_Temporaire:=mot_Temporaire+phrase[indice]
           else { sinon c la fin d'un mot et donc on l'enregistre dans le tableau avec l'indice }
               begin
                  tabMots[indice_Mot_Courant].Mot:=mot_Temporaire;
                  tabMots[indice_Mot_Courant].Position:=indice;
                  mot_Temporaire:='';
                  indice_Mot_Courant:=indice_Mot_Courant+1;
     
               end;
     
        end;
     
    end;
     
    begin
       { tu lis ta phrase }
       readln(phrase) ;
       extraire_Mots(phrase,list);
     
       {tu affiche ce que tu veux mnt t'a tous ce que tu a besoin dans le tableau}
     
     
     
     
    end.
    Cordialement,
    N'oublie de mettre résolu

  6. #6
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Bonjour,
    Citation Envoyé par diden138 Voir le message
    N'oublie de mettre résolu
    Pas si vite !!!
    Vu que tu n'as pas précisé que la procédure que tu proposes pour extraire les mots et leur position dans une phrase était à titre indicatif je dirai que ce que tu proposes ne répond pas à ce que demande l'exercice
    L'énoncé précise
    un algorithme puis un programme Pascal qui saisit une phrase qui doit s'achever par un point ('.')
    Petite inattention de ta part je suppose, tu utilises les indices 0 de ton string phrase et tu utilises aussi la position 0 non déclaré de ton tableau de record.

    Pour aller plus loin, on peut dire que la boucle for utilisé n'est pas adapté si l'utilisateur saisit plusieurs phrases, il faudra retenir que la première phrase.

    Cordialement

Discussions similaires

  1. Qu'est ce qu'une analyse fonctionelle
    Par sandrine dans le forum Débats sur le développement - Le Best Of
    Réponses: 22
    Dernier message: 28/02/2015, 19h03
  2. exercice complexité et analyse des algorithmes
    Par psycho_xn dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 21/01/2008, 14h04
  3. Extraction des phrases d'un Texte
    Par LE CHAKAL dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2002, 21h23
  4. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26

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