[Spoiler] Exercice Algo 3.1.3 Chercher Un Mot Dans Une Phrase

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Spoiler] Exercice Algo 3.1.3 Chercher Un Mot Dans Une Phrase

Message par Samy.C le Mer 1 Juin - 9:18

L'algo de principe est pas terrible, mais le reste est juste.

Code:
Algo De Principe

Répéter
   Rechercher Un Mot dans la phrase
   Comparer le mot trouvé au mot recherché
   Passer au Suivant
Jusqu'a la fin de la phrase ou que la mot soit trouvé

1-

   Entrée                  Sortie

phrase------->
MotàChercher->ChercherMot----->MotPresent
LongeurMot--->


2-
Définir Type Chaine
N=80
Chaine = Tableau[N] Caractères

3-

/    Phrase            /  LongeurMot      /   MotàChercher   /  MotPresent /
/      "OK."            /      1         /      K         /    Faux    /
/    "Blabla Car."       /      3         /      Car         /    Vrai    /
/        "."            /      0         /      ""         /    Vrai    /


4-
Outils
procédure ChercherMot(entrée phrase:chaine, entrée MotàChercher : chaine, entrée LongeurMot : entier, sortie MotPresent : booleen)
// Cette procédure permet de chercher un mot dans une phrase
// Phrase est la phrase dans laquelle le mot est recherché
// LongeurMot est la longeur du mot recherché
// MotàChercher est le mot à rechercher
// MotPresent indique si le mot a trouvé dans la phrase

5-
Programme

Constantes
N=80            //Longeur max du tableau
STOP='.' // Caractère terminatoire

Type
chaine=tableau[N]caractères // Type des phrases traitées
chainemot=tableau[N]caractères // Type des phrases traitées

Variable
Phrase : chaine // Phrase dans laquelle chercher les succession de lettres
MotàChercher : chainemot // Mot recherché
LongeurMot : entier // Longeur du mot recherché
MotPresent : booleen // Indique si le mot a été trouvé dans la phrase


Outils
procédure ChercherMot(entrée phrase:chaine, entrée MotàChercher : chainemot, entrée LongeurMot : entier, sortie MotPresent : booleen)
// Cette procédure permet de chercher un mot dans une phrase
// Phrase est la phrase dans laquelle le mot est recherché
// LongeurMot est la longeur du mot recherché
// MotàChercher est le mot à rechercher
// MotPresent indique si le mot a été trouvé dans la phrase


Debut
   ecrire("Donnez votre phrase : ")
   lire(phrase)
   ecrire("Mot recherché ?")
   lire(MotàChercher)
   ecrire("Longeur du mot ?")
   lire(LongeurMot)
   ChercherMot(Phrase,MotàChercher,LongeurMot,MotPresent)
   Si MotPresent=VRAI
      ecrire(MotàChercher," est présent dans la phrase")
   Sinon
      ecrire(MotàChercher," n'est pas présent dans la phrase")
   Finsi
Fin

6-
procédure ChercherMot(entrée phrase:chaine, entrée MotàChercher : chainemot, entrée LongeurMot : entier, sortie MotPresent : booleen)

Outils
Procedure repererMot( entrée phrase : chaine, entrée sortie i : entier, sortie lg : entier)
// Repère un mot dans la phrase lg = 0 si il n'y a plus de mot
// phrase : texte où je cherche le mot
// i :    - entrée : indice de départ de la recherche du mot - sortie : indice juste après le mot ou sur le STOP
// lg : longueur du mot trouvé ou 0 si il n'y a pas de mot.

Procedure comparerMot(entrée longeur : entier, entrée longeur2 : entier, entrée MotàChercher : chainemot, entrée phrase : chaine, entrée i : entier, sortie MotPresent : booleen)
//Comparer mot permet de comparer deux mots
// Phrase est la phrase dans laquelle le mot est recherché
// longeur est la longeur du mot recherché
// longeur est la longeur du mot à comparer
// MotàChercher est le mot à rechercher
// MotPresent indique si le mot a été trouvé dans la phrase
// i est l'emplacement du mot à comparer
//


Debut
i:=0

   Répéter
      
      repererMot(phrase,i,longeur2)
      
      comparerMot(longeur,longeur2,MotàChercher,phrase,i,MotPresent)
      
   Jusqu'a Longeur=0 et MotPresent=VRAI
   
// Arrêt si la phrase est terminé ou si le mot a été trouvé

Fin

Procedure comparerMot(entrée longeur : entier, entrée longeur2 : entier, entrée MotàChercher : chainemot, entrée phrase : chaine, entrée i : entier, sortie MotPresent : booleen)
//Comparer mot permet de comparer deux mots
// Phrase est la phrase dans laquelle le mot est recherché
// longeur est la longeur du mot recherché
// longeur est la longeur du mot à comparer
// MotàChercher est le mot à rechercher
// MotPresent indique si le mot a été trouvé dans la phrase
// i est l'emplacement du mot à comparer

