Помогите пожалуста кому нетрудно

  • Автор темы ScorpionL
  • Дата начала
S

ScorpionL

Гость
#1
Помогите пожалуста необходимо переделать прогаму из паскаля на С++. Вдолгу неостанусь. Вот код

Код:
Procedure Effect( Var z:Vector; n:Integer ); 
Const k :LongInt=0; {Количество перестановок} 
Var 
p,d :Vector; 
pm, dm,zpm : Integer; 
i,m,w : Integer; 
begin; 
for i:=1 to n do begin z[i]:=i; p[i]:=i; d[i]:=-1; end; 
d[1]:=0; 
m:=n+1; 
z[0]:=m; z[n+1]:=m; 
while m<>1 do begin 
{ Печать перестановки } 
k:=k+1; Write(f,k,' ) `); 
for i:=l to n do Write(f,z[i],' `); WriteLn(f); 
m: =n; 
while z [p [m] +d [m] ] >m do begin 
d[m]:=-d[m]; m:=m-l; end; 
pm:=p[m]; dm:=pm+d[m]; w:=z[pm]; 
z [pm] : =z [dm]; z[dm]:=w; 
zpm:=z[pm]; w:=p[zpm]; p[zpm]:=pm; p[m]:=w; 
end; 
end;{Effect} 
Var {Main} 
z :Vector; 
n :Integer; {Длина перестановки} 
Hour,Minute,Second,SeclOO :Word; 
rHour,rMinute,rSecond,rSec100 :Word; 
delta :LongInt; 
begin 
Assign(f,'Effect.in' ); 
Reset(f); {Файл открыт для чтения} 
ReadLn(f,n); {Чтение длины перестановки} 
Close(f); 
Assign(f,'Effect.out' ); 
Rewrite(f); {Файл открыт для записи} 
GetTime(Hour,Minute,Second,Sec100); 
Effect(z,n); 
GetTime(rHour,rMinute,rSecond,rSec100); 
delta:=rHour-Hour; 
delta:=delta*60+rMinute-Minute; 
delta:=delta*60+rSecond-Second; 
delta:=delta*100+rSec100-Sec100; 
WriteLn(f,'Время счета=',delta div 100,'.', 
delta mod 100,' сек'); 
Close(f); 
end.