Bonjour,
svp je cherche une solution pour un exercice qui affiche si une phrase est tous palindromes, c'est-à-dire tous les mots qui la composent sont des palindromes.
Bonjour,
svp je cherche une solution pour un exercice qui affiche si une phrase est tous palindromes, c'est-à-dire tous les mots qui la composent sont des palindromes.
Bonjour,
Pour que l'on puisse t'aider, poste ce que tu as fait et explique ce qui te bloque.
![]()
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Bonjour ,
j’ai voulu réaliser ce programme mais je bloque au niveau du test de la chaine
Voici le code :
A bientôt
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 ph; uses wincrt; var phrase,c:string; i,j:integer; test:boolean; function palindrom (mot:string):boolean; var ch1:string; begin ch1:=''; for i:=length(mot) downto 1 do ch1:=ch1+mot[i]; if ch1=mot then palindrom:= true else palindrom:=false; end; begin writeln('donner une phrase');readln(phrase); i:=1; repeat i:=i+1; if phrase[i]='' then c:=''; for j:=1 to i-1 do c:=c+phrase[j]; test:=palindrom(c); j:=i+1 ; until (test=false)or(i=length(phrase)); if test = false then writeln('cette phrase n''est pas palindrome') else writeln('cette phrase est palindrome'); end.
Il manque des initialisations dans le programme principal et il ne faut pas oublier le dernier tes lorsque la fin de la phrase est atteinte.
La boucle pourrait donner quelque chose comme ceci :
Attention à une erreur conceptuelle dans la fonction palindrom : tu y utilises la variable globale i ! Il faut toujours considérer une fonction comme un bloc autosuffisant, qui utilise les paramètres qui lui sont transmis et des variables locales. Ton code est d'ailleurs un bel exemple où la variable globale est modifiée dans la fonction, ce qui met la pagaille dans le traitement ultérieur dans le programme principal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 i := 0; c := ''; test := true; repeat i := i + 1; if (phrase[i] = ' ') or (i > length(phrase)) then (* Coupure de mot détectée ou fin de phrase *) begin test := palindrom(c); c := ''; end else c := c + phrase[i]; until (test = false) or (i > length(phrase));
![]()
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Merci bien pour l'explication
Partager