Главная Учебники - Разные Лекции (разные) - часть 26
|
на тему:
Оператор присвоювання
В будь-якій мові програмування можна виділити чотири типи елементів, що використовуються при побудові описів програм: · символи, · слова, · вирази, · команди (оператори).
Команда - це вказівка про виконання деякої дії. При написанні програм команди називають операторами
, а величини, що використані в команді - операндами. Оператор присвоювання
має вигляд: ім'я
змінної
:= вираз
(знак присвоювання ":=" – це лексема, яку не слід плутати зі знаком порівняння "="). Оператор присвоювання позначає: 1) обчислити значення виразу, записаного праворуч; 2) записати це значення в змінну, позначену ім'ям. Отже, описані дії є семантикою оператора присвоювання
. Приклад
. Якщо ім'я z означено як var
z : integer, то оператор присвоювання z:=11*(10+1) позначає обчислення значення 121 і запис його в змінну з ім'ям z. Після його виконання змінна з ім'ям z має значення 121.- Пара вигляду (ім'я, значення) називається станом
змінної
, наприклад, (z,121) – стан змінної z після виконання оператора присвоювання. Таким чином, після присвоювання змінній нового значення її стан змінюється
. Оператори присвоювання (і не тільки вони) в програмі записуються один за одним і відокремлюються роздільником ";", наприклад, z:=1; t:=2 (звичайно, за умови, що z і t означено як імена змінних типу integer). Оператори, записані один за одним, утворюють послідовність
операторів
. Кожен з них задає зміну стану хоча б однієї зі змінних. Сукупність змінних, чиї імена означено в програмі, називається пам'яттю
програми
. Сукупність станів змінних називається станом
пам'яті
програми
. Зміна стану однієї зі змінних змінює стан пам'яті програми, тому оператор присвоювання задає зміну стану пам'яті програми
. Далі ми розглянемо інші види операторів, але всі оператори задають зміну станів пам'яті програми
. Ця зміна і є їхньою семантикою.
Виконання операторів програми можна проімітувати
, указавши їх послідовність і послідовність станів пам'яті програми, що утворюються в результаті їх виконання. Якщо в процесі виконання програми змінна ще не одержала значення, то воно вважається невизначеним і позначається "?". Наприклад, ось програма та подання її імітації: виконуваний оператор
стан пам'яті
x
y
z
? ? ? z := 1 ? ? 1 x := 3 3 ? 1 y := 15 3 15 1 x := 10 10 15 1 program
a2(input, output); var
x, y, z : integer; begin
z := 1; x := 3; y := 15; x := 10 end
. Звернімо увагу на те, що нові значення змінних записуються замість старих. Арифметичний оператор присвоювання на Паскалі має наступний формат: Виразами називаються алгоритмічні конструкції мови, що визначають правила для обчислення значень змінних величин. Вираз складається з операндів: змінних, констант, назв функцій, що відокремлюються один від одного за допомогою операторів. У наступних таблицях наведені типи операндів і результати для бінарних і унарних арифметичних операцій, а також основні арифметичні функції. Будь-який операнд, тип якого є піддіапазоном порядкового типу, опрацьовується так, якби він був порядкового типу. Якщо обидва операнди в операторах +, -, *, div
або mod
є операндами цілого типу, то тип результату є таким же, як спільний тип обох операндів. Якщо при використанні оператора збереження знака або оператора заперечення знака операнд має цілий тип, то результат є того ж цілого типу. Якщо операнд дійсного типу, то тип результату є Real
. Значення виразу x/y
завжди є Real
незалежно від типів операндів. Якщо y
дорівнює 0, то виникає помилка. Значення виразу i div j
являє собою цілу частину від ділення i/j
. Якщо j
дорівнює 0, то виникає помилка. Наприклад, 25 div
4 = 6, 21 div
3 = 7. Оператор mod
повертає залишок, отриманий при діленні двох його операндів. Наприклад, 25 mod
4 = 1, 21 mod
3 = 0. Знак результату оператора mod
є тим же, що і знак змінної i
. Якщо j
дорівнює 0, то виникає помилка. Таблиця 1 Бінарні арифметичні операції
Оператор Операція Тип Тип + додавання цілий цілий дійсний дійсний – віднімання цілий цілий дійсний дійсний * множення цілий цілий дійсний дійсний / ділення цілий дійсний дійсний дійсний div цілочисельне ділення цілий цілий mod залишок цілочисельного ділення цілий цілий Таблиця 2. Унарні арифметичні операції
Оператор Операція Тип операндів Тип результату + збереження знака цілий цілий дійсний дійсний - заперечення знака цілий цілий дійсний дійсний Таблиця 3. Основні арифметичні функції.
№ Математичний запис Запис в Тип Тип 1. sin x sin(x) real real 2. cos x cos(x) real real 3. ex
exp(x) real real 4. ln x ln(x) real real Математичний запис Запис мовою ПАСКАЛЬ
(a+b)/(c*d)
exp(x+1)*(a-x)
sqr(sin(x*x*x))
sin((2*x)/(x+1))/cos(((2*x)/(x+1))
exp(1/3*ln(x+1)) Зауважимо, що можливі й інші вірні варіанти запису виразів.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||