Dev-Pascal

Fermé
Gilldas - 9 juin 2012 à 21:14
aladin07 Messages postés 277 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 - 9 juin 2012 à 21:32
Bonjour,

Je suis en période d'examen en se moment. Mais un gros problème ses présenter à moi. Suite à un acccident, qui ne ma pas permis de suivre mes cours comme je le voulai ma réussite risque d'être anéantie. Alors je vous demande de m'aider S.V.P. Mon projet de fin d'année est le jeu du palindrome en Dev-pascal que voici :

program ProjetPalindrome;

var phraseA : string; //Variable A
phraseB : string; //Variable B
phraseC : string; //Variable C
phraseD : string; //Variable D
i : integer; //Variable de contrôle
phraseE : string;

begin
//Lecture phrase de départ
write('Entrer la phrase : ');
readln(phraseA);

//Convertion en majuscule
phraseB := UpCase(phraseA);

//Conversion en mot sans accents avec le code ascii
phraseC:='';
for i:=1 to length(phraseB) do
begin
case ord(phraseB[i]) of
130,138,136,137,144,210,211,212 : begin
phraseC := phraseC + 'E';
end;
135 : begin
phraseC := phraseC + 'C';
end;
139,140,214,215,216: begin
phraseC := phraseC + 'I';
end;
131,132,133,134,142,181,182,183 : begin
phraseC := phraseC + 'A';
end;
129,150,151,154,163,233,234,235 : begin
phraseC := phraseC + 'U';
end;
147,148,149,153,162,224,226,227 : begin
phraseC := phraseC + 'O';
end;
152,236,237 : begin
phraseC := phraseC + 'Y';
end;
else
phraseC := phraseC + phraseB [i];
end;
end;

//Ne garde que les lettres si situant entre A et Z, plus d'espace
phraseD :='';
for i:=1 to length (phraseB) do
if (phraseC[i]>='A') and (phraseC[i]<='Z') then
phraseD := phraseD + phraseC[i];

writeln(phraseD);

//Inverse les lettres de la fin au début
phraseE :='';
for i:= length (phraseD) downto 1 do
phraseE:= phraseE + phraseD[i];

readln;
end.


Comme vous pouvez le constater j'ai réussi a bien avancer mais je suis bloquer sur le moment d'inverser les caractère pour dire si oui ou non cela est un palindrome.

SVP AIDER MOI !!



A voir également:

1 réponse

aladin07 Messages postés 277 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
9 juin 2012 à 21:32
Sans inverser les lettres,

var erreu:boolean;
...
//Ne garde que les lettres si situant entre A et Z, plus d'espace
phraseD :='';
for i:=1 to length (phraseB) do
if (phraseC[i]>='A') and (phraseC[i]<='Z') then
phraseD := phraseD + phraseC[i];

writeln(phraseD);

erreur := false;
for i:=1 to length(phraseD)/2 do
if (phraseD[i] <> phraseD[length(phraseD) - i + 1)) then erreur := true;

if(erreur = true) writeln('C''est un palindrome');
else writeln('Ce n''est pas un palindrome');

readln;
end.
0