Функция Ln

Основы программирования 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.

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

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

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

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