Типи даних в Delphi

Типи даних в Delphi

У мові програмування Delphi все має свій тип. Таким чином, оголошуючи змінну, ми повинні обов'язково вказувати, який тип даних вона зберігатиме в собі..

Можна виділити 5 основних типів даних у Delphi:

  1. Цілі числа
  2. Дійсні числа (дробові)
  3. Рядки
  4. Символьний тип даних
  5. Логічні значення (Булеві типи)

Змінні Delphi вказуються після ключового слова var. Наприклад:

var
i:integer;

говорить про те, що ми оголосили змінну i. Тип змінної – ціле число.

Тип даних цілі числа

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

Є кілька типів цілісних змінних. Вони відрізняються лише обсягом пам'яті, що виділяється змінною для зберігання даних.

Змінним з типом ціле число можна привласнювати як десяткові числа, так і шістнадцяткові. Для цього перед шістнадцятковим числом слід поставити знак долара – $.

Давайте на реальному прикладі розглянемо присвоєння змінної десяткового та шістнадцяткового числа 10.

Приклад присвоєння змінної цілого типу даних

var
i,n:Integer; // оголошуємо дві змінні для зберігання цілих типів даних
begin
i:=10; // привласнюємо змінній i десяткове число 10
n:=$A; // привласнюємо змінній n шістнадцяткове число 10
ShowMessage(IntToStr(i)); // Виводимо на екран повідомлення із значенням змінної i
ShowMessage(IntToStr(n)); // Виводимо на екран повідомлення із значенням змінної n
end;

Тип даних дійсні числа

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

Дуже важливо пам'ятати, що дійсні числа не дорівнюють цілим.

Наприклад, дійсне число 3.0 не буде дорівнювати цілому числу 3. Для того щоб порівняти обидва ці числа, потрібно округлити ціле число.

Справа в тому, що в комп'ютері число 3 в дійсному вигляді може виявитися числом 3.0000000001 або 2.999999999.

Приклад присвоєння змінної дійсного типу даних

var
i:Integer; // оголошуємо змінну для зберігання цілих типів даних 
n:Real; // оголошуємо змінну для зберігання дійсних типів даних
begin
i:=10; // привласнюємо змінній i ціле значення10
n:=10.5; // привласнюємо змінній і дробове значення 10.5
ShowMessage(IntToStr(i)); // Виводимо на екран повідомлення із значенням змінної i
ShowMessage(FloatToStr(n)); // Виводимо на екран повідомлення із значенням змінної n
end;

Рядкові типи даних

У Delphi використовують такі типи рядків: ShortString, AnsiString, WideString. Також дуже часто використовують тип String.

Рядки в Delphi укладаються в одинарні лапки.

Наприклад, щоб оголосити змінну str типу рядок і привласнити їй значення Hello World, потрібно написати наступний код:

var
str:String; // оголошуємо змінну з типом рядок
begin
str:='Hello World'; // привласнюємо змінній str значення Hello World
ShowMessage(str); // виводимо на екран повідомлення із значенням змінної str
end;

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

Літери у рядках нумеруються починаючи з 1 (а не з 0, як зазвичай відбувається нумерація в інших масивах). Цей виняток обов'язково потрібно запам'ятати!

Розгляньмо простий приклад роботи з окремими символами рядка.

var
str:String; // оголошуємо змінну з типом рядок
begin
str:='Hello World'; // привласнюємо змінній str значення Hello World
ShowMessage(str[1]); // виводимо на екран перший символ змінної str
end;

Оскільки рядок – це набір символів, а символ – це число, яке вказує на конкретний символ у таблиці, ми можемо створювати рядки з чисел.

Наприклад, якщо ми хочемо присвоїти змінній str рядок 'Hello World' за допомогою числових значень символів, то використовуючи таблицю символів ASCII потрібно написати наступний код:

var
str:String; // оголошуємо змінну з типом рядок
begin
str:=#72+#101+#108+#108+#111+#32+#87+#111+#114+#108+#100; // привласнюємо змінній str значення Hello World за допомогою числового значення символів
ShowMessage(str); // виводимо на екран повідомлення із значенням змінної str
end;

Зверніть увагу на те, що перед числовим значенням обов'язково потрібно вказувати знак решітки.

Символьні типи даних

Символьні дані - це простий ланцюжок із чисел. Ми вже познайомилися з використанням символьних даних під час написання слова Hello World за допомогою числового значення символів.

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

var
str:String; // оголошуємо змінну з типом рядок
begin
str:=#72+#101+#108+#108+#111+#32+#87+#111+#114+#108+#100; // привласнюємо змінній str значення Hello World за допомогою числового значення символів
ShowMessage(str); // виводимо на екран повідомлення із значенням змінної str
end;

Тут за допомогою порядкових номерів символів ми написали слово Hello World.

Знак решітки перед кожним числом вказує на те, що перед нами не просто число, а код символу в десятковій системі числення.

Булеві типи

Змінні логічного типу можуть набувати лише одне з двох значень - 1 або 0. Також, для більшої зручності, у програмуванні ці значення замінюють поняттями true (істина) або false (брехня).

Булеві змінні також часто називають логічними змінними. Для оголошення цього типу змінних використовується слово Boolean.

Давайте розглянемо приклад роботи з булевими типами змінних:

var
b:Boolean; // оголошуємо логічну змінну
str:String; // оголошуємо рядкову змінну
// Умова, якщо в полі Edit користувач увів текст Іван, то змінній b привласнюється значення True (Істина). Інакше - False (Брехня)
begin
if Edit1.Text='Іван' then
b:=true // після оператора, що йде перед else, крапка з комою ніколи не ставиться (це потрібно запам'ятати)
else
b:=false;

// Умова якщо b=true, тоді виводимо повідомлення з текстом Істина. В іншому випадку - виводимо повідомлення Брехня
if b=true then
str:='Істина'
else
str:='Брехня';

ShowMessage(str);
end;

АВТОРИЗАЦІЯ