Заполнить двоичный файл целыми числами из интервала [-3000; 8000]. Количество компонент файла вводится с клавиатуры. Поменять местами в файле первый нечетный по значению компонент и последний четный.
1) Тест для работы
2) Написать простой алгоритм
3) Код программы
4) Скрин шот
5) Заключение (какие логические ошибки)
Answers & Comments
Verified answer
Var i,n,fs,ls: integer;fsz,indf,indl: int64;
f: file of integer;
begin
write('n = '); readln(n);
// запись в файл целых чисел
assign(f,'input.txt');
rewrite(f);
for i:=1 to n do write(f,random(-3000,8000));
close(f);
// замена элементов в файле
assign(f,'input.txt');
reset(f);
fsz:=FileSize(f);
indf:=0;
for i:=0 to fsz-1 do
begin
read(f,n);
if ((n mod 2)<>0) and (indf=0) then
begin
indf:=i; fs:=n;
end;
if (n mod 2)=0 then
begin
indl:=i; ls:=n;
end;
end;
reset(f);
seek(f,indf);
write(f,ls);
reset(f);
seek(f,indl);
write(f,fs);
close(f);
end.