русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Стандартні типи даних. Стандартні функції. Вирази


Дата додавання: 2014-11-28; переглядів: 1619.


Кожний елемент даних (константи, змінні) належить до деякого типу, який означає як множину значень, що може набувати елемент, так і операції, які можна над ни­ми виконувати.

У мові Паскаль є чотири стандартних скалярних типи:

цілий (integer), дійсний (real), булевий (boolean), символь­ний (char). Інші скалярні типи, відмінні від стандартних, можуть бути введені програмістом.

Тип кожної змінної, яка використовується у програмі, повинен бути явно заданий за допомогою описів (у розділі опису змінних). Розділ опису змінних починається із служ­бового слова VAR і має вигляд:

VAR список ідентифікаторів змінних: тип;

………………………………………..

список ідентифікаторів змінних: тип;

Ідентифікатори в списку відокремлюються один від одного комою.

Наприклад,

VAR і, a, m2 : integer;

j, r5 : real;

d: char;

Тут описано 6 змінних: і, а, m2 — цілого типу (integer), j, r5 —дій­сного типу (real), d— символьного типу (char).

На відміну від змінних вказувати тип константи за до­помогою спеціального ідентифікатора типу не слід; маши­на може визначити тип константи за її зображенням.

Цілий тип (integer). Змінні цілого типу можуть набува­ти лише цілих значень. У мові Паскаль можна подати цілі числа з відрізка [minint; maxint], де minint і maxint— цілі константи, які залежать від реалізацій. Наприклад, minint=—32768, maxint = 32767. Спроба обчислити ви­раз, значення якого виводить за межі вказаного відрізка, призводить до помилки. Компілятори з Паскаля, як пра­вило, мають вбудовану числову константу, Ім'я якої ma­xint; значення константи є 32767.

До операндів цілого типу можна застосовувати такі операції: + (додавання), — (віднімання), * (множення), DIV (цілочисельне ділення), MOD (остача від цілочисельного ділення). Такі операції виконуються точно. У вира­зах службові слова DIV і MOD відокремлюються від опе­рандів принаймні одним пропуском. Залежністьміж операціями DIV і MOD виражається співвідношенням:

a MOD b = a --(a DIV b)*b, де а>0 i Ь>0.

При обчисленнях порядок операцій загальний; опера­ції множення, ділення і знаходження остачі виконуються перед операціями додаваня і віднімання.

Якщо для цілих т і п виконується співвідношення DIV п) * п = т або тMOD п = 0, то п є дільником m.

Дійсний тип (real). Змінні типу real можуть набувати як цілі, так і значення з дробовою частиною (—2.75,2.0,3.2Е—5 і т. д.). У пам'яті ЕОМ можна подати дійсні чис­ла з деякої скінченної підмножини дійсних чисел.

До дійсних операндів можна застосовувати такі операції:

+ (додавання), — (віднімання), * (множення), / (ділен­ня); в результаті операції дістанемо результат дійсного типу. В одному арифметичному виразі можна використову­вати цілі і дійсні значення (константи, змінні, підвирази). Якщо один з операндів операції +, -, * є дійсний, то другий перед виконанням операції автоматично перетво­рюється до дійсного типу. При виконанні операції ділення обидва операнди можуть бути і цілого типу, але результат операцій завжди дійсний.

Дійсні значення в ЕОМ запам'ятовуються з обмеженим числом цифр (число у формі з плаваючою крапкою) і тому є наближеними. Тому не слід порівнювати дійсні числа між собою. На практиці замість порівняння двох дійсних зна­чень а і b доцільно користуватися таким співвідношенням:

abs (а—b)<e,

де e — деяка мала константа. Якщо порядок а і b невідо­мий, то e повинно бути функцією одного з них. Наприклад, можна взяти

abs (а — b) < abs * 1E — 6)

Для роботи з числовими величинами у мові Паскаль є ряд стандартних функцій, які подано в табл. 2.1.

Зауважимо, що округлення значення х у функції round (x) здійснюється за правилом:

 


(trunc — скорочення від truncate — відтинати, відрізати; round — круглий). Наприклад.

trunc (5.4) = 5, trunc (— 2.8) = — 3, round (4.2) =4,

round (6.9) = 7, round (—2.5) = —2, round (3.5) = 4.

 


Таблиця2.1

Позначення функції Математичне позначення функції Тип аргументу Тип рeзультату Примітка
abs (x) І х І real або іnteger real або integer  
sqr (x) Х2 real або іnteger real або integer  
sqrt (x)   real або іnteger real Х ³ 0
In (x) In х real або   Х >0
exp (x) ex integer real  
cos (x) cos х      
sin (x) sin х     X в радіанах
arctan (x) arctg x     головне значення в радіанах
trunc (x) Виділення цілої частини х real integer  
round (x) Округлення х до цілого Real integer  

Булевий тип (boolean). Булеві (логічні) змінні набува­ють одне значення: true (істинно) або false (хибно). Слова true і false є булевими константами. Булеві змінні як змін­ні інших стандартних типів повинні бути описані в розді­лі опису змінних. Наприклад:

VAR a, b, c: boolean;

До булевих операндів можна застосовувати такі опера­ції: AND(логічне І, кон'юнкція), OR (логічне АБО, диз'юнкція), NOT (логічне НЕ, заперечення).

Якщо а, b, c, d — булеві змінні, то булевим виразом буде, наприклад, вираз

a AND NOT b AND (c OR d).

Крім булевих операцій результат типу boolean видають операції відношення =, < >, <=, >, >= застосовані до виразів будь-якого впорядкованого типу. Наприклад, вираз 2 < 5 має значення true, а 4 < >4 - значеня false.

У мові Паскаль є стандартні функції (предикати), які набувають булевих значень:

odd (x) — задає значення true, якщо х — ціле непарне число; false — якщо парне;

eof (f) — задає значення true, якщо файл f перебуває в стані «кінець файла»; false — у противному випадку (eof — скорочення від End Of File — кінець файла);

eoln (f) задає значення true, якщо файл f перебуває в стані «кінець рядка»; false — у противному випадку (eoln скорочення від End of Line — кінець рядка).

 

Символьний тип (char). Змінна символьного (літерно­го) типу може набувати значень лише одного символу (char — скорочення від character — символ). У мові Пас­каль взагалі не визначена множина символів, а в кожному конкретному випадку використовується множина, яка ви­значається транслятором.

Проте незалежно від реалізації, у мові Паскаль вима­гається, щоб усі символи даної множини були впорядковані (кожен символ мав свій порядковий номер). Значення по­рядкових номерів символів визначається конкретною реа­лізацією.

Символьні константи — це символи, які взято в апостро­фи (апостроф в рядку повторюється двічі). Наприклад, символьними константами є 'А', 'С', '7', '5*, ':', "",’ ‘. Значення останньої константи — це пропуск, який завжди включається у множину символів.

Константи і змінні символьного типу можуть бути операндами в операціях порівняння. Так, можна записати вирази 'd ' > 'а',':' < >'; ', які видають результат типу bo­olean.

Для відображення множини символів у підмножину натуральних чисел і навпаки існують дві стандартні функції:

ord (С) — визначає порядковий номер символу із заданого набору символів;

chr (I)—символом, порядковий номер якого дорівнює І.

Очевидно, chr (ord (С)) == С.

Зазначимо, що впорядкування заданої множини симво­лів визначається такою властивістю:

якщо С 1 і С2 мають символьний тип i q одна з опера­цій відношення =,< >, <, >=, >, ) ^ то СІ q С2 набуває значення true тоді і тільки тоді, коли те саме зна­чення набуває ord (С1) 6 ord (C2).

Зокрема, справедливі такі відношення:

‘ ‘<’A’<’B’<’C’ …’X’<’Y’<’Z’

‘a’<’b’< …’z’, ‘0’<’1’<’2’<…<’9’.

Існують ще дві стандартні функції pred (попередній елемент) i succ (наступний елемент), які можуть бути за­стосовані до символьних аргументів:

pred (С) — визначає символ, який знаходиться в зада­ній впорядкованій множині символів безпосередньо перед символом С;

succ (С) визначає символ, який знаходиться безпосе­редньо після символу С.

Усі елементи множини символів, крім крайніх, мають попередній І наступний елементи. Останній елемент не має наступного, перший — попереднього. Якщо відповідного елемента немає, то результат функції не визначено.

Вирази. Вирази задають дії та послідовність обчислення значень. Вони утворюються з констант, змінних, функцій за допомогою знаків операцій і дужок. При обчисленні ви­разу операції виконуються в строго визначеному порядку з урахуванням загальноприйнятих правил ієрархії опера­цій і дужок. Значення функцій обчислюється насамперед, якщо вираз не містить дужок, то операції виконуються в такому порядку:

1) NOT

2) * , /, DIV, MOD, AND (операції типу множення)

3) +, —, OR (операції типу додавання)

4) =, < >, <, <=, >, >= (операції відношення).

Операції одного старшинства виконуються послідовно зліва направо.

Якщо треба змінити вказаний порядок операцій, то ви­користовуються круглі дужки.

Наведемо приклади деяких виразів:

1. sqrt (2*sqr (x) + 1) - 3*sin (x)/(x + у) + exp (y+ ln(x)).


<== попередня лекція | наступна лекція ==>
Структура програми | Readln (список змінних)


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн