Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Процедура вывода данных




 

Процедура вывода используется для стандартных типов данных вида 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.

Выведите данные в форматном и безформатном виде.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...