Что значит trunc в паскале

Что значит trunc в паскале

Для того чтобы в Паскаль можно было оперировать не только целыми числами, но и дробными существуют вещественные типы данных. Один из таких типов называется Real. В этом уроке мы рассмотрим 2 функции, которые производятся над дробными числами. Это функция Trunc, которая округляет дробное число до целого, отбрасывая дробную часть и функция Round, которая округляет дробное число до ближайшего целого.

В строке №3 и №4 мы указали сразу 2 типа переменных. Для переменных N и K мы указали тип данных Integer, т.е. эти переменные могут принимать только целые значения в диапазоне от -32768 до 32767. Для переменных A и B мы указываем тип данных Real. Это вещественный тип данных, применяемый для переменных, которые могут принимать дробные значения в диапазоне от 2.9*10 -39 до 1.7*10 38 . Обратите внимание, что переменные разных типов указываются в разделе описания переменных через точку с запятой.

В строке №7 присваиваем переменной «N» значение «4».

В строке №8 присваиваем переменной «A» значение 3,6. Учтите, что при записи дробного числа в программе между целой и дробной частью ставится точка (а не запятая как при обычной записи).

Строка №9. Здесь переменной вещественного типа B мы присваиваем значение переменной целого типа N. Фактически мы присвоили переменной «B» значение 4. Таким образом, получается, что в переменную типа Real можно записать значение переменной Integer (т.е. целое число). А вот записать вещественное число в переменную Integer нельзя. Если нам необходимо это сделать, то мы должны определить, что делать с дробной частью. И здесь есть 2 варианта.

Строка №11. Функция trunk говорит нам о том, что при записи вещественного числа A в переменную целого типа K, дробная часть будет отбрасываться. Таким образом, получится, что переменной N будет присвоено значение не «3.6» , а просто «3».

Читайте также:  Разъем для монитора d sub vga

Строка №13. Функция Round говорит нам о том, что при записи вещественного числа A в переменную целого типа K , число будет округляться до ближайшего целого. Таким образом, получится, что переменной K будет присвоено значение не «3.6» , а «4».

Обратите внимание, на формат вывода на экран вещественных чисел. Паскаль выводит дробные числа на экран в виде числа с плавающей точкой (экспоненциальная форма). Эта запись является неудобной, поэтому для приведения ее к нормальному виду прибегают к форматированию. Для форматирования нужно в строке №10 (вывод на экран) сделать такие изменения: writeln(‘B=’,B:2:1). После переменной B мы через двоеточие записываем 2 числа. Первое число (в нашем случае «2») показывает, сколько всего знаков должно выводиться на экран, второе число («1») показывает количество знаков после запятой.
После внесения этих изменений в программу мы получим следующий результат:

Функция Trunc в Паскале обрезает вещественное число до целого значения (то есть отсекает дробную часть числа). Синтаксис:

function Trunc(X: ValReal) : Int64;

Функция возвращает целую часть вещественного числа Х. Тип данных возвращаемого значения является целочисленным. Возвращаемое значение всегда меньше или равно исходному значению.

О типе ValReal я рассказывал здесь.

Возможно у вас возникнет вопрос — для чего нужно такое количество функция для работы с числами?

Например, функция Int также возвращает целую часть числа. Зачем тогда ещё нужна функция Trunc?

На это я обычно отвечаю известной фразой: если звёзды в небе зажигаются, значит, это кому-нибудь нужно.

А если серьёзно, то, на первый взгляд одинаковые функции на самом деле оказываются разными.

Например, упомянутая выше функция функция Int возвращает значение вещественного типа. А если вам требуется целое число, то вам придётся преобразовывать полученное вещественное значение в целое.

Читайте также:  Чем отличается cmd от bat

Функция Round округляет число и возвращает значение целого типа. Однако округление может быть как в большую, так и в меньшую сторону (см. правила округления чисел). А иногда для дальнейшей нужна именно целая часть вещественного числа, а не округлённое значение.

В общем, разных интересных ситуаций в программировании великое множество. Поэтому и разработано так много стандартных функций — почти на все случаи увлекательной жизни программиста.

Да, чуть не забыл. Вот пример использования:

Работая в "Паскале" с переменными разных типов, довольно часто приходится иметь дело с тем, что при компиляции программы возникают ошибки, указывающие на неверное преобразование значений. Например, нельзя присвоить переменной типа 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 в "Паскале" для явного преобразования типов без лишних заморочек и не вызывает ошибок компиляции о нарушении типов.

Ссылка на основную публикацию
Adblock detector