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

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

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

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

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

textual
Листинг программы
  1. const
  2.     ERROR_ANSWER: Array[Boolean, Boolean] Of String = (('Неверный диапазон!', 'Неверный диапазон!'), ('нет', 'да'));
  3. var
  4.     f, g: Text;
  5.     a1, b1, a2, b2: Integer;
  6. function CheckRange(const a, b: Integer): Boolean;
  7. begin
  8.     CheckRange := (a > 0) And (b > a) And (b < 365);
  9. end;
  10. begin
  11.     Assign(f, 'b.in'); Reset(f);
  12.     Assign(g, 'b.out'); Rewrite(g);
  13.     ReadLn(f, a1, b1); ReadLn(f, a2, b2);
  14.     WriteLn(g, ERROR_ANSWER[CheckRange(a1, b1) And CheckRange(a2, b2), (a2 > b1 + 3)]);
  15.     Close(f); Close(g);
  16. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы