Типи даних в Delphi. Урок №4

У мові програмування 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;

Delphi Функції

Функція Abs – призначена для отримання абсолютної величини числа (модуль)

Функція Addr – повертає адресу змінної, функції чи процедури

Функція AnsiCompareStr – порівняння двох рядків на рівність

Функція AnsiCompareText – порівняння двох рядків на рівність

Функція AnsiContainsStr – повертає істину, якщо рядок містить підрядок

Функція AnsiEndsStr – повертає істину, якщо рядок закінчується підрядком

Функція AnsiIndexStr – порівнює рядок зі списком рядків і повертає відповідний індекс

Функція AnsiLeftStr – витягує символи з лівого боку рядка

Функція AnsiLowerCase – змінює символи верхнього регістру в рядок з малими літерами

Функція AnsiMatchStr – повертає True, якщо рядок точно відповідає будь-якому рядку зі списку

Функція AnsiMidStr – повертає підрядок із середніх символів рядка

Функція AnsiPos – знаходить позицію одного рядка в іншому

Функція AnsiReplaceStr – замінює частину одного рядка на інший

Функція AnsiReverseString – перевертає послідовність символів у рядку

Функція AnsiRightStr – вилучення символів з правого боку рядка

Функція AnsiStartsStr – повертає True, якщо рядок починається з підрядка

Функція AnsiUpperCase – використовують для зміни символів нижнього регістру на символи верхнього регістру

Функція ArcCos – повертає арккосинус числа в радіанах

Функція ArcSin – повертає арксинус числа в радіанах

Функція ArcTan – арктангенс числа повертається в радіанах

Функція Assigned – здійснює перевірку функціональності покажчиків, об'єктів, методів

Функція BeginThread – починає окремий потік виконання коду

Функція Bounds – передає координати вершин об'єкта типу TRect (прямокутник)

Функція CelsiusToFahrenheit – конвертує значення температури з Цельсія в Фаренгейта

Функція ChangeFileExt – змінює розширення імені файлу

Функція Chr – конвертує ціле число в символ

Функція Concat – з'єднує кілька рядків в один

Функція Convert в Delphi

Функція Copy – створює копію частини рядка або частини масиву

Функція Cos – косинус числа

Функція CreateDir – створює директорію

Функція CurrToStr – перетворює грошову величину в рядок

Функція CurrToStrF – перетворює грошову величину в рядок з форматуванням

Функція Date – повертає поточну дату

Функція DateTimeToFileDate – перетворює значення TDateTime у формат date/time формат файлу

Функція DateTimeToStr – конвертує значення дати та часу TDateTime в рядок

Функція DateToStr – перетворює значення дати TDateTime в рядок

Функція DayOfTheMonth – дає день місяця для значення TDateTime (ISO 8601)

Функція DayOfTheWeek – повертає індекс дня тижня для значення TDateTime (ISO 8601)

Функція DayOfTheYear – видає день року для значення TDateTime (ISO 8601)

Функція DayOfWeek – видає індекс дня тижня для значення TDateTime

Функція DaysBetween – видає цілу кількість днів між 2 датами

Функція DaysInAMonth – видає кількість днів у місяці

Функція DaysInAYear – видає кількість днів у році

Функція DaySpan – видає дробове число днів між 2 датами

Функція DegToRad – перетворює значення градусів в радіани

Функція DeleteFile – видаляє файл, вказаний у параметрі

Функція DirectoryExists – повертає True, якщо вказана директорія існує

Функція DiskFree – видає кількість вільних байтів на вказаному диску

Функція DiskSize – видає розмір вказаного диска в байтах

Функція DupeString – створює рядок, що містить копії підрядка

Функція EncodeDate – формує значення TDateTime із значень року, місяця та дня

Функція EncodeDateTime – формує значення TDateTime із значень часу та дня

Функція EncodeTime – формує значення TDateTime із значень години, хвилини, секунди та мілісекунди

Функція EndOfADay – генерує значення TDateTime, встановлене на кінець дня

Функція EndOfAMonth – генерація значення TDateTime, встановлене на самий кінець місяця

Функція Eof – повертає True, якщо позиція курсору знаходиться в кінці відкритого файлу за допомогою Reset

