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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| 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. |
Partager