Вывод на экран

Lazarus IDE: Основы программирования в Windows Lazarus IDE: Основы программирования в Windows

Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее...

Вывод на экран - это тоже очень важный момент в программировании. Потому что большинство данных передаётся пользователю именно через экран.

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

procedure Write(var Файл;
                Параметры);

Если выполняется запись в стандартное устройство вывода (например, на экран), то файл не указывается:

procedure Write(Параметры);

Файл - это файловая переменная.

Параметры - это одна или несколько переменных. Если переменных несколько, то они перечисляются через запятую и выводятся поочерёдно.

Процедура WriteLn выполняет аналогичные действия, только в конце своей работы ещё и переводит курсор на новую строку.

Впрочем, всё это вы уже знаете. Однако есть ещё кое-какие фишки, которые можно применять с процедурой Write в консольных приложениях.

Я говорю о форматированном выводе. Например, вы хотите вывести несколько значений в виде таблицы. Но таблица смотрится и воспринимается лучше, если её столбцы имеют одинаковую ширину. Но как этого добиться? Вот в этом то вам и поможет форматированный вывод. Информацию о форматированном выводе вы можете найти в справочных материалах.

Поскольку консольные приложения сегодня используются довольно редко, то я расскажу только о двух форматах.


Вывод с одинаковой шириной

Этот формат удобно использовать для вывода таблиц. Для символов отводится одинаковое количество знакомест на экране, поэтому столбцы таблицы получаются одинаковой ширины. Формат такой:

Write(S:W);

Где S - это число, которое выводится на экран, а W - ширина поля, в которое это значение выводится. Выравнивание происходит по правой стороне, то есть пробелы добавляются слева перед числом.


Вывод вещественных чисел

Мы с вами до сих пор неохотно работали с вещественными числами, потому что на экране они выглядели устрашающе - слишком много знаков после запятой.

Однако эта проблема легко решается с помощью форматирования:

Write(S:W:N);

Где S - это число, которое выводится на экран, а W - ширина поля, в которое это значение выводится, N - количество знаков после запятой. Выравнивание происходит по правой стороне, то есть пробелы добавляются слева перед числом.

Пример использования форматированного вывода на экран приведён в листинге 24.2.

Листинг 24.2. Форматированный вывод на экран в консольных приложениях.
program inout;

var i : integer;
    z : single;

begin
  for i := 1 to 100 do
    begin
      case i of
      10, 20, 30, 40, 50, 60, 70, 80, 90, 100 : WriteLn(i:5);
      else Write(i:5)
      end;
    end;
  Write(#10#13);
  for i := 1 to 50 do
    begin
      z := 3 / i;
      case i of
      5, 10, 15, 20, 25, 30, 35, 40, 45, 50 : WriteLn(z:10:4);
      else Write(z:10:4)
      end;
    end;
  ReadLn;
end.

Есть ещё очень полезная подпрограмма, которая пригодится вам при выводе информации на экран. Это процедура GoToXY, которая объявлена в модуле CRT:

procedure GoToXY(X, Y : TCRTCoord);

И пусть вас не пугает неизвестный тип TCRTCoord. На самом деле это обычный целочисленный тип данных с диапазоном 1..255. Отличие от типа Byte заключается только в том, что здесь нет значения 0, так как в Паскале координаты экрана начинаются с единицы. Хотя это не означает, что в качестве переменных для установки координат вы не можете использовать тип Byte или другой целочисленный.

Процедура GoToXY устанавливает курсор в координаты, заданные в соответствующих переменных.

Экран консольного приложения ещё со времён ДОС поделен на некоторое количество знакомест. В одно знакоместо можно вывести один знак (символ). Стандартный размер экрана - 80х25 символов. То есть 80 символов в ширину (координата Х) и 25 символов в высоту (координата Y).

Левый верхний угол имеет координаты (1, 1). Нижний правый угол имеет координаты (80, 25).

Пример использования:

var x, y  : TCRTCoord;

begin
  x := 6;
  y := 2;
  GoToXY(x, y);
  Write('Hello!!!');
  GoToXY(x, y+4);
  Write('Press any key...');
  repeat
  until KeyPressed;
end.


Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

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