Трохи інформації про конструктора

Лексема І константи.

СПЕЦІАЛЬНІ СИМВОЛИ І зарезервованих слів

Конструктор використовує такі підмножини набору символів коду ASCII:

  • Букви алфавіту від A до Z, від a до z, від А до Я, а до я, символ підкреслення
  • Цифри - арабські від 0 до 9
  • Прогалини - символ пробілу (ASCII 32)

Безкоштовний домен і зарезервовані слова представляють собою символи, які мають одне або кілька фіксованих значень. Спеціальними символами є такі символи. + - * / = <>. ()
Наступні пари символів також представляють собою спеціальні символи. <=>=: = //

Таблиця 1. Зарезервовані слова.

РЯДКИ СИМВОЛІВ

Рядок символів являє собою послідовність, що містить нуль і більше символів з розширеного набору символів коду ASCII (додаток В), записану в одному рядку програми і укладену в поодинокі лапки (апострофи). Рядок символів, нічого не містить між апострофами, називається символом нового рядка. Атрибут довжини рядка символів містить дійсну кількість символів між апострафамі. Наведемо кілька прикладів рядків символів.

'Конструктор Виконавців'
'CMOS - Комплементарна пара Метал-Оксид-Напівпровідник'
'!'
'' (порожня стрічка)

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

  • цілочисельний тип
  • Строковий тип
  • логічний тип
  • Призначений для користувача тип (класи)

цілочисельний тип

У Конструкторі цілочисельних тип представляється 32-х розрядних числом зі знаком. Діапазон значень.
-2147483648. 2147483647

Проц Старт ()
висновок -4 * 343/1 + (- 45 * 5)
кон Проц

Логічний ТИП

Значення логічного типу позначаються вбудованими ідентифікаторами констант .л. (Брехня) і .і. (Істина).

Проц Старт ()
Висновок (.І. Або .Л.) І (.І. І .І.)
Ето_логіческій_тіп: = .і.
кон Проц

Строковий тип

Значним строкового типу є послідовність символів з динамічним атрибутом довжини (в залежності від дійсного числа символів при виконанні програми). У Конструкторі строковий тип представлений як рядок з нульовим закінченням (Null-terminated string). Поточне значення атрибута довжини можна отримати за допомогою стандартної функції ДлінаСтр.

Проц Старт ()
Title: = 'Constructor of Performer MUST DIE. '
Висновок 'місто Гірничо' + 'Алтайськ'
кон Проц

КОРИСТУВАЧА ТИП

ОБМЕЖЕННЯ. Поле не може бути призначеного для користувача типу.

Клас може успадковувати компоненти від іншого класу. Якщо T2 успадковує від Т1, то Т2 є породжений від Т1, а Т1 є предок для Т2. Де T1 - базовий клас, а T2 - похідний.
Спадкування є транзитивним, тобто якщо Т3 успадковує від Т2, а Т2 успадковує від Т1, то Т3 так само успадковує від Т1.

Клас Квадрат (Точка)
X2, Y2
Проц Малювання ()
квадрат (X1, Y1, X2, Y2, clGreen)
кон проц
кон Клас

Вирази складаються з операторів і операндів. Більшість операторів в Конструкторі є бінарними, тобто містять два операнда. Решта оператори є унарними і містять тільки один операнд. У бінарних операторах використовується просте алгебраїчне уявлення, наприклад. A + B. У унарних операторах операція завжди передує операнду, наприклад, -B. У більш складних виразах порядок, в якому виконуються операції, відповідає пріоритету операцій (див. Таблицю 2).

Таблиця 2. Пріоритет операторів.

Для визначення старшинства операторів є три основних правила:
1. Операнд, що знаходиться між двома операторами з різними пріоритетами, зв'язується з оператором, що має більш високий пріоритет.
2. Операнд, що знаходиться між двома операторами з рівними пріоритетами, зв'язується з оператором, який знаходиться зліва від нього.
3. Вираз, укладену в дужки, перед виконанням обчислюється, як окремий операнд.

Оператори з рівним пріоритетом зазвичай виконуються зліва направо. Оператори поділяються на арифметичні оператори, логічні оператори, строкові оператори.

Приклад використання виразів:

Проц Старт ()
Висновок 34/2 mod 3
Друк (43> = 3 * 4)
кон Проц

У наступній таблиці наведено типи операндів і результати для бінарних і унарних арифметичних операцій.

Таблиця 3. Бінарні арифметичні операції.

Примітка: Оператор + так само використовується для роботи з рядками.


Таблиця 4. Унарні арифметичні операції.

Проц Старт ()
Вив д (-34 + 3)> 4 * 3 + 2
Друк -3 * -3
кон Проц

Логічні оператори. Типи операндів і результатів логічних операцій показані в таблиці 5.

Таблиця 5. Логічні операції.

ПРИМІТКА. Оператор НЕ (інвертор) є унарним оператором.

Результати цих операцій відповідають звичайній булевої логіки. Наприклад, вираз А і В приймає значення .І. (Істина) тільки в тому випадку, якщо обидва операнда імєєют значення ІСТИНА. Строкові оператори. Типи операндів і результату для операцій з рядками показані в таблиці 6.

Проц Старт ()
Висновок НЕ (.І. І .Л.)
Друк (43> = 3 * 4) або .і.
кон Проц

Таблиця 6. Операції з рядками.

Проц Старт ()
Висновок ДлінаСтр ( 'Привіт СВІТ!')
Друк 'МИРУ' + '-' + 'МИР'
кон Проц

Оператори відносини. Типи операндів і результатів для операцій відносини показані в таблиці 7.

Таблиця 7. Операції відносини.

Менше або дорівнює

Більше або дорівнює

Проц Старт ()
Висновок НЕ (4 <= 5)
Друк (43> = 3 * 4) і (4 <446)
кон Проц

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

1. Оператор присвоювання
2. Оператор виклику процедури

Оператор присвоювання замінює поточне значення змінної новим значенням, яке визначається виразом. Наведемо деякі приклади оператора присвоювання.

X_Коордіната: = Y + Z
D: = B * B - 4 * A * C
СтрСообщенія: = 'Привіт' + 'всім!'
Сума: = СуммаДвух (A, B)


ОПЕРАТОР ВИКЛИКУ ПРОЦЕДУРИ.

ВиводСообщенія ( 'DANGER.')
Обмін (A, N, M) Коло (100,100,10, clRed)
Робот.Ідті_Вніз ()

// Дві поледнего дужки обов'язкові (навіть якщо немає параметрів)
висновок Підрахунок ()
сум: = Сума (A, 63)
макс_знач: = Максимум (147, J + 34)

Структурні оператори.
1. Умовний оператор
2. Оператор циклу

Синтаксис оператора ЯКЩО можна представити таким чином.

якщо <выражение>
[Оператор_1]
[Оператор_2]
.
[Оператор_N]
Усе

якщо <выражение>
[Оператор_1]
[Оператор_2]
.
[Оператор_N]
інакше
[Оператор_1]
[Оператор_2]
.
[Оператор_N]
Усе

У вираженні повинен виходити результат, який має логічний тип. Якщо результатом виразу є істинне значення (.І.), То виконується оператор, наступний за виразом. Якщо результатом виразу є значення .Л. і присутній ключове слово ІНАКШЕ, то виконується оператор, наступний за ключовим словом ІНАКШЕ. Якщо ключове слово ІНАКШЕ відсутня, то не виконується жодної оператор. Наведемо два приклади оператора ЯКЩО.

якщо Х <15
X. = X + Y
інакше
Z. = 15
Усе

якщо і.
MyObj.ShowInfo ()
Усе

Оператори циклу задають повторне виконання певних операторів. Якщо число повторень заздалегідь відомо, то підходящої конструкцією є оператор ДЛЯ або ПОВТОР. В іншому випадку слід використовувати оператори поки.

Оператори циклу ПОКИ.

Оператор циклу ПОКИ містить в собі вираз, яке управляє повторним виконанням оператора.

Бувай <выражение>
[Оператор_1]
[Оператор_2]
.
[Оператор_N]
кЦ

Вираз, за ​​допомогою якого здійснюється управління повторенням оператора, повинно мати логічний тип. Обчислення його проводиться до того, як внутрішній оператор буде виконаний. Внутрішній оператор виконується повторно до тих пір, поки вираз приймає значення .І .. Якщо вираз з самого початку приймає значення .Л .. то оператор, що міститься всередині оператора циклу ПОКИ, не виконується жодного разу. Прикладами оператора циклу ПОКИ можуть служити.

поки Коордіната_по_X <> 10
Коордіната_по_X: = Коордіната_по_X + 1
кЦ

поки I <10 и Окно.Полное = .Л.
Окно.ВиводЦелого (I)
I: = I + 1
кЦ

Оператори циклу ДЛЯ.

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

для <имя_управ_переменной> від <начальное_знач> до <конечное_знач>
[Оператор_1]
[Оператор_2]
.
[Оператор_N]
кЦ

У якості керуючої змінної повинен використовуватися ідентифікатор змінної, який позначає змінну. Керуюча змінна повинна мати цілочисельний тип. Початкове і кінцеве значення повинні мати цілочисельний тип. Коли починає виконуватися оператор ДЛЯ, початкове і кінцеве значення визначаються один раз, і ці значення зберігаються протягом усього виконання оператора ДЛЯ. Оператор, який міститься в тілі оператора ДЛЯ, виконується один раз для кожного значення в діапазоні між початковим і кінцевим значенням. Керуюча змінна завжди ініціалізується початковим значенням. Коли оператор ДЛЯ використовує ключове слово КРОК з позитивним вираженням або взагалі не використовує, значення керуючої змінної збільшується при кожному повторенні на велечину вираження. Якщо початкове значення перевищує кінцеве значення, то що міститься в тілі оператора ДЛЯ оператор не виконується. Коли в операторі циклу використовується ключове слово КРОК з від'ємним значенням, значення керуючої змінної зменшується при кожному повторенні на велечину вираження. Якщо початкове значення в такому операторі менше, ніж кінцеве значення, то що міститься в тілі оператора циклу оператор не виконується. Наведемо приклади оператора циклу ДЛЯ.

