Структура программы: program, begin, end и точка с запятой
Урок объясняет, из каких частей состоит любая программа на Паскале и зачем нужны begin, end и точка с запятой.
Структура программы — это обязательный «скелет» из заголовка, раздела описаний и тела, в который вы вписываете команды.
Почему у программы есть скелет
Любой документ имеет структуру. У письма есть обращение, основной текст и подпись. У школьного сочинения — вступление, основная часть и заключение. Программа на Паскале устроена так же строго: у неё есть чётко определённые части, и они всегда идут в одном порядке. Эта предсказуемость — не каприз языка, а помощь вам: глядя на любую паскалевскую программу, вы сразу понимаете, где что искать.
Полная структура программы на Паскале выглядит так:
program HelloWorld; // 1. Заголовок программы
const // 2. Раздел констант (необязателен)
Pi = 3.14;
var // 3. Раздел переменных (необязателен)
radius: real;
begin // 4. Начало тела программы
radius := 5;
writeln('Длина окружности: ', 2 * Pi * radius);
end. // 5. Конец программы (с точкой!)
Разберём каждую часть по порядку.
Заголовок: program
Первая строка — program HelloWorld; — это заголовок. Он даёт программе имя. Имя пишется латиницей, без пробелов, и заканчивается точкой с запятой. В PascalABC.NET заголовок необязателен: можно начать программу сразу с begin, как мы делали в прошлом уроке. Но в учебниках и на экзаменах заголовок принято писать, поэтому привыкайте: это хороший тон и сразу видно, как программа называется.
Раздел описаний: const и var
После заголовка идёт раздел описаний — место, где вы заранее перечисляете всё, чем будете пользоваться. Слово const вводит константы (значения, которые не меняются, например число Пи). Слово var вводит переменные — «ячейки памяти» с именами, в которые программа будет складывать данные. Подробно с переменными мы разберёмся в следующем разделе, а пока запомните главное: в Паскале нельзя пользоваться переменной, не объявив её заранее в разделе var. Это и есть та самая строгость языка.
Раздел описаний необязателен: если программе не нужны ни константы, ни переменные, его можно пропустить.
Тело программы: begin и end
Самое главное — тело программы, заключённое между словами begin и end. Именно здесь живут команды, которые компьютер выполняет по порядку, сверху вниз. Слова begin и end работают как открывающая и закрывающая скобки: begin говорит «здесь начинается список действий», end — «здесь он заканчивается».
Очень важная деталь: тело программы завершается end с точкой, а не с точкой с запятой. Точка означает «программа полностью закончена, дальше ничего нет». Это как точка в конце сочинения.
Запустите Python-аналог, чтобы увидеть, что внутри тела команды просто выполняются одна за другой:
radius = 5
pi = 3.14
print('Длина окружности:', 2 * pi * radius)
Вывод:
Длина окружности: 31.400000000000002
Точка с запятой: разделитель команд
Внутри тела программы команды отделяются друг от друга точкой с запятой ;. Точка с запятой — это не «конец команды», как думают многие, а разделитель между командами, как запятая между словами в перечислении. Представьте, что вы диктуете список покупок: «хлеб, молоко, яйца». Запятые стоят между пунктами. Точно так же точки с запятой стоят между командами Паскаля.
begin
writeln('Первая строка');
writeln('Вторая строка');
writeln('Третья строка')
end.
Обратите внимание: перед самым последним end точку с запятой можно не ставить, потому что после третьей команды ничего не следует — разделять не с чем. Но если вы её всё же поставите, ошибки не будет: Паскаль просто посчитает, что между командой и end стоит «пустая команда». Поэтому многие для надёжности ставят точку с запятой после каждой строки. Так и советуем делать новичкам: меньше шансов ошибиться.
Ключевые слова и регистр
Слова program, const, var, begin, end называются ключевыми (служебными). Их нельзя использовать как имена переменных — они зарезервированы языком. Хорошая новость: Паскаль не различает регистр в ключевых словах. begin, Begin и BEGIN для него одно и то же. Но принято писать служебные слова строчными буквами — так читается приятнее.
Попробуй сам
Напишите на Паскале программу с полной структурой: заголовком program, телом из двух команд writeln — первая печатает «Учусь писать структуру», вторая печатает «Получается!». Проверьте, что вы поставили точку с запятой между командами и точку после end. Вот запускаемый Python-аналог тела вашей программы:
print('Учусь писать структуру')
print('Получается!')
Вывод:
Учусь писать структуру Получается!
Частые ошибки
- Точка с запятой после
begin. Записьbegin;— ошибка по смыслу:beginоткрывает блок, а не является командой, разделять тут нечего. - Точка с запятой вместо точки после
end. Если написатьend;в конце программы, среда сообщит, что ждёт продолжения. Программа кончаетсяend.с точкой. - Переменная без объявления. Попытка использовать имя, которого нет в разделе
var, вызовет ошибку «неизвестное имя». Сначала объяви — потом используй.
Итоги
- Программа состоит из заголовка (
program), необязательного раздела описаний (const,var) и тела междуbeginиend. - Команды в теле выполняются по порядку сверху вниз и разделяются точкой с запятой.
- Точка с запятой — разделитель между командами, а не их завершение; перед последним
endона необязательна. - Вся программа завершается
end.с точкой. - Ключевые слова не различают регистр, но их принято писать строчными буквами; имена переменных нужно объявлять заранее.