Bonjour à tous,
Mon problème est le suivant:
je dois réaliser une fonction booléenne qui indique si deux mots sont des anagrammes.
Voici le code:
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 Exercice5; function Anagramme(const s1:string;var s2:string):boolean; var i,c:integer; begin i:=1; result:=(s2=' '); if length(s1)=length(s2) then begin while(i<length(s1)+1) and not result do begin c:=pos(s1[i],s2); if (c<>0) then begin delete(s2,c,1); writeln(s2); inc(i); end; end; end; end; var ch1,ch2:string; begin // PROGRAMME PRINCIPAL writeln('Veuillez entrer 1 mots: '); readln(ch1); writeln('Veuillez entrer un 2e mot: '); readln(ch2); writeln(Anagramme(ch1,ch2)); end.
Donc l'idée est de regarder d'abord le caractère d'indice i dans le string 1 avec sa place dans le string 2 puis dans la boucle l'effacer du string 2.
Le problème c'est que la console me renvoie comme réponse FALSE....
Merci de me lire.
Merci pour l'explication des balises![]()
Partager