Оператор присвоения
До этого момента переменные использовались для того, чтобы сохранять данные, прочитанные из INPUT. Единственный способ использования этих данных – вывод значения переменной в OUTPUT. Значения также могут быть скопированы из одной переменной в другую. Процесс копирования также называется присвоением и записывается с помощью оператора присвоения, который имеет следующую форму:
Name1 := Name2
Name1 := ‘x’
Где Name1 и Name2 переменные типа CHAR, описанные в разделе декларативной части программы, а ‘x’ – любой символ. Специальный сдвоенный символ := называется оператором присвоения.
В первой форме оператора присвоения значение переменной справа (Name2) становится новым значением переменной слева (Name1). Выполнение присваивания никак не влияет на значение переменной Name2.
Во второй форме оператора присваивания переменной Name1присваивается значение символьного литерала ‘x’.
Оператор присвоения не определен для файлов, текст
OUTPUT := INPUT
не имеет смысла и не является оператором присвоения.
Используя оператор присвоения мы можем предложить еще один вариант программы CopyReversed
PROGRAM CopyReversedTwo (INPUT, OUTPUT);
{Копирует первые два символа из INPUT в OUTPUT в обратном порядке}
VAR
In1, In2, Out1, Out2: CHAR;
BEGIN
READ(In1, In2);
Out1 := In2;
Out2 := In1;
WRITELN(Out1, Out2)
END.
INPUT:AZURE
OUTPUT:ZA
Таблица выполнения для программы CopyReversedTwo
INPUT | OUTPUT | In1 | In2 | Out1 | Out2 | |
PROGRAM CopyReversedTwo (INPUT, OUTPUT) VAR In1, In2, Out1, Out2: CHAR BEGIN READ(In1, In2) Out1 := In2 Out2 := In1 WRITELN(Out1, Out2) END | AZURE AZURE AZURE AZURE AZURE AZURE AZURE AZURE | _ _ _ _ _ ZA/_ ZA | ? A A A A | ? Z Z Z Z | ? ? Z Z Z | ? ? ? A A |
Аннотированный вывод и эхо ввода.
Аннотированный вывод – размещение в OUTPUT текста, поясняющего выходные данные программы.
Эхо ввода – копирование введенных данных из INPUT в OUTPUT, чтобы пользователь мог дополнительно проконтролировать корректность ввода.
Использование этих двух подходов является хорошим стилем программирования, потому что позволяет упростить использование программы и сделать его более наглядным.
PROGRAM CopyAndShuffle (INPUT, OUTPUT);
{Копирует первые пять символов U, V, N, X, Y из INPUT в OUTPUT
в порядке U, X, V, Y, M}
VAR
In1, In2, In3, In4, In5: CHAR;
BEGIN
READ(In1, In2, In3, In4, In5);
WRITELN(‘INPUT DATA’);
WRITE(‘ ’);
WRITELN(In1, In2, In3, In4, In5);
WRITELN(‘SHUFFLED DATA’);
WRITE(‘ ’);
WRITELN(In1, In4, In2, In5, In3);
END.
INPUT :12345678
OUTPUT :INPUT DATA
SHUFFLED DATA
INPUT :BARE
OUTPUT :INPUT DATA
BARE
SHUFFLED DATA
BEAR