Так как по условию задачи каждый оператор занимает не более одной строки, то будем подсчитывать количество открывающих и закрывающих скобок в каждой строке.
Program Example_86;
Var F: Text;
k1, k2, n: Integer;
Ch: Char;
Logic, Pp: Boolean;
Begin{С файловой переменной F связываем
файл на диске}
Assign(F, 'TEST.PAS');
Reset(F); {Открываем файл для чтения}
n:=0; {Счетчик количества строк}
Logic:=True; {Пока ошибок не было,
переменная Logic имеет значение True}
While Not EOf (F) Do
{Пока не достигнут конец файла}
Begin
Inc(n); {Увеличиваем счетчик
количества строк}
k1:=0; {Счетчик количества
открывающих скобок}
k2:=0; {Счетчик количества
закрывающих скобок}
Pp:=False; {Переменная Pp
предназначена для определения ошибки расстановки скобок в строке. Она