- •Программирование в Delphi: введение в Object Pascal
- •Введение
- •Структура программы
- •Директивы компилятора
- •Переменные и типы данных
- •Порядковый тип данных
- •Именование, объявление и использование переменных
- •Константы
- •Арифметические операторы
- •Выражения и порядок вычислений
- •Приведение типов и функции преобразования типов
- •Встроенные математические функции
- •Контрольные задания
- •Контрольные вопросы
- •Список используемой литературы
Список используемой литературы
1. Фаронов В.В. Delphi 3. Учебный курс. М.: «Нолидж», 1998. 400 с.
2. Галисеев Г.В. Программирование в среде Delphi 8 for .NET. М.: Издательский дом «Вильямс», 2004. 304 с.
3. Павловска Т.А. Паскаль. Программирование на языке высокого уровня. СПб.: Питер, 2003. 393 с.
4. Абрамов С.А. и др. Задачи по программированию. М.: Наука, 1988. 224 с.
Приложение
В отличие от функций табл. 8 перечисленные ниже подпрограммы станут доступны только после ссылки на модуль Math в предложении Uses
Тригонометрические подпрограммы |
|
function ArcCos(X: Extended): Extended; |
Арккосинус угла X |
function ArcSin(X: Extended): Extended; |
Арксинус угла X |
function ArcTan2(Y, X: Extended): Extended; |
Вычисляет арктангенс Y/X и возвращает угол в правильном квадранте (функция ArcТan модуля System не учитывает квадрант) |
function Cotan(X: Extended): Extended; |
Котангенс угла X |
function Hypot (X, Y: Extended): Extended; |
Корень квадратный из (X2 + Y2)-гипотенуза прямоугольного треугольника по двум катетам |
procedure SinCos(const Theta: Extended; var Sin: Extended; var Cos: Extended); |
Возвращает одновременно синус и косинус угла Theta (почти в 2 раза быстрее, чем раздельное получение синуса и косинуса) |
function Tan(X: Extended): Extended; |
Тангенс угла X |
Функции преобразования углов |
|
function CycleToRad(Cycles: Extended): Extended; |
Radians := Cycles * 2PI |
function DegToRad(Degrees: Extended): Extended; |
Radians := Degrees * PI / 18 |
function GradToRad(Grads: Extended): Extended; |
Radians := Grads * PI / 200 |
function RadToDeg(Radians: Extended): Extended; |
Degrees := Radians * 180 / PI |
function RadToGrad(Radians: Extended): Extended; |
Grads := Radians * 200 / PI |
function RadToCycle(Radians: Extended): Extended; |
Cycles := Radians / 2PI |
Гиперболические функции |
|
function ArcCosh(X: Extended): Extended; |
Гиперболический арккосинус |
function ArcSinh(X: Extended): Extended; |
Гиперболический арксинус |
function ArcTanh(X: Extended): Extended; |
Гиперболический арктангенс |
function Cosh(X: Extended): Extended; |
Гиперболический косинус |
function Sinh(X: Extended): Extended; |
Гиперболический синус |
function Tanh(X: Extended): Extended; |
Гиперболический тангенс |
Логарифмические функции |
|
Function LnXP1 (X: Extended) : Exteaded; |
Логарифм натуральный от (Х+1). Используется, когда Х близок к нулю |
function Log10(const X: Extended): Extended; |
Десятичный логарифм |
function Log2(const X: Extended): Extended; |
Двоичный логарифм |
function LogN(Base, X: Extended): Extended; |
Логарифм от X при основании Base |
Экспоненциальные функции |
|
function IntPower(Base: Extended; Expopient: Integer): Extended; |
Возведение Base в целочисленную степень Exponent |
function Power(Base, Exponent: Extended): Extended; |
Возведение Base в вещественную степень Exponent |
Подпрограммы разного назначения |
|
function Ceil(X: Extended): Integer; |
Ближайшее меньшее целое |
function Floor (X: Extended): Integer; |
Ближайшее большее целое |
procedure Frexp(X: Extended; var Mantissa: Extended; var Exponent: Integer); |
Возвращает мантиссу и степень вещественного числа |
function Ldexp(X: Extended; P: Integer): Extended; |
Возвращает ХРP |
Статические подпрограммы |
|
function Мах (А, В: Integer): Integer; |
Возвращает максимальное из двух чисел |
function Poly(X: Extended; const Coefficients: array of Double): Extended; |
Значение полинома A*Xn+B*Xn-1+.. .+Z. Коэффициенты задаются в порядке возрастания степени |
function MaxIntValue(const Data: array of Integer): Integer; |
Возвращает максимальное из набора целых чисел |
function MaxValue(const Data: array of Double): Double; |
Возвращает максимальное из набора вещественных чисел |
function Mean(const Data: array of Double): Extended; |
Вычисляет арифметическое среднее для набора вещественных чисел |
procedure MeanAndStdDev(const Data: array of Double; var Mean, StdDev: Extended); |
Вычисляет арифметическое среднее и стандартное отклонение для набора вещественных чисел |
function Min(A,B: Extended): Extended; |
Возвращает минимальное из двух чисел |
function MinIntValue(const Data: array of Integer): Integer; |
Возвращает минимальное из набора целых чисел |
function MinValue(const Data: array of Double): Double; |
Возвращает минимальное из набора вещественных чисел |
procedure MomentSkewKurtosis (const Data: array of Double; var Ml, M2, МЗ, М4, Skew, Kurtosis: Extended); |
Вычисляет статистические моменты порядков с первого по четвертый, а также асимметрию Skew и эксцесс Kurtosis для набора чисел |
function Norm(const Data: array of Double): Extended; |
Возвращает норму (квадратный корень из суммы квадратов) вещественных чисел |
function PopnStdDev(const Data: array of Double): Extended; |
Выборочное стандартное отклонение. Отличается от обычного стандартного отклонения тем, что использует выборочное значение дисперсии (см. ниже PopnVariance) |
function PopnVariance(const Data: array of Double): Extended; |
Выборочная дисперсия. Использует “смещенную” формулу TotalVariance/N (см. ниже TotalVariance) |
function RandG(Mean, StdDev: Extended) : Extended; |
Генерирует нормально псевдораспределенную последовательность чисел с заданным средним значением Mean и стандартным отклонением StdDev |
function StdDev(const Data: array of Double): Extended; |
Вычисляет среднеквадратическое отклонение для набора чисел |
function Sum(var Data: array of Double): Extended; |
Вычисляет сумму чисел |
procedure SumsAndSquares(const Data: array of Double; |
Одновременное вычисление суммы и суммы квадратов для набора чисел |
function SumInt(const Data: array of Integer): Integer 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, Pre-sentValue: Extended; PaymentTime: TPaymentTime): Extended; |
Будущее значение вложения |
function InterestPayment(Rate: Extended; Period, NPeriods: Integer; PresentValue, FutureValue: Extended; PaymentTime: TPaymentTime): Extended; |
Вычисление процентов по ссуде |
function InterestRate(NPeriods: Integer; Payment, PresentValue, Future-Value: 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, Future-Value: Extended; PaymentTime: TPaymentTime) : Extended/ |
Размер периодической выплаты для погашения ссуды при заданном числе периодов, процентной ставке, а также текущем и будущем значениях ссуды |
function PeriodPayment(Rate: Extended; Period, NPeriods: Integer; PresentValue, FutureValu'e: Extended; PaymentTime: TPaymentTime): Extended; |
Платежи по процентам за заданный период |
function PresentValue(Rate: Extended; NPeriods: Integer; Payment, Future-Value: Extended; PaymentTime: TPaymentTime) : Extended; |
Текущее значение вложения |
function SLNDepreciation (Cost, Salvage: Extended; Life: Integer): Extended; |
Вычисление амортизации методом постоянной нормы |
function SYDDepreciation (Cost, Salvage: Extended; Life, Period: Integer) : Extended; |
Вычисление амортизации методом весовых коэффициентов |
