⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sort.out

📁 this is a lp0 compilator new
💻 OUT
字号:
::::::::::::::sort.pas::::::::::::::PROGRAM Main;TYPE   SortArray = ARRAY [1..10] OF INTEGER;VAR   X            : INTEGER;   Key     	: SortArray;PROCEDURE MergeSort ( n : INTEGER;                      VAR Key : SortArray;		      X : INTEGER );VAR    CopyKey	: SortArray;   K		: INTEGER;PROCEDURE MergeArray ( n : INTEGER;                       VAR Destination : SortArray;		       Source1, Source2 : SortArray;		       VAR D, S1, S2 : INTEGER;  		       Mid, Upper : INTEGER );BEGIN { PROCEDURE MergeArray }   IF ( ( S1 <= Mid ) AND ( S2 <= Upper ) ) THEN      BEGIN         IF ( Source[S1] < Source[S2] ) THEN            BEGIN               Destination[D] := Source[S1];               S1 := S1 + 1;            END         ELSE            BEGIN               Destination[D] := Source[S2];               S2 := S2 + 1;            END;         D := D + 1;         MergeArray ( n-1, Destination, Source1, Source2, D, S1, S2, Mid, Upper );      END;END; { of Procedure MergeArray }PROCEDURE Merge ( n : INTEGER;                  Source : SortArray;	          VAR Destination : SortArray;	          Lower, Mid, Upper : INTEGER );VAR   S1, S2, D	: INTEGER;BEGIN { PROCEDURE Merge }   { Initialize Pointers }   S1 := Lower;   S2 := Mid + 1;   D := Lower;   { Repeat comparison or current items from each list }   MergeArray ( n, Destination, Source1, Source2, D, S1, S2, Mid, Upper );   { Move what is left of remaining list }   IF ( S1 > Mid ) THEN      BEGIN         FOR S2 := S2 TO Upper DO             BEGIN               Destination[D] := Source[S2];               D := D + 1;            END;      END   ELSE      BEGIN         FOR S1 := S1 TO Upper DO             BEGIN               Destination[D] := Source[S1];               D := D + 1;            END;      END;END; { of Procedure Merge }PROCEDURE Order ( n : INTEGER;                  Source : SortArray ;                  VAR Destination : SortArray;                  Lower, Upper : INTEGER );VAR   Mid 		: INTEGER;BEGIN { PROCEDURE Order }   IF Lower <> Upper THEN      BEGIN         Mid := ( Lower + Upper ) DIV 2;         Order ( n/2, Destination, Source, Lower, Mid );         Order ( n/2, Destination, Source, Mid + 1, Upper );         Merge ( n, Source, Destination, Lower, Mid, Upper );      ENDEND;   { of Procedure Order }BEGIN { PROCEDURE MergeSort }   FOR K := 1 TO X DO      CopyKey[K] := Key[K];   Order ( n, Copykey, Key, 1, X );END;   { of Procedure MergeSort }BEGIN { PROGRAM Main }   MergeSort ( n, Key, X );END.   { of PROGRAM Main }::::::::::::::compx.sym::::::::::::::Symbol Table for Pascal source code...-----------------------------------1(undefined)10(undefined)2(undefined)copykey(variable)d(variable)destination(undefined)integer(undefined)k(variable)key(undefined)lower(undefined)main(program)merge(procedure)	[Maple Function Name = c(n)]mergearray(procedure)	[Maple Function Name = b(n)]mergesort(procedure)	[Maple Function Name = a(n)]mid(variable)n(undefined)order(procedure)	[Maple Function Name = d(n)]s1(variable)s2(variable)sortarray(undefined)source(undefined)source1(undefined)source2(undefined)upper(undefined)x(undefined)::::::::::::::compx.mpl::::::::::::::assign ( rsolve ( c(n)=1+1+1+1+1+1+1+b(n)+1+1+sum (1+1+1+1+1+1+1, s2=s2..upper)+1+1+sum (1+1+1+1+1+1+1, s1=s1..upper), c(n) ) );assign ( rsolve ( b(n)=1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+b(n-1), b(n) ) );assign ( rsolve ( a(n)=1+1+sum (1+1+1+1, k=1..x)+d(n), a(n) ) );assign ( rsolve ( d(n)=1+1+1+1+1+1+d(n/2)+d(n/2)+c(n), d(n) ) );assign ( rsolve ( f(n)=a(n), f(n) ) );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -