Лексика мови Паскаль та загальний вигляд програми
xyz
???
z := 1??1
x := 33?1
y := 153151
x := 1010151
program a2(input, output);
var x, y, z : integer;
begin
z := 1;
x := 3;
y := 15;
x := 10
end.
Звернімо увагу на те, що нові значення змінних записуються замість старих.
2.3.3. Вирази з іменами
Імена змінних, присвоювання значень яким задано в попередніх операторах програми, можна записувати у виразах. Значенням виразу, складеного лише ім'ям змінної, є значення цієї змінної, присвоєне їй раніш. Наприклад, якщо змінна з ім'ям z має значення 2, то вираз z+1 задає додавання 2 і 1; значенням виразу буде 3. При іншому значенні z вираз z+1 мав би інше значення. Породження значення змінної за її ім'ям називається її розіменуванням.
Приклад. Послідовність операторів z:=2; z:=z+1 задає присвоювання змінній z спочатку 2, а потім обчислення 2+1 і присвоювання 3 цій же змінній. Сам по собі оператор z:=z+1 задає збільшення значення змінної з ім'ям z на 1, яким би це значення не було (аби воно було присвоєно).
Отже, ім'я змінної у виразі задає її значення в момент обчислення виразу. Тому ми кажемо, що вираз обчислюється при поточних значеннях вказаних у ньому змінних, або на поточному стані пам'яті. Наприклад, послідовності операторів x:=2; z:=x+1 і x:=5; z:=x+1 задають присвоювання різних значень (3 і 6) змінній z у результаті виконання того самого оператора z:=x+1.
Крім імен змінних, у виразах можна записувати іменовані сталі. Вони також розіменовуються, наприклад, якщо означено const cc=169, то вираз cc-25 має значення 144. Зазначимо, що він обчислюється в процесі трансляції програми.
Задачі
2.6.* Нехай a, b, c, ... – імена цілих змінних. Написати арифметичний вираз, значенням якого є: