Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Типи констант



Тип констант визначається за їх виглядом: Константи цілого типу – це цілі числа, що не мають десяткової точки, константи дійсного типу – дійсні числа, логічні константи – True або False, символьні – або рядки довжиною у один символ, або конструкції вигляду #K або ^K та ін.

Переліковий тип

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

Програміст об’єднує до однієї групи за якоюсь ознакою всю сукупність значень, що складають переліковий тип.

Наприклад, переліковий тип turn (поворот) об’єднує скалярні значення left, right; cube (кубик) об’єднує значення с1, с2, с3, с4, с5, с6; move (рух) об’єднує значення left, right, backward, forward.

Переліковий тип описується у блоці опису типів, що починається зі службового слова type. Наприклад:

Type

turn = (left, right);

cube = (c1, c2, c3, c4, c5, c6);

Кожне значення є константою свого типу і може належати тільки одному з перерахованих типів, що задані у програмі. Наприклад типи turn не може бути визначеними у одній програмі з типом move через те, що обидва типи містять однакові константи left та right.

Далі, після опису типу, його можна використовувати, як звичайний стандартний тип для опису змінних.

Впорядкована послідовність значень, що становить переліковий тип, автоматично нумерується, починаючи з 0 і далі через 1. Звідси випливає, що до перелікових змінних та констант можна застосовувати стандартні функції Pred, Succ та Ord.

Змінні перелікового типу не можуть бути елементами списків входу або виходу.

Інтервальний тип.

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

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

Наприклад:

Type

interval = 1..100;

Над змінними інтервального типу можуть виконуватись всі операції та застосовуватись всі стандартні функції стосовні відповідного базового типу.

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

Ініціалізація змінних.

У відкомпільованій програмі (тобто робочій програмі, файл якої має розширення ехе) для всіх змінних виділено місце у пам’яті та всім змінним присвоєно нульове значення.

Для задання початкових значень (ініціалізація змінних) Delphi дозволяє присвоювати значення змінним одночасно з їх описом. Для цього використовується конструкція

Ім’я_змінної: тип = значення;

Наприклад

i: integer = 5;

Зауважимо, що тип змінної та тип значення має співпадати.

Змінні перелікового типу можуть бути описані у блоці (розділі) опису змінних. Наприклад:

Var

Turn: (left, right);

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

Turn:= left;

Масиви

Масив – це обмежена впорядкована сукупність однотипних величин. Кожна окрема величина називається компонентою масиву. Тип компонент масиву може бути довільним, з тих, що застосовні у Delphi, крім файлового типу.

Рядки

Особливе місце у Delphi займають масиви символів, або рядки – String. Стандартні змінні елементів форми, що використовуються для введення чи виведення інформації, такі як Label.Caption, Form.Caption, Edit.Text, Button.Caption та інші мають рядковий тип. Рядок – елементарна конструкція мови Delphi Pascal.

Детальніше масиви та рядки розглядатимуться в наступних розділах.

Приведення типів

Для приведення типів застосовують так звані перетворювачі типів, які нагадують стандартні функції Паскаля з іменами, що збігаються з іменами базових типів (Byte, Integer та інші). Результат, що повертається таким перетворювачем, гарантовано лежить в діапазоні зазначеного типу. При цьому, звичайно, можлива втрата значущих цифр: береться залишок від ділення значення аргументу на максимально допустиме значення відповідного типу.

Наприклад, значення Byte (300) дорівнює 44

var X: Integer;

L: Longint;

begin

X: = Integer (L * 1234567);

Однак подібним способом неможливо перетворити число типу Real у число типу Integer або будь-яке число в рядок. Для таких, більш складних, перетворень типів у Delphi є набір стандартних функцій, що спрощують процес перетворення.

Стандартні функції перетворення типів

Ім’я функції Призначення
Round Округлення дробового числа до найближчого цілого. Значення Round (3.74) дорівнює 4
Trunc Відкидання дробової частини числа. Значення Trunc (3.74) дорівнює 3
IntToStr Перетворення цілого числа в рядок. Значення IntToStr (12987) дорівнює '12987 '
FloatToStr Перетворення дробового числа в рядок. Значення FloatToStr (3.74) дорівнює '3.74 '
StrToInt Перетворення рядка в ціле число. Значення StrToInt ('12985 ') дорівнює 12985
StrToFloat Перетворення рядка в дробове число. Значення StrToFLoat ('3.14 ') одно 3.14

Елементарні оператори

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

За кількістю операндів розрізняють унарні і бінарні операції. Унарні операції мають один операнд, а бінарні два. Більшість операцій є бінарними.

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

