Управление выводом данных

Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид

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

Для величин действительного типа элемент списка вывода может иметь вид:
переменная:ширина:точность
где - переменная – переменная или выражение вещественного типа,
ширина - ширина поля вывода,
точность - число цифр дробной части выводимого значения.
Ширинаиточность - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой. Разумные значения точности – от 0 до ширина-2 включительно. Недопустимые значения ширины и точности не будут учтены при выводе.

Пример: печатаем значения переменных

var x1,p:real;

i:integer;

. . . .

x1:=2.5; p:=-3.175; i:=2;

writeln ('x1=',x1:8:2,'_p=',p:9:4);

write ('I=','_':5,i:2);

На экране будет напечатано:

x1=____2.50_p=__-3.1750

I=______2

_ везде обозначает пробел

Вывод на печать

Иногда требуется, чтобы программа вывела результаты своей работы на принтер. Для этого достаточно выполнения двух условий.

1)Первым оператором программы следует указать оператор

uses printer;

Он подключает стандартную библиотеку для работы с принтером.

2)Первым параметром оператора write или writeln указать символическое имя принтера lst, описанное в библиотеке printer:

write ('Hello'); строка 'Hello' выведена на экран,

write (lst,'Hello'); а здесь – уже на принтер.

Отличие между write и writeln сохраняется при выводе на принтер – то есть, при использовании writeln позиция печати на принтере будет переведена на следующую строку.

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

Разветвляющийся вычислительный процесс

Разветвляющийся вычислительный процесс представляет собой набор операторов, исполняемых в зависимости от выполнения некоторого условия. Основу программы разветвляющегося вычислительного процесса составляют условный оператор условного перехода IF и оператор выбора CASE, а также оператор безусловного перехода GOTO. Они позволяют нарушить последовательный порядок выполнения инструкций программы.

Оператор условного перехода

Оператор условного перехода в Турбо Паскаль имеет вид:

if условие then оператор 1 else оператор 2;

условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.

Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!

else - часть в операторе if может отсутствовать:

ifусловие thenоператор 1;

Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.

Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin ... end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно.

Примеры:

if x > 0 then modul := x else modul := -x;

if k > 0 then WriteLn('k - число положительное');

if min > max then begin

t := min;

min := max;

max := t;

end;

Оператор выбора

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

case выражение of

вариант : оператор;

...

вариант : оператор;

end;

или

case выражение of

вариант : оператор;

...

вариант : оператор;

else оператор

end;

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

Пример:

case ch of

'A'..'Z', 'a'..'z' : WriteLn('Буква');

'0'..'9' : WriteLn('Цифра');

'+', '-', '*', '/' : WriteLn('Оператор');

else WriteLn('Специальный символ')

end;

Наши рекомендации