Я немного подправил твою программу. Переменные в разделе var, имеющие одинаковый тип, перечисляются через запятую, а не через точку с запятой. Также, я убрал лишний end; и добавил в последний writeln() вывод переменной, в которой хранится максимальное число кратное 3.
program nast;
var
n, k, max: Integer;
begin
k := 0;
repeat
Write('Введите число: ');
Readln(n);
if(n mod 3 = 0) and (n > max) then k := n
until n = 0;
WriteLn('Максимальное число кратное 3: ', k);
end.