|
|
back to boardWhy my program get 'Compilation error'?Could someone help me? My program works well on my own computer with Free Pascal IDE 2.2.0. But when I submitted it, it got 'Compilation error'. I'm really confused. Could someone help me? Thanks. Re: Why my program get 'Compilation error'?Could someone help me? Posted by rGV 27 Nov 2007 22:42 check is "uses" in your program Re: Why my program get 'Compilation error'?Could someone help me? I didn't use any 'uses'... Here is my program: var s,f: array [0..500] of string; i,j,k,n,t: longint; tmp: string; function compare(var a,b: string): boolean; var i: longint; begin i:=0; while (i<length(a)) and (i<length(b)) do begin inc(i); if (a[i]='\') and (b[i]<>'\') then begin compare:=false; exit; end; if (a[i]<>'\') and (b[i]='\') then begin compare:=true; exit; end; if a[i]<b[i] then begin compare:=false; exit; end else if a[i]>b[i] then begin compare:=true; exit; end; end; if i=length(a) then compare:=false else compare:=true; end; function check(var s: string): longint; begin check:=1; while (f[check]<>'') and ((f[check]+'\')=copy(s,1,length(f[check])+1)) do begin delete(s,1,length(f[check])+1); inc(check); end; end; begin readln(n); for i:=1 to n do readln(s[i]); for i:=1 to n-1 do for j:=i+1 to n do if compare(s[i],s[j]) then begin tmp:=s[i]; s[i]:=s[j]; s[j]:=tmp; end; for i:=1 to n do begin k:=check(s[i]); while s[i]<>'' do begin t:=pos('\',s[i]); if t=0 then begin s[i]:=s[i]+'\'; t:=length(s[i]); end; f[k]:=copy(s[i],1,t-1); for j:=1 to k-1 do write(' '); writeln(f[k]); inc(k); delete(s[i],1,t); end; end; end. |
|
|