Функція Eoln – повертає True, якщо позиція курсору знаходиться в кінці рядка

Функція Exp – видає експоненту числа

Функція ExtractFileDir – витягує з повного імені файлу назву папки

Функція ExtractFileDrive – витягує з повного імені файлу назву диска

Функція ExtractFileExt – витягує з повного імені файлу його розширення

Функція ExtractFileName – витягує з повного імені файлу коротке ім'я файлу

Функція ExtractFilePath – витягує частину шляху з повного імені файлу

Функція FahrenheitToCelsius – конвертує температуру з Фаренгейта в Цельсій

Функція FileAge – отримання дати/часу останньої зміни файлу, не відкриваючи його

Функція FileDateToDateTime – конвертує формат дати/часу файлу в значення TDateTime

Функція FileExists – повертає True якщо вказаний файл існує

Функция FileGetAttr – видає атрибути файлу

Функція FilePos – дає позицію файлу у двійковому або текстовому файлі

Функція FileSearch – пошук файлу в одній або більше папках

Функция FileSetAttr – встановлює атрибути файлу

Функція FileSetDate – встановлює дату та час останньої зміни файлу.

Функція FileSize – визначає розмір записів відкритого файлу

Функція FindClose – закриває успішний FindFirst пошук файлу

Функция FindCmdLineSwitch – визначає, чи було передано певний перемикач параметрів

Функція FindFirst – знаходить усі файли, що відповідають масці файлу та атрибутів

Функція FindNext – знаходить наступний файл після успішного FindFirst

Функція FloatToStrF – перетворює значення з плаваючою комою в рядок з форматуванням

Функція ForceDirectories – створює новий шлях каталогів

Функція Format – розширене форматування чисел і тексту в рядку

Функція FormatCurr – розширене форматування значень валюти у рядок

Функція FormatDateTime – розширене форматування змінної TDateTime в рядок

Функція FormatFloat – розширене форматування числа з плаваючою комою в рядок

Функція Frac – дробова частина числа з плаваючою комою

Функція GetCurrentDir – повертає поточний каталог (диск плюс каталог)

Функція GetLastError – видає код помилки останнього невдалого Windows API виклику

Функція GetMem – отримує вказану кількість байтів пам'яті

Функція Hi – повертає байт старшого розряду від типу Integer

Функція High – повертає найвище значення типу або змінної

Функція IncDay – збільшує змінну типу TDateTime на + або - число днів

Функція IncMillisecond – прирощує змінну типу TDateTime на + або - число мілісекунд

Функція IncMinute – збільшує змінну типу TDateTime на + або - число хвилин

Функція IncMonth – збільшує змінну TDateTime на певну кількість місяців

Функція IncSecond – збільшує змінну типу TDateTime на + або - число секунд

Функція IncYear в Delphi – збільшує TDateTime змінну на кількість років

Функція InputBox – відображає діалогове вікно, яке просить користувача про введення тексту, зі стандартним значенням

Функція InputQuery – відображає діалогове вікно, яке просить користувача ввести текст

Функція Int – ціла частина числа з плаваючою точкою

Функція IntToHex – перетворює ціле число на шістнадцятковий рядок

Функція IntToStr – конвертує ціле число у рядок

Функція IOResult – містить код останньої операції введення/виводу, що повертається.

Функція IsInfinite – перевіряє, чи є число з плаваючою точкою нескінченним

Функція IsLeapYear – повертає True, якщо цей календарний рік високосний

Функція IsMultiThread – повертає True, якщо код виконує безліч потоків

Функція IsNaN – з'ясовує, чи число з плаваючою комою справжнє число

Функція LastDelimiter – знаходить останню позицію вказаних символів у рядку

Функція Length – повертає кількість елементів у масиві чи рядку

Функція Ln – видає натуральний логарифм числа

Функція Lo – повертає молодший байт цілого числа (2-байтовий)

Функція Log10 – обчислює логарифм числа із основою 10

Функція Low – повертає найнижче значення типу чи змінної

Функція Max – видає максимальну кількість із двох цілих значень

Функція Mean – видає середнє число з набору чисел

Функція MessageDlg – відображає повідомлення, знак та кнопки, що вибираються

Функція MessageDlgPos – відображає повідомлення та кнопки у заданій позиції екрана

