русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Обсуждение математических функций языка


Дата добавления: 2015-06-12; просмотров: 734; Нарушение авторских прав


9.4.1.1. Функция Pi. Эта функция генерирует число «Пи» с точностью, зависящей от наличия сопроцессора и содержит 10 или 14 знаков после запятой. Она может использоваться в вычислениях как константа, но не может быть подставлена в вычислимые константы раздела CONST!

9.4.1.2. Функция ArcTan(X). Она возвращает главное значение арктангенса (в диапазоне от -Pi/2 до +Pi/2). Это не всегда удобно, и можно определить функцию арктангенса угла наклона отрезка, один конец которого соответствует началу координат, а другой задан координатами X и Y (рис. 9.3).

{Функция возвращает значение угла наклона отрезка (0,0)-(X,Y) к оси X в радианах. Возвращаемое значение находится в диапазоне 0..2*Pi и учитывает знаки значений X и Y. } FUNCTION ATAN2( X,Y : Real ) : Real; VAR a : Real; BEGIN if X=0 then a:=Pi/2 else a:=Abs( ArcTan( Y/X ) ); case ( Byte(X>0) + Byte(Y>=0) ) of 2 : ATAN2 := a; 1 : if X>0 then ATAN2 := 2*Pi-a else ATAN2 := Pi - a; 0 : ATAN2 := Pi + a end {case} END; {========= ПРОВЕРКА РАБОТОСПОСОБНОСТИ ФУНКЦИИ =========} CONST { константа перевода радиан в градусы } R2D = 180/3.1415926; VAR i : Integer; x, sx, ex : Real; BEGIN for i:=0 to 360 do begin { цикл по градусам } x:=i/R2D; { перевод в радианы } sx:=Sinx); cx:=Cos(x); { синус и косинус i } x:=ATAN2(cx,sx)*R2D; { угол в градусах } WriteLn(i:3, 'град. Функция возвращает: ', x:-10:6 ) end; { конец цикла по i } ReadLn { пауза до нажатия клавиши ввода } END.

Рис. 9.3 {177}

Эта функция возвращает корректное значение угла в диапазоне от 0 до 2*Pi, что гораздо удобнее в технических расчетах.

9.4.1.3. Доопределение функций. Часто ощущается нехватка функций arccos и arcsin. Но их нетрудно написать самим (рис. 9.4).

{Функция возвращает главное значение arcCos X (в рад) } FUNCTION ArcCos( x : Real ): Real; BEGIN if x=0 then ArcCos:=Pi/2 else ArcCos:=ArcTan(Sqrt(1-Sqr(x)) / x) + Pi*Byte(x<0) END; {Функция возвращает главное значение арксинуса X(в рад)} FUNCTION ArcSin( x : Real ) : Real; BEGIN if Abs(x)=1 then ArcSin:=0 else ArcSin:=ArcTan(x / Sqrt( 1-Sqr(x) ) ) END;

Рис. 9.4



Аналогичным образом можно построить библиотеку любых необходимых математических функций, сделав в итоге свой собственный математический модуль. Все необходимые «кирпичики» имеются в базовом наборе языка. Так, например, можно ввести десятичный логарифм (рис. 9.5) или степенную функцию (рис. 9.6).

{ Функция возвращает значение десятичного логарифма } FUNCTION Log10( x : Real ) : Real; BEGIN Log10:= Ln(x)/Ln(10) END;

Рис. 9.5

{ Функция возвращает значение A в степени X (A>0) } FUNCTION Pwr(a,x : Real ) : Real; BEGIN Pwr := Exp( x * Ln(a) ) END;

Рис. 9.6 {178}

9.4.1.4. Функции Frac, Int и Trunc. Эти функции соответствуют математическим функциям взятия дробной и целой части числа соответственно. Помните, что

Frac( X ) = X - Int( X )

и знак X переходит на значение функции Frac.

Функция Trunc отличается от Int только типом возвращаемого значения. Int записывает целое число в вещественном формате (после точки — нули), a Trunc — в целочисленном. Такая двойственность необходима для совместимости в операторах присваивания.

9.4.1.5. Функция Round. Эта функция округляет число X до ближайшего целого числа с избытком:

Round (5.5) = 6 Round (-5.5) = -6

Round (5.9) = 6 Round (-1.51) = -2

Round (5.49) = 5 Round (-1.4) = -1

При подключении математического сопроцессора эта функция начинает работать несколько в другом режиме и может выдавать иные результаты.



<== предыдущая лекция | следующая лекция ==>
Математические процедуры и функции | Генераторы случайных чисел


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.419 сек.