Форматированный вывод данных

Продемонстрировать возможности

  • вывода данных в табличной форме (с выровненными столбцами),
  • выравнивания слева,
  • вывода вещественных чисел с заданным количеством знаков после запятой.

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

В языках КуМир и Basic-256 подобных языковых возможностей найти не удалось. Если их действительно нет, то видимо потому, что данные языки являются исключительно учебными.

var
        m, n: real;
        s1, s2: string[10];
begin
        m := 1.45678;
        n := -0.23451;
        s1 := 'Hello';
        s2 := 'world';
        writeln(m:10:2, n:10:2);
        writeln(s1:10, s2:10);
        writeln;
        write(s1:-9, s2);
end.
      1.46     -0.23
     Hello     world
 
Helloworld

В Pascal при выводе в поля заданной ширины следует указать через двоеточие после переменной (или непосредственно числа или строки) количество знакомест.

При выводе вещественных чисел после указания количества знакомест также через двоеточие указывается количество знаков после запятой. Они не являются добавочными к количеству знакомест, а включены в это количество. Если для вещественного числа не указать количество цифр после запятой, то число будет выведено в экспоненциальной форме.

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

#include <stdio.h>
 
main() {
  printf("%3d%10s\n%3d%10s\n", 1, "Hello", 2, "world");
  printf("%-7.3fчисло Пи\n", 3.141593);
}
  1     Hello
  2     world
3.142  число Пи

В языке C перед форматом данных (d, s, f и др.) указывается число знакомест. Для вещественных чисел через точку указывается число знаков в дробной части. Если требуется произвести выравнивание по левому краю, то перед числом знакомест ставят знак минус.

print("%8.3f" % 3.141593)
print("%-8.3f число Пи" % 3.141593)

# Использование методов:

print("hello".rjust(10)+'!')
print("hello".ljust(10)+'!')
print("hello".center(10)+'!')
   3.142
3.142    число Пи

     hello!
hello     !
  hello   !

В Питоне синтаксис вывода в поля заданной ширины и вывод дробных чисел аналогичны языку C.

Кроме того существуют специальные методы, позволяющие выравнивать по левому, правому краям, середине и др.

Комментарий