voici mon essaie
program bac2010;
uses wincrt;
type
tab=array[1..100] of integer;
var
divis,mult:tab;
a,b,s:integer;
{-------declaration des modules-------**
procedure saisie(a,b:integer);
begin
repeat
write('a=');readln(a);
until (a in[2..100]);
repeat
write('b=');readln(b);
until (b in[2..100]);
end;
function somme(divis,mult:tab;a,b:integer):integer;
var
k,i:integer;
begin
divis[1]:=a;
mult[1]:=b;
k:=2 ;
while (a<>1) do
begin
a:=a div 2;
b:=b*2;
divis[k]:=a;
mult[k]:=b;
k:=k+1;
end;
s:=0;
for i:=1 to k-1 do
begin
if (divis mod 2 =1) then
s:=s+mult;
end;
somme:=s;
end;
{-------programme principale------**
begin
saisie(a,b);
s:=somme(divis,mult,a,b) ;
writeln('le produit de a et b par la methode russe est',s);
end.