Функція Min – видає мінімальне із двох цілих значень

Функція MonthOfTheYear – видає місяць для значення TDateTime

Функція Now – видає поточну дату та час

Функція Odd – перевіряє, чи є ціле число непарним

Функція Ord – порядкове значення цілого числа, символу чи перерахування

Функція ParamCount – видає кількість параметрів переданої поточній програмі

Функція ParamStr – повертає один із параметрів, що використовуються для запуску поточної програми

Функція Pi – математична константа

Функция Point – генерирует значение TPoint из значений X и Y

Функція PointsEqual – порівнює два значення TPoint щодо рівності

Функція Pred – зменшує порядкову змінну

Функція Printer – повертає посилання на глобальний об'єкт Printer

Функція PromptForFileName – показує діалог, що дозволяє користувачеві вибрати файл

Функція PtInRect – перевіряє, чи знаходиться точка в межах прямокутника

Функція RadToDeg – перетворює значення радіана на градуси

Функція Random – генерує випадкове число з плаваючою комою або ціле число

Функція RandomRange – генерує довільне число у межах введеного діапазону

Функція RecodeDate – змінює лише дату змінної TDateTime

Функція RecodeTime – змінює лише час змінної TDateTime

Функція Rect – створює об'єкт TRect (прямокутник) із зазначенням 2 точок чи 4 координат

Функція RemoveDir – видалити директорію

Функція RenameFile – перейменування файлу чи директорії

Функція Round – округлення чисел із плаваючою комою до цілого числа

Функція SeekEof – пропускає символи, доки не зустрінеться кінець файлу

Функція SeekEoln – пропускає символи, доки не зустрінеться кінець поточного рядка чи файлу

Функція SelectDirectory – виводить діалогове вікно, за допомогою якого користувач може вибрати директорію

Функція SetCurrentDir – змінює поточну директорію

Функція ShellExecute – відкриває або виводить на друк зазначений файл

Функція Sin – повертає синус числа

Функція SizeOf - повертає займаний розмір типу або змінної в байтах

Функція Slice створює частину масиву з параметром "Відкритий Масив"

Функція Sqr – повертає квадрат числа

Функція Sqrt – повертає квадратний корінь числа

Функція StringOfChar – створює рядок із одного символу, повтореного багато разів

Функція StringReplace – замінює один або кілька підрядків, знайдених у заданому рядку

Функція StringToWideChar – перетворює звичайний рядок у WideChar-буфер із завершальним 0

Функція StrScan – шукає задані символи у рядку

Функція StrToCurr – перетворює числову рядок у грошовий вираз

Функція StrToDate – конвертує рядок з датою на значення типу TDateTime

Функція StrToDateTime – конвертує рядок з датою та часом на значення типу TDateTime

Функція StrToFloat – перетворює числовий рядок на значення з плаваючою комою

Функція StrToInt – перетворює рядок з цілим значенням Integer

Функція StrToInt64 – перетворює рядок із цілим значенням у Int64

Функція StrToInt64Def – перетворює рядок з цілим значенням Int64, враховуючи значення за замовчуванням

Функція StrToIntDef – перетворює рядок на значення з типом Integer, враховуючи значення за замовчуванням

Функція StrToTime – конвертує рядок з часом на значення з типом TDateTime

Функція StuffString – замінює частину одного рядка на інший

Функція Succ – інкрементує порядкову змінну

Функція Sum – знаходить суму елементів масиву, що складається з чисел із плаваючою точкою

Функція Tan – тангенс числа

Функція Time – повертає поточний час

Функція TimeToStr – конвертує значення часу типу TDateTime у рядок

Функція Tomorrow повертає дату завтрашнього дня

Функція Trim – видаляє початкові та кінцеві прогалини у рядку

Функція TrimLeft – видаляє початкові прогалини у рядку

Функція TrimRight – видаляє кінцеві пробіли в рядку

Функція Trunc – ціла частина числа з плаваючою комою

Функція VarType – повертає поточний тип Variant змінної

Функція WideCharToString – копіює рядок WideChar, що закінчується нулем, у нормальний рядок

Функція WrapText – додає перенесення рядка до рядка, щоб імітувати перенесення слів

Функція Yesterday – повертає вчорашню дату у місцевому часовому поясі

