Согласие на обработку персональных данных.



04.11.2017
Новые видео и статья Функция Odd.

29.10.2017
Новые видео и статья Функция Low.

23.10.2017
Новая задача Даны натуральные числа от 1 до 33.

22.10.2017
Добавлен раздел Статьи по С/С++.

03.10.2017
Новая книга 1001 вопрос начинающего программиста.

Функция Ln

Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...

Раздел: Стандартные функции Паскаля

Функция Ln вычисляет натуральный логарифм. Для подзабывших математику о логарифмах расскажу чуть позже. А пока синтаксис:

function Ln(Х : ValReal) : ValReal;

Функция Ln X возвращает натуральный логарифм вещественного числа Х. Число Х должно быть положительным - иначе случится ошибка времени выполнения. Хотя в моём случае ошибка не возникает, просто функция возвращает результат “минус бесконечность”. Видимо, это зависит от настроек компилятора.

О типе ValReal я рассказывал здесь.

Подробности см. в видео и читайте в статье далее.

А теперь немного математики.

Сначала вспомним, что такое логарифм.

Логарифм числа b по основанию a определяется как показатель степени, в которую надо возвести основание a, чтобы получить число b. Обозначение:

logab

То есть, чтобы вычислить логарифм числа b по основанию a, надо решить уравнение

ах = b

где а и b известны, а х - неизвестная величина.

Например,

log39 = 2

так как число 3 в степени 2 равно 9:

32 = 9

Теперь о натуральном логарифме, который и вычисляет функция Ln в Паскале.

Натуральный логарифм - это логарифм по основанию е. Где е - это иррациональная константа, которая равна приблизительно 2,72. То есть

ln x = logex

В FreePascal также есть другие функции для вычисления логарифмов:

  • Log10 - вычисляет логарифм по основанию 10
  • Log2 - вычисляет логарифм по основанию 2
  • LogN - вычисляет логарифм по основанию N (в эту функцию передаются два параметра, сначала - основание N, затем число X)
  • Lnxp1 - вычисляет натуральный логарифм по основанию Х+1

Но эти функции определены в модуле Math. То есть, чтобы воспользоваться этими функциями вам придётся подключить модуль Math к своей программе.

Такие вещи как область определения натурального логарифма Ln, производная, разложение в ряд Тейлора и прочие “ништяки” рассматривать не будем, так как это уже далеко выходит за сферу программирования.

А вот формулу, которая позволяет вычислить логарифм по произвольному основанию, используя только функцию Ln, я вам покажу:

logab = (ln b) / (ln a)

То есть, если вы не хотите подключать к вашей программе модуль Math, то это вам не помешает вычислить логарифм с любым основанием.

Пример собственной функции, которая является аналогом функции LogN из модуля Math, вы найдёте в исходном коде ниже.

program funcln;

uses Math;

var x : single;

function MyLogN(n, x : single) : single;
begin
  MyLogN := Ln(x) / Ln(n);
end;

begin
  x := Ln(2.718281828);
  WriteLn('Ln(2.72) = Ln(e) =', x:0:4);
  x := LogN(3, 9);
  WriteLn('Log 3 (9) = ', x:0:4);
  x := MyLogN(3, 9);
  WriteLn('MyLog 3 (9) = ', x:0:4);     

  ReadLn;
end.

Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика