Write для вывода на экран - анахронизм в PascalАВС.NЕТ
Есть в IDE PascalАВС.NЕТ иконка "Здоровье кода". Считается, что у программы часть здоровья отнимает использование Write с формированием интервалов за счет вставки пробелов. Примерно вот так:
В таких случаях рекомендуется использовать Print с автоматическим формированием пробелов.
Запись стала короче. Но всегда ли можно так просто использовать Print вместо Write? Оказывается, не всегда. В Print нельзя указывать формат вывода данных - общую ширину поля и количество знаков в дробной части для вещественного типа. А что же делать? И тут два выхода: либо все же использовать Write (в этом случае "Здоровье кода" очки не снимает), либо использовать форматирование средствами .NET.
Самый простой вариант вывода средствами .NET - использовать интерполированную строку. Она начинается с символа $, указываемого перед собственно строкой, заключенной в одинарные кавычки: #39; ... '.
Фактически, мы пишем строку так, как она должна выглядеть на экране, а выводимые значения заключаем в фигурные скобки. Самое сложное тут - заучить форматы представления данных. Но на первое время достаточно следующего:
- если нужно указать ширину поля вывода, ее отделяют от выводимой переменной (или выражения) запятой, за которой следует выражение, значение которого задает ширину. В случае, когда значение отрицательное, выводимое значение прижимается к левому краю, в противном случае - к правому;
- далее можно указать символ, определяющий тип выводимого значения, например D - целочисленное, F - вещественное, S - строковое, B - логическое. Этому символу предшествует двоеточие.
- для вещественных чисел после F можно указать количество выводимых цифр в дробной части. По умолчанию используется формат F2.
Этого на первое время более чем достаточно для оформления вывода. Хотите знать больше - ищите материал про интерполяцию строк в .NET или в материалах по языку C#.
##
var (a, b, c, d) := (8, -4.63, 'Приветик', 5 > 3);
Println(#39;{a} {b} {c} {d}'); // 8 -4.63 Приветик True
Println(#39;a={a}, b={b}, c={c}, d={d}'); // a=8, b=-4.63, c=Приветик, d=True
Println(#39;{a,5} {b,8} {c,-9}{d}'); // 8 -4.63 Приветик True
Println(#39;{a,5:D}{b,8:F3} {c} {d}'); // 8 -4.630 Приветик True
Println(#39;{a,5:D3}{b,8:F3} {c} {d}'); // 008 -4.630 Приветик True
Println(#39;{a,5:D3}{b,8:F3}{c,10:S} {d}'); // 008 -4.630 Приветик True
Println(#39;{a,5:D3}{b,8:F3}{c,10:S} {d,6:B}'); // 008 -4.630 Приветик True
Println(#39;{a,5:D3}{b,8:F3} {c,-11:S}{d}'); // 008 -4.630 Приветик True
Println(#39;{a,5:D2} {b,-6:F0} {c,-9:S}{d}'); // 08 -5 Приветик True