- •Основи програмування. Теорія.
- •1. Візуальна побудова програми на основі об’єктних компонентів і
- •2. Написання програмного коду мовою Object Pascal для забезпечення
- •Об’єктно-орієнтоване програмування. Завдання.
- •Динамічні структури даних. Завдання.
- •Візуальне програмування. Теорія.
- •Типи форм.
- •Обробники подій
Білет №3
Основи програмування. Теорія.
Мова програмування Delphi.Структура опису програми. Алфавіт мови програмування. Ідентифікатор. Правила запису ідентифікаторів. Величини. Тип даних. Змінна. Константа.
Object Pascal — об'єктно-орієнтований нащадок мови програмування Pascal, більш відомий як основна мова програмування середовища CodeGear Delphi.
Borland використала назву «Object Pascal» для мови програмування у перших версіях Delphi, проте пізніше назвала її «мовою програмування Delphi». Однак, компілятори, що заявлені як Object Pascal-сумісні, дуже часто намагаються бути сумісними із вихідними кодами Delphi.
Delphi - це об’ектно-орієнтоване середовище для візуальної побудови
програмних продуктів, засноване на мові Object Pascal, що є переробленою
й істотно доповненою версією Turbo Pascal фірми Borland.
Програмування в Delphi складається з двох основних етапів:
1. Візуальна побудова програми на основі об’єктних компонентів і
настроювання їх властивостей, в результаті чого можна швидко сформувати
користувальницький інтерфейс і забезпечити значну частину
функціональності додатка.
2. Написання програмного коду мовою Object Pascal для забезпечення
особливої функціональності додатка, яку неможливо досягти використанням
візуальної побудови.
З моменту першої реалізації мови Pascal технології програмування зробили
величезний крок вперед. І, незважаючи на те, що Pascal теж розвивався,
його останній версії, випущеній фірмою Borland у 1990 році, істотно
бракує можливостей, властивих іншим сучасним мовам програмування. В
середовищі Delphi використовується оновлений варіант цієї популярної
мови. Зміни торкнулись, перш за все, об’єктно- орієнтованої частини
Pascal, однак, здавалося б цілком завершені інструменти структурного і
модульного програмування також придбали деякі нові особливості.
Розглянемо основні елементи мови програмування Pascal, звертаючи увагу
на зміни, що відбулися з ним в Delphi.
Основна частина програми
Програма на Object Pascal, як і в більш ранніх версіях Pascal,
складається з основної частини, власне і названою програмою (англ.
Program - Програма) і декількох модулів (англ. Unit - Модуль), що
підключаються на етапі компіляції до основної частини програми,
наявність яких не обов'язкова. Розглянемо структуру основної частини
програми.
Program
.......... Заголовок програми
Uses
........... Розділ підключення модулів (бібліотек)
Label
··········· Розділ опису міток безумовного переходу Const
........... Розділ опису констант
Type
........... Розділ опису нестандартних типів даних
Var
........... Розділ опису змінних
……....Початок розділу опису логіки програми
Begin
........... Розділ опису логіки програми
End. Кінець розділу опису логіки програми
Основна частина програми міститься в окремому файлі і складається з
одного чи декількох розділів, кожний з який починається з визначеного
ключового слова (Program, Uses, Label і т.д.). Якщо в існуванні розділу
немає необхідності, то ключове слово, що його відкриває, не вказується.
Основна частина програми в Delphi має розширення dpr (від aнгл. DPr -
Delphi Project - Проект Delphi) і, у більшості випадків, не вимагає
втручання програміста. Створення і відновлення основної частини програми
бере на себе середовище розробки.
В алфавіт мови Object Pascal входять букви цифри, шістнадцятирічні цифри, спеціальні символи, пробіли і зарезервовані слова.
Букви – це букви латинського алфавіту від a до z і від A до Z, а також знак підкреслення „_”.
Цифри – арабські цифри від 0 до 9.
Кожна шістнадцятирічна цифра має значення від 0 до 15. Перші 10 значень позначаються арабськими цифрами 0..9, інші шість – латинськими буквами A..F або a..f.
Слова-идентификаторы
Неделимые последовательности символов алфавита образуют слова (идентификаторы). Идентификатор начинается с буквы и не должен содержать пробелов. После первого символа допускаются буквы и цифры. Напоминаем, что символ подчеркивания считается буквой.
При написании идентификаторов могут использоваться как прописные, так и строчные буквы (между ними не делается различий). Длина идентификатора может быть любой, но значимы только первые 255 символов (вполне достаточный предел, не так ли). Примеры написания идентификаторов приведены ниже:
Правильно Неправильно
RightName Wrong Name
E_mail E-mail
_5inches 5inches
Всі ідентифікатори поділяються на зарезервовані слова, стандартні директиви, стандартні ідентифікатори та ідентифікатори програміста.
Зарезервовані (ключові) слова складають основу мови Delphi, будь-яке їх спотворення викличе помилку компіляції. Ось повний перелік зарезервованих слів:
and as asm array begin case class
const
constructor
destructor
dispinterface
div
do
downto
else
end
except
exports
file
finally
finalization
for
function
goto
if
implementation
in
inherited
inline
initialization
interface
is
label
library
mod
nil
not
object
of
or
out
packed
procedure
program
property
raise
record
repeat
resourcestring
set
shl
shr
string
then
threadvar
to
try
type
unit
until
uses
var
while
with
xor
Стандартні директиви інтерпретуються або як зарезервовані слова, або як ідентифікатори програміста в залежності від контексту, в якому використовуються. Ось вони:
absolute
abstract
assembler
at
automated
cdecl
default
dispid
dynamic
export
external
far
forward
index
message
name
near
nodefault
on
overload
override
pascal
private
protected
public
published
read
register
reintroduce
resident
stdcall
stored
virtual
write
Дані
Поняття типу даних
Програма в процесі виконання завжди обробляє будь-які дані. Дані можуть представляти собою цілі і дробові числа, символи, рядки, масиви, множини і ін Так як комп'ютер всього лише машина, для якої дані – це послідовність нулів і одиниць, він повинен абсолютно точно "знати", як їх інтерпретувати. З цієї причини всі дані в мові Delphi поділені на типи. Для опису кожного типу даних існує свій стандартний ідентифікатор: для цілих – Integer, для дрібних – Real, для рядків – string і т.д. Програміст може утворювати власні типи даних і давати їм довільні імена (про те, як це робиться, ми поговоримо трохи пізніше).
Тип даних показує, які значення приймають дані і які операції можна з ними виконувати. Кожному типу даних відповідає певний обсяг пам'яті, який потрібен для розміщення даних. Наприклад, у мові Delphi існує тип даних Byte. Дані цього типу приймають значення в целочисленном діапазоні від 0 до 255, можуть брати участь в операціях додавання, віднімання, множення, ділення, і займають 1 байт пам'яті.
Всі типи даних в мові Delphi можна расклассифицировать наступним чином:
прості типи даних. Вони в свою чергу поділяються на порядкові і речові типи даних. До порядковим типами відносяться цілочисельні, символьні, Булевського, що перераховуються та інтервальні типи даних;
тимчасової тип даних. Служить для представлення значень дати і часу;
рядкові типи даних. Служать для представлення послідовностей із символів, наприклад тексту;
складові типи даних (в деяких джерелах – структуровані типи даних). Формуються на основі всіх інших типів. До них відносяться масиви, множини, записи, файли, класи та посилання на класи;
процедурні типи даних. Дозволяють маніпулювати процедурами і функціями як даними програми;
вказівні типи даних. Дані цих типів зберігають адреси інших даних, з їх допомогою організовуються різні динамічні структури: списки, дерева і т.д.;
тип даних з непостійним типом значень. Служить для представлення значень, тип яких заздалегідь невідомий; з його допомогою легко організовується робота зі списком різнотипних значень;
Деякі зумовлені типи даних діляться на фундаментальні та узагальнені типи. Дані фундаментальних типів мають незмінний діапазон значень і обсяг займаної пам'яті на всіх моделях комп'ютерів. Дані узагальнених типів на різних моделях комп'ютерів можуть мати різний діапазон значень і займати різний обсяг пам'яті. Поділ на фундаментальні та узагальнені типи характерно для цілих, символьних і строкових типів даних.
По ходу викладу матеріалу ми розглянемо всі перераховані типи даних і більш докладно пояснимо їх зміст і призначення в програмі.
Константи
Дані, незалежно від типу, мають деяке значення і в програмі постають як константи або змінні. Дані, які набули значення на початку програми і за своєю природою змінюватися не можуть, називаються константами. Константами, наприклад, є швидкість світла у вакуумі та співвідношення одиниць вимірювання (метр, сантиметр, ярд, фут, дюйм), які мають науково обгрунтовані або традиційно прийняті постійні значення. Константи описуються за допомогою зарезервованого слова const. За ним йде список імен констант, кожному з яких за допомогою знака рівності присвоюється значення. Одне присвоювання відокремлюється від іншого за допомогою крапки з комою. Тип константи розпізнається компілятором автоматично, тому його не треба вказувати при описі. Приклади констант:
const
DelphiLanguage = Object Pascal;
KylixLanguage = DelphiLanguage;
Yard = 914.4;
Foot = 304.8;
Після такого опису для звернення до потрібного значення досить вказати лише ім'я відповідної константи.
Значення константи можна задавати і виразом. Цю можливість зручно використовувати для комплексного уявлення будь-якого поняття. Наприклад, часовий проміжок, рівний одному місяцю, можна задати так:
const
SecondsInMinute = 60;
SecondsInHour = SecondsInMinute * 60;
SecondsInDay = SecondsInHour * 24;
Очевидно, що, змінивши базову константу SecondsInMinute, можна змінити значення константи SecondsInDay.
При оголошенні константи можна вказати її тип:
const
Percent: Double = 0.15;
FileName: string = HELP.TXT;
Такі константи називаються типізований; їх основне призначення – оголошення константних значень складових типів даних.
Змінні
Змінні на відміну від констант можуть необмежене число разів змінювати своє значення в процесі роботи програми. Якщо на початку програми деяка змінна X мала значення 0, то в кінці програми X може прийняти значення 10000. Так буває, наприклад, при підсумовуванні введених з клавіатури чисел.
Змінні описуються за допомогою зарезервованого слова var. За ним перераховуються ідентифікатори змінних, і через двокрапку вказується їх тип. Кожна група змінних відокремлюється від іншої групи крапкою з комою. Наприклад:
var
Index: Integer; / / мінлива цілого типу даних
FileName: string; / / мінлива строкового типу даних
Sum, Profit: Double; / / група змінних дійсного типу даних
У тілі програми змінної можна привласнити значення. Для цього використовується складовою символ: =, наприклад:
Sum: = 5000.0; / / змінної Sum присвоюється 5000
Percent: = 0.15; / / змінної Percent присвоюється 0.15
Profit: = Sum * Percent; / / обчислюється добуток двох змінних
/ / І його результат присвоюється змінної
// Profit
Ви можете присвоїти значення змінної безпосередньо при оголошенні:
var
Index: Integer = 1;
Delimiter: Char = ;;
Оголошені таким чином змінні називаються ініціалізованих. На початкові змінні накладається обмеження: вони не можуть оголошуватися в підпрограмах (процедурах і функціях). Якщо змінна не ініціалізується при оголошенні, то за умовчанням вона заповнюється нулем.
Кожен використовуваний в програмі елемент даних повинен бути описаний в розділі const або var. Виняток становлять дані, задані безпосередньо значенням, Наприклад:
Write (100, 200); / / 100 і 200 – дані, задані значенням