Входной и выходной файл. Исправить код программы - Pascal

Узнай цену своей работы

Формулировка задачи:

Имя входного файла: b.in Имя выходного файла: b.out Два сотрудника подали своему начальнику заявление на отпуск. Первый попросил отпустить его с А1 по В1 день (дни отсчитываются с начала года), второй - с А2 по В2 день. Считаем что А1<B1 и А2<B2. Однако дело требует, чтобы один из сотрудников находился на работе. Мало того, при смене отдыхающих необходимо не менее 3 дней их совместной работы - для передачи дел. Напишите программу, принимающую четыре указанных выше параметра, и печатающую заключение о том, удовлетворяют ли заявления требованиям начальника. Формат входного файла: входной файл содержит четыре целых числа по 2 на каждой строке. А1, В1 на первой строке и А2, В2 на второй строке (А1,А2,В1,В2<365). Формат выходного файла: выходной файл содержит ответ ""да" или "нет" Вот что у меня вышло
uses crt;
var a,b:text;
 
A1,B1,A2,B2: integer;
begin
assign (a,'a.in'); reset(a);
assign (b,'a.out');rewrite(b);
readln(a);
procedure
var S: string;
begin
if B2>B1 then begin
if A2-A1>3 then S:='Да' else S:='нет';
end;
writeln(S);
end;
end.
Заранее спасибо

Решение задачи: «Входной и выходной файл. Исправить код программы»

textual
Листинг программы
const
    ERROR_ANSWER: Array[Boolean, Boolean] Of String = (('Неверный диапазон!', 'Неверный диапазон!'), ('нет', 'да'));
var
    f, g: Text;
    a1, b1, a2, b2: Integer;
function CheckRange(const a, b: Integer): Boolean;
begin
    CheckRange := (a > 0) And (b > a) And (b < 365);
end;
begin
    Assign(f, 'b.in'); Reset(f);
    Assign(g, 'b.out'); Rewrite(g);
    ReadLn(f, a1, b1); ReadLn(f, a2, b2);
    WriteLn(g, ERROR_ANSWER[CheckRange(a1, b1) And CheckRange(a2, b2), (a2 > b1 + 3)]);
    Close(f); Close(g);
end.

Объяснение кода листинга программы

  1. Объявление константы ERROR_ANSWER - это двумерный массив строк, содержащий сообщения об ошибке и фразы да или нет, в зависимости от переданных булевских значений.
  2. Объявление переменных f и g - это текстовые файлы.
  3. Объявление переменных a1, b1, a2, b2 - это целочисленные переменные.
  4. Определение функции CheckRange - эта функция принимает два целых числа и возвращает булевское значение в зависимости от того, соответствуют ли они определенному диапазону.
  5. Открытие файла b.in для чтения.
  6. Открытие файла b.out для записи.
  7. Считывание значений из файла b.in в переменные a1, b1, a2, b2.
  8. Запись результата выполнения функции CheckRange и выражения (a2 > b1 + 3) в файл b.out, используя константу ERROR_ANSWER.
  9. Закрытие файлов b.in и b.out.

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы