РУКОВОДСТВО ПОЛЬЗОВАТЕЛЮ ТУРБО-ПАСКАЛЯ
СТАНДАРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
Принятые обозначения:
type -любой тип;
string - любой строковый тип;
file -любой файловый тип;
scalar - любой простой тип;
pointer -любой ссылочный тип.
Замечание: если в списке параметров не указан спецификатор типа, то в качестве данного параметра процедура допускает параметр любого типа; в некоторых процедурах допускаются несколько вариантов заголовков процедур.
ПРОЦЕДУРЫ ВВОДА-ВЫВОДА
Процедура Read
•
Read(var F:file of type; var v:type);
Read(var F:text; var I':intnger);
Read(var F:text; var R:real);
Read(var F:text; var C:char);
Read(var F:text; var S:string);
где F - имя переменной файлового типа, a var I,R,C,S - одна или несколько переменных, совпадающих по типу с типом элементов файла.
Процедура Readln
Readln(var F:text; var varl,var2,...varN);
Readln(var varl ,var2,...varN);
Readln(var F:text);
Readln;
где F - имя переменной типа text, a varl...varN - переменные типа Char. Если опущено имя файла, то по умолчанию принимается имя типа INPUT. Если опущея список переменных, то происходит переход на другую строку.
Процедура Write
Write(var F:file of type; var v:type);
Write(var F:text; var I:integer);
Write(var F:text; var B:boolean);
Write(var F:text; var C:char);
Write(var F:text; var S:string).
Процедура Writeln
Writeln(var F:text; var varl ,var2,... varN);
Writeln(var var varl ,var2,... varN);
Writeln(var F:text);
Writeln.
СТАНДАРТНЫЕ ФУНКЦИИ
Функции арифметические
Abs(x); Arctan (x); Cos (x); Exp (x); Ln (x); Sin (x); Sqr (x); Sqrt (x)
имеют стандартный смысл. Функция
fruc(R:Real):Real;fruc(I:Integer):Real
возвращает значение дробной части своего аргумента.
Функция
int (R:real):real; int (I:integer):real;
возвращает значение целой части своего аргумента.
Функции скалярные
Odd(x); Pred(x); Succ(x)
имеют стандартный смысл.
Функции преобразования
Chr (x); Ord (x); Round (x); Trunc (x) имеют стандартный смысл.
СТРОКОВЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
Процедура Delete(var S:Strina;Pos, Len: Integer) убирает из строки S Len символов, начиная с Pos. Если Len больше длины S, то ничего не происходит. Если Pos+Len больше длины строки, то удаляются все символы до конца строки.
Процедура Insert(S:String; var D:String;Pos:Integer) вставляет строку S в строку D перед символом с номером Pos. Если Pos больше длины D, то S и D соединяются. Если длина результата при этом больше максимальной длины D, то в D записываются только самые левые символы.
Процедура Str(I:Integer; var S: String); Str(R:Real; var S:String) преобразует I или R из числа в строку и записывает эту строку в S, причем R и I могут записываться формально, т.е. как в процедурах Write и Writeln.
Процедура Val(S:String; var R:Real; var P:Integer); Val(S:String; var I,P:Integer) преобразует строковую переменную S в число (тип зависит от типа переменной I или R соответственно). Если в строке S ошибок нет. то Р равно 0, иначе значение R (или I) не определено, а Р присваивается номер первого ошибочного символа.
Функция Concat(Sl,S2,....Sn:string):String возвращает строку, полученную конкатенацией строк Sl,...,Sn. Если длина результата больше 255, то возникает ошибка времени выполнения.
Функция Copy(S:String; Pos,Len:Integer):String возвращает строку, полученную из Len символов строки S, начиная с позиции Pos. Если Pos больше, чем длина строки S, то возвращается пустая строка. Если Pos+Len больше, чем длина строки S, то возвращаются только символы, принадлежащие строке S.
Функция Length(S:Strina):Integer возвращает длину строки S.
Функция Pos(Pattern,Sourse:String):Integer возвращает номер символа, начиная с которого Pattern входит в Sourse. Если вхождения нет, то возвращается 0.
ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С ФАЙЛАМИ
Процедура Assign(var F:File: Name:String); Name - имя файла на диске, F – имя файловой переменной. После выполнения этой процедуры Name и F отождествляются. Assign не должна применяться к файлу, находящемуся в употреблении.
Процедура BlockRead(var F:File; var Dest:Type; Num:Integer)
F -нетипизируемый файл, Dest -переменная,
Num - количество 128- баитных записей, которые должны быть перенесены из дискового файла в переменную.
Процедура BlocKWrite(var F:File; var Dest:Type; Num:Integer) I Num - количество 128-баитных записей, которые должны быть перенесены из переменной в дисковый файл.
Процедура Chain(var F:File) активизирует CHN-файл, с которым предварительной процедурой Assign было отождествлено имя F.
Процедура Close(var F:File); дисковый файл, отождествленный с переменной F, закрывается и в директорию диска вносятся необходимые изменения.
Процедура Erase(var F:File); дисковый файл, отождествленный с переменной F, уничтожается.
Процедура Execute(var F:File) загружает и выполняет файл с диска, с которым предварительно процедурой Assign было отождествлено имя F.
Процедура Rename(var F:File; Name:String); дисковому файлу, отождествленному с переменной F, присваивается новое имя Name. Rename не должна применяться к уже открытому файлу.
Процедура Reset(var F:File) открывает файл F для чтения и ставит указатель на начало файла.
Процедура Rewrite(var F:File) открывает файл F для записи, чистит его и ставит указатель на начало файла.
Процедура Seek(var F:File of type; Pos:Integer) устанавливает указатель файла F на Pos элемент файла.
Процедура Flush(var F:File) очищает буфер дискового файла, отождествленного с переменной F. Гарантирует, что следующая операция чтения будет произведена непосредственно с диска. Должна применяться к уже закрытым файлам.
Функция Eof(var F;File):boolean возвращает TRUE, если найден конец файла.
Функция Eoln(var F:Text):boolean возвращает TRUE, если найден конец строки или конец файла F.
Функция Filepos(var: F: File of Type):Integer; Filepos(var: F:File):Integer возвращает текущую позицию указателя файла.
Функция Filesize(var: F: File ofType):Integer; Filesize(var: F:File):Integer возвращает текущее количество элементов файла.
ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ СО ССЫЛОЧНЫМИ СТРУКТУРАМИ
Процедура Getmem(var P:Pointer; I:Integer) отводит под область памяти, на которую будет ссылаться переменная Р, 1 байт памяти.
Процедура Mark(var P:Pointer) запоминает текущий указатель «кучи» в переменной Р.
Процедура New(var P:Pointer) отводит место в памяти под переменную того типа, на который указывает Р.
Процедура Release(var P.Pointer) ставит указатель «кучи» на значение переменной Р. Переменная Р должна быть предварительно обработана процедурой Mark. Уничтожаются все динамические переменные, расположенные в памяти после последнего вызова процедуры Mark.
Функция MemAvai:Integer возвращает размер доступной для динамических переменных памяти.
Функция Ord(P:Pointer):Integer возвращает адрес переменной ссылочного типа Р.
Функция Ptr(I:Integer):Rointer возвращает ссылку на адрес памяти I.
ПРОЦЕДУРЫ ДЛЯ РАБОТЫ С ТЕКСТОВЫМ ЭКРАНОМ
Процедура CrtExit - выдача на экран строки сброса экрана, определенной в инсталляторе.
Процедура Crtlnit - выдача на экран строки инициализации экрана, определенной в инсталляторе.
Процедура CIrEol уничтожает символы строки от курсора до крайнего правого символа без перемещения курсора.
Процедура CIrScr очищает экран.
Процедура DelLine - удаление строки, на которой находится курсор, и сдвиг всех строк, находящихся ниже этой строки, на одну вверх.
Процедура GotoXY (X,Y:Integer) - позиционирование курсора по координатам XnY.
Процедура InsLine - вставка пустой строки на место курсора и сдвиг всех строк, находящихся под этой строкой на одну вниз.
ПРОЧИЕ ПРОЦЕДУРЫ И ФУНКЦИИ
Процедура Bdos(func,param:Integer) - вызов функции Bdos с номером func, которая заносится в регистр С, и параметром param, который заносится в регистровую пару DE.
Процедура bios (func,param:Integer) - вызов функции Bios с номером func и параметром param. который заносится в регистровую пару ВС.
Процедура Delay (Ms:Integer) - задержка программы на Ms миллисекунд.
Процедура FillChar(var dest; length:Integer;data:Char); FillChar(var
dest;
length:Integer;data:Byte) - заполнение length байт памяти величиной data. Начало участка памяти - адрес переменной dest.
Процедура Halt - аварийный выход из программы.
Процедура Move(var sourse.dest:length:Integer) - пересылка length байт, расположенных в памяти, начиная с первого байта переменной sourse, в участок памяти длины length, начинающийся с первого байта переменной dest.
Процедура Randomise- инициализация генератора случайных чисел.
Функция Addr(var variable):Integer; Addr(<function identifier>):Integer;
Addr(<procedure identifier>):Integer возвращает
адрес первого байта своего аргумента.
Функция Bdos(funk,param:Integer):Byte аналогична соответствующей процедуре. Возвращает значение регистра А.
Функция BdosHL(funk,param:Integer):Integer аналогична функции Bdos. Возвращает значение регистровой пары HL.
Функция Bios(funk, param :Integer):Byte аналогична соответствующей процедуре. Возвращает значение регистра А.
Функция BiosHL(func.param:Integer):Integer аналогична функции Bios. Возвращает значение регистровой пары HL.
Функция Hi(I:Integer):Integer возвращает число, младший байт которого содержит старший байт параметра. Старший байт результата равен 0.
Функция IOresult:Integer работает после директивы компилятору $1-. Значение 0 соответствует отсутствию любой ошибки ввода-вывода. В противном случае возвращается произвольное ненулевое число.
Функция KeyPresscd:Boolean возвращает TRUE, если нажата любая клавиша на клавиатуре, и FALSE в противном случае.
Функция Lo(I:Integer):Integer возвращает число, младший байт которого содержит младший байт параметра. Старший байт результата равен 0.
Функция Random(I:Integer):Integer; Random:Real возвращает случайное число. Для первого варианта вызова это число лежит в интервале от 0 до 1, для второго -от 0 до 1.
Функция Size0f(var variable):Integer; Size0f(<type identifier>):Integer возвращает размер (в байтах) своего аргумента.
Функция Swap(I:Integer):Integer возвращает число, у которого по сравнению с аргументом поменялись местами первый и второй байты.
Функция UpCase(Ch:Char):Char возвращает верхний регистр данного символа. Если такового нет, то возвращается аргумент.
Функция ParamCount:Integer; возвращает число параметров в строке вызова СОМ-файла.
Функция ParamStr(n:Integer):String[14]; возвращает n-параметр из строки вызова СОМ-файла.
Процедура Exit - выполнение этой процедуры эквивалентно передачи управления на последний END процедуры, функции или основной программы, где выполнена процедура Exit.