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

Задача

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

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

Пояснение к задаче и алгоритм решения

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

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

Исходный код на языке программирования Pascal

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.

Пример(ы) выполнения программы на языке Pascal

      1.46     -0.23
     Hello     world
 
Helloworld

Особенности решения на языке программирования Pascal

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

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

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

Исходный код на языке программирования C

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

Пример(ы) выполнения программы на языке C

  1     Hello
  2     world
3.142  число Пи

Особенности решения на языке программирования C

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

Исходный код на языке программирования Python

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

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

print("hello".rjust(10)+'!')
print("hello".ljust(10)+'!')
print("hello".center(10)+'!')

Пример(ы) выполнения программы на языке Python

   3.142
3.142    число Пи

     hello!
hello     !
  hello   !

Особенности решения на языке программирования Python

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

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

Тема

Линейные алгоритмы

Уровень сложности

Простой

Дата публикации

Комментарий