Добрый день. У меня задание по КП написать прогру на плюсах: "Поставил begin — поставь и end.". Дан массив строк, представляющий собой фрагмент программы на языке Pascal. Напишите программу, проверяющую правильность вложения операторных скобок begin ... end — каждому begin должен соответствовать end."
Мне всё предельно ясно, нет проблем.
Вот только не ясно как распознать вложения. Точнее как узнать место куда вставить end, в комментариях я выделил end, который "забыли" поставить а мне его нужно дописать. Код должен работать правильно, после проверки а не испортиться.
Например:
var a,n,c,d:word;
begin
readln( a );
n:=1;
while ( n <= sqrt(a) ) do begin
c:=a mod n;
d:=a div n;
if c = 0 then begin
writeln( n );
if n <> d then writeln( d );
{end; }
inc( n ); { вот как понять, что end;должен стоять до а не после? }
end;
end.
Я бы без проблем решил эту проблему за счет отступов. Но я уверен, что мой преподаватель будет копировать не отформатированный код в textBox. Подскажите пожалуйста, как же решить такую проблему? Уверен, что есть хороший способ. Не хочу костылировать.