Верно ли, что имеются два пассажира, багажи которых совпадают по числу вещей - Pascal ABC
Формулировка задачи:
Решение задачи: «Верно ли, что имеются два пассажира, багажи которых совпадают по числу вещей»
program pr;
const
Csize = 100;
type
Tbag = record
it: integer;
weight: real;
end;
Tarr = array [1..Csize] of Tbag;
var
i, j, n: integer;
a: Tarr;
f: file of Tbag;
k: integer;
begin
assign(f, 'b.txt');
rewrite(f);
writeln('Введите количество записей');
readln(n);
for i := 1 to n do
begin
writeln('Введите количестов вещей');
readln(a[i].it);
writeln('Введите вес багажа');
readln(a[i].weight);
write(f, a[i]);
writeln;
end;
close(f);
reset(f);
k := 0;
while not eof(f) do
begin
inc(i);
read(f,a[i]);
for i := 1 to n do
for j := n downto 1 do
if (a[i].it = a[j].it) and ((a[i].weight - a[j].weight = 0.5) or (a[j].weight - a[i].weight = 0.5)) then
begin
k := 1;
end;
end;
if k > 0 then
writeln('Имеются два пассажира, багажи которых совпадают по числу вещей и различаются по весу не более чем на 0,5 кг')
else writeln('Таких пассажиров нет');
end.
Объяснение кода листинга программы
Программа на языке Pascal ABC проверяет, есть ли два пассажира, у которых багаж совпадает по количеству вещей и отличается по весу не более чем на 0,5 кг. Для этого программа сначала запрашивает у пользователя количество записей и количество вещей для каждого пассажира. Затем она записывает эти данные в файл. После этого программа открывает файл и начинает читать данные из него. Она сравнивает багаж каждой записи и если находится совпадение по количеству вещей и разнице в весе не более чем на 0,5 кг, то увеличивает счетчик k. Когда k становится больше нуля, программа выводит сообщение о том, что найдены два пассажира, удовлетворяющих условию. Если таких пассажиров нет, то выводится соответствующее сообщение. Программа завершается после закрытия файла.