Bonjour,
SVP je veux savoir comment ecrire un algorithme pour extraire un mot d'une chaine de caractère afin de le comparer avec un autre mot donné? je suis debutante en pascal.
merci d'avance.
Bonjour,
SVP je veux savoir comment ecrire un algorithme pour extraire un mot d'une chaine de caractère afin de le comparer avec un autre mot donné? je suis debutante en pascal.
merci d'avance.
Hola
donne nous déjà ce que tu as fais ,sinon pour ton exercice copy sera utile.
Visite la F.A.Q. si tu veux encore de l'aide
http://pascal.developpez.com/faq/?pa...-de-caracteres
Je crois avoir vu un post du meme genre il y'a quelque jour.
Le mieux c' est de faire une recherche sur le forum avant d' exposer son probleme.
J'ajouterais la fonction Pos en tandem avec la procédure Copy pour son travail
ça sera simpa si tu lui montrais toutes les fonction et procedure de la bibliotheque.
Donner des fonction ça et là ne sert vraiment à rien du moment où la personne ne sais pas ce qu' elle doit faire.
Le mieux c' est de lui demander où est qu' il bloque, ce qu' il a dejà fait pour qu' on puisse critiquer et essayer d' ajouter quelque chose.
Mais la doc du compilateur permet de savoir à quoi & comment servent les fonctions citées.
Donc, il suffit de chercher & de réfléchir un peu.
Sinon, il y a toujours moyen de poser des questions plus précises.
« Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
Attribué indistinctement à :
Thomas Jefferson
Benjamin Franklin
Albert Einstein !
C'est dans le même sens que ALT que je proposais les commandes Copy et Pos
Ce n'est peux-être pas le cas de tout le monde, mais autrefois j'avais des livres de références des commandes quand j'achetais des logiciels de Borland.
J'ai gardé les plus récents de Borland pour BP7, C++, Prolog, Quattro Pro, Turbo Basic, TP5
Alors quand une commande m'est inconnue, je fouille dans mes livres de référence pour comprendre l'utilisation exacte par le texte et l'exemple accompagnant la commande. Et souvent je débloque sur des solutions intéressantes.
Si je ne trouve pas l'information nécessaire dans les livres, je me rends au Help du logiciel.
Si je ne trouve pas plus, je viens sur ce forum, surtout pour des problèmes inexistant en 1992, genre XP, ordi 32 bits, port prototype ne fonctionnant plus
+1 sur darrylsite
Je crois avant d'aller plus loin et pour aide plus efficacement l'auteur de la discusson il faudrait qu'il nous dises la ou il en est:niveau algo fini ou pas,Pascal probleme ou pas,etc
Faudrait savoir s'il est toujours à ce niveau ou s'il à avancéEnvoyé par biba13
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
volia mon travail :
mais quand j'essaye de compiler il maffiche :error:type mismatch au niveau de la
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 procedure occ_mot(ch:string;var mot:char); var i,j,cpt:integer; m: string; begin i:=1; cpt:=0; j:=1; m:= copy (ch,j,i); while ord(m)<> 32 do begin if m=mot then begin cpt:=cpt +1; j:=j+1; end else i:=i+1; end; end;
9ème ligne ;je c pas pkoi ça marche pas avec ORD?
essaye d'editer ton message et de le mettre dans des balise ["code"] ton code ["/code"] sans guillemet
car la c'est vraiment illisible...
Heureusement que ton code n'est pas long mais prend cette habitude...
Je reinstall dev-pascal et regarde ca...
Merci de ton editage...
Voila j'ai reinstaller, mais vite trouver l'erreur...
elle vien en faite que la fonction ord() renvoi l'ordinal d'un caractère..
or ton copy (==> m) est un string;
Cependant vu qu'il fera toujours qu'un seul caractère...
tu peut remplacer ton ord(m) par ord(m[1]) ce qui prend le premier caractère de ta chaine a savoir le seul...
Bien a toi...
En espérant avoir pu t'aider si oui, n'oublie pas de mettre le sujet en résolu...
A++
j'ai modifié mon program mais ça marche toujours pas
je sais que le probleme est au niveau de la boucle :" if (ord(m[j]))<> 32 then " mais comment le corriger ?? je suis vraiment nulle!
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 program exo93; uses crt; var ph: string; pmot:string; function occ_mot(ch:string;var mot:string):integer; var i,j,cpt:integer; m: string; begin i:=1; cpt:=0; j:=1; m:= copy (ch,j,i); if (ord(m[j]))<> 32 then begin if m=mot then begin cpt:=cpt +1; j:=i+1; end else i:=i+1; end else j:=j+1; occ_mot:=cpt; end; BEGIN writeln ('donner la phrase '); readln(ph); writeln('donner le mot que vous vouler comparer'); readln( pmot); writeln(' le nobre d occurences du mot ',pmot,'est: ',occ_mot(ph,pmot)); readln; end.
Normal :
dans la fonction occ_mot, il n'y a extraction que du premier caractère de la chaîne ch (la phrase), que tu essayes de comparer avec le premier caractère de mot (le mot à trouver).
Aussitôt fait, tu sors.
Bref, tu ne trouveras jamais ton mot, à moins qu'il ne fasse qu'une lettre.
Et pourtant, même dans ce cas ça ne fonctionne pas !
Revois ton algorithme, puis essaye de coder.
Si tu fais le contraire, tu arriveras presque toujours à ce résultat. D'ailleurs, à quoi sert j ?
Bon courage.
« Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
Attribué indistinctement à :
Thomas Jefferson
Benjamin Franklin
Albert Einstein !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager