Согласие на обработку персональных данных.



04.09.2017
Новая задача Программа вычисления суммы.

03.09.2017
Новое видео Стековый калькулятор и обратная польская запись.

26.08.2017
Новая статья Версии Делфи.

23.08.2017
Новая статья Для кого пишется программа.

13.08.2017
Новая статья Стандарт C++: общие сведения.

Процедуры Write и WriteLn

Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...

Раздел: Стандартные функции Паскаля

Процедуры Write и WriteLn выполняют вывод информации в устройство стандартного вывода. В консольных приложениях этим устройством может быть консоль (то есть экран), в графических приложениях - файл на диске.

Эти процедуры выполняют одно и то же действие. Отличие между ними только одно: процедура WriteLn после завершения вывода выполняет перевод строки. А процедура Write записывает данные подряд - без перевода строки.

Синтаксис для вывода на консоль:

procedure Write(Args : Arguments);

Синтаксис для вывода в файл:

procedure Write(var F: Text; Args : Arguments);

Аргументами (Arguments) могут быть переменные разных типов. Если используется несколько переменных, то они перечисляются через запятую. Например:

var x, y, z : integer;
    str     : string;
begin
  x := 1; y := 2; z := 3;
  str := ' - Numbers';
  Write(x, y, z, str);

  ReadLn;
end.

Причём, как уже было сказано, при выводе на консоль эти переменные могут быть разных типов. Также можно использовать и константы:

Write('Numbers - ', x, y, z, 100);

Если требуется перевод строки, то лучше использовать функцию WriteLn вместо Write:

WriteLn(x, y, z, str);  //Выводим данные и переводим строку	
Write('Numbers - ', x, y, z); //Это будет уже в новой строке

Но можно использовать, например, символы перевода строки в конце списка аргументов:

Write('Numbers - ', x, y, #10#13); //Этот код тоже выполнит 
                                   //перевод строки
Write('Numbers - ', x, y, z);      //Это тоже будет уже 
                                   //в новой строке

При записи в файл можно работать как с типизированными файлами, так и с текстовыми файлами.

Если F (см. синтаксис) - это типизированный файл, то переменные, передаваемые как параметры (Args) должны иметь такой же тип, какой указан для файла F. Нетипизированные файлы использовать не допускается. Если параметр F не указан, то предполагается, что вывод выполняется на стандартное устройство (экран-консоль).

Если файл F имеет тип Text, то все необходимые преобразования будут выполнены таким образом, что выходная переменная будет в удобочитаемом формате. Это преобразование выполняется для всех числовых типов. Строки и типы PChar выводятся точно так, как они находятся в памяти.

При выводе на консоль целые числовые значения выводятся в обычном числовом формате. А вещественные числовые значения по умолчанию выводятся в научной нотации.

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

Если во время выполнения процедуры Write/WriteLn происходит ошибка, то генерируется ошибка времени выполнения. Такое поведение не всегда приемлемо (например, во время чтения/записи файла). Поэтому в каких-то случаях генерацию ошибок отключают. Сделать это можно с помощью директивы компилятора {$I}.


Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика