Dev-Pascal
Gilldas
-
aladin07 Messages postés 277 Date d'inscription Statut Membre Dernière intervention -
aladin07 Messages postés 277 Date d'inscription Statut Membre Dernière intervention -
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 !!
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:
- Dev-Pascal
- Turbo pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Massgrave dev - Accueil - Windows
- Dev c++ - Télécharger - Langages
- My pascal - Télécharger - Édition & Programmation
1 réponse
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.
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.