Изучение языка программирования
Турбо Паскаль (Turbo Pascal)

На этом сайте можно: скачать среду программирвания Турбо Паскаль, изучить язык программирования Турбо Паскаль, а так же скачать программы на языке Турбо Паскаль!
Процедуры и функции модуля System.tpu
(продолжение 2)

Процедура Exclude

Назначение: Удаляет элемент из множества.
Описание: procedure Exclude(var S: set of T; I: T);
Примечания: S - это переменная множественного типа, а I - выражение типа, совместимого с базовым типом S. Из множества, заданного S, исключается элемент, заданный I.

Процедура Exit

Назначение: Выполняет немедленный выход из текущего блока.
Описание: procedure Exit;
Примечания: Когда процедура Eхit выполняется в подпрограмме (процедуре или функции), то происходит возврат управления из подпрограммы. Когда эта процедура выполняется в операторной части программы, она вызывает прекращение работы программы. Обращение к Eхit аналогично оператору перехода на оператор с меткой, адрес которого находится непосредственно после оператора end.

Пример 21.1

VAR
 i:byte;
BEGIN
 for i:=1 to 100 do       {цикл}
  begin
   writeln(i);
   if i=7 then exit;      {выйти из цикла если i=7}
  end;
END.
Функция Exp

Назначение: Возвращает экспоненциальное значение аргумента.
Описание: function Exp(x : Real): Real;
Примечания: Параметр x является выражением вещественного типа. Результатом будет экспонента x, то есть значение e возводится в степень x (e - основание натурального логарифма).

Пример 21.2

VAR
 a:real;
BEGIN
 a:=exp(5);
 writeln(a:5:2);
END.
Функция FilePos

Назначение: Возвращает текущую позицию в файле.
Описание: function FilePos(var f): Longint;
Примечания: Параметр f представляет собой файловую переменную. Если текущей позицией является начало файла, то функция FilePos(f) возвращает значение 0. Если текущей позицией в файле является конец файла, то есть Eоf(f) возвращает значение Truе, то значение, возвращаемое функцией FilePos(f), совпадает со значением, возвращаемым функцией FileSizе(f) (то есть с размером файла).

При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае.
Ограничения: Эта функция не может использоваться для текстового файла. Файл должен быть открыт.

Пример 21.3

VAR
 f:file of char;
 s:char;
 a:longint;
BEGIN
 assign(f,'text.txt');
 reset(f);                             {открыть файл}
 seek(f,10);                           {сместить позицию на 10-й символ}
 read(f,s);                            {считать один символ}
 a:=FilePos(f);
 close(f);                             {закрыть файл}
 writeln('Текущая позиция в файле = ',a);
END.
Функция FileSize

Назначение: Возвращает текущий размер файла.
Описание: function FileSize(var f): Longint;
Примечания: Параметр f представляет собой файловую переменную. Данная функция возвращает число элементов в f. Если файл пуст, функция возвращает значение 0.

При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае.
Ограничения: Функция не может использоваться для текстового файла. Файл должен быть открыт.

Пример 21.4

VAR
 f:file of char;
 a:longint;
BEGIN
 assign(f,'text.txt');
 reset(f);                             {открыть файл}
 a:=FileSize(f);
 close(f);                             {закрыть файл}
 writeln('Размер файла = ',a,' символов (байт).');
END.
Процедура FillChar

Назначение: Помещает в заданное число следующих друг за другом байт указанное значение.
Описание: procedure FillChar(var x; Count: Word; Val);
Примечания: Параметр x является ссылкой на переменную любого типа, Count представляет собой выражение длиной в слово, Val является выражением перечислимого типа. Процедура записывает значение, указанное в параметре Val, в то количество следующих друг за другом байт памяти, начиная с первого байта, занимаемого переменной х, которое определяется параметром Count. Проверка на допустимость границ не выполняется, поэтому будьте внимательны.

Если это возможно, при использовании процедуры FillChar задавайте параметр Count с помощью функции SizeOf. При использовании этой процедуры для строк не забудьте после заполнения установить длину в байтах.

Пример 21.5

VAR
 s:string[80];
BEGIN
 { задать строку, состоящую из пробелов }
 FillChar(s, SizeOf(s),' ');
 s[0]:=#80;                 { установить длину последо вательности байт }
 writeln(s);
END.
Процедура Flush

Назначение: Выводит содержимое буфера открытого для вывода текстового файла.
Описание: procedure Flush(var f: Text);
Примечания: Параметр f является файловой переменной текстового типа.

Когда текстовый файл открывается для вывода с помощью процедур Rewrite или Appеnd, обращение к процедуре Flush позволяет очистить буфер файла. Это обеспечивает то, что все символы, записанные в это время в файл, будут действительно записаны во внешний файл. Для файлов, открытых для ввода, данная процедура никаких действий не выполняет.

