Тригонометрические функции

Абсолютное значение числа

Математические вычисления

 

С простыми математическими вычислениями Вы уже познакомились в главе "Элементы языка QBASIC". В этой главе рассмотрим функции, которые позволяют проводить сложные математические расчеты. Без этих функций такие расчеты либо не возможны, либо требуют для реализации значительных затрат.

 

Функция ABS возвращает абсолютное значение заданного арифметического выражения.

Пример:
'Функция ABS
DIM wert%
wert% = 45 PRINT
ABS(wert%)
PRINT ABS(-1 * wert%)

 

В QBASIC определены следующие тригонометрические функции:

SIN (угол) Функция синус угла
COS(угол) Функция косинус угла
TAN (угол) Функция тангенс угла
ATN (арифм.выраж.) Функция арктангенс угла

 

Угол следует задавать в радианах. Функция, обратная тангенсу — ATN, возвращает значение угла, выраженное в радианах. Для преобразования значения угла из градусной меры в радианную, и наоборот, можно воспользоваться формулами:
D град = рад* (180 /pi)
D рад =град* (pi/ 180) где pi =3,14159

 

Пример:
'Примеры тригонометрических функций
CONST pi!- 3.14159
CONST bogum! - 180 / pi!
CONST gradum!-pi!/ 180
'Вычисление синуса, косинуса и тангенса угла 17 градусов
PRINT SIN(17*gradum)
PRINT COS(17 * gradum)
PRINT TAN(17*gradum)
'Функция, обратная тангенсу — ATN
'Требуется опять получить 17 градусов
PRINT ATN(TAN(197 * gradum)) * bogum
'Конец программы

 

3. Функция вычисления экспоненты
Функция ЕХР вычисляет значения функции е в степени х, где е=2,71 — основание натурального логарифма. Результат имеет вещественный тип SINGLE.

Пример:
'Функция :f(x)-- 3*ex+ 2*eзx
DIMx!
CLS
INPUT "Задать аргумент функции ",х!
PRINT "f(";x;")-";
PRINT -3 * EXP(x!) + 2 * EXP(3 * xl)
'Конец программы

 

4. Вычисление натурального логарифма
Функция LOG вычисляет значение натурального логарифма, т.е. логарифма с основанием е. Результат имеет вещественный тип SINGLE.
Пример:
'Функция LOG
DIMx!
CLS
INPUT "Задать аргумент функции ",х!
PRINT "ln(";x!;")-"; LOG(x!)
'проверка
PRINT "так как е^"; LOG(x!); "-х- "; EXP(LOG(x!))

 

5. Преобразование к типу INTEGER
Функция INT возвращает наибольшее целое, не превосходящее значение ее аргумента.
Пример:

PRINT INT(2.234)

PRINT INT(-2.234)

'Ближайшее меньшее целое число для -2.234 равно -3
Функцию INT удобно использовать для коммерческих округлений.
Пример:
'Округление с помощью функции INT
CONST nkstelle%-10
'константа для определения количества
'значащих цифр после запятой при округлении
'nkstelle - 10 — соответствует одной цифре после запятой
'nkstelle - 100 — соответствует двум цифрам после запятой
DIM x!, rund!
CLS
INPUT "Задать число ";х!
rund!=х! * nkstelle% + 0.5
rund!= INT(rund!)
rund! = rund! / nkstelle%
PRINT х!; " ";rund!
'Конец программы

 

Чтобы разобраться в работе этой программы, составим таблицу значений переменных:

Переменные Действия
х! rund!
DIM x!, rund!
23.352 Ввод 23.352 (INPUT)
23.352 234.2 х! * nkstelle% + .5 = 23.352 * 10 + .5
23.352 int(rund!)
23.352 23.4 rund! / nkstelle% = 234 / 10

6. Выделение целой части числа
Функция FIX возвращает целую часть арифметического значения аргумента. Результат имеет целочисленный тип (INTEGER).

Пример: PRINT FIX(2.334) PRINT FIX(-2.334)

 

7. Извлечение квадратного корня
Функция SQR возвращает корень квадратный заданного аргумента. Результат — вещественное число типа SINGLE. Помните, что аргумент обязательно должен быть неотрицательным числом.

Пример:
PRINT SQR(4)
PRINT SQR(1OO)
PRINT SQR(234.234)
'Следующая команда с ошибкой
PRINT SQR(-4)

 

Для других дробных степеней в QBASIC нет стандартных функций. В главе "Пользовательские функции и процедуры" Вы познакомитесь с тем, как можно самостоятельно создавать такие функции в QBASIC.

 

8. Определение знака числа (функция сигнатуры)
Функция SGN (Signum) возвращает значения -1,0,1, если аргумент соответственно меньше, равен или больше нуля.

Пример:
'Функция SGN
PRINT SGN(-23.3454)
PRINT SGN(0)
PRINT SGN(23.32)

 

9. Преобразование числа в строку
Функция STR$ преобразует числовое значение в цифровую строку и является функцией, обратной VAL.
DIM zeichen$
ZeichenS= "Это "+ STR$(10.234)
PRINT zeichenS