Guest User

Untitled

a guest
Feb 6th, 2017
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. procedure SimpleMergeSort (name:string);
  2. var
  3. k, i, j, kol, tmp:longint;
  4. a1, a2:string;
  5. f, f1, f2:text;
  6. begin
  7. kol := 0;
  8. assign(f,name);
  9. assign(f1,'f01.txt');
  10. assign(f2,'f02.txt');
  11. {I-}
  12. reset(f);
  13. {I+}
  14.  
  15. if ioresult<>0 then
  16. writeln('Blad otwarcia pliku')
  17. else
  18. begin
  19. reset(f);
  20. while ( not eof(f) ) do
  21. begin
  22. readln(f,a1);
  23. kol:=kol+1;
  24. end;
  25. close(f);
  26. end;
  27. k := 1;
  28. while ( k < kol ) do
  29. begin
  30. reset(f);
  31. rewrite(f1);
  32. rewrite(f2);
  33. if ( not eof(f) ) then readln(f,a1);
  34. while ( not eof(f) ) do
  35. begin
  36. i:=0;
  37. while((i < k) and not eof(f)) do
  38. begin
  39. writeln(f1,a1);
  40. readln(f,a1);
  41. i:=i+1;
  42. end;
  43. j:=0;
  44. while ((j < k) and not eof(f)) do
  45. begin
  46. writeln(f2,a1);
  47. readln(f,a1);
  48. j:=j+1;
  49. end;
  50. end;
  51. close(f2);
  52. close(f1);
  53. close(f);
  54.  
  55.  
  56. rewrite(f);
  57. reset(f1);
  58. reset(f2);
  59.  
  60. if ( not eof(f1) ) then readln(f1,a1);
  61. if ( not eof(f2) ) then readln(f2,a2);
  62. while ( (not eof(f1)) and (not eof(f2))) do
  63. begin
  64. i := 0;
  65. j := 0;
  66. while ( (i < k) and (j < k) and (not eof(f1)) and (not eof(f2))) do
  67. begin
  68. if ( a1 < a2 ) then
  69. begin
  70. writeln(f,a1);
  71. readln(f1,a1);
  72. i:=i+1;
  73. end
  74. else
  75. begin
  76. writeln(f,a2);
  77. readln(f2,a2);
  78. j:=j+1;
  79. end;
  80. end;
  81. while ( (i < k) and not eof(f1) ) do
  82. begin
  83. writeln(f,a1);
  84. readln(f1,a1);
  85. i:=i+1;
  86. end;
  87. while ( (j < k) and not eof(f2) ) do
  88. begin
  89. writeln(f,a2);
  90. readln(f2,a2);
  91. j:=j+1;
  92. end;
  93. end;
  94. while ( not eof(f1) ) do
  95. begin
  96. writeln(f,a1);
  97. readln(f1,a1);
  98. end;
  99. while ( not eof(f2) ) do
  100. begin
  101. writeln(f,a2);
  102. readln(f2,a2);
  103. end;
  104. close(f2);
  105. close(f1);
  106. close(f);
  107. k :=k*2;
  108. end;
  109. erase(f1);
  110. erase(f2);
  111. end;
Advertisement
Add Comment
Please, Sign In to add comment