Входной и выходной файл. Исправить код программы - 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.
Объяснение кода листинга программы
- Объявление константы
ERROR_ANSWER
- это двумерный массив строк, содержащий сообщения об ошибке и фразыда
илинет
, в зависимости от переданных булевских значений. - Объявление переменных
f
иg
- это текстовые файлы. - Объявление переменных
a1
,b1
,a2
,b2
- это целочисленные переменные. - Определение функции
CheckRange
- эта функция принимает два целых числа и возвращает булевское значение в зависимости от того, соответствуют ли они определенному диапазону. - Открытие файла
b.in
для чтения. - Открытие файла
b.out
для записи. - Считывание значений из файла
b.in
в переменныеa1
,b1
,a2
,b2
. - Запись результата выполнения функции
CheckRange
и выражения(a2 > b1 + 3)
в файлb.out
, используя константуERROR_ANSWER
. - Закрытие файлов
b.in
иb.out
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д