При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае.

Функция Frac

Назначение: Возвращает дробную часть аргумента.
Описание: function Frac(x : Real): Real;
Примечания: Параметр х является выражением вещественного типа. Результатом является дробная часть x, то есть Frас(x)=x-Int(x).

Пример 21.6

VAR
 a: real;
BEGIN
 a:=Frac(124.075);      {a=0.075}
 writeln('a = ',a);
END.
Процедура FreeMem

Назначение: Уничтожает динамическую переменную данного размера.
Описание: procedure FrееМем(var P : Pоinter; Size : Word);
Примечания: Параметр P является указателем на переменную (относящимся к любому типу указателей), для которого было предварительно выполнено присваивание с помощью процедуры GetМем или которому было присвоено значащее значение с помощью оператора присваивания. Параметр Size представляет собой выражение длиной в слово, которое задает размер уничтожаемой динамической переменной (в байтах). Его значение должно в точности соответствовать числу байт памяти, отведенных ранее для переменной процедурой GetМем. Процедура FrееМем уничтожает переменную, на которую указывает P, и освобождает занятую ей область памяти в динамически распределяемой области. Если указатель p не ссылается на область памяти в динамически распределяемой области, то во время выполнения программы возникает ошибка. После обращения к процедуре FrееМем значение указателя p становится неопределенным, а последующие ссылки вида p^ будут приводить к ошибке.

Пример 21.7

TYPE
 tip1=record             {любой тип}
      x,y,z:byte;
      st:string[10];
      end;
VAR
 d: ^tip1;               {переменная-указатель}
BEGIN
 writeln('До использования памяти:');
 writeln('размер динамически распределяемой области памяти = ',MemAvail);
 readln;
 GetMem(d,SizeOf(tip1));
 writeln('После выделения памяти для переменной:');
 writeln('размер динамически распределяемой области памяти = ',MemAvail);
 writeln('размер наибольшего свободного блока памяти = ',MaxAvail);
 readln;
 FreeMem(d,SizeOf(tip1));
 writeln('После очистки памяти:');
 writeln('размер динамически распределяемой области памяти = ',MemAvail);
END.
Процедура GetDir

Назначение: Возвращает текущий каталог на заданном диске.
Описание: procedure GetDir(d: Byte; var s: String);
Примечания: Параметр d представляет собой выражение целого типа, а s - переменную строкового типа. Значение текущего каталога на диске, заданного параметром d, возвращается в переменной s. Значение d=0 указывает на текущий дисковод, 1-задает дисковод A, 2-В и т.д.

GetDir не выполняет проверки на ошибки. Если в параметре d задан недопустимый диск, то в s возвращается 'X:\', как если бы это был корневой каталог на недопустимом диске.

Функция GetCurDir выполняет те же функции, что и GetDir, но в качестве аргумента воспринимает строку с завершающим нулем, а не строку Паскаля.

Пример 21.8

VAR
 st: string;
BEGIN
 GetDir(0,st);
 writeln('Текущий каталог (откуда запускается программа):');
 writeln(st);
END.
Процедура GetMem

Назначение: Создает новую динамическую переменную указанного размера и помещает адрес блока в переменную-указатель.
Описание: procedure GetMem(var p: Pоinter; Size: Word);
Примечания: Параметр р является переменной-указателем и может относится к любому типу указателей. Параметр Size имеет длину в слово и задает размер (в байтах) области памяти, выделяемой для динамической переменной. На вновь созданную переменную можно ссылаться с помощью p.

Если для выделения памяти под новую динамическую переменную в динамически распределяемой области недостаточно свободной памяти, то во время выполнения программы происходит ошибка.
Ограничения: Наибольший блок, который может быть выделен в динамически распределяемой области памяти, составляет 65521 байт (64К - $8).

См. пример 21.7

Процедура Наlt

Назначение: Останавливает выполнение программы и возвращает управление операционной системе.
Описание: procedure Наlt [ (ExtCode: Word) ];
Примечания: Параметр ExtCode (код завершения) представляет собой необязательное выражение длиной в слово, которое задает код завершения программы. Процедура Наlt без параметров соответствует вызову Наlt(0). Код завершения может проверяться порождающим процессом с помощью функции EхitCode модуля Dos или с помощью проверки ERRORLEVEL в командном файле DOS.

Пример 21.9

VAR
 i:byte;
BEGIN
 for i:=1 to 100 do       {цикл}
  begin
   writeln(i);
   if i=7 then Halt;      {завершить работу программы если i=7}
  end;
 writeln('Эта строка не будет напечатана.');
END.

<<< Назад * Оглавление * Далее >>>