Variables

k : entier //Indice de parcours des mots

Début

      k:=0

      Tantque k<longeur et MotàChercher[k]=Phrase[i-longeur2+k] // Arrêt de la comparaison lorsque le mot est terminer
         k:=k+1
      FinTantQue
      
      Si k=longeur
         MotPresent=VRAI
      Sinon
         MotPresent=FAUX
      FinSi
      
Fin

Procedure repererMot( entrée phrase : chaine, entrée sortie i : entier, sortie lg : entier)
// Repère un mot dans la phrase lg = 0 si il n'y a plus de mot
// phrase : texte où je cherche le mot
// i :    - entrée : indice de départ de la recherche du mot - sortie : indice juste après le mot ou sur le STOP
// lg : longueur du mot trouvé ou 0 si il n'y a pas de mot.

Variables

Début

Tantque phrase[i] = SEPARATEUR
// Avance jusqu'au premier caractère ou au STOP
   i := i + 1

FinTantQue

lg := 0
Tantque phrase[i] <> SEPARATEUR et phrase[i] <> de STOP faire
//  S'arrête si on rencontre séparateur ou si on rencontre STOP

i := i + 1   
lg := lg +1

FinTantQue

// i s'arrête après le dernier caractère du mot trouvé
Fin

avatar
Samy.C

Messages : 42
Karma Karma : 55
Date d'inscription Date d'inscription : 24/05/2016
Age Age : 21
Localisation Localisation : Cellule AFPA
Humeur Humeur : Gone

Voir le profil de l'utilisateur http://youtube.com/sonicdbzfan07

Revenir en haut Aller en bas

Euh.....

Message par GrlSidious (Vince) le Mer 1 Juin - 9:21

Question, si je demande a chercher le mot "chat" avec une phrase du genre: "je suis un lapin"
ton algo va me dire que c'est bon, vu, que ne compare que la longueur? (suis = chat; 4 lettres)
non?
avatar
GrlSidious (Vince)
Admin

Messages : 58
Karma Karma : 53
Date d'inscription Date d'inscription : 23/05/2016
Age Age : 28
Localisation Localisation : Grenoble
Humeur Humeur : Fiora top 4 ever

Voir le profil de l'utilisateur https://fr.wiktionary.org/wiki/connard

Revenir en haut Aller en bas

Re: [Spoiler] Exercice Algo 3.1.3 Chercher Un Mot Dans Une Phrase

Message par Samy.C le Mer 1 Juin - 9:25

Code:
Tantque k<longeur et MotàChercher[k]=Phrase[i-longeur2+k] // Arrêt de la comparaison lorsque le mot est terminer
        k:=k+1
     FinTantQue
     
     Si k=longeur
        MotPresent=VRAI
     Sinon
        MotPresent=FAUX
     FinSi

Dans cette partie, tant que k<longueur je compare les lettres une à une, si j'arrive à la fin du mot, c'est qu'ils sont pareils, donc je renvoie MotPresent=VRAI.
avatar
Samy.C

Messages : 42
Karma Karma : 55
Date d'inscription Date d'inscription : 24/05/2016
Age Age : 21
Localisation Localisation : Cellule AFPA
Humeur Humeur : Gone

Voir le profil de l'utilisateur http://youtube.com/sonicdbzfan07

Revenir en haut Aller en bas

my bad

Message par GrlSidious (Vince) le Mer 1 Juin - 9:27

Bien vu l'artiste!
Désolé d'avoir douté de toi Rolling Eyes Rolling Eyes
avatar
GrlSidious (Vince)
Admin

Messages : 58
Karma Karma : 53
Date d'inscription Date d'inscription : 23/05/2016
Age Age : 28
Localisation Localisation : Grenoble
Humeur Humeur : Fiora top 4 ever

Voir le profil de l'utilisateur https://fr.wiktionary.org/wiki/connard

Revenir en haut Aller en bas

Re: [Spoiler] Exercice Algo 3.1.3 Chercher Un Mot Dans Une Phrase

Message par Samy.C le Mer 1 Juin - 9:31

Smile
avatar
Samy.C

Messages : 42
Karma Karma : 55
Date d'inscription Date d'inscription : 24/05/2016
Age Age : 21
Localisation Localisation : Cellule AFPA
Humeur Humeur : Gone

Voir le profil de l'utilisateur http://youtube.com/sonicdbzfan07

Revenir en haut Aller en bas

Re: [Spoiler] Exercice Algo 3.1.3 Chercher Un Mot Dans Une Phrase

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum