Précédent   Forum des professionnels en informatique > Autres langages > Pascal
Pascal Forum d'entraide sur la programmation en langage Pascal et sur les EDI. Avant de poster -> la F.A.Q Pascal, les cours
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/05/2011, 20h20   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 3
Points : 0
Points : 0
Par défaut Phrase palindrome

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.
ahmed nour meriem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 20h44   #2
Responsable Pascal
 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 4 891
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 4 891
Points : 13 455
Points : 13 455
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
Bonjour,

Pour que l'on puisse t'aider, poste ce que tu as fait et explique ce qui te bloque.

__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

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]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 15h49   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 13
Points : 14
Points : 14
Bonjour ,
j’ai voulu réaliser ce programme mais je bloque au niveau du test de la chaine
Voici le code :

Code :
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.
A bientôt
extrem-alpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 22h03   #4
Responsable Pascal
 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 4 891
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 4 891
Points : 13 455
Points : 13 455
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
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 :
Code :
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));
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.

__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

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]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/05/2011, 14h55   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 13
Points : 14
Points : 14
Merci bien pour l'explication
extrem-alpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h00.


 
 
 
 
Partenaires

Hébergement Web