Преобразование типов. Функции Round и Trunc в "Паскале"

Работая в "Паскале" с переменными разных типов, довольно часто приходится иметь дело с тем, что при компиляции программы возникают ошибки, указывающие на неверное преобразование значений. Например, нельзя присвоить переменной типа integer значение 5.9, так как это приведёт к ошибке компиляции. В этом случае приходится говорить об использовании функций Round и Trunc в "Паскале", с помощью которых можно преобразовать типы аргументов и далее выполнять с ними определённые задачи.

Общие сведения о преобразовании типов

Преобразование типов (приведение значений) - это процесс преобразования величин одного типа данных в другой. Различают явное и неявное приведение типов. Первое задается непосредственно разработчиком с помощью либо конструкций языка, либо посредством использования функций, а второе самостоятельно выполняется интерпретатором или компилятором кода по правилам, оглашенным в стандарте того или иного языка программирования.

Преобразование типов в Pascal

В языке программирования "Паскаль" можно использовать как явное, так и неявное преобразование типов.

При явном приведении типов в "Паскале" используются вызовы к специальным функциям преобразования, аргументы которых принадлежат одному типу, а значение - совсем другому типу данных. Таковыми являются функция Trunc в "Паскале" и функция Round, которые будут рассмотрены более детально ниже.

Неявное приведение типов в этом языке возможно лишь в тех случаях, когда в выражениях, которые состоят из целочисленных и вещественных переменных, первые автоматически преобразуются к второму типу.

Далее речь пойдет, о том, как можно осуществить приведение типов для числовых данных.

Trunc

Встроенная математическая функция. Trunc в "Паскале" отбрасывает всю дробную часть аргумента, приводя его к целочисельному виду. Например, вызвав функцию Trunc с аргументом (1.73) в итоге можно получить результат 1.

Синтаксис функции: Trunc (x:real): Longint.

Round

Встроенная математическая функция. Функция Round округляет аргумент по правилам математики до ближайшего целого числа. Например, вызвав Round(1.73) в итоге получится 2, а Round от аргумента (1.11) даст 1.

Синтаксисфункции: Round (x:real): Longint.

Стоит заметить, что для результата выполнения функций Round и Trunc в "Паскале" есть ограничения. Выполнение завершится ошибкой, если этот результат выходит за рамки значений типа Longint.

Очевидно, что синтаксис обеих встроенных функций довольно прост и позволяет использовать Round и Trunc в "Паскале" для явного преобразования типов без лишних заморочек и не вызывает ошибок компиляции о нарушении типов.

Комментарии