[pascal] problème lros de la compilation

Fermé
Navet - 31 janv. 2008 à 19:56
 Navet - 31 janv. 2008 à 20:56
Bonjour.

Je suis débutant en programmation et pour m'entrainer j'essaye de faire un programme tout simple me permettant de vérifier si un nombre est un 2-palindrome (c'est a dire si son écriture en binaire est symétrique (5 -> 101 en binaire l'est))

Donc mon souci est que je n'arrive pas a compiler mon programme :) (a mon avis y'a pas qu un seul problème) mais là je n'arrive pas a comprendre ce qui cloche :(

Mon programme ressemble actuellement a ça:
Lorsque que j'essaye de compiler mon curseur se trouve entre mon premier while et le i

Program deuxpalinfrome;
function binaire(n:integer):boolean;
var i:real;
j,k:integer;
begin
i:=n;
j:=1;
k:=1;
end;
begin
while i>=2 do
i:=i/2*j;
j:=j*2;
k:=k+1;
end;
function tablo(k);
type tableau=array[0..k] of integer;
var l:integer;
begin
for l=1 to k do;
if n-2^(k-l)>0 then tableau[l]:=1; n:=n-2^(k-l);
else tableau[l]:=0;
end;
function symetrique(tableau);
var flag:boolean;
m:integer;
begin
m:=1;
end;
begin
while m<k and flag=true do
if tableau[m]=tableau[k+1-m] then flag=true; else flag:=false;
end;
begin
writeln(flag)
end.



Donc si qqn pouvait m'expliquer pourquoi ça marche pas ce serait sympa
A voir également:

1 réponse

Je n'ai rien trouvé sur le site, soit je suis vraiment pas doué soit...

enfin j'ai réussi a réglé mon premier problème a force de tout essayer, juste un problème avec mes begin et end

mais là j'ai un autre problème il veux pas que je crée mon tableau^^
j'ai le curseur devant le k dans la ligne:type tableau=array[1..k] of integer;
enfin mon programme ressemble a ça atm


Program deuxpalindrome;
function binaire(n:integer):integer;
var i:real;
j:integer;
k:integer;
begin
i:=n;
j:=1;
k:=1;
while i>=2 do
i:=i/2*j;
j:=j*2;
k:=k+1;
end;
procedure tablo;
type tableau=array[1..k] of integer;
var l:integer;
o:integer;
p:integer;
begin
p:=1;
for l:=1 to k do;
for o:=1 to k-l do;
p:=p*2;
if n-p>0 then tableau[l]:=1;
n:=n-p;
else tableau[l]:=0;
end;
function symetrique(tableau);
var flag:boolean;
m:integer;
begin
m:=1;
while m<k and flag=true do
if tableau[m]=tableau[k+1-m] then flag=true; else flag:=false;
end;
begin
writeln(flag)
end.
0