я вот уже почти написал прогу я работаю в ней только со строками в начале в заданной функции вывожу все возможные варианты значений тоесть допустим функция A*B я доделал задачу до того этапа что она должна выводить вот это
0*1
1*0
1*1
0*0 тоесть перебирает все возможные варианты но тут и возникает проблема прога почемуто выводит
0*0
0*0
0*0
0*0 и я не могу понять почему вродебы все правильно мнеб только исправить это а дальше я знаю как делать
вот прога
{colichestvo perem}
function findvar(s:string):string;
var
result:string;
ch:char;
begin
result:='';
for ch:='A' to 'Z' do
if pos(ch,s)>0 then
result:=result+ch;
findvar:=result;
end;
{perevod v 2 sis}
function inttobin(n,k:longint):string;
var
s,d: String;
i,c:integer;
const
radix=2;
digit: string[10]='0123456789';
begin
s:='';
D:='';
{if N<K then
begin
c:=K-n;
for i:=1 to c do
d:=d+'0';
end;}
repeat
s:=digit[(n mod radix)+1]+s;
n:=n div radix;
until n=0;
if k-length(s)>0 then
begin
c:=k-length(s);
for i:=1 to (c-1) do
d:=d+'0';
end;
d:=d+s;
inttobin:=d;
end;
{zamena v stroke}
procedure replase(sold,snew:string;var s:string);
var n:integer;
begin
while pos(sold,s)>0 do
begin
n:=pos(sold,s);
delete(s,n,length(sold));
insert(snew,s,n);
end;
end;
{colichestvo vozmoghnih znaheniy}
function voz(k:integer):integer;
var
q,c:integer;
begin
c:=1;
for q:=1 to K do begin
C:=c*2;
end;
voz:=c;
end;
{osnovnaya programma}
var
s,x,z,svar:string;
I,k,e,j:integer;
begin
writeln('ўўҐ¤ЁвҐ дгЄжЁо');
readln(s);
z:=s;
svar:='';
x:=findvar(s);
K:=voz(length(X));
for i:=0 to (K-1) do
begin
svar:=inttobin(i,k);
for j:=1 to length(X) do
begin
replase(x[j],svar[j],z);
writeln(z);
end;
end;
{replase('A','0',s);
writeln(s);}
readln;
end.
помогите пожалуйстя 
Код
function inttobin(n,k:longint):string;
var
s,d: String;
i,c:integer;
const
radix=2;
digit: string[10]='0123456789';
begin
s:='';
D:='';
{if N<K then
begin
c:=K-n;
for i:=1 to c do
d:=d+'0';
end;}
repeat
s:=digit[(n mod radix)+1]+s;
n:=n div radix;
until n=0;
if k-length(s)>0 then
begin
c:=k-length(s);
for i:=1 to (c-1) do
d:=d+'0';
end;
d:=d+s;
inttobin:=d;
end;
var
s,d: String;
i,c:integer;
const
radix=2;
digit: string[10]='0123456789';
begin
s:='';
D:='';
{if N<K then
begin
c:=K-n;
for i:=1 to c do
d:=d+'0';
end;}
repeat
s:=digit[(n mod radix)+1]+s;
n:=n div radix;
until n=0;
if k-length(s)>0 then
begin
c:=k-length(s);
for i:=1 to (c-1) do
d:=d+'0';
end;
d:=d+s;
inttobin:=d;
end;