· Арифметичні операції: +, -, *, /, div, mod. Операції +, - можуть унарними. Тип операндів може бути дійсним або цілим, результат буде дійсним або цілим. Результат операції / (ділення) цілих або дійсних даних буде тільки дійсним. Операнди в операціях div (ціла частина від ділення, наприклад, 5 div 2 =2) і mod (остача від ділення, наприклад, 5 mod 2 = 1) тільки цілі і результат буде цілим.

· Операції відношення: =, <>, >, <, >=, <=. Тип операндів з цими операціями повинен бути сумісним − це прості типи, символьні рядки, а в операціях =, <> і вказівний тип. Результат операцій відношення бульвого типу false або true.

· Бульові операції: not – заперечення, and – кон’юнкція (логічне множення), or – диз’юнкція (логічне додавання), xor – додавання за модулем два. Операція not є унарною. Бульові операції виконуються за правилами бульової алгебри Табл..2.5. Операнди з бульовими операціями повинні бути бульового типу і результат також буде бульового типу.

· Порозрядні логічні операції і зсуви not, and, or, xor, shl, shr. Операнди з порозрядними логічними операціями і зсувами тільки цілого типу. Порозрядні логічні операції виконуються над кожним розрядом за правилами бульової алгебри. Операція А shl В приводить до зсуву числа А на В розрядів вліво, а А shr В відповідно на В розрядів вправо. Результат порозрядних логічних операцій і зсувів є цілого типу.

Операнди Операції
A B Not A A and B A or B A xor B
false False True False false false
false True True False true true
true False False False true true
true True False True true false

· Операція конкатенація +. Операндами з операцією конкатенація є дані символьного типу або символьні рядки. Результатом цієї операції є символьний рядок.

· Операції над множинами: + – об’єднання множин, - – різниця множин, * – переріз множин, = – еквівалентність множин, <> – не еквівалентність множин, >= – перевірка входження однієї множини в іншу, <= – перевірка входження однієї множини в іншу, in – перевірка належності елемента множині. Результатом операцій +, -, * є множина, а операцій =, <>, >=, <= значення бульового типу true або false.

· Унарна операція @ взяття адреси. Операндом цієї операції може бути ідентифікатор змінної, процедури, функції, або методу. Тип результату вказівник сумісний з NIL.

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

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

Серед операцій встановлено такий пріоритет:

· звернення до функцій;

· унарні +, -, not, @;

· мультиплікативні *, /, div, mod, and, shl, shr;

· адитивні +, -, or, xor;

· відношення =, <>, <, >, <=, >=, in.

Приклад. Визначити порядок виконання дій у виразі

,

1. ,

2. sin(x),

3. 5* sin(x),

4. +5* sin(x),

5. 6*x,sqr(x),

6. (6*x+sqr(x)),

7. 7*(6*x+sqr(x)),

8. +5* sin(x)- 7*(6*x+sqr(x)),

9. +5* sin(x)- 7*(6*x+sqr(x))-5.

Оператори призначені для опису дій, які будуть виконуватися при реалізації алгоритму задачі, що розв’язується.

Оператори відділяються один від одного символом «;».

Символ «;» не є частиною оператора – це розділювач операторів, тому перед ключовим словом end «;» не обов’язкова. Якщо «;» поставлена, то вважається, що після цього оператора слідує порожній оператор і це не є помилкою. Будь-якому оператору в програмі може передувати мітка, яка відділяється від нього двокрапкою.

Розрізняють прості і структуровані оператори. Прості оператори це оператори, які не містять у собі інших операторів (присвоєння, goto, оператори звернення до процедур і функцій), а структуровані це оператори, які містять у собі інші оператори (складений, if, case, while, repeat, for, with).

Оператор присвоєння має вигляд

<змінна>:= <вираз>,

при виконанні цього оператора обчислюється значення виразу і

присвоюється змінній. Допускається присвоєння значення скалярним змінним, структурованим змінним та імені функції крім змінних файлового типу.

Змінна і значення виразу повинні бути сумісними за присвоєнням:

· змінна і значення виразу одного типу;

· змінна дійсного типу, а значення виразу може бути як дійсного так і цілого типу;

· змінна і значення виразу відносяться до одного або різних діапазонів і значення виразу лежить всередині діапазону визначеного типом змінної;

· змінна відносяться до типу символьний рядок, а вираз типу символьний рядок або до символьного типу.

Наприклад, при х=3 після виконання оператора присвоєння ; змінна х буде дорівнювати 8.





Дата публикования: 2014-11-03; Прочитано: 1485 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...