Для АскНомер від 128 до 255
друк Симв (АскНомер)
кЦ

// друк непарних чисел до 100
для і від 1 до 100 крок 2
друк і
кЦ

// друк парних чисел до 100
для і від 2 до 100 крок 2
друк і
кЦ

// виведення всіх парних чисел з інтервалу [-100; 100]
для і від 100 до -100 крок -2
висновок і
кЦ

У Конструкторі існує зарезервоване ім'я для спеціального методу - Init. Init - це конструктор класу, тобто метод, який автоматично викликається при створенні екземпляра класу.

// Клас з конструктором.
клас
Куля Color, Volume
проц Init ()
висновок 'Викликаний конструктор. Створення об'єкта. '
кін проц
кон Клас

об'єкт <Имя_Объекта> = <Имя_Класса>

Приклад. Об'єкт МойКвадрат = Квадрат

ПРОЦЕДУРИ І ФУНКЦІЇ.

проц <имя_процедуры> ([<список_формальных_параметров>])
[Оператор_1]
[Оператор_2]
.
[Оператор_N]
кон Проц

Сигнатури ПРОЦЕДУРИ - ім'я процедури і список її формальних параметрів.

Проц Обробка (ф, л)
Якщо ф> = л
висновок 'ф більше або дорівнює л'
інакше
висновок 'ф менше л'
Усе
кон Проц

Фун <имя_функции> ([<список_формальных_параметров>])
[Оператор_1]
[Оператор_2]
.
[Оператор_N]
кон Фун

Сигнатури ФУНКЦІЇ - ім'я функції і список її формальних параметрів.

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

Фун Максимум (А, Б)
Якщо А> Б
повернення А
інакше
повернення Б
Усе
кон Фун

// Приклад рекурсії
Фун Факторіал (Число)
якщо Число = 1
повернення 1
інакше
повернення Число * Факторіал (Число - 1)
Усе
кон Фун

клас Число
Поле1
фун ВзятьПоле1 ()
повернення Поле1
кін фун
проц УстановітьПоле1 (Значення)
Поле1: = Значення
кін проц
кон Клас

Конструктори - це спеціалізовані форми методів. Конструктори використовуються для ініціалізації новостворених об'єктів. Зазвичай ініціалізація заснована на установці значень полів класу в конструкторі. Як і інші методи, конструтори можуть успадковуватися. Приклади констракторов:

Клас Число Поле1
// Конструктор
проц Init ()
Поле1: = 0
кін проц
фун ВзятьПоле1 ()
повернення Поле1
кін фун
проц УстановітьПоле1 (Значення)
Поле1: = Значення
кін проц
кон Клас

КЛАСИ І ОБ'ЄКТИ

Конструктор Виконавців у своєму розпорядженні засоби побудови класів і об'єктів. Кожен об'єкт в Конструкторі имее тип; їм є той клас, до якого належить даний об'єкт.

Клас (class) - колекція змінних, скомбінована з набором пов'язаних функцій.

Об'єкт (object) - окремий екземпляр класу.

У кожному класі є члени двох видів: поля і методи.

  • Поле (field) - змінна-член містить дані класу і його об'єктів.
  • Метод (method) - функція-член містить виконуваний код класу.

Класи використовуються для побудови визначаються користувачем типів даних і сприяють спільному використанню коду. Зокрема, можна породити новий клас від одного або декількох існуючих класів, і цей новий клас буде містити дані і всі функції того класу, з якого він був створений. Більш того, в цьому новому класі можуть визначатися додаткові дані і функції, унікальні для об'єктів цього нового типу, і навіть перевизначатися функції, які цей клас успадковує від свого базового класу (base class). Таким чином, спадкування класів дає максимальну гнучкість у формуванні нових класів, схожих на існуючі, але не ідентичних їм.

клас <имя_класса> [(<имя_предка>)]
//
// У тілі класу розташовується опис методів і полів.
//
кон Клас

Іншими словами клас - це опис чого-небудь, а об'єкт - це те, що створено відповідно цим описом.

об'єкт <имя_объекта> = <имя_класса>

Всі об'єкти в конструкторі оголошуються на глобальному рівні і мають глобальну область видимості.

клас Риба
вага, колір, назва
пол, житло
проц Init ()
вага: = 0
колір: = ''
назва: = ''
пол: = 0
житло: = ''
кін проц

проц Плисти ()
друк 'пливу >> === @@>'
кін проц

проц Маскуватися ()
друк 'МАСКУВАННЯ oo'
кін проц
кін клас

об'єкт щука = риба

проц Старт ()
щука.Плить ()
щука.Маскіроваться ()
кін проц

Схожі статті