Программа begin end что делает

Добрый день. У меня задание по КП написать прогру на плюсах: «Поставил begin — поставь и end.». Дан массив строк, представляющий собой фрагмент программы на языке Pascal. Напишите программу, проверяющую правильность вложения операторных скобок begin . end — каждому begin должен соответствовать end.»

Мне всё предельно ясно, нет проблем.
Вот только не ясно как распознать вложения. Точнее как узнать место куда вставить end, в комментариях я выделил end, который «забыли» поставить а мне его нужно дописать. Код должен работать правильно, после проверки а не испортиться.
Например:

var a,n,c,d:word; begin readln( a ); n:=1; while ( n d then writeln( d ); inc( n ); < вот как понять, что end;должен стоять до а не после? >end; end.

Я бы без проблем решил эту проблему за счет отступов. Но я уверен, что мой преподаватель будет копировать не отформатированный код в textBox. Подскажите пожалуйста, как же решить такую проблему? Уверен, что есть хороший способ. Не хочу костылировать.

38 print, BEGIN{}, {}, END{}

  • Вопрос задан более трёх лет назад
  • 814 просмотров

2 комментария

Оценить 2 комментария

Источник: qna.habr.com

BEGIN. END (Transact-SQL)

Включает в себя последовательность инструкций Transact-SQL, позволяя выполнять группу инструкций Transact-SQL. Ключевые слова BEGIN и END относятся к языку потока управления.

Синтаксис

BEGIN < sql_statement | statement_block >END

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

< sql_statement | statement_block >
Любая допустимая инструкция или группа инструкций Transact-SQL, определенная с помощью блока операторов.

Читайте также:
На каком языке пишут программы на iOs

Примечания

Блоки BEGIN. END могут быть вложенными.

Хотя все инструкции Transact-SQL допустимы в пределах блока BEGIN. END, некоторые инструкции Transact-SQL не следует группировать в пределах одного пакета (блока операторов).

Примеры

В следующем примере ключевые слова BEGIN и END определяют ряд инструкций Transact-SQL, которые будут выполняться вместе. Если не включить блок BEGIN. END , будут выполнены оба оператора ROLLBACK TRANSACTION и возвращены оба сообщения PRINT .

Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)

В приведенном ниже примере ключевые слова BEGIN и END определяют ряд инструкций языка SQL, которые выполняются вместе. Если не включить блок BEGIN. END , в приведенном ниже примере образуется непрерывный цикл.

Источник: learn.microsoft.com

Вопрос Зачем этой программе две программы begin, и end?

256334341_8ac2a4bb7158aec43cf492ca2b9acb5e_800.png

Язык Си с нуля — Урок 21- Указатели, адреса, NULL

begin и end не программы, а так называемые операторные скобки — просто вид скобок.

Никколай

Capitan

Никколай

Capitan

Регистрация 27 Дек 2013 Сообщения 76 Репутация 0 Спасибо 0 Монет 0

Первый begin начинает саму программу, второй запускает тело цикла

PBSasha

Capitan

PBSasha

Capitan

Регистрация 20 Сен 2013 Сообщения 72 Репутация 0 Спасибо 0 Монет 0

Пара begin / end называется «составной оператор» и используется везде, где надо вставить несколько операторов в тех местах, где синтаксис языка допускает наличие строго одного оператора: после then, else, do и т. д. Разный синтаксис вариантов «один оператор» и «несколько операторов» — это общий недостаток ранних языков как с Algol-подобным, так и с C-подобным синтаксисами. В Pascal точка с запятой — разделитель операторов. Потому перед end точка с запятой не нужна.

Источник: 4cht.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru