Задание на TurboPascal

Ответы
Ответ:
в константах задаётся ширина рамки, если надо. В процедуре рассчитывается положение записей в зависимости от длинны данных - будет всегда по центру
const
width=50; (* ширина рамки*)
(* это сама процедура, которая рисует рамку*)
procedure drawtitel(s1,s2: string);
var l1 :integer;
procedure drawEl(sym:string; k:integer; bk: boolean);
var j:integer;
begin
if not bk then write('*');
for j:=1 to k do write(sym);
if bk then begin
write('*');
writeln();
end;
end;
begin
drawEl('*', width, true);
l1:=trunc((width-10)/2);
drawEl(' ', l1, false);
write('Программа');
drawEl(' ', width-l1 -10, true);
l1:=trunc((width-length(s1))/2);
drawEl(' ', l1, false);
write(s1);
drawEl(' ', width-l1-length(s1)-1, true);
l1:=trunc((width-(length('Автор: '+s2)))/2);
drawEl(' ', l1, false);
write('Автор: '+s2);
drawEl(' ', width-l1-length('Автор: '+s2)-1, true);
drawEl('*', width, true);
end;
begin
(* так надо вызывать процедуру, в параметрах надо передать название программы и ФИО *)
drawtitel('название программы', '<ФИО>');
end.