WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → ПАСКАЛЬ: лексика, вирази, семантика - Реферат

ПАСКАЛЬ: лексика, вирази, семантика - Реферат

позначено. У цьому розділі ми дістанемося й до поняття "семантики програми", тобто опишемо те, що вона задає.
2.2. Тип цілих чисел
Комп'ютер "уміє" виконувати операції з цілими числами. Знаки двомісних (бінарних) операцій +, -, * позначають додавання, віднімання та множення, наприклад, 2+3, 2-3, 2*3 (результатом чого будуть цілі 5, -1, 6). Знаками div і mod задається породження цілих частки й залишку від ділення цілих: результатом 7 div2 є 3, а результатом 7 mod 2 - 1. Знак / також задає ділення, але результатом його є число в його "дійсному" поданні, тобто 4/2 - це не ціле, а "дійсне число 2" (докладніше про це в розд. 7). В усіх трьох діленнях дільник не може бути нулем - інакше результат не визначений. Знак "-" задає застосування одномісної (унарної) операції "мінус": -2, -(2+3).
Порівняння цілих чисел задається знаками =, , >, =, <= ("дорівнює", "не дорівнює", "більше", "менше", "не менше", "не більше"). Результатом є "істина" або "хибність": 1=2 - false, 12 - true, 1>=1 - true тощо. Операції порівняння називаються відношеннями.
Є кілька операцій, що задаються дещо незвично, у вигляді f(…), де f - ім'я. Вирази такого вигляду називаються викликами функцій. Наприклад, вираз вигляду odd(x) задає обчислення ознаки непарності: значенням odd(7) є true, odd(12) - false.
До цілих чисел застосовні й інші операції (розд. 10).
Через скінченність множини цілих чисел, представних у комп'ютері, багато операцій із цілими визначені частково. Так, не всякі два числа можна додати або умножити, оскільки результат може виявитися не представним у комп'ютері. Наприклад, maxint+1 або maxint*2.
Отже, ми визначили, хоча і не точно, множину "цілих чисел" Z і множину операцій O, застосовних до них. Пара
(МНОЖИНА ЕЛЕМЕНТІВ, МНОЖИНА ОПЕРАЦІЙ ІЗ НИМИ)
у математиці називається типом. Множина елементів називається носієм типу, а множина операцій - його сигнатурою. Тип (Z, O) називається типом цілих і в мові Паскаль позначається ім'ям integer.
Тип цілих значень називається скалярним, оскільки ці значення розглядаються як неподільні, тобто такі, що не складаються з окремих частин. Далі ми познайомимося з іншими скалярними типами мови Паскаль. Вони називаються базовими типами цієї мови. Ми також познайомимося із структурними типами. Їх елементи, на відміну від скалярних, складені з частин, які можна позначати окремо.
Задача
2.1.* Указати всюди і не всюди визначені операції над цілими. Відповідь обгрунтувати.
2.3. Булів тип
A B A and B A or B not A
false false false false true
false true false true true
true false false true false
true true true true false
Сталі false і true позначають бульові значення "хибність" і "істина". До них застосовні операції "та", "або", "не", що називаються відповідно бульовим множенням (кон'юнкцією), бульовим додаванням (диз'юнкцією) і запереченням. В мові Паскаль вони позначаються знаками and, or і not. Результати застосування цих операцій до бульових значень подано в табл.2.1.
Крім бульових операцій, означено операцію "порядковий номер" ord: ord(false)=0, ord(true)=1. Порядковим номерам бульових значень відповідає результат їх порівняння: false < true. Очевидним чином означено й інші операції порівняння: =, , >, =.
У діалекті Турбо Паскаль додатково означено корисну операцію "виключне або", знак якої xor:
false xor false = true xor true = false,
false xor true = true xor false = true.
Її ще називають "додавання за модулем 2" - якщо подати false і true числовими значеннями 0 і 1 відповідно, а знак xor замінити знаком , то
0 0 = 1 1 = 0, 0 1 = 1 0 = 1.
Отже, ми означили тип, що називається бульовим і позначається ім'ям Boolean на честь видатного англійського математика й логіка Джорджа Буля, засновника математичної логіки.
Задачі
2.2.* Виразити операцію xor через інші бульові операції.
2.3.* Указати значення, що утворюються в результаті застосування операцій:
а) (2*2=4) and true; б) (2*2=4) or false;
в) (not true) or false; г) (ord(true)=1) xor (ord(false)=0).
2.4. Вирази: процес обчислення та значення
Ціла або бульова стала є виразом. Складніший вираз утворюється з простішого або простіших як
1. вираз у дужках;
2. два вирази й знак бінарної операції між ними;
3. вираз із знаком унарної операції перед ним;
4. виклик функції з виразом у дужках.
Ось приклади виразів: ((1)), true and false, 1-(2+3), (1-2)+3, (1+2)3, -(5+3), odd(2), ord(odd(15)).
Те значення, до якого застосовується операція, називається її операндом. Операнди позначаються виразами. Найпростішими з них є сталі. Вираз задає застосування операцій до операндів - значень простіших виразів. Послідовність виконання цих операцій утворює процес обчислення значення виразу.
Як бачимо, вираз має подвійний зміст, або семантику: З одного боку, він задає процес обчислення, а з іншого - він має значення. Наприклад, вираз 2*2=4 задає процес, у якому обчислюється добуток 2*2 і порівнюються два цілі значення 4 і 4, в результаті чого одержується значення true.
Таким чином, на питання про те, що таке "2*2=5", математик відповів би, що це неправильна рівність, а програміст - що це позначення обчислень.
Результати операцій у процесі обчислення виразу запам'ятовуються для застосування до них подальших операцій. Останнє з обчислених значень також запам'ятовується для використання в програмі. Проміжні значення запам'ятовуються, як правило, в регістрах процесора, оскільки робота з ними відбувається набагато швидше, ніж робота з оперативною пам'яттю.
Як використовуються вирази? Їх значення можна іменувати, присвоювати змінним, виводити "у зовнішній світ" або використовувати для прийняття рішень про те, що робити далі при виконанні програми. Всі ці незрозумілі слова ми почнемо пояснювати, починаючи з пункту 2.2.5.
Мова Паскаль в основному дотримується угод, що склалися в математиці про порядок застосування операцій у виразах. Це дозволяє не записувати зайві дужки, наприклад, усі розуміють, що 1-2*3 означає те ж саме, що і 1-(2*3). На порядок застосування операцій за відсутності дужок впливає їх старшинство, або пріоритетність. Якщо поруч із позначенням операнда записано знаки двох операцій, то спочатку виконується старша з них, що має більш високий пріоритет. У табл.2.2 всі операції (не тільки над цілими) розбито на чотири групи, розташовані в порядку спадання пріоритету. Операції всередині кожної групи мають однакові пріоритети. Наприклад, вираз 1+(3+2)*2 задає, що
Loading...

 
 

Цікаве