Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. program laba2_3;
  2.  
  3. uses
  4. crt;
  5.  
  6. type
  7. bArray = array[0..100, 0..100] of byte;
  8.  
  9.  
  10. var
  11. name: string;
  12. s: integer;
  13. InName, OutName: string;
  14.  
  15. function answer: boolean;
  16. var
  17. s: string;
  18. correct: boolean;
  19. begin
  20. correct := false;
  21. repeat
  22. readln (s);
  23. if (s = 'Да') or (s = 'Нет') then
  24. correct := true
  25. else
  26. write ('Введите пожалуйста "Да" или "Нет": ');
  27. until correct;
  28. if s = 'Да' then
  29. answer := true
  30. else
  31. answer := false;
  32. end;
  33.  
  34. function signs (number: real): byte;
  35. var
  36. res: byte;
  37. x: integer;
  38. begin
  39. x := trunc (number);
  40. res := 0;
  41. while x > 0 do
  42. begin
  43. inc (res);
  44. x := x div 10;
  45. end;
  46. signs := res + 4;
  47. end;
  48.  
  49. procedure InFile (var name: string);
  50. var
  51. correct: boolean;
  52. begin
  53. correct := false;
  54. repeat
  55. writeln ('Введите имя файла ,в котором хранятся исходные файлы:');
  56. readln (name);
  57. if FileExists (name) then
  58. correct := true
  59. else
  60. begin
  61. writeln ('Неправильное имя файла. Повторите, пожалуйста ввод.');
  62. writeln;
  63. end;
  64. until correct;
  65. writeln;
  66. end;
  67. procedure OutFile (InputName: string; var name: string);
  68. var
  69. correct: boolean;
  70. Writefile: TextFile;
  71. begin
  72. correct := false;
  73. repeat
  74. writeln ('Введите имя файла, в котором необходимо разместить результат работы программы.');
  75. readln (name);
  76. if FileExists (name) and (name <> InputName) then
  77. begin
  78. assign (WriteFile, name);
  79. reset (WriteFile);
  80. if eof (WriteFile) then
  81. correct := true
  82. else
  83. begin
  84. writeln ('Этот файл содержит данные. Вы хотите очистить его и записать туда результат работы программы?');
  85. if answer then
  86. correct := true;
  87. end;
  88. close (WriteFile);
  89. end
  90. else
  91. if (copy (name, length (name) - 3, 4) = '.txt') and (name <> InputName) then
  92. begin
  93. writeln ('Файл с таким именем не существует. Вы хотите его создать ?');
  94. if answer then
  95. correct := true;
  96. end
  97. else
  98. writeln ('Некорректное имя файла, повторите пожалуйста вход.');
  99. writeln;
  100. until correct;
  101. end;
  102. procedure Solution(var s: integer; name: string);
  103. var
  104. Input_File: text;
  105. w, h, i, j, k, x1, x2, y1, y2, n: longint;
  106. mass: bArray;
  107. begin
  108. Assign(Input_File, name);
  109. Reset(Input_File);
  110. Readln(Input_File, w, h);
  111. Readln(Input_File, n);
  112. for k := 0 to n - 1 do
  113. begin
  114. Readln(Input_File, x1, y1, x2, y2);
  115. for i := x1 to x2 - 1 do
  116. for j := y1 to y2 - 1 do
  117. mass[j, i] := 1;
  118. end;
  119. for i := 0 to w - 1 do
  120. for j := 0 to h - 1 do
  121. if mass[i, j] = 0 then inc(s);
  122. close(Input_File);
  123. end;
  124.  
  125. procedure OutResult (name: string; result: real);
  126. var
  127. WriteFile: TextFile;
  128. k: byte;
  129. begin
  130. assign (WriteFile, name);
  131. rewrite (WriteFile);
  132. k := signs (result);
  133. writeln (WriteFile, result:k:3);
  134. writeln;
  135. writeln ('Сумма равна ', result:k:3 );
  136. close (WriteFile);
  137. readln;
  138. end;
  139.  
  140. begin
  141. InFile (InName);
  142. OutFile (InName, OutName);
  143. OutResult(OutName, Solution (s, name));
  144. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement