Процедура вывода данных
Процедура вывода используется для стандартных типов данных вида real, integer, char, boolean и имеет вид write[ln][([файл],параметр1[:w1[:d1]],параметр2[:w2[:d2]],..)], где файл – имя логического файла для вывода значений во внешний физический файл; параметр1, параметр2 – выражение, идентификатор, значения типа integer, real, char, boolean или запись символов в апострофах; :w1 – количество позиций, заданных под информацию, которая будет выводиться; :d1 – количество позиций, заданных под цифры после запятой, может применяться для величины типа real (то есть под мантиссу). Напомним, что квадратными скобками отмечены те элементы, которые могут отсутствовать. В отличие от процедуры read в качестве выводимой величины могут быть представлены следующие: выражение: write(x+y); идентификатор: write(z); значения типа integer, real, char, boolean: write(5,2.3e-02,¢ % ¢,false); запись символов в апострофах: write(¢ Задайте значения переменной x ¢);
Дополнение ln, как и для процедуры ввода, обеспечивает переход на начало новой строки. Если записано лишь writeln, то выполняется переход на новую строку. Если не указано количество позиций под величину, которая выводится, вывод выполняется в стандартной форме. За стандартную форму принимается: real - форма с плавающей запятой; integer, char, boolean – простая форма отображения величины на количество позиций, которые занимает сама величина. В этом случае можно сказать, что вывод выполняется бесформатный. ПРИМЕР. CONST x: real=3.4; i: integer= - 4; c: char='z'; b: boolean=false; ............. BEGIN ............. writeln(x); writeln(i); writeln(c); writeln(b); ............. END. Как результат на экране получим: 3.4000000000E+00 -4 z false Если вывод оформить в виде writeln(x,i,c,b); то выведенный результат в виде 3.4000000000E+00-4zfalse
будет совсем не понятен. Вывод, когда указывают количество позиций для выводимой величины, называется форматным. При выводе величины типа integer, char, boolean с указанием количества отведенных позиций значение переменной выводится в отведенном поле, прижатое к правой границе, например: CONST i: integer= - 4; c: char='z'; b: boolean=false; ............. BEGIN ............. writeln(i:4,c:5,b:6); END. Как результат на экране получим: -4 z false Если указано число полей, записанных со знаком минус, то величина будут прижата к левой границе, например: BEGIN ............. writeln(i: -4,c: -5,b: -6); END. Как результат на экране получим: -4 z false Если количество записанных позиций недостаточно для выведения значений величин, то возникает автоматическое увеличение поля до необходимого размера, например: ............. writeln(i: 1,c: 5,b: 2); END. Как результат на экране получим: -4 zfalse Этот же вывод можно оформить, используя дополнительные записи символов в апострофах: BEGIN ............. writeln(' i =', i: 3,', c =',c: 5,', b =', b: 5); END. Как результат на экране получим: i = -4, c = z, b = false При выводе величин типа real с указанием количества выведенных позиций через одно число значение переменной выводится в стандартной форме, то есть c плавающей точкой, но так, что оно занимает указанное количество позиций. При этом в любом случае минимальным числом позиций для вывода будет 8 – четыре позиции на мантиссу числа, включая знак и десятичную точку, одна позиция – на символ е, и три позиции – на порядок. CONST x: real = 3.4; y: real = -1.223e-02; ............. BEGIN ............. writeln(‘x=’, x: 9,’ y=’, y: 6); END. Как результат на экране получим x= 3.40e+00 y=-1.2e-02
При выводе величины типа real, когда указывается два числа, значение переменной выводится в форме с фиксированной точкой, и в этом случае, как мы уже говорили, первое число – это количество позиций под все число, а второе число – это количество позиций, заданных под цифры числа, которые записаны после запятой (мантисса числа):
CONST x: real = 3.4; y: real = -1.223e-02; ............. BEGIN ............. writeln((‘x=’, x: 9: 4, ’ y=’, y: 9: 4); END. Как результат на экране получим х= 3.4000 у= -0.0122 Для второго числа одна цифра мантиссы не вошла в отведенное число позиций. РЕКОМЕНДАЦИЯ. При вводе данных перед процедурой ввода всегда необходимо писать процедуру вывода с подсказкой, что именно необходимо вводить: writeln('Введите действительные числа x, y: '); readln(x,y);
Пример Введите с клавиатуры следующие данные: K=123, M=-7654, N=0, X=-0.000078, Y=123.456, S1=’Q’, S2=’W’, S3=’R’, LOG=TRUE. Выведите данные в форматном и безформатном виде.
Читайте также: d) Процедура оформления дефектной ведомости или заявки на ремонт. Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|