*В задачах школьного курса, иногда нужно вывести число в форматированном виде. Особенно это касается вещественных чисел. Модуль Log имеет для этого нужные процедуры. Среди них — RealForm.
Рассмотрим на её примере оформление формата вывода чисел. Другие процедуры можно изучить самостоятельно. Выделите имя модуля Log и вызвав контекстное меню правой кнопкой мыши («Исходники», «Интерфейс» и «Документация»).
Процедура RealForm имеет пять аргументов.
1) число, которое нужно вывести. Тип данных REAL.
MODULE Study;
IMPORT Out,Log;
VAR x,y,z:REAL;
BEGIN
x:=1.111;
y:=2.222;
z:=3.333;
Log.RealForm(x,4,6,-4,' ');Out.Ln;
Log.RealForm(y,4,6,-4,' ');Out.Ln;
Log.RealForm(z,4,6,-4,' ');Out.Ln;
END Study.
2) Показатель «precision» («точность») — число допустимых десятичных позиций. Тип данных INTEGER.
MODULE Study;
IMPORT Out,Log;
VAR x:REAL;
BEGIN
x:=1.111;
Log.RealForm(x,1,6,-4,' ');Out.Ln;
Log.RealForm(x,2,6,-4,' ');Out.Ln;
Log.RealForm(x,3,6,-4,' ');Out.Ln;
Log.RealForm(x,4,6,-4,' ');Out.Ln;
Log.RealForm(x,5,6,-4,' ');Out.Ln;
END Study.
3) Показатель minW — минимальная длина представления в литерах. Тип данных INTEGER.
MODULE Study;
IMPORT Out,Log;
VAR x:REAL;
BEGIN
x:=1.111;
Log.RealForm(x,4,5,-4,' ');Out.Ln;
Log.RealForm(x,4,6,-4,' ');Out.Ln;
Log.RealForm(x,4,7,-4,' ');Out.Ln;
Log.RealForm(x,4,8,-4,' ');Out.Ln;
END Study.
4) Показатель expW — формат представления данных.
expW < 0: формат с фикс. точкой с -expW разрядами после точки. expW = 0: формат с фикс. или плав. точкой в зависимости от x. expW > 0: научный формат с не менее чем expW разрядами в экспоненте.
MODULE Study;
IMPORT Out,Log;
VAR x:REAL;
BEGIN
x:=1.111;
Log.RealForm(x,4,6,-4,' ');Out.Ln;
Log.RealForm(x,4,6,-3,' ');Out.Ln;
Log.RealForm(x,4,6,-2,' ');Out.Ln;
Log.RealForm(x,4,6,-1,' ');Out.Ln;
Log.RealForm(x,4,6,0,' ');Out.Ln;
Log.RealForm(x,4,6,1,' ');Out.Ln;
Log.RealForm(x,4,6,2,' ');Out.Ln;
Log.RealForm(x,4,6,3,' ');Out.Ln;
END Study.
5)Показатель-литера fillCh — именно ей, а не пробелами, заполняется пустое пространство при применении minW.
Вообще, пробел — это тоже литера.
MODULE Study;
IMPORT Out,Log;
VAR x:REAL;
BEGIN
x:=1.111;
Log.RealForm(x,4,5,-4,'q');Out.Ln;
Log.RealForm(x,4,6,-4,'q');Out.Ln;
Log.RealForm(x,4,7,-4,'q');Out.Ln;
Log.RealForm(x,4,8,-4,'q');Out.Ln;
END Study.