Вывод на экран, комментарии и первая осмысленная программа

Урок учит выводить текст и числа командами write и writeln, оставлять комментарии и видеть типичные ошибки новичка.

write печатает данные в окно вывода; writeln делает то же самое и дополнительно переводит курсор на новую строку.

Зачем программе выводить данные

Программа без вывода — как разговор с человеком, который всё понял, но молчит. Чтобы увидеть результат работы, программа должна его напечатать. Вывод — это первое, чему учат в любом языке, потому что без него вы не увидите, работает ваш код или нет. В Паскале за вывод отвечают две родственные команды: write и writeln. Разобраться в их разнице — наша задача на сегодня.

write и writeln: в чём разница

Команда writeln (читается «райт-лайн», от write line — «написать строку») печатает то, что вы ей дали, и переводит курсор на следующую строку. Поэтому каждый следующий writeln печатает с новой строки. Команда write (без ln) печатает то же самое, но не переводит курсор — следующий вывод продолжится на той же строке.

begin
  writeln('Один');
  writeln('Два');
  write('Три');
  write('Четыре');
end.

Эта программа напечатает «Один» и «Два» на отдельных строках, а «Три» и «Четыре» — слитно на одной: ТриЧетыре. Запустите Python-аналог: в Python обычный print ведёт себя как writeln, а параметр end='' делает его похожим на write:

print('Один')
print('Два')
print('Три', end='')
print('Четыре')

Вывод:

Один
Два
ТриЧетыре

Запомните простое правило: writeln — когда нужна новая строка после вывода, write — когда хотите продолжить на той же строке. Пустой writeln; без аргументов просто вставляет пустую строку — удобно для отступов.

Вывод нескольких значений сразу

Одной командой можно напечатать несколько вещей подряд — нужно перечислить их через запятую. Паскаль склеит их в одну строку без пробелов, поэтому пробелы вы расставляете сами внутри кавычек:

begin
  writeln('Сумма 2 и 3 равна ', 2 + 3);
  writeln('Год: ', 2024, ', месяц: ', 6);
end.

Здесь Паскаль сначала напечатает текст в кавычках, потом вычислит 2 + 3 и напечатает результат — число 5. Текст печатается как есть, а математические выражения вычисляются. Это ключевая идея: всё, что в кавычках, — текст; всё, что вне кавычек, — вычисляется. Сравните на запускаемом Python:

print('Сумма 2 и 3 равна', 2 + 3)
print('Год:', 2024, ', месяц:', 6)

Вывод:

Сумма 2 и 3 равна 5
Год: 2024 , месяц: 6

Небольшое отличие: Python между значениями сам ставит пробел, а Паскаль — нет. Поэтому в Паскале пробелы нужно добавлять вручную внутри кавычек, как сделано в примере выше.

Комментарии: записки для человека

Иногда хочется оставить в коде пояснение — для себя в будущем или для того, кто будет читать программу. Для этого служат комментарии. Это текст, который компьютер полностью игнорирует: он не выполняется и не печатается. В Паскале есть три способа писать комментарии:

begin
  // Это однострочный комментарий до конца строки
  writeln('Привет');  // можно и в конце строки с кодом
  { Это комментарий в фигурных скобках, может быть многострочным }
  (* А это ещё один способ — круглые скобки со звёздочками *)
end.

Зачем нужны комментарии? Чтобы объяснить почему вы сделали именно так, отметить сложное место, временно «выключить» строку кода, не удаляя её. Хорошие комментарии — признак аккуратного программиста. Но не переусердствуйте: комментировать writeln('Привет'); // печатаем привет бессмысленно — и так понятно. Комментируйте мысли, а не очевидные действия.

Собираем первую осмысленную программу

Давайте напишем программу-визитку, которая красиво выводит информацию о человеке, используя всё, что мы узнали:

program Vizitka;
begin
  // Заголовок визитки
  writeln('===== ВИЗИТКА =====');
  writeln;                       // пустая строка для отступа
  write('Имя: ');                // write — продолжим на той же строке
  writeln('Мария');
  write('Класс: ');
  writeln(9, '-Б');
  writeln('Любимый предмет: информатика');
  writeln('===================');
end.

Запустите аналог на Python и сверьте результат:

print('===== ВИЗИТКА =====')
print()
print('Имя: ', end='')
print('Мария')
print('Класс: ', end='')
print(str(9) + '-Б')
print('Любимый предмет: информатика')
print('===================')

Вывод:

===== ВИЗИТКА =====

Имя: Мария
Класс: 9-Б
Любимый предмет: информатика
===================

Попробуй сам

Сделайте свою визитку: выведите рамку из символов, своё имя, класс и три любимых предмета — каждый на своей строке. Используйте write там, где хотите «Имя:» и значение на одной строке. Добавьте хотя бы один комментарий, поясняющий часть кода. Поэкспериментируйте с Python-врезкой выше: поменяйте имя, класс и предметы на свои.

Частые ошибки новичка

  • Путают write и writeln. Если весь вывод склеился в одну строку — вы везде написали write вместо writeln. Если, наоборот, всё разъехалось — наоборот.
  • Забыли пробелы между текстом и числом. Паскаль не добавляет пробелы сам. writeln('Возраст:', 15) напечатает Возраст:15 слитно. Добавьте пробел в кавычки: 'Возраст: '.
  • Поставили число в кавычки. writeln('2 + 3') напечатает дословно 2 + 3, а не 5. Чтобы Паскаль посчитал, убери кавычки: writeln(2 + 3).
  • Не закрыли кавычку или комментарий. Если забыть закрывающую ' или }, среда подсветит длинный кусок кода как «строку» и выдаст ошибку. Проверь парность.

Итоги

  • writeln печатает и переходит на новую строку; write печатает без перехода; пустой writeln; даёт пустую строку.
  • В одной команде можно перечислить несколько значений через запятую; пробелы между ними в Паскале расставляются вручную.
  • Текст в кавычках печатается дословно, а выражения вне кавычек сначала вычисляются.
  • Комментарии (//, { }, (* *)) игнорируются компьютером и нужны для пояснений человеку.
  • Главные ошибки новичка — путаница write/writeln, забытые пробелы и числа, случайно взятые в кавычки.
Проверьте себя
1. Чем writeln отличается от write?
Awriteln печатает только числа, а write — только текст
Bwriteln после вывода переводит курсор на новую строку, а write — нет
Cwriteln работает быстрее write
DМежду ними нет никакой разницы
2. Что напечатает команда writeln('2 + 3')?
A5
B2 + 3
C23
DОшибку
3. Что произойдёт с текстом внутри { } в коде?
AОн будет напечатан жирным шрифтом
BОн будет выполнен как команда
CОн будет проигнорирован как комментарий
DПрограмма выдаст ошибку
Поддержать проект