2. Запишите на языке Object Pascal следующие формулы (используя только функции из табл. 8):
3. Определите тип следующих числовых выражений:
e) succ(round(5/2)-pred(3)).
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;
| Вычисление амортизации методом весовых коэффициентов
|