Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.22 KB | None | 0 0
  1. program laba22;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils,
  7. Windows;
  8.  
  9. const
  10. Max = 2147483647;
  11. Min = - 2147483647;
  12. type
  13. MyArray = array of Integer;
  14.  
  15. //ïðîöåäóðà äëÿ íàõîæäåíèÿ äâóõ íîâûõ ïîñëåäîâàòåëüíîñòåé
  16. procedure newArrays (var newFirst, newSecond: MyArray; firstArr, secondArr: MyArray; n:Integer);
  17. var
  18. i:Integer;
  19. begin
  20. for i := 0 to n-1 do
  21. if firstArr[i] > secondArr[i] then
  22. begin
  23. newFirst[i] := firstArr[i];
  24. newSecond[i] := secondArr[i];
  25. end
  26. else
  27. begin
  28. newFirst[i] := secondArr[i];
  29. newSecond[i] := firstArr[i];
  30. end;
  31. end;
  32.  
  33. //ïðîöåäóðà äëÿ ïðîâåðêè ïðàâèëüíîñòè èìåíè ôàéëà
  34. procedure enterCorrectName (var fileName: String);
  35. var
  36. correctName: Boolean;
  37. begin
  38. repeat
  39. begin
  40. readln(fileName);
  41. if FileExists(fileName) then
  42. correctName := True
  43. else
  44. begin
  45. Writeln('Èìÿ ôàéëà áûëî ââåäåíî íåêîððåêòíî. Ïîïðîáóéòå åùå ðàç.');
  46. correctName := False;
  47. end;
  48. end;
  49. until correctName;
  50. end;
  51.  
  52. // ïðîöåäóðà ïðîâåðÿåò îøèáêè, ñâÿçàííûå ñ ÷òåíèåì èç ôàéëà (â òîì ÷èñëå, ïóñòîé ôàéë èëè íåò)
  53. procedure resetMyFile (var input: TextFile);
  54. var
  55. fileName:String;
  56. begin
  57. try
  58. reset(input);
  59. if Eof (input) then
  60. begin
  61. writeln('Ôàéë ïóñòîé. Îòêðîéòå äðóãîé ôàéë');
  62. closeFile(input);
  63. enterCorrectName(fileName);
  64. assignFile(input, fileName);
  65. resetMyFile(input);
  66. end;
  67. except
  68. writeln('Íå óäàåòñÿ îòêðûòü ôàéë äëÿ ÷òåíèÿ. Îòêðîéòå äðóãîé ôàéë');
  69. closeFile(input);
  70. enterCorrectName(fileName);
  71. assignFile(input, fileName);
  72. resetMyFile(input);
  73. end;
  74.  
  75. end;
  76.  
  77. //Ïðîöåäóðà äëÿ âûâîäà ìàññèâà íà ýêðàí è çàïèñè â ôàéë
  78. procedure output(var newFirst, newSecond: MyArray; n: Integer);
  79. var
  80. i: Integer;
  81. output: TextFile;
  82. begin
  83. writeln('Ðåçóëüòàò âûïîëíåíèÿ ïðîãðàììû: ');
  84. assignFile(Output, 'output.txt');
  85. rewrite(Output);
  86. i := 0;
  87. while i < n do
  88. begin
  89. write(newFirst[i], ' ');
  90. write(Output, newFirst[i], ' ');
  91. inc(i);
  92. end;
  93. writeln(' ');
  94. writeln(output, ' ');
  95. i := 0;
  96. while i < n do
  97. begin
  98. write(newSecond[i], ' ');
  99. write(Output, newSecond[i], ' ');
  100. inc(i);
  101. end;
  102. closeFile(Output);
  103. end;
  104.  
  105. //ôóíêöèÿ äëÿ ÷òåíèÿ öåëûõ ÷èñåë èç ôàéëà
  106. function readNumberFromFile(var input: TextFile; var fileName: String; var isValidInput: Boolean; isPositive: Boolean): Integer;
  107. var
  108. n: Integer;
  109. begin
  110. try
  111. read(input, n);
  112. if (n < 0) and isPositive then
  113. begin
  114. writeln('Äàííîå ÷èñëî íå ìîæåò áûòü îòðèöàòåëüíûì. Íóæíî èçìåíèòü äàííûå â ôàéëå èëè îòêðûòü äðóãîé ôàéë');
  115. isValidInput := false;
  116. end;
  117. except
  118. writeln('Â ôàéëå íåêîððåêòíàÿ âåðõíÿÿ ãðàíèöà. Íóæíî èçìåíèòü äàííûå â ôàéëå èëè îòêðûòü äðóãîé ôàéë');
  119. isValidInput := false;
  120. end;
  121. readNumberFromFile := n
  122. end;
  123.  
  124.  
  125. function countAmount(var input: TextFile; var n: Integer): Boolean;
  126. var
  127. temp, lenArr1, lenArr2: Integer;
  128. isValidArr1, isValidArr2: Boolean;
  129. begin
  130. isValidArr1 := true;
  131. isValidArr2 := false;
  132. lenArr1 := 0;
  133. lenArr2 := 0;
  134. while (not eoln(input)) and isValidArr1 do
  135. begin
  136. try
  137. read(input, temp);
  138. inc(lenArr1);
  139. except
  140. writeln('Äàííûå â ôàéëå íåêîððåêòíûå. Îòêðîéòå íîâûé ôàéë.');
  141. isValidArr1 := false;
  142. end;
  143. end;
  144. readln(input);
  145. if isValidArr1 then
  146. begin
  147. isValidArr2 := true;
  148. while (not eoln(input)) and isValidArr2 do
  149. begin
  150. try
  151. read(input, temp);
  152. inc(lenArr2);
  153. except
  154. writeln('Äàííûå â ôàéëå íåêîððåêòíûå. Îòêðîéòå íîâûé ôàéë.');
  155. isValidArr2 := false;
  156. end;
  157. end;
  158. end;
  159. if (lenArr1 = lenArr2) and isValidArr2 then
  160. begin
  161. countAmount := isValidArr2;
  162. n := lenArr1;
  163. end
  164. else
  165. begin
  166. writeln('Ïîñëåäîâàòåëüíîñòè äîëæíû èìåòü îäèíàêîâîå êîëè÷åñòâî ýëåìåíòîâ');
  167. countAmount := isValidArr2;
  168. closeFile(input);
  169. end;
  170. end;
  171. var
  172. firstArr, secondArr, newFirst, newSecond: MyArray;
  173. n, i: Integer;
  174. input: TextFile;
  175. fileName: String;
  176. isValidInput: Boolean;
  177.  
  178. begin
  179. setConsoleCP(1251);
  180. setConsoleOutputCP(1251);
  181. writeln('Äàííàÿ ïðîãðàììà ôîðìèðóåò äâå íîâûå ïîñëåäîâàòåëüíîñòè èç çàäàííûõ, ýëåìåíòû êîòîðûõ âû÷èñëÿþòñÿ ïî ñëåäóþùåìó ïðàâèëó: ai = max(ai,bi), bi = min(ai,bi)');
  182. writeln('Ââåäèòå èìÿ ôàéëà, â êîòîðîì íàõîäÿòñÿ äàííûå');
  183. repeat
  184. n := 0;
  185. enterCorrectName(fileName);
  186. assignFile(input, fileName);
  187. resetMyFile(input);
  188. isValidInput := countAmount(input, n);
  189. until isValidInput;
  190. reset(input);
  191. setlength(firstArr, n);
  192. setLength(secondArr, n);
  193. setlength(newFirst, n);
  194. setLength(newSecond, n);
  195. for i := 0 to n-1 do
  196. read(input, firstArr[i]);
  197. for i := 0 to n-1 do
  198. read(input, secondArr[i]);
  199. closeFile(input);
  200. newArrays(newFirst, newSecond,firstArr, secondArr, n);
  201. output (newFirst, newSecond, n);
  202. readln;
  203. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement