Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program laba2_3;
- uses
- crt;
- type
- bArray = array[0..100, 0..100] of byte;
- var
- name: string;
- s: integer;
- InName, OutName: string;
- function answer: boolean;
- var
- s: string;
- correct: boolean;
- begin
- correct := false;
- repeat
- readln (s);
- if (s = 'Да') or (s = 'Нет') then
- correct := true
- else
- write ('Введите пожалуйста "Да" или "Нет": ');
- until correct;
- if s = 'Да' then
- answer := true
- else
- answer := false;
- end;
- function signs (number: real): byte;
- var
- res: byte;
- x: integer;
- begin
- x := trunc (number);
- res := 0;
- while x > 0 do
- begin
- inc (res);
- x := x div 10;
- end;
- signs := res + 4;
- end;
- procedure InFile (var name: string);
- var
- correct: boolean;
- begin
- correct := false;
- repeat
- writeln ('Введите имя файла ,в котором хранятся исходные файлы:');
- readln (name);
- if FileExists (name) then
- correct := true
- else
- begin
- writeln ('Неправильное имя файла. Повторите, пожалуйста ввод.');
- writeln;
- end;
- until correct;
- writeln;
- end;
- procedure OutFile (InputName: string; var name: string);
- var
- correct: boolean;
- Writefile: TextFile;
- begin
- correct := false;
- repeat
- writeln ('Введите имя файла, в котором необходимо разместить результат работы программы.');
- readln (name);
- if FileExists (name) and (name <> InputName) then
- begin
- assign (WriteFile, name);
- reset (WriteFile);
- if eof (WriteFile) then
- correct := true
- else
- begin
- writeln ('Этот файл содержит данные. Вы хотите очистить его и записать туда результат работы программы?');
- if answer then
- correct := true;
- end;
- close (WriteFile);
- end
- else
- if (copy (name, length (name) - 3, 4) = '.txt') and (name <> InputName) then
- begin
- writeln ('Файл с таким именем не существует. Вы хотите его создать ?');
- if answer then
- correct := true;
- end
- else
- writeln ('Некорректное имя файла, повторите пожалуйста вход.');
- writeln;
- until correct;
- end;
- procedure Solution(var s: integer; name: string);
- var
- Input_File: text;
- w, h, i, j, k, x1, x2, y1, y2, n: longint;
- mass: bArray;
- begin
- Assign(Input_File, name);
- Reset(Input_File);
- Readln(Input_File, w, h);
- Readln(Input_File, n);
- for k := 0 to n - 1 do
- begin
- Readln(Input_File, x1, y1, x2, y2);
- for i := x1 to x2 - 1 do
- for j := y1 to y2 - 1 do
- mass[j, i] := 1;
- end;
- for i := 0 to w - 1 do
- for j := 0 to h - 1 do
- if mass[i, j] = 0 then inc(s);
- close(Input_File);
- end;
- procedure OutResult (name: string; result: real);
- var
- WriteFile: TextFile;
- k: byte;
- begin
- assign (WriteFile, name);
- rewrite (WriteFile);
- k := signs (result);
- writeln (WriteFile, result:k:3);
- writeln;
- writeln ('Сумма равна ', result:k:3 );
- close (WriteFile);
- readln;
- end;
- begin
- InFile (InName);
- OutFile (InName, OutName);
- OutResult(OutName, Solution (s, name));
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement