Trunc в паскале что это
Перейти к содержимому

Trunc в паскале что это

  • автор:

Trunc в паскале что это

Truncate (процедура)
Навигация

Язык:
Русский
English

Усекает файл в текущей позиции файла.

Объявление

Procedure Truncate(Var F);

Режим

Windows, Real, Protected

Замечания

F — файловая переменная любого типа, кроме текстового. Всё, что находится за текущей позицией файла, удаляется, и возвращается признак конца файла ( Eof (F) = True).

В режиме при возникновении ошибки, функция IOResult возвращает отличное от нуля значение.

Ограничения

Файл F должен быть открыт.

См. также

Пример

Язык:
Русский
English

var
F : file of Integer ;
I , J : Integer ;

begin
Assign(F , ‘TEST.INT’ ) ;
ReWrite (F) ;
for I := 1 to 6 do
Write (F , I) ;
WriteLn ( ‘Файл до усечения:’ ) ;
FileMode := 0 ; < режим только-чтение >
Reset (F) ;
while not EOF (F) do
begin
Read (F , I) ;
WriteLn (I) ;
end ;
FileMode := 2 ; < чтение и запись >
Reset (F) ;
for I := 1 to 3 do
Read (F , J) ; < Считываем 3 записи >
Truncate (F) ; < Усекаем здесь файл >
WriteLn ;
WriteLn ( ‘Файл после усечения:’ ) ;
FileMode := 0 ; < режим только-чтение >
Reset (F) ;
while not EOF (F) do
begin
Read (F , I) ;
WriteLn (I) ;
end ;
Close (F) ;
Erase (F) ;
end .

Trunc

Trunc returns the integer part of X , which is always smaller than (or equal to) X in absolute value.

Errors

See also

Return fractional part of floating point value.

Calculate integer part of floating point value.

Round floating point value to nearest integer number.

Example

Program Example70; begin Writeln (Trunc(123.456)); Writeln (Trunc(-123.456)); Writeln (Trunc(12.3456)); Writeln (Trunc(-12.3456)); end. 

Функции trunc, round в Pascal.

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

Program number10; uses crt; var N,K: integer; A,B: real; begin clrscr; N:=4; A:=3.6; B:=N; writeln('B=',B); N:=Trunc(A); writeln('Trunc(3.6)=',N); K:=Round(A); writeln('Round (3.6)=',K); readln end.

В строке №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».

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

trunc round

trunc round.

trunc round..

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

Дополнение к материалу.

Ниже приведена таблица значений для различных вещественных типов данных.

Типы Диапазон допустимых значений Число значащих цифр Размер в байтах
Real 2.9*10 -39 .. 1.7*10 38 11-12 6
Single 1.5*10 -45 .. 3.4*10 38 7-8 4
Double 5.0*10 -324 .. 1.7*10 308 15-16 8
Extended 3.4*10 -4932 .. 1.1*10 4932 19-20 10
Comp -2*10 63+1 .. 1.7*10 63-1 19-20 8

Функция Trunc

Основы программирования 2.0

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

function Trunc(X: ValReal) : Int64;

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

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

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

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

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

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

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

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

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

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

program functrunc;  var x : real; begin x := Pi; WriteLn(Trunc(x)); //Выведет число 3 ReadLn; end.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *