Ввод данных логического типа нельзя осуществлять с помощью операторов ввобда read и readln. При необходимости их можно задать в разделе констант.
ВЫВОД ДАННЫХ НА ЭКРАН МОНИТОРА.
Вывод данных осуществляется с помощью операторов вывода, таких как: write и writeln, которые имеют вид
Write (<список вывода>)
Writeln(<список вывода>)
Список вывода представляет собой перечисленные через запятую имена переменных, констант, значение констант, а так же выражения, которые до вывода должны быть вычеслены. Операторы последовательно выведут без разделителей значения элементов списка вывода (в соответствии значений элементов списка вывода, в соответствии с указанными в списке форматами, если таковые имеются). Оператор writeln отличается от write тем, что после вывода всех элементов списка вывода осуществляется переход курсора к началу следующей строки экрана. Оператор writeln может использоваться и без списка, то есть просто writeln; что применяется обычно для пропуска строки на экране при выводе информации. Оператор writeln; = write(#13,#10);
|
|
Вывод данных может осуществляться как по формату (если он указан), так и без него (по умолчанию).
При без форматном выводе данных символьного, целых, логического, а так же строкового типов под них отводится реально необходимое количество позиций. Под символом одна позиция, под целое число количество позиций, равное числу значащих цифр + одна позиция под знак, если число отрицательное, под значение логического типа: 4 позиции под true и 5 под false (выводятся заглавными буквами). Под строковую константу число позиций равное количеству символов в ней это следует учитывать при выводе последовательности элементов данных. Добавляя разделители, например пробел между ними.
При выводе без формата данных вещественных типов, число представляется в форме с плавающей точкой и нормализованной мантиссой и под все число отводиться 17 позиций.
(-)#.##########E+(-)##
Первая позиции – знак числа. Если число положительное, то + не ставиться, но позиция под него отводиться (просто пробел).
Вторая позиция (до Е) – мантисса. В нормализованной мантиссе целой части должна быть только одна значащая цифра. (1..9)
Е – основание десятичной системы счисления.
+ (-) – знак порядка.
Последние две позиции сам порядок.
152.7=1.527х10^2
Writeln (152.7);
1.5270000000E+02
Writeln (-0.000012);
-1.2000000000E-05
Выше сказанное справедливо, если в турбо паскале не подключена опция 8087. Пример вывода данных различных стандартных типов без форматов:
Целые, символьный, вещественный и логический.
Const A=FALSE; B=-451; C=3586.25; D=’*’;
Begin writeln (A);
Writeln (B);
Writeln (C);
Writeln (D);
End.
FALSE
-451
3.5862500000E+03
*
Writeln (A,B,C,D); все подряд
|
|
Чтобы данные не сливались при выводе, необходимо ввести разделители и строковые константы, поясняющие кому принадлежат данные значения.
При выводе по формату. Элемент списка может иметь один из двух видов:
1. (при одинарном формате) <идентификатор или выражение>:m (целое, положительное) обозначает количество позиций отводимых на экране при выводе данного элемента в списке. Если m позиций не достаточно для вывода данного значения, то поле (отводимое при выводе) автоматически увеличивается до нужного размера. Если данное значение требует при выводе менее чем m позиций, то при выводе на него отводится поле из m позиций, при чем лишние позиции заполняются пробелами в левой части отведенного кода. Для вещественных значений, m >= 8. И число представляется в форме с плавающей точкой, если m<8, то ширина отводимого поля автоматически увеличивается до 8 позиций. При формате 8 выделяется 1 позиция, при формате 9 выделиться 2 позиции. При формате 17 и более – 10. Дробная часть мантиссы при недостаточном количестве позиций округляется. При формате 18 и более число сдвигается к правому краю отводимого поля. А слева свободные позиции поля заполняются пробелами. Например:
Если в приведенном выше примере заменить процедуру вывода на следующую: writeln (A:4);
Writeln (B:7);
Writeln (C:11);
Writeln (D:3);
То будет выведено:
FALSE
-451
3.5863E+03
*
2. (при двойном формате) <идентификатор или выражение>:m:n; такой формат может применяться только для вещественных чисел. M количество позиций отводимых под все число (включая знак и десятичную точку), а n под дробную часть. Если дробная часть выводимого числа имеет цифр больше n, то она округляется до значащих цифр, а если меньше, то лишние позиции заменяются справа нулями, если для вывода целой части числа требуется больше чем m-n-1 позиции, то количество позиций отводимых под целую часть, автоматически увеличивается до нужного размера. А если меньше, то число сдвигается к правому краю отводимого поля, а свободные позиции заполняются пробелами слева. X=-68.4807
Writeln (x:6:2);
-68.48
Writeln (x:9:3);
-68.481
Writeln (x:10:6);
-68.480700
Writeln (x:4:0); при n=0 число выведено без дробной части и десятичной точки
-68
Writeln (-68.6:4:0);
Обычно данные всех стандартных типов, кроме вещественного выводят без форматов. А данные вещественных типов по двойному формату. Кроме больших и очень маленьких чисел, которые выводят по одинарному формату.
Выражения и стандартные функции.
Выражения задают порядок действий над элементами данных и состоит из операндов (значений констант, переменных, обращений к функциям, и другие), круглых скобок и знаков операций над операндами.
Операнды – это то, над чем выполняется операция, например 1+2 это операция, а 1 и 2 операнды. Каждый операнд, как и выражение в целом характеризуется своим значением и типом. Наиболее часто используются арифметические и логические выражения.
Арифметическое выражение может содержать данные целых и вещественных типов, знаки арифметических операций, круглые скобки, арифметические функции. Результатом вычисления арифметического выражения является значение целого или вещественного типа. Существуют следующие знаки арифметических операций: умножение (*), вещественное деление(/), div (целочисленное деление), mod (целый остаток от целочисленного деление), +(сложение), - (вычитание). Знаки операций (div и mod) должны быть отделены от операндов. Например пробелом, если тип операндов целый, то тип результата всех перечисленных операций, кроме вещественного деления будет целым. А для вещественного всегда вещественным. Если тип операндов вещественный или смешанный, то тип результата операций */+- будет вещественным. Для операций див, мод, как операнды, так и результат имеют целый тип. В операции деления, делитель на ноль не делят.