Мова Delphi
Змінні, константа і їх типи
Дані в комп'ютері можна розглядати як елементи пам'яті, які мають свої імена (ідентифікатори). Всі дані в програмі на мові Delphi повинні бути описані до їх першого використання. І компілятор стежить, щоб в програмі вони використовувалися в відповідності до цього опису, що дозволяє уникнути помилок.
Будь-яка величина в Delphi може бути постійною або змінною. Її ім'я (ідентифікатор) може складатися з комбінації латинських букв, цифр і знака підкреслення, і починатися не з цифри. При цьому регістр символів значення не має.
Місце опису даних в програмі - поза логічних блоків begin / end . У модулі перед ключовим словом implementation є блок опису:
var
Form1: TForm1;
Саме тут, починаючи з наступного рядка, зручно оголошувати глобальні змінні і константи. Як бачимо, одна (Form1) вже є!
Команда оголошення змінних в мові Delphi :
var ім'я_змінної : тип_змінної ;
Слово var - ключове. Іменем може бути будь-який ідентифікатор, якщо він не був описаний раніше і не є одним з ключових або зарезервованих слів мови Delphi . Якщо потрібно описати кілька змінних одного типу, то їх перераховують, відокремлюючи комами:
var A, B, C : Integer;
Якщо кілька описів слідують один за одним, то ключове слово var повторно можна не вказувати:
var A, B : Integer;
C, D : String;
Постійну величину інакше називають константою . Звичайно, в програмі можна використовувати числа і рядки безпосередньо: 3.1415 або 'Це значення числа пі' , але іноді зручніше привласнити їх ідентифікатором. Опис констант аналогічно опису змінних, але використовується ключове слово const , за ім'ям ідентифікатора слідує тип, потім знак рівності і його значення. Причому тип константи допускається не вказувати:
const pi=3.1415 ;
ZnakPi : String = 'Це значення числа пі';
До речі, константа Pi вбудована в Delphi, тобто для того щоб використовувати в Delphi число 3,1415 ... в розрахунках, потрібно просто привласнити вбудовану константу Pi змінної типуReal або просто використовувати безпосередньо в виразах.
Тепер прийшов час дізнатися про типи даних, що використовуються в Delphi . Перш за все це рядки і числа. Рядком називається послідовність символів, укладена в поодинокі лапки:
'Це текстовий рядок'
Якщо текст повинен містити сам символ лапки, то його треба повторити двічі:
Рядок може бути і порожній, яка не містить символів. Тоді він складається з двох без пробілу лапок, що йдуть один за одним . Природно, рядок може складатися і тільки з одних прогалин.
Найпопулярніший строковий тип - String . Рядок типу String може містити змінну кількість символів об'ємом до 2 Гбайт. Якщо потрібно обмежити розмір рядка фіксованим значенням, то після ключового слова String в квадратних дужках вказується число, яке визначає кількість символів у рядку: String [50] .Більш повно робота з рядками Delphi описується далі.
Одиночний символ має тип Char і записується у вигляді знака в одиночних лапках: 'a' . Є символи, які на екрані відобразити неможливо, наприклад, символ кінця рядка (дорівнює # 13), символ розриву рядків (дорівнює # 10). Такі символи записуються в вигляді їх числового коду (в кодуванні ANSI ), перед яким стоїть знак # . Наприклад, # 0 .
Нарешті, існують так звані нуль-терминировать рядки. Відлік символів в таких рядках починається з нуля, а закінчується символом з кодом 0 ( # 0 ). Такі рядки мають тип PChar . Числа бувають цілі і дробові . У цій таблиці наведено стандартні типи цілих чисел і відповідні їм ДІПАЗОН допустимих значень.
|
Найбільш зручним для використання в програмах є тип Delphi Integer .Інші цілі типи використовуються для зменшення місця, займаного даними в пам'яті комп'ютера. |
Дробові числа мають дробову частину, відокремлювану десятковою крапкою. Допускається використання символу e (або E ), за яким слідує число, яке вказує, що ліву частину потрібно помножити на 10 у відповідній мірі: 5e25 - п'ять помножити на десять у двадцять п'ятого ступеня.
Нижче наведено стандартні типи дрібних чисел і відповідні їм діапазони допустимих значень . Для більшості типів вказано діапазон позитивних значень, проте допустимим є аналогічний діапазон негативних значень, а також число 0 .
|
Найбільш зручним для використання в програмах є тип Delphi Real . Йому еквівілентен тип Double , але в майбутньому це може бути змінено.Обчислення з дробовими числами виконуються наближено, за винятком типу Currency (фінансовий), який призначений для мінімізації помилок округлення в бухгалтерських розрахунках. |
Наступним типом даних є логічний Boolean , що складається всього з двох значень: True (Істина) і False(Брехня). При цьому True> False .
Тепер, використовуючи компоненти, їх властивості та події, вводячи власні змінні, можна конструювати програми, що містять обчислення. Залишилося дізнатися, як обчислене значення вивести на екран. Про консольні програми я тут не говорю ! А в нормальних віконних Windows-додатках це значення потрібно помістити в який-небудь компонент, який має властивості Text або Caption . Це, наприклад, такі компоненти як Label і Edit , та й сама Форма має властивість Caption , куди теж можна виводити інформацію. Однак, в Delphi інформацію перед виведенням, як правило, необхідно перетворювати. Так як привласнення можливе тільки між змінними одного типу, то така програма (не намагайтеся її виконувати):
var A, B, C: Integer ;
begin
A := 5 ;
B := 10 ;
C := A+B ;
Label1.Caption := C ;
end ;
викличе помилку, так як властивість Caption має текстовий тип String , а використані змінні - цифровийтип Integer . Значить, потрібно перетворити значення змінної C в текстовий тип. Для цього є вбудована функція IntToStr . Рядок в нашій "програмі", що викликала помилку, повинна виглядати так:
Label1.Caption := IntToStr(C) ;
Така програма, крім показу числа 15 , ні на що не здатна. Ми повинні навчитися вводити в програму інші числа.Використовуємо компоненти Edit . Введені числа будуть міститися у властивості Text цих компонентів.Розташуємо на формі два компоненти Edit , один компонент Label і кнопку Button , після натискання на яку і будемо проводити обчислення. У компоненти Edit1 і Edit2 будемо вводити числа для підсумовування.Щоб переміститися в редактор коду, клацнемо двічі по нашій кнопці Button1. Ми потрапимо прямо в сформовану для нас середовищем Delphi заготовку обробника натискання на кнопку, безпосередньо між операторами begin і end . Напишемо таке просте код:
procedure TForm1.Button1Click(Sender: TObject);
var A, B, C: Integer;//Не забудьте опис змінних
begin
//Початок коду:
A := Edit1.Text;
B := Edit2.Text;
C := A+B;
Label1.Caption := IntToStr(C);
//Кінець коду
end ;
При спробі виконати цей код Delphi покаже помилки з аналогічної причини - змінні A і B мають цифровий тип Integer , а властивість Text - текстовий тип String. Виправити помилки допоможе вбудована функція StrToInt , що виконує зворотне перетворення - текст в ціле число. Оператори присвоєння змінним A і B повинні виглядати так:
A := StrToInt(Edit1.Text);
B := StrToInt(Edit2.Text);
В даному випадку змінні A, B, Cвикористовувалися для наочності. Можна обійтися одним рядком:
Label1.Caption:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));
Аналогічно, є функції і для перетворення в рядок і назад дійсних чисел c плаваючою ( Float ing англ.) Коми, що мають тип Real . Для перетворення в рядок - FloatToStr , назад - StrToFloat . Часто результати обчислень, що мають тип Delphi Real , мають після коми довгий "хвіст" цифр. При виведенні такої змінної в текстовому вигляді необхідно обмежити кількість цифр після коми. Як це можна зробити, описується також в Уроці Delphi Робота з рядками Delphi .