Delphi Процедури

Процедура Abort – перериває обробку команд і виходить до останнього виняткового блоку

Процедура Append – відкриває текстовий файл для додавання записів у файл (додає в кінець файлу)

Процедура AssignFile – пов'язує дескриптор файлу з бінарним чи текстовим файлом

Процедура AssignPrn – обробляє принтер як текстовий файл (простий спосіб друку тексту)

Процедура Beep – робить звук гудка

Процедура BlockRead – читає блок записів даних із нетипізованого двійкового файлу

Процедура BlockWrite – записує блок записів даних у нетипізований двійковий файл

Процедура Break – виконує вихід з одного циклу

Процедура ChDir – вибір диска та директорії (папки), в якій проводитиметься робота

Процедура CloseFile – закриває відкритий файл

Процедура Continue – змушує перейти до наступної ітерації циклу

Процедура DateTimeToString – величезні можливості форматування дати в рядок

Процедура Dec – декремент порядкової змінної

Процедура DecodeDate – отримує значення року, місяця, дня з TDateTime змінної

Процедура DecodeDateTime – розбиває TDateTime змінну на її частини дати/часу

Процедура DecodeTime – розбиває значення TDateTime на окремі значення часу

Процедура Delete – видаляє частину символів з рядка

Процедура Dispose – очищує пам'ять на яку вказує покажчик

Процедура EndThread – закінчує потік із кодом завершення

Процедура Erase– стирає файл

Процедура Exclude – виключає значення зі змінної набору (множини)

Процедура Exit – здійснює вихід із функції або процедури

Процедура FillChar – заповнює розділ пам'яті значенням байта або символу-заповнювача

Процедура Flush – скидає буферизовані дані текстового файлу до файлу

Процедура FreeAndNil – звільнення пам'яті об'єкта та встановлення його в nil

Процедура FreeMem – звільняє пам'ять, що використовується змінною

Процедура GetDir – отримує поточний каталог (диск плюс шлях) для вказаного диска

Процедура GetLocaleFormatSettings – отримує регіональні значення для безпечних потоків функцій

Процедура Halt – закінчує програму з додатковим діалогом

Процедура Inc – збільшує порядкову змінну

Процедура Include – включає значення у множину змінних

Процедура Insert – вставляє рядок в інший рядок

Процедура MkDir – створює каталог

Процедура Move – копіює байти даних із джерела у місце призначення

Процедура New – створює нову змінну типу покажчик

Процедура ProcessPath – розділяє рядок диск/шлях/ім'я файлу на його складові.

Процедура Randomize – встановлює генератор випадкового числа на наступне значення

Процедура Read – дозволяє прочитати дані із двійкового або текстового файлу

Процедура ReadLn – дозволяє прочитати повний рядок даних із текстового файлу

Процедура Rename – перейменування файлу

Процедура ReallocMem – дозволяє змінити розмір існуючого блоку пам'яті

Процедура ReplaceDate – змінює лише частину дати TDateTime змінної

Процедура ReplaceTime – змінює лише частину часу TDateTime змінної

Процедура Reset – відкриває текстовий файл для читання, або двійковий файл для читання/запису

Процедура ReWrite – відкриває текстовий або двійковий файл для запису

Процедура RmDir – видалення каталогу

Процедура RunError - закінчує програму з діалогом помилки

Процедура Seek – переміщує покажчик у двійковому файлі на нову позицію

Процедура SetLength – змінює розмір рядка або розмір динамічного масиву

Процедура SetString – копіює символи з буфера в рядок

Процедура ShowMessage – показує просте діалогове вікно з кнопкою ОК, що містить заданий рядок

Процедура ShowMessageFmt – відображає відформатовані дані у простому діалоговому вікні з кнопкою ОК

Процедура ShowMessagePos – показує рядок у простому діалоговому вікні розміщеному у заданому місці

Процедура Str – конвертує ціле число або число з плаваючою точкою в рядок

Процедура Truncate – зменшує розмір файлу, видаляючи всі дані після поточної позиції

Процедура Val – конвертує числові рядки в ціле число, або число з плаваючою комою

Процедура Write – записує дані до бінарного або текстового файлу

Процедура WriteLn – записує закінчений рядок даних у текстовий файл

Main Menu