Працюючи в "Паскаль" з змінними різних типів, досить часто доводиться мати справу з тим, що при компіляції програми виникають помилки, які вказують на неправильне перетворення значень. Наприклад, не можна привласнити змінної типу integer значення 5.9 так як це призведе до помилки компіляції. У цьому випадку доводиться говорити про використання функцій Round і Trunc в "Паскаль", з допомогою яких можна перетворити типи аргументів і далі виконувати з ними певні завдання.
Загальні відомості про перетворення типів
Перетворення типів (приведення значень) - це процес перетворення величин одного типу в інший. Розрізняють явне і неявне приведення типів. Перше задається безпосередньо розробником з допомогою небудь конструкцій мови, або за допомогою використання функцій, а друге самостійно виконується інтерпретатором або компілятором коду за правилами, оприлюдненими в стандарті тієї чи іншої мови програмування.
Перетворення типів в Pascal
У мові програмування "Паскаль" можна використовувати як явну, так і неявне перетворення типів. При явне приведення типів в "Паскаль" використовуються виклики до спеціальних функцій перетворення, аргументи яких належать одному типу, а значення - зовсім іншого типу даних. Такими є функція Trunc в "Паскаль" і функція Round, які будуть розглянуті більш детально нижче. Неявне приведення типів в цьому мовою можливо лише в тих випадках, коли у виразах, які складаються з цілих і дійсних змінних, перші автоматично перетворюються до другого типу. Далі мова піде про те, як можна здійснити приведення типів для числових даних.
Trunc
Вбудована математична функція. Trunc в "Паскаль" відкидає всю дробову частину аргументу, приводячи його до целочисельному увазі. Наприклад, викликавши функцію Trunc з аргументом (173) у результаті можна отримати результат 1.
Синтаксис функції : Trunc (x:real): Longint.
Round
Вбудована математична функція. Функція Round округлює аргумент за правилами математики до найближчого цілого числа. Наприклад, викликавши Round(173) у результаті вийде 2 а Round від аргументу (111) дасть 1. Синтаксис функції : Round (x:real): Longint. Варто зауважити, що для результату виконання функцій Round і Trunc в "Паскаль" є обмеження. Виконання завершиться помилкою, якщо цей результат виходить за рамки значення типу Longint. Очевидно, що синтаксис обох вбудованих функцій досить простий і дозволяє використовувати Round і Trunc в "Паскаль" для явного перетворення типів без зайвих заморочок і не викликає помилок компіляції про порушення типів.