program CreateIntegerFile;
const
FileName = 'integer_file.bin';
NumberOfRecords = 512;
MaxValue = 1000;
var
IntFile: file of integer;
i: integer;
begin
randomize;
assign(IntFile, FileName);
rewrite(IntFile);
for i := 1 to NumberOfRecords do
write(IntFile, random(MaxValue+1));
close(IntFile)
end.
program CalcSumOfOddIntegers;
const
FileName = 'integer_file.bin';
var
IntFile: file of integer;
sum: int64 = 0;
n: integer;
begin
assign(IntFile, FileName);
reset(IntFile);
while not eof(IntFile) do
begin
read(IntFile, n);
if n mod 2 <> 0 then
sum := sum + n
end;
close(IntFile);
writeln('Sum of odd integers: ', sum)
end.
FileName = 'C:\Users\UserName\Desktop\integer_file.bin'
program CreatePassengerFile;
const
FileName = 'passenger_file.bin';
NumberOfPassengers = 10;
SurnameLen = 20;
MinBagCount = 1;
MaxBagCount = 10;
MinBagWeight = 1;
MaxBagWeight = 30;
type
TPassenger = record
surname: string[SurnameLen];
BagCount: integer;
BagWeight: integer;
end;
function RandomAB(a, b: integer): integer;
begin
RandomAB := random(b - a + 1) + a
end;
procedure PrintPassenger(var passenger: TPassenger);
begin
writeln(passenger.surname, ':');
writeln(' Baggage count: ', passenger.BagCount);
writeln(' Baggage weight: ', passenger.BagWeight)
end;
(Продолжение ниже) var
PassengerFile: file of TPassenger;
surnames: array [1..NumberOfPassengers] of string[SurnameLen] =
(
'Martinez', 'Blaine', 'Allen', 'Felix', 'Amos',
'Huffman', 'Booker', 'Jackson', 'Vinson', 'Jenkins'
);
passenger: TPassenger;
i: integer;
begin
randomize;
assign(PassengerFile, FileName);
rewrite(PassengerFile);
for i := 1 to NumberOfPassengers do
begin
passenger.surname := surnames[i];
passenger.BagCount := RandomAB(MinBagCount, MaxBagCount);
passenger.BagWeight := RandomAB(MinBagWeight, MaxBagWeight);
write(PassengerFile, passenger);
PrintPassenger(passenger)
end;
close(PassengerFile)
end.
program AnalyzePassengerFile;
const
FileName = 'passenger_file.bin';
NumberOfPassengers = 10;
SurnameLen = 20;
type
TPassenger = record
surname: string[SurnameLen];
BagCount: integer;
BagWeight: integer;
end;
TPassengerArray = array [1..NumberOfPassengers] of TPassenger;
{ Get number of passengers with BagCount >= 2 }
function GetNumWithBagCountGE2(passengers: TPassengerArray): integer;
var
i, res: integer;
begin
res := 0;
for i := 1 to NumberOfPassengers do
if passengers[i].BagCount >= 2 then
res := res + 1;
GetNumWithBagCountGE2 := res
end;
(продолжение ниже) { Find the index of two passengers with the same BagWeight. If there are no
such records in the array, assign the value -1 to Pas1Idx. }
procedure FindPasWithSameBagWeight(passengers: TPassengerArray;
var Pas1Idx, Pas2Idx: integer);
var
i1, i2: integer;
begin
for i1 := 1 to NumberOfPassengers - 1 do
begin
for i2 := i1 + 1 to NumberOfPassengers do
begin
if passengers[i1].BagWeight = passengers[i2].BagWeight then
begin
Pas1Idx := i1;
Pas2Idx := i2;
exit
end
end
end;
Pas1Idx := -1
end;
(продолжение ниже) var
PassengerFile: file of TPassenger;
passengers: TPassengerArray;
i, Pas1Idx, Pas2Idx: integer;
begin
assign(PassengerFile, FileName);
reset(PassengerFile);
for i := 1 to NumberOfPassengers do
read(PassengerFile, passengers[i]);
close(PassengerFile);
writeln('Number of passengers with baggage count >= 2: ',
GetNumWithBagCountGE2(passengers));
FindPasWithSameBagWeight(passengers, Pas1Idx, Pas2Idx);
if Pas1Idx = -1 then
begin
writeln('There are no passengers with the same baggage weight!')
end
else
begin
writeln('Two passengers with the same baggage weight (',
passengers[Pas1Idx].BagWeight, '): ', passengers[Pas1Idx].surname,
', ', passengers[Pas2Idx].surname)
end
end.