Реферат на тему:
Оператор присвоювання
В будь-якій мові програмування можна виділити чотири типи елементів, що використовуються при побудові описів програм:
символи,
слова,
вирази,
команди (оператори).
Команда - це вказівка про виконання деякої дії. При написанні програм команди називають операторами, а величини, що використані в команді - операндами.
Оператор присвоювання має вигляд:
ім'я змінної := вираз
(знак присвоювання ":=" – це лексема, яку не слід плутати зі знаком порівняння "="). Оператор присвоювання позначає:
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 |
var x, y, z : integer;
begin
z := 1;
x := 3;
y := 15;
x := 10
end.
Звернімо увагу на те, що нові значення змінних записуються замість старих.
Арифметичний оператор присвоювання на Паскалі має наступний формат:
<числова перемінна>:=<арифметичне вираз>
Арифметичне вираз може містити числові константи і перемінні, знаки арифметичних операцій, круглі дужки. Крім того, в арифметичних виразах можуть бути присутнім функції.
Знаки основних арифметичних операцій записуються так:
+ додавання,
- віднімання,
* множення,
/ ділення.
Запис арифметичних виразів на Паскалі схожа на звичайний математичний запис. На відміну від математики, де часто пропускається знак множення (наприклад, пишуть 2a), у Паскалі цей знак пишеться обов'язково: 2*a.
Наприклад , математичний вираз
a 2 + b2 - 12c
На Паскалі пишеться так:
A*A+B*B-12*C.
Цей вираз можна записати інакше:
SQR(A) + SQR(B) - 12*C.
Тут використана функція зведення в квадрат - SQR . Аргументи функцій завжди пишуться в круглих дужках.
Послідовність виконання операцій визначається по їхніх пріоритетах (старшості). До старших операцій відносяться множення (*), ділення (/). Операції додавання і вирахування - молодші. У першу чергу виконуються старші операції. Кілька операцій однакового старшинства, записані підряд, виконуються в порядку їхнього запису ліворуч праворуч. Приведений вище арифметичне вираз буде обчислюватися в наступному порядку (порядок обчислень зазначений цифрами зверху):
1 4 2 5 3
A*A + B*B - 12*C.
Круглі дужки в арифметичних виразах впливають на порядок виконання операцій. Як і в математиці, у першу чергу виконуються операції в дужках. Якщо є в наявності декілька пар вкладених дужок, то спочатку виконуються операції в самих внутрішніх дужках. Дужки розкриваються зсередини назовні. Наприклад :
6 1 3 2 4 5
A + (( C - D ) / ( 2 + K ) - 1) * B .
Виразами називаються алгоритмічні конструкції мови, що визначають правила для обчислення значень змінних величин. Вираз складається з операндів: змінних, констант, назв функцій, що відокремлюються один від одного за допомогою операторів.
У наступних таблицях наведені типи операндів і результати для бінарних і унарних арифметичних операцій, а також основні арифметичні функції.
Будь-який операнд, тип якого є піддіапазоном порядкового типу, опрацьовується так, якби він був порядкового типу.
Якщо обидва операнди в операторах +, -, *, 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)) |
Зауважимо, що можливі й інші вірні варіанти запису виразів.
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |