logo
Лекции по TURBO PASCAL

Оператор вывода Write

Нормальная работа с программой невозможно без вывода информации на экран. Выводить на экран можно и нужно различные сообщения: приветствия, подсказки, результаты подсчётов наконец. Для печати сообщений на экран используется оператор вывода. Вот несколько способов его записи:

write ;

write (<число>);

write (<строка>);

write (<строка>, <число>, <строка>, ... );

write (<число>, <число>, <строка>, <число>, ... );

Здесь <число> – имя переменной, константа или, в общем случае, математические выражение; <строка> – это любая последовательность символов, заключенная в ’кавычки’. Строку символов выводят на экран как дополнительную информацию (подсказку). Именно таким способом оформляются программы, создавая диалог с пользователем. Примеры:

write (22);

write (day);

write (year*365);

write (’Всем привет!’);

В операторе write можно использовать несколько аргументов, в этом случае они разделяются запятыми. Например:

write (’Поздравляем с Новым ’, year, ’ годом!’);

В зависимости от значения переменной year на экран будет выводиться соответствующая строка. Например, если year равно 1999, то компьютер при выполнении этой строки напечатает:

Поздравляем с Новым 1999 годом!

Другая разновидность оператора write – оператор writeln. Чтоб понять, чем они отличаются друг от друга, надо ввести понятие курсора – маленького мигающего прямоугольника на экране.

Курсор – это особым образом помеченная позиция экрана, в которую будет напечатан следующий символ.

Любое сообщение выводится на экран посимвольно (то есть по одному символу). После вывода на экран каждого символа курсор смещается вправо, указывая место для следующего символа. После выполнения оператора write курсор оказывается в конце выведенной фраз. А оператор writeln дополнительно переводит курсор на начало новой строки. Эффект различия этих операторов скажется при следующей попытке вывода на экран. Разберите следующий пример с двумя похожими программами:

Program write1;

Var years : integer;

Begin

Writeln(’Привет!’);

write(’Сколько вам лет: ’);

readln (years);

End.

Результат работы этой программы может быть такой:

Привет!

Сколько вам лет: 19

Program write2;

Var years : integer;

Begin

Write(’Привет!’);

writeln(’Сколько вам лет: ’);

readln (years);

End.

Результат работы этой программы может быть такой:

Привет!Сколько вам лет:

19

Теперь мы уже умеем вводить и выводить данные, поэтому давайте будем в каждой составляемой программе использовать эти возможности! Составим, например, программу для ввода двух чисел и нахождения их суммы, стараясь более-менее красиво оформлять диалог компьютера с пользователем.

program NiceSuma;

var a, b, s : integer;

begin

Write (’Введите два целых числа через пробел: ’);

Readln (a, b);

s := a + b;

Writeln (’Сумма чисел ’, a, ’ и ’, b, ’ равна ’, s);

end.

В последнем операторе writeln выделены строки символов. Они выводятся на экран без изменений. А вместо имен a, b, s выводятся настоящие значения этих переменных, которые хранятся в памяти компьютера.

Обратите внимание на расстановку пробелов в символьных строчках (которые помечены). Если убрать «лишние» пробелы в начале и в конце фраз, то в выводимом на экран тексте не будет разделения между буквами и числами. Будет что-то вроде такого:

Сумма чисел10и15равна25

Последнюю строчку можно записать и так:

Writeln (’Сумма чисел ’, a, ’ и ’, b, ’ равна ’, a+b);

Тогда компьютер прямо в этом операторе найдет сумму и выведет её на экран. Если a=10, b=15, то на экран будет выведено:

Сумма чисел 10 и 15 равна 25

Ещё раз обратите внимание, что строки

Writeln (’Ответ – число n’);

Writeln (’Ответ – число ’, n);

выполняются по-разному. Первая заставит компьютер напечатать

Ответ – число n ,

а вторая (при n равном 12):

Ответ – число 12