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

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Points : 1
    Points
    1
    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 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    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.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Points : 1
    Points
    1
    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
    Points : 2 501
    Points
    2 501
    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 confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    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
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  6. #6
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    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
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  7. #7
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re
    Bonjour,
    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
    Toutes les question de l'exercice se trouve dans le tableau donc oui ça répond à l'exercice
    un algorithme puis un programme Pascal qui saisit une phrase qui doit s'achever par un point ('.')
    je n'ai pas fournis d'algorithme, puisque je considère qu'un algo peut être propre à chacun de nous pour un problème donné
    2èment un programme pascal j'ai pas compris ? le faite que mon programme contient une procédure fait de lui que ce n'est pas un programme ?
    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.
    C'est vrai petite erreur de ma part, et pour dire vrai ça fait un moment que je n'ai pas codé en pascal
    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.
    c'est ecrit phrase et non phrases

    Cordialement,
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Joa,

    Quoi qu'il en soit, nous ne sommes pas censés donner des solutions clés en main, mais aider les demandeurs à progresser, en leur expliquant comment résoudre leurs problèmes.

    DVDP devient de plus en plus ww w.OnFaitTesDevoirs.com
    Si les cons volaient, il ferait nuit à midi.

  9. #9
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Citation Envoyé par diden138
    Toutes les question de l'exercice se trouve dans le tableau donc oui ça répond à l'exercice
    Non, ce que tu propose ne répond pas parfaitement à l'exercice, vu que ça fait pas tout et surtout ne prend pas en compte que la phrase doit se terminer par un point

    Citation Envoyé par diden138
    je n'ai pas fournis d'algorithme, puisque je considère qu'un algo peut être propre à chacun de nous pour un problème donné
    2èment un programme pascal j'ai pas compris ? le faite que mon programme contient une procédure fait de lui que ce n'est pas un programme ?
    programme pascal n'est pas problème, je n'ai fait que citer une portion de phrase de l'énoncé pour mettre en évidence le fait la phrase doit se terminer par un point, chose que tu n'as pas pris en compte dans le code.

    Citation Envoyé par diden138
    c'est ecrit phrase et non phrases
    J'ai bien mis pour "aller plus loin", pour dire pour dépasser le cadre de l'exercice

    +1 sur droggo évidement
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  10. #10
    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
    Points : 2 501
    Points
    2 501
    Par défaut
    Une petite question pour diden138,
    Qu'auras t-on si jamais on entre la chaine suivante :
    __Cet_exerxices__me_rappelle___bien__des____souvenirs.
    Les espaces sont matérialisés par des _. Le code ne marche plus quand plusieurs espaces separent deux mots par exemple.
    Rien de bien méchant, mais vu que j'ai dans eu cet exercice lors d'un test dans le temps, je trouve que certaines choses ne sont pas prises en compte dans ton code.

  11. #11
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Re
    Qu'auras t-on si jamais on entre la chaine suivante :
    Citation:
    __Cet_exerxices__me_rappelle___bien__des____souvenirs.
    Les espaces sont matérialiser par des _. Le code ne marche plus quand plusieurs espaces separent deux mots par exemple.
    Le simple espace matérialisé par un blanc est à titre indicatif puisque obilisk n'a pas spécifié ce que c'était un blanc dans son exercice
    Rien de bien méchant, mais vu que j'ai dans eu cet exercice lors d'un test dans le temps, je trouve que certaines choses ne sont pas prises en compte dans ton code.
    Super alors on serait ravis d'avoir un petit bout de code
    Non, ce que tu propose ne répond pas parfaitement à l'exercice, vu que ça fait pas tout et surtout ne prend pas en compte que la phrase doit se terminer par un point
    Alors la, pour la phrase qui se termine par un point c'est à lui de la faire dans le programme principale sinon pour ce qui du "ne répond pas à l'exercice " une petite démo
    Alors on commence
    Afficher le nombre de caractères de cette phrase
    C'est simple je crois maintenant grâce à cette procédure il a son tableau qu'il suffit de parcourir et d'additionner le nombre de caractère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var 
      longeur:integer;
    longeur:=0;
    for compteur:=1 to 100 do
    begin
      longeur:=longeur+length(tab[compteur].Mot);
    end;
    Passons à la deuxième question
    d'afficher le nombre de mot (:s)
    Le nombre de mot est égale au nombre d'entrée dans le tableau
    passons à la 3ème question
    d'afficher la position du mot le plus long
    Suffit de parcourir le tableau et de comparer à chaque fois, l'indice du mot stocké dans un record avec le mot en question cela rendra facile de récupérer sa position dans la chaine
    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
     
    var 
      max:integer;
      indice_max:integer;
    max:=0;
    for compteur:=1 to 100 do
    begin
      if(length(tab[compteur].Mot)>max)) then 
      begin
        max:=length(tab[compteur].Mot]);
        indice_max:=compteur;
      end;
    end;
     
    writeln("le mot le plus long, sa position",tab[indice_max].Mot+"-"+tab[indice_max].Position);
    Passons à la dernière question
    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
    La encore il suffit de parcourir et de comparer et remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var 
      trouve:boolean;
      trouve:=false;
    for compteur:1 to 100 do
    begin
     if (mot_recherche=tab[compteur].Mot) then 
      begin
         trouve=true;
         Break();
      end;
    end;
    if !trouve then tab[indice_max].Mot:=mot_recherche;
    {// si on n'a pas trouve de mot semblable on remplace le mot le plus long precedement trouve par le nouveau mot//}


    Satisfait ?
    PS : Les petits bouts de code sont donnés à titres indicatifs et peuvent contenir éventuellement des erreurs
    Sinon pour ce qui est faire l'exercice des autres non je pense pas moi même j'aime bien quand on me donne un bout de code y a pas mieux
    Bonne journée,
    Cordialement,
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

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