Нужно объяснить каждую строчку.
uses crt;
const n=3;
type
book=record
autor, title:string;
page,year: word;
end;
var
A: array[1..n] of string;
B: array[1..n] of book;
i,j,max,num: integer;
tmp: string;
begin
for i:=1 to n do begin
write('Название книги: '); readln(B.title);
write('Автор: '); readln(B.autor);
write('Число страниц: '); readln(B.page);
write('Год издания: '); readln(B.year);
end;
for i:=1 to n do A:=B.autor;
for i:=2 to n do
for j:=n downto i do if A[j-1]>A[j] then begin
tmp:=A[j-1];
A[j-1]:=A[j];
A[j]:=tmp;
end;
writeln;
for i:=1 to n do write(A,' ');
writeln;
max:=B[1].page; num:=1;
for i:=1 to n do begin
if B.year>2000 then writeln(B.autor, ' - ', B.title);
if B.page>max then begin max:=B.page; num:=i; end;
end;
writeln;
writeln(B[num].title, ' - самая толстая книга - ', B[num].page, ' стр. ');
end.