Pascal writeln форматированный вывод

Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.

Следовательно, любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода. В Паскале ввод осуществляется с помощью процедур read() и readln() , а вывод — благодаря write() и writeln() . Процедуры, которые имеют окончание ln , после своего выполнения переводят указатель на новую строку.

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

Куда можно вывести данные? На экран, в файл, на принтер и др.

Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит "работающие по-умолчанию"; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.

Вывод данных на экран. Форматированный вывод

Вывод данных на экран и в файл в языке программирования Pascal осуществляется с помощью процедур write ( ) и writeln ( ) . Здесь будет рассмотрен вывод только на экран.

Допустим, нам требуется отобразить на экране пару фраз. Если мы хотим, чтобы каждая из них начиналась с новой строки, то надо использовать writeln() , если нет – то write() .

Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран "Введи число: " и не переводим курсор на новую строку, а ждем ввода.

Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.

Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).

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

Ввод данных с клавиатуры

Ввод данных в языке программирования Паскаль обеспечивается процедурами read() и readln() . Ввод данных осуществляется либо с клавиатуры, либо из файла. Здесь рассматривается только ввод с клавиатуры.

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

В процедуры ввода можно передавать не один фактический параметр, а множество.

При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.

Существуют особенности ввода данных с помощью операторов read() и readln() . Если используются подряд несколько операторов read() , то вводимые данные можно разделять всеми допустимыми способами. При использовании нескольких вызовов readln() каждый последующий срабатывает только после нажатия Enter. Программа ниже иллюстрирует это. Комментарии поясняют последовательность возможных действий при вводе данных.

Рассмотрим форматированный вывод на экран с помощью процедур Write и WriteLn. Окончание ln-означает, что курсор должен перейти на начало следующей строки. Таким образом, эти функции почти идентичны.

Вывод строк

Параметр x означает, что строка будет занимать x ячеек и выравниваться по правому краю.
Если его не указать, то строка выведется с выравниванем по левую сторону и будет занимать количество ячеек, равное длине строки.

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

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

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

1.46 — 0.23
Hello world

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

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

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

main ( ) <
printf ( "%3d%10s
%3d%10s
" , 1 , "Hello" , 2 , "world" ) ;
printf ( "%-7.3fчисло Пи
" , 3.141593 ) ;
>


[an error occurred while processing the directive]
Карта сайта