ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ СО СТРОКАМИ
Для работы со строками применяются следующие процедуры и функции (в квадратных скобках указываются необязательные параметры).
| Процедуры и функции для работы со строками | |
| Function Concat(S1 [, S2, ..., SN]: String)-. String; | Возвращает строку, представляющую собой сцепление строк-параметров S1. S2,... , SN | 
| Function Copy(St: String; Index, Count: Integer): String; | Копирует из строки St Count символов, начиная с символа с номером Index | 
| Procedure Delete(St: String; Index, Count; Integers; | Удаляет Count символов из строки St начиная с символа с номером Index | 
| Procedure lnsert(SubSt: String; St, Index: Integer); | Вставляет подстроку SubSt в строку St начиная с символа с номером Index | 
| Function Length(St: String): Integer; | Возвращает текущую длину строки St | 
| Function Pos(SubSt, St: String): Integer; | Отыскивает в строке St первое вхождение подстроки SubSt и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращается ноль | 
| Procedure SetLength(St: String; NewLength: Integer); | Устанавливает новую (меньшую) длину NewLength строки St, если NewLength больше текущей длины строки, обращение к SetLength итерируется | 
| Подпрограммы npеобразования строк в другие типы | |
| Function StrToCurr(St: String): Currency; | Преобразует символы строки St в целое число типа Currency. Строка не должна содержать ведущих или ведомых пробелов. | 
| Function StrToDate(St: String): TDateTime; | Преобразует символы строки St в дату. Строка должна содержать два или три числа, разделенных правильным для Windows разделителем даты; (в русифицированной версии таким разделителем, является “.”) Первое число -день, второе - месяц, если указано третье число, оно задает год | 
| Function StrToDateTime(St: String): TDateTime; | Преобразует символы строки St в дату и время. Строка должна содержать дату и, разделенные пробелом | 
| Function StrToFloat(St: String): Extended; | Преобразует символы строки St в вещественное число. Строка не должна содержать ведущих или ведомых пробелов | 
| Function StrToInt(St: String): Integer; | Преобразует символы строки St в целое число. Строка не должна содержать ведущих или ведомых пробелов | 
| I-unction StrtoIntDef(St: String; Default: Integer): Integer; | Преобразует символы строки St в целое число. Если строка не содержит правильного представления целого числа, возвращается значение Default | 
| I-unction StrtoIntRange(St: String: Min, Max: Longint) : Longint; | Преобразует символы строки St в целое число и возбуждает исключение ERangeError, если число выходит из заданного диапазона Мin Мах | 
| Function StrToTime(St: String): TDateTime; | Преобразует символы строки St во время | 
| Procedure Val(St: String; var X; Code: Integer); | Преобразует строку символов St во внутреннее представление целой или вещественной переменной X, которое определяется типом этой переменной. Параметр Code содержит ноль, если преобразование прошло успешно, и тогда в Х помещается результат преобразования; в противном случае он содержит номер позиции в строке St, где обнаружен ошибочный символ, и в этом случае содержимое Х не меняется. В строке St могут быть ведущие и (или) ведомые пробелы | 
| Подпрограммы обратного преобразования | |
| Function DateToStr(Value: TDateTime): String: | Преобразует дату из параметра Value в строку символов | 
| Function DateTimeToStr(Value: TDateTime): String; | Преобразует дату и время из параметра Value в строку символов | 
| Procedure DateTimeToString (var St: String: Format: String; Value: TDataTime); | Преобразует дату и время из параметра Value в строку St | 
| Function FormatDateTime (Format: String; Value: „ TDateTime): String; | Преобразует дату и время из параметра Value в строку символов | 
| Function FloatToStr( Value: Extended): String: | Преобразует вещественное значение Value в строку символов | 
| Function FloatToStrF(Value: Extended; Format: TFIoatFor-mat; Precision, Digits: Integer) : String; | Преобразует вещественное значение Value в строку символов с учетом параметров Precision и Digits (см. пояснения ниже) | 
| Function FormatFloat(Format: String: Value: Extended): String; | Преобразует вещественное значение Value в строку | 
| Function lntToStr(Value: Integer): String; | Преобразует целое значение Value в строку символов | 
| Function TimeToStr(Value: TDateTime): String; | Преобразует время из параметра Value в строку символов | 
| Procedure Str(X [.-width [: Decimals]]; var St: String); | Преобразует число X любого вещественного или целого типа в строку символов St; параметры Width и Decimals, если они присутствуют, задают формат преобразования: Width определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного или целого числа X, a Decimals -количество символов в дробной части (этот параметр имеет смысл только в том случае, когда Х – вещественное число) | 
Правила использования параметров функции FloatToStrF показаны ниже:
| Значение Format | Описание | 
| fFfExponent | Научная форма представления с множителем еХХ (“умножить на 10 в степени XX”). Precision задает общее количество десятичных цифр мантиссы. Digits - количество цифр в десятичном порядке XX. Число округляется с учетом первой отбрасываемой цифры: 3.1416Е+00 | 
| ffFixed | Формат с фиксированным положением разделителя целой и дробной частей. Precision задает общее количество десятичных цифр в представлении числа. Digits - количество цифр в дробной части. Число округляется с учетом первой отбрасываемой цифры: 3,14 | 
| ffGeneral | Универсальный формат, использующий наиболее удобную для чтения форму представления вещественного числа. Соответствует формату ffFixed, если количество цифр в целой части меньше или равно Precision, а само число - больше или равно 0,00001, в противном случае соответствует формату ffExponent: 3,1416 | 
| ffNumber | Отличается от ffFixed использованием символа - разделителя тысяч при выводе больших чисел (для русифицированной версии Windows таким разделителем является пробел). Для Value = 7t* 1000 получим 3 141,60 | 
| ffCurrency | Денежный формат. Соответствует ffNumber, но в конце строки ставится символ денежной единицы (для русифицированной версии Windows - символы “р.”). Для Value = я*1000 получим: 3141,60р | 
ПРИЛОЖЕНИЕ 5
МАТЕМАТИЧЕСКИЕ ФОРМУЛЫ
Язык Object Pascal имеет ограниченное количество встроенных ^ математических функций. Поэтому при необходимости использовать другие функции следует применять известные соотношения. В таблице приведены ; выражения наиболее часто встречающихся функций через встроенные функции языка Object Pascal.
| Функция | Соотношение | Соотношение на языке Object Pascal | 
| Loga(x) | Ln(x) Ln(a) | Ln(x)/Ln(a) | 
| xa | ea*Ln(x) | Exp(a*Ln(x)) | 
| Tg(x) | Sin(x) Cos(x) | Sin(x)/Cos(x) | 
| Ctg(x) | Cos(x) Sin(x) | Cos(x)/Sin(x) | 
| ArcSin(x) | __________ ArcTg(√(x/(1-sqr(x)))) | ArcTan(Sqrt(x/(1-sqr(x)))) | 
| ArcCos(x) | π/2-arcsin(x) | Pi/2-ArcTan(Sqrt(x/(1-sqr(x)))) | 
| ArcCtg(x) | π/2-arcTg(x) | Pi/2-ArcTan(x) | 
| Sh(x) | ex- e-x 2 | (Exp(x)-Exp(-x))/2 | 
| Ch(x) | ex +e-x 2 | (Exp(x)+Exp(-x))/2 | 
| Csc(x) | 1/Sin(x) | 1/Sin(x) | 
| Sc(x) | 1/cos(x) | 1/Cos(x) | 
ПРИЛОЖЕНИЕ 6
МОДУЛЬ MATH.
ПРОЦЕДУРЫ И ФУНКЦИИ
Модуль Math, который существенно расширяет набор встроенных математических функций. Особенностью реализации содержащихся в нём функций и процедур является их оптимизация для работы с арифметическим сопроцессором класса Pentium, так что все они производят необходимые вычисления за рекордно малое время.
Ниже таблице приводятся все процедуры и функции, используемые в модуле Math. Подпрограммы становятся доступными программе только после ссылки на модуль Math в предложении Uses.
| Тригонометрические функции | |
| Function ArcCos(X: Extended): Extended; | При обращении к функции необходимо указать параметр типа Extended, в результате чего функция вернёт арккосинус от этого параметра типа Extended. | 
| Function ArcSin(X: Extended): Extended; | При обращении к функции необходимо указать параметр типа Extended, в результате чего функция вернёт арксинус от этого параметра типа Extended. | 
| Function ArcTan2(X: Extended): Extended; | При обращении к функции необходимо указать два параметра X и Y типа Extended, в результате чего функция вычисляет арктангенс Y/X и вернет угол в правильном квадранте типа Extended. | 
| Function Cotan(X: Extended): Extended; | При обращении к функции необходимо указать угол типа Extended, в результате чего функция вернёт котангенс от этого параметра типа Extended. | 
| Function ArcHypot(X: Extended): Extended; | При обращении к функции необходимо указать два параметра X и Y типа Extended, в результате чего функция вернёт корень квадратный из (X2 + Y2) – гипотенуза прямоугольного треугольника по двум катетам типа Extended. | 
| Procedure SinCos(Theta: Extended; var Sin, Cos:Extended); | При обращении к функции необходимо указать угол Theta типа Extended, в результате чего функция возвращает одновременно Sin и Cos угла Theta. | 
| Function Tan(X: Extended): Extended; | При обращении к функции необходимо указать угол типа Extended, в результате чего функция вернёт тангенс от этого угла типа Extended. | 
| Функции преобразования углов | |
| Function CycleToRad(Cycles: Extended): Extended; | При передаче параметра Cycles функция вернёт значение Radians:=Cycles*2PI. | 
| Function DegToRad(Degrees: Extended): Extended; | При передаче параметра Cycles функция вернёт значение Radians:=Degrees*PI/180. | 
| Function GradToRad(Grads: Extended): Extended; | При передаче параметра Cycles функция вернёт значение Radians:=Grads*PI/200. | 
| Function RadToDeg(Radians: Extended): Extended; | При передаче параметра Cycles функция вернёт значение Degrees:=Radians*180/PI. | 
| Function RadToGrad(Radians: Extended): Extended; | При передаче параметра Cycles функция вернёт значение Grads:=Radians*200/PI. | 
| Function RadToCycle(Radians: Extended): Extended; | При передаче параметра Cycles функция вернёт значение Cycles:=Radians/2PI. | 
| Гиперболические функции | |
| Function ArcСosh(X: Extended): Extended; | При обращении к функции необходимо указать параметр типа Extended, в результате чего функция вернёт гиперболический арккосинус от этого параметра типа Extended. | 
| Function ArcSinh(X: Extended): Extended; | При обращении к функции необходимо указать параметр типа Extended, в результате чего функция вернёт гиперболический арксинус от этого параметра типа Extended. | 
| Function ArcСosh(X: Extended): Extended; | При обращении к функции необходимо указать параметр типа Extended, в результате чего функция вернёт гиперболический арктангенс от этого параметра типа Extended. | 
| Function Cosh(X: Extended): Extended; | При обращении к функции необходимо указать угол типа Extended, в результате чего функция вернёт гиперболический косинус от этого угла типа Extended. | 
| Function Sinh(X: Extended): Extended; | При обращении к функции необходимо указать угол типа Extended, в результате чего функция вернёт гиперболический синус от этого угла типа Extended. | 
| Function Tanh(X: Extended): Extended; | При обращении к функции необходимо указать угол типа Extended, в результате чего функция вернёт гиперболический тангенс от этого угла типа Extended. | 
| Логарифмические функции | |
| Function LnXP1(X: Extended): Extended; | При обращении к функции необходимо указать параметр X типа Extended, в результате чего функция вернёт натуральный логарифм от (X+1) типа Extended. Данная функция используется, когда значение X близко к нулю. | 
| Function Log10(X: Extended): Extended; | При обращении к функции необходимо указать параметр X типа Extended, в результате чего функция вернёт десятичный логарифм от X типа Extended. | 
| Function Log2(X: Extended): Extended; | При обращении к функции необходимо указать параметр X типа Extended, в результате чего функция вернёт двоичный логарифм от X типа Extended. | 
| Function LogN(Base, X: Extended): Extended; | При обращении к функции необходимо указать параметры X и Base типа Extended, в результате чего функция вернёт логарифм по основанию Base от X типа Extended. | 
| Экспоненциальные функции | |
| Function IntPower(Base: Extended; Exponent: Integer): Extended; | При обращении к функции необходимо ввести в качестве параметров основание Base типа Extended и степень Exponent целочисленного типа Integer, в результате чего функция вернёт значение Base в степени Exponent типа Extended. | 
| Function Power(Base, Exponent: Extended): Extended; | При обращении к функции необходимо ввести в качестве параметров основание Base типа Extended и степень Exponent вещественного типа Integer, в результате чего функция вернёт значение Base в степени Exponent типа Extended. | 
| Подпрограммы разного назначения | |
| Function Ceil(X: Extended): Integer; | При обращении к функции необходимо ввести параметр X вещественного типа в результате чего функция вернёт ближайшее меньшее целое число отбросив часть после запятой. | 
| Function Floor(X: Extended): Integer; | При обращении к функции необходимо ввести параметр X вещественного типа в результате чего функция вернёт ближайшее большее целое число округляя X в большую сторону. | 
| Procedure Frexp(X: Extended; var Mantissa: Extended; var Exponent: Integer); | При обращении к функции необходимо указать число вещественного типа Extended в результате чего функция вернёт мантиссу и степень этого числа. | 
| Function Ldexp(X: Extended; P: Integer): Extended; | При обращении к функции необходимо указать два числа: X вещественного Extended и P целого Integer типа. В результате функция вернёт результат формулы X*P2 типа Extended. | 
| Function Poly(X: Extended; const Coefficients: array of Double): Extended; | Функция принимает параметр X вещественного типа Extended и массив коэффициентов вещественного типа Double, в результате чего функция вернёт значение полинома A*XN+B*XN-1+…+Z. Коэффициенты должны задаваться в порядке возрастания степени. | 
| Статистические подпрограммы | |
| Function Max(A, B: Integer): Integer; overload; | При обращении к функции необходимо указать две переменные какого либо типа и функция вернёт наибольшее из них. Параметр overload указывает на то, что функция может быть переопределена. | 
| Function Max(A, B: Int64): Int64; overload; | |
| Function Max(A, B: Single): Single; overload; | |
| Function Max(A, B: Double):Double; overload; | |
| Function Max(A, B: Extended): Extended; overload; | |
| Function MaxIntValue(const Data: array of Integer): Integer; | Функция принимает массив целых чисел и возвращает наибольшее из них. | 
| Function MaxValue(const Data: array of Double): Double; | Функция принимает массив вещественных Double чисел и возвращает наибольшее из них. | 
| Function Mean(const Data: array of Double): Extended; | Функция принимает массив чисел типа Double и возвращает арифметическое среднее массива чисел. | 
| Function MeanAndStdDev(const Data: array of Double; var Mean, StdDev: Extended); | Приняв массив вещественных чисел Double функция возвращает среднее арифметическое всех чисел и стандартное отклонение для этого набора чисел. | 
| Function Min(A, B: Integer): Integer; overload; | При обращении к функции необходимо указать две переменные какого либо типа и функция вернёт наименьшее из них. Параметр overload указывает на то, что функция может быть переопределена. | 
| Function Min(A, B: Integer): Integer; overload; | |
| Function Min(A, B: Integer): Integer; overload; | |
| Function Min(A, B: Integer): Integer; overload; | |
| Function Min(A, B: Integer): Integer; overload; | |
| Function MinIntValue(const Data: array of Integer): Integer; | Функция принимает массив целых чисел и возвращает наименьшее из них. | 
| Function MinValue(const Data: array of Double): Double; | Функция принимает массив вещественных Double чисел и возвращает наименьшее из них. | 
| Procedure MomentSkewKurtosis(const Data: array of Double; var M1, M2, M3, M4, Skew, Kurtosis: Extended); | Функция принимает массив чисел вещественного типа Double и возвращает статистические моменты порядков с первого по четвёртый, а также асимметрию Skew и эксцесс Kurtosis для набора чисел. | 
| Function Norm(const Data: array of Double): Extended; | Принимая массив вещественных чисел типа Double функция возвращает квадратный корень из суммы квадратов этих чисел. | 
| Function PopnStdDev(const Data: array of Double): Extended; | Принимая массив вещественных чисел типа Double функция возвращает выборочное стандартное отклонение типа Extended. | 
| Function PopnVariance(const Data: array of Double): Extended; | Принимая массив вещественных чисел типа Double функция возвращает выборочную дисперсию типа Extended. | 
| Function RandG(Mean, StdDev: Extended): Extended; | Функция принимает две переменные вещественного типа и генерирует нормальную псевдораспределённую последовательность чисел с заданным средним значением Mean и стандартным отклонением StdDev. | 
| Function StdDev(const Data: array of Double): Extended; | Принимая массив вещественных чисел типа Double функция возвращает среднеквадратическое отклонение. | 
| Function Sum(const Data: array of Double): Extended register; | Принимая массив вещественных чисел типа Double функция возвращает сумму чисел из массива. | 
| Procedure SumAndSquares(const Data: array of Double; | Функция принимает массив чисел вещественного типа и возвращает одновременно сумму и сумму квадратов этих чисел. | 
| Function SumInt(const Data: array of Integer): Extended register; | Функция принимает массив чисел целочисленного типа и вычисляет их сумму. | 
| Function SumOfSquares(const Data: array of Double): Extended; | Функция принимает массив чисел вещественного типа и вычисляет сумму их квадратов. | 
| Function TotalVariance(const Data: array of Double): Extended; | Функция принимает массив чисел вещественного типа и вычисляет сумму квадратов всех величин от их среднего арифметического. | 
| Function Variance(const Data: array of Double): Extended; | Функция принимает массив чисел вещественного типа и возвращает выборочную дисперсию для этих чисел, используя «несмещённую» формулу TotalVariance/(N-1). | 
| Финансовые функции | |
| Type TpaymentTime = (ptEndOfPeriod, ptStartOfPeriod); | Специальный перечислительный тип используемый в финансовых функциях. | 
| Function DoubleDecliningBalance (Cost, Salvage: Extended; Life, Period: Integer): Extended; | Функция принимает два вещественных и два целочисленных параметра и в результате возвращает значение амортизации методом двойного баланса. | 
| Function FutureValue(Rate: Extended; NPeriods: Integer; Payment, PresentValue: Extended; PaymentTime: TPaymentTime): Extended; | Для этой функции необходимо передавать три вещественных, один целочисленный параметр и параметр собственного перечислительного типа, после чего функция вернет будущее значение вложения. | 
| Function InterestPayment(Rate: Extended; Period, NPeriods: Integer; PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; | Для этой функции необходимо передавать три вещественных, два целочисленных параметра и параметр собственного перечислительного типа, после чего функция вернет количество процентов по ссуде. | 
| Function InterestRate(NPeriods: Integer; Payment, PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; | Для этой функции необходимо передавать три вещественных, один целочисленный параметр и параметр собственного перечислительного типа, после чего функция вернет норму прибыли, необходимую для получения заданной суммы. | 
| Function InternalRateOfReturn(Guess: Extended; const CashFlows: array of Double): Extended; | Функция принимает массив чисел вещественного типа и вещественный параметр после чего возвращает внутреннюю скорость оборота вложения для ряда последовательных выплат. | 
| Function NetPresentValue(Rate: Extended; const CashFlows: array of Double; PaymentTime: TPaymentTime): Extended; | Функция принимает массив чисел вещественного типа, вещественный параметр и параметр собственного перечислительного типа, после чего возвращает чистую текущую стоимость вложения для ряда последовательных выплат. | 
| Function NumberOfPeriods(Rate, Payment, PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; | Функция принимает четыре вещественных параметра и параметр собственного перечислительного типа, после чего функция вернет количество периодов, за которые вложение достигнет заданной величины. | 
| Function Payment(Rate: Extended; NPeriods: Integer; PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; | Для этой функции необходимо передавать три вещественных, один целочисленный параметр и параметр собственного перечислительного типа и функция вернет размер периодической зарплаты для погашения ссуды при заданном числе периодов, процентной ставке, а также текущем и будущем значениях ссуды. | 
| Function PeriodPayment(Rate: Extended; Period, NPeriods: Integer; PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; | Для этой функции необходимо передавать три вещественных, два целочисленных параметра и параметр собственного перечислительного типа, после чего функция вернет платежи по процентам за заданный период. | 
| Function PresentValue(Rate: Extended; NPeriods: Integer; Payment, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; | Для этой функции необходимо передавать три вещественных, один целочисленный параметр и параметр собственного перечислительного типа, после чего функция вернет текущее значение вложения. | 
| Function SLNDepreciation(Cost, Salvage: Extended; Life: Integer): Extended; | Для вычисления функции необходимо сообщить в качестве параметров две переменные вещественного и одну целочисленного типа в результате чего функцией будет возвращено значение амортизации методом постоянной нормы. | 
| Function SYDDepreciation(Cost, Salvage: Extended; Life, Period: Integer): Extended; | Для вычисления функции необходимо сообщить в качестве параметров две переменные вещественного и две целочисленного типа в результате чего функцией будет возвращено значение амортизации методом весовых коэффициентов. |