[pascal] problème lros de la compilation

Navet -  
 Navet -
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
Configuration: Windows Vista
Firefox 1.5.0.12

1 réponse

  1. Navet
     
    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