Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[С++ ]Поставил begin — поставь и end. Как распознать вложения и правильно поставить в коде end?

97K
11 мая 2016 года
dotcodenetsam
1 / / 11.05.2016
Добрый день. У меня задание по КП написать прогру на плюсах: "Поставил 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 и тогда я не пройду даже
 
Код:
var s:string;
    i,j,n:integer;
begin
    readln(s);
    s:=s[length(s)] + copy(s,1,length(s)-1);
    writeln(s);
{end.}
Подскажите пожалуйста, как же решить такую проблему?
247
12 мая 2016 года
wanja
1.2K / / 03.02.2003
А у тебя задание именно добавить недостающие end, или просто проверить? А то, знаешь ли end можно вставить где угодно между операторами.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог