[pascal] problème lros de la compilation
Navet
-
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
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:
- Visiodoct
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Breach compilation c'est quoi - Guide
- Erreur de compilation projet ou bibliothèque introuvable ✓ - Forum VB / VBA
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.
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.