Почему после каждого кода на языке программирование C мы должны писать точку с запятой ( ; )? Я знаю, что это для того, чтобы код правильно работал, но как это работает?
Отслеживать
6,641 6 6 золотых знаков 29 29 серебряных знаков 52 52 бронзовых знака
задан 3 мар 2021 в 18:03
NO NAME I SAID NO NAME I SAID
35 2 2 бронзовых знака
Ну как-то надо же отделять друг от друга коды. Можно было бы и другой значок придумать, например «᧟», но точка с заяпятой показалась создателям языка подходящей.
3 мар 2021 в 18:07
Ну вот так сложилось исторически:) Можно было бы без этого, но как бы вы тогда понимали окончание команды? В Python, например, точки с запятой не обязательны
3 мар 2021 в 18:09
апочемупослекаждогослованарусскоммыдолжныставитьпробел?
3 мар 2021 в 19:09
А зачем мы на русском языке в конце каждого предложения ставим знак, завершающий предложение? Ответ прост: по правилам языка каждое предложение должно быть завершено одним из предназначенных для этого знаков. На заголовки не кивать, они не настоящие предложения. На бейсике инструкция завершается в конце строки, поэтому там двоеточие не нужно, но если в одной строке несколько инструкций, то их надо разделить двоеточием.
3. Как прочитать текстовый файл (TXT) в 1С
9 ноя 2022 в 6:39
Но си – не бейсик, он позволяет всю программу в один столбец написать. И завершающий знак надо поставить даже в том случае, если конец инструкции или декларации попадает на конец строки. Но заголовки выделены точно также: в них точка с запятой не ставится. И именно этим заголовок функции отличается от её предварительной декларации: в предварительной декларации точка с запятой есть, а в заголовке её нет.
9 ноя 2022 в 6:41
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
На самом деле ничего волшебного или особенного в точке с запятой нет. Она ни чем не лучше и не хуже любого другого символа в исходном коде.
Другое дело, что конкретные правила употребления того или иного символа определяются грамматикой языка. Грамматика языка C устроена так, что требует использования точки с запятой в конце объявления (англ. declaration), в конце объявления структуры (англ. struct declaration), в конце expression statement, в конце jump statement, а также в конце do while и внутри for :
(6.7) declaration: declaration-specifiers init-declarator-listopt ; (6.7.2.1) struct-declaration: specifier-qualifier-list struct-declarator-list ; (6.8.3) expression-statement: expressionopt ; (6.8.5) iteration-statement: while ( expression ) statement do statement while ( expression ) ; for ( expressionopt ; expressionopt ; expressionopt ) statement for ( declaration expressionopt ; expressionopt ) statement (6.8.6) jump-statement: goto identifier ; continue ; break ; return expressionopt ;
— Отрывок из ISO/IEC 9899:1999 Appendix A.
Использование точки с запятой не является каким-то обязательным требованием. Главное, чтобы грамматика языка не была неоднозначной (англ. ambiguous).
Пунктуация в ссп (в сложносочиненных предложениях)
Один из классических примеров неоднозначной конструкции в языках программирования — это «висячий else »:
/* К какому if относится этот else? */ if (a) if (b) s1; else s2;
Для решения этой неоднозначности можно ввести ключевое слово fi (так сделано в Bash); дополнительные begin и end (Pascal); или требовать, чтобы else относился к ближайшему if ‡ — так сделано в C.
Точно также точка с запятой просто является инструментом для решения различных неоднозначностей в языке C, которые проявились бы, если бы этой точки с запятой не было.
† Во многих других языках программирования точка с запятой, хоть и входит в грамматику, но не является обязательной для использования и может быть опущена в некоторых контекстах. В Go, например, лексический анализатор в большинстве случаев сам вставляет точку с запятой в конце каждой строки. (Кстати, это одна из причин, почему в Go нельзя переносить фигурную скобку < на новую строку.)
‡ Этого будет достаточно в плане семантики, но чтобы избавится от неоднозначности грамматики потребуются дополнительные < и >.
Источник: ru.stackoverflow.com
Команды в программе отделяются друг от друга точкой с запятой да или нет
Войдите как ученик, чтобы получить доступ к материалам школы
Внутренний язык программирования 1С 8.3 для начинающих программистов: основные правила языка 1С
Автор уроков и преподаватель школы: Владимир Милькин
Продолжаем эксперименты
Задание №3. Добейтесь того, чтобы компьютер при запуске вашей программы вывел следующий отрывок из замечательного стихотворения Александра Пушкина «Зимний вечер»:
Буря мглою небо кроет,
Вихри снежные крутя;
То, как зверь, она завоет,
То заплачет, как дитя.
Обратите внимание, что стихотворение нужно вывести в четыре строки.
Попробуйте его выполнить сами без подсказки и лишь при необходимости воспользуйтесь инструкцией ниже:
Показать инструкцию
- Зайдите в уже созданную на прошлом занятии базу «Учебная» в режиме конфигуратор (обращаю ваше внимание на то, что заново создавать базу не нужно).
- Так же как на прошлом занятии откройте модуль управляемого приложения.
- Там вы обнаружите свой старый код:
Сообщить(«Привет, Мир!»);
Сообщить(«Буря мглою небо кроет,»); Сообщить(«Вихри снежные крутя;»); Сообщить(«То, как зверь, она завоет,»); Сообщить(«То заплачет, как дитя.»);
Всё получилось? Отлично.
Первые наблюдения о языке
А теперь давайте внимательно присмотримся к написанной программе:
Показать код
Сообщить(«Буря мглою небо кроет,»); Сообщить(«Вихри снежные крутя;»); Сообщить(«То, как зверь, она завоет,»); Сообщить(«То заплачет, как дитя.»);
Вроде бы обычный текст. Но на самом деле он написан по особым правилам, которые делают его понятным для компьютера.
Компьютер считывает этот текст (ещё говорят «код программы») строку за строкой и выполняет задуманные программистом команды.
Что мы можем сказать об этом тексте?
- Он разделен на строчки.
- Каждая строчка содержит отдельную команду, которая называется «Сообщить» и заканчивается точкой с запятой.
- Каждая команда «Сообщить» имеет рядом с собой некий текст, заключенный в круглые скобки — этот текст называется параметром команды.
- Текст внутри круглых скобок заключен в двойные кавычки, как мы обычно поступаем при цитатах.
На самом деле в этих четырёх наблюдениях, замеченных нами лишь по небольшому фрагменту программы, уже содержатся правила внутреннего языка программирования 1С 8.3. Но сформулируем мы их позже, а пока просто обратите внимание на эти особенности текста.
Коверкаем нашу программу
Задание №4. Сделайте 6 вариантов изменения нашего кода таким образом, чтобы каждый из них отличался хоть чем-нибудь от других, но все они выводили одинаковый результат — те самые 4 строчки из Пушкина.
Придумывайте, изменяйте. И тут же пробуйте запустить. Если программа после вашего изменения запустилась и вывела стихотворение — значит ваш вариант подходит. Если появляется сообщение об ошибке — значит так менять текст нельзя, потому что это противоречит правилам внутреннего языка 1С 8.3.
Первые два варианта я вам подскажу:
Сообщить («Буря мглою небо кроет,»); Сообщить(«Вихри снежные крутя;»); Сообщить(«То, как зверь, она завоет,»); Сообщить(«То заплачет, как дитя.»);
Сообщить («Буря мглою небо кроет,») ; Сообщить(«Вихри снежные крутя;»);Сообщить(«То, как зверь, она завоет,»); Сообщить(«То заплачет, как дитя.»);
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
А вы обратили внимание на пояснения (зелёным цветом), которые я использовал в эталонном решении? Такие пояснения (по-другому комментарии) могут встречаться где угодно в коде. Комментарий начинается с двух косых черт и продолжается до конца строки. Компьютер комментариев не читает — они предназначены для человека, чтобы легче и быстрее разбираться в написанной программе. Наличие или отсутствие комментариев никак не влияет на результат выполнения программы.
Правила языка 1С
Итак, из наших экспериментов мы можем сделать следующие выводы о правилах языка 1С 8.3:
- Код программы состоит из команд для компьютера (пока мы познакомились только с командой Сообщить).
- Все команды языка отделяются друг от друга точкой с запятой.
- Чтобы отдать компьютеру команду на выполнение — нужно передать некий параметр (текст в круглых скобках рядом с командой), чтобы команда знала, что мы от неё хотим.
- Одна команда (вместе с параметром и точкой с запятой) может занимать сразу несколько строчек в редакторе.
- Компьютер выполняет команды последовательно — одну за другой.
Проверьте себя
Задание №5. Ответьте на следующие вопросы по уже изученным правилам внутреннего языка 1С 8.3:
-
Сколько команд содержится в приведенном ниже фрагменте кода:
Сообщить(«Буря мглою небо кроет,»); Сообщить(«Вихри снежные крутя;»); Сообщить(«То, как зверь, она завоет,»); Сообщить(«То заплачет, как дитя.»);
Не торопитесь сразу смотреть в ответы. Тщательно подумайте, а затем проверьте себя при помощи ответов ниже.
- Четыре команды. Мы четыре раза просим компьютер вывести ту или иную строку из стиха.
- «Вихри снежные крутя;». Параметром команды является всё то, что заключено в круглые скобки сразу после имени команды.
- Да, можно. Главное, чтобы между командами была точка с запятой. Это разделитель для компьютера. На строчки мы их разбиваем для «красоты», чтобы человеку проще было читать.
- Командой является не только её имя, но и параметр вместе с точкой запятой в самом конце:
Сообщить(«То, как зверь, она завоет,»);
Сообщить(«То заплачет, как дитя.»); Сообщить(«То, как зверь, она завоет,»); Сообщить(«Вихри снежные крутя;»); Сообщить(«Буря мглою небо кроет,»);
Источник: helpme1s.ru