СТАНДАРТНІ ЧИСЛОВІ ФУНКЦІЇ

У багатьох обчисленнях використовуються дії, які не можуть бути простим способом зведені до арифметичним операціям +, -, *, /, ↑ Приватним прикладом може служити витяг квадратного кореня з числа У мові Бейсік передбачені спеціальні функції для виконання деяких таких дій Наприклад, оператор

20 А = SQR (X)

обчислює квадратний корінь із значення X і запамятовує отриманий результат в А Функції типу SQR можуть входити до складу виразів При обчисленні таких виразів імя функції замінюється на результат її обчислень Аргумент X наведеної вище функції можна замінити на вираз за умови, що результат його обчислення не буде негативним Таким чином, припустимі наступні оператори:

20 А = SQR (А + В * 31) 20 A = B-SQR (147) 20 A = SQR (3 + SQR (X))

У табл 31 наводиться рекомендований перелік стандартних функцій Ці функції мають бути в усіх версіях Бейсика Через X в цій таблиці позначається числове вираження

Таблиця 31 Стандартні числові функції Бейсика

Функція

Дія

ABS(X)

ATN(X)

COS(X)

Дає абсолютне значення X, тобто значення,

одержуване після заміни знака числа X на плюс: ABS (-37) = 37

Дає значення арктангенса X, тобто кута, тангенс якого дорівнює X Результатом є кут в радіанах в діапазоні-π / 2 .. π / 2 Для переведення з радіанів в градуси користуйтеся співвідношенням

180 градуси = (180 / π) * радіани де 180 / π = 5729577951

Дає косинус кута X, де X задається в радіанах Для перекладу з градусів в радіани користуйтеся співвідношенням

радіани = (π/180) * градуси де π/180 = 1745329252Е-2

Таблиця 31 (закінчення)

Функци

я

Дія

ЕХР (Х)

INT(X)

LOG(X)

RND або RND (X)

SGN(X)

SIN(X)

Дає е (= 2718281828) в ступені X, тобто Еx Зверніть

увагу на те, що е служить підставою натуральних логарифмів, а функції ЕХР і LOG є взаємно зворотними Таким чином, LOG (EXP (X)) = X = EXP (LOG (X))

Дає найбільше ціле число, яке не перевищує X, т

е таке ціле число N, що N ≤ X

Дає натуральний логарифм X аргумент X повинен бути позитивним Для перекладу в звичайний логарифм (по підставі 10) користуйтеся співвідношенням

звичайний логарифм (X) = 0434294481 * натуральний логарифм (X)

У формі RND функції ніякого аргументу не передається Ця функція повертає таке значення з послідовності псевдовипадкових чисел, рівномірно розподілених в діапазоні 0 .. 1 (Див нижче оператор RANDOMIZE) У формі RND (X) аргумент X може служити фіктивним параметром або ж використовуватися для вибору іншої послідовності випадкових чисел Деталі застосування в різних системах см в наведених далі таблицях

Дає знак X згідно з такими правилами:

-1, Якщо X < 0; 0, якщо X = 0; +1, Якщо X> 0,

Дає синус X, де X задається в радіанах (див також

ATN, COS)

SQR (X) Дає невідємне значення квадратного кореня з X аргумент X повинен бути позитивним або рівним 0

TAN (X) Дає тангенс X, де X задається в радіанах (див також

SIN, ATN, COS)

Примітка RANDOMIZE N, де N – константа або змінна являє собою оператор, а не функцію і використовується для того, щоб функція RND видавала іншу послідовність випадкових чисел

При користуванні функціями з табл 31 можуть бути корисні наступні тригонометричні тотожності:

tg(x)=sin(x)/cos(x)                                   ctg(x)=cosx(x)/sin(x) 63

Так як з зворотних тригонометричних функцій у число стандартних входить тільки ATN (X)

[Arctg (x)], то інші функції можна отримати з співвідношень

arccos (x)=π/2 arcsin (x)

Наведена нижче програма ілюструє застосування декількох стандартних функцій: 10 REM ЗАСТОСУВАННЯ ФУНКЦІЙ

20 PRINT &quotX&quot,&quot ABS(X)&quot,&quotINT(X)&quot,&quotSGN(X)&quot

30 FOR X=-15 TO 15 STEP 5

40   PRINT X, ABS(X), INT(X), SGN(X)

50 NEXT X

60 END

RUN

X                         ABS(X)   INT(X)            SGN(X)

-15                      15         -2                       -1

-1                         1            -1                       -1

-5                        5           -1                       -1

б 0 0

.5                         5           0                         1

1                          1            1                         1

1 5                      15         1                         1

END  AT  LINE 60

Щоб отримати необхідний формат виводу при роботі з Бейсиком ВВС, модифікуйте рядок 20 так, щоб у ній була вказана одна рядок символів з відповідним числом пробілів між заголовками:

20  PRINT &quotX    ABS (X)   INT (X)   SGN (X)&quot

У багатьох системах з Бейсиком передбачені додаткові функції в табл 32 – 34

наводяться функції, передбачені деякими з найбільш популярних версій Бейсика

Таблиця 32 Числові функції, пропоновані в Бейсике для персональної ЕОМ ZX81 фірми Sinclair

додатково до перерахованих в табл 31 стандартних функцій

Функція

Дія

ACS(X)

ASN(X) LOG

LN(X)

π

RND

Дає арккосинус X, тобто виражається в радіанах

значення кута, косинус якого дорівнює X (Див ATN в табл 31)

Дає арксинус X, тобто виражається в радіанах значення кута, синус якого дорівнює X (Див ATN в табл 31) Такої функції в даній версії Бейсика немає її замінює функція LN

Дає натуральний логарифм X (Див LOG в табл 31) Ця функція не має аргументу Дає значення константи π = 3141592654

Дає значення наступного представника

послідовності випадкових чисел Аргументів не має Оператор RAND N забезпечує перехід до нової послідовності випадкових чисел

Таблиця 33 Числові функції, пропоновані в Бейсике Microsoft додатково до перелічених у

табл 31 стандартних функцій

Функція

Дія

CDBL(X)

CINT(X)

CSNG(X#) FIX(X)

RND(X)

або RND

Перетворює стандартне дійсне значення X в

значення подвійної точності Наприклад: в результаті виконання оператора

А # = CDBL (45467)

змінна А # отримає значення подання числа

45467 з підвищеною точністю

Перетворює стандартне дійсне значення Х в ціле число (викликає ті ж дії, що і функція INT) Врахуйте, що при цьому X має бути в діапазоні +32767

Перетворює значення подвійної точності Х # в стандартне дійсне значення

Відкидає дробову частину у числа X Еквівалентна висловом SGN (X) * INT (ABS (X)) і збігається з INT (X) при позитивному X

Дає наступне випадкове число зі значенням між 0 і 1 При X < 0 забезпечує перехід до нової послідовності; при X = 0 знову дає значення попереднього випадкового числа. Якщо X> 0 або опущено, то дає значення наступного випадкового числа Для переходу до нової послідовності випадкових чисел можна користуватися також оператором RANDOMIZE N

Таблиця 3 4Числові функції, пропоновані в Бейсике ВВС додатково до перерахованих в табл 31 функціям

Функція

Дія

ACS(X)

ASN(X)

DEG(X) LN(X)

LOG(X)

RAD(X)

RND (1)

RND (0) RND(-K)

RND(N) RND

Дає арккосинус X, тобто виражається в радіанах

значення кута, косинус якого дорівнює X (Див ATN в табл 31)

Дає арксинус X, тобто виражається в радіанах значення кута, синус якого дорівнює X (Див ATN в табл 31) Перекладає значення X з радіан в градуси

Дає натуральний логарифм X Еквівалентна функції

LOG з табл 31

Дає звичайний (десятковий) логарифм X Зверніть увагу на цю відмінність від стандарту, наведеного в табл 31

Перекладає значення X з градусів в радіани

Дає наступне випадкове число зі значенням між

00 і 0999999

Дає значення попереднього випадкового числа,

отриманого за допомогою RND (1)

Негативне значення аргументу викликає перехід до нової послідовності випадкових чисел (як у випадку оператора RANDOMIZE) і повернення цього значення як результату

При позитивному цілому N дає випадкове ціле число в діапазоні 1 .. N

За відсутності аргументу повертає випадкове ціле число в діапазоні ± 2147483647 (діапазон машинного представлення цілих чисел 32 бітами)

У наведеній нижче програмі для перевірки, чи ділиться одне число на інше без остачі, використовується функція INT (ціла частина) Якщо поділ остачі має місце, то N1/N2 = ціла частина (N1/N2):

10 INPUT А, В

20 D=A/B

30 IF INT(D)&lt&gtD THEN 60

40 PRINT А ДІЛИТЬСЯ націлився на У

50   GOTO 70

60 PRINT A HE ДІЛИТЬСЯ націлився на; У

70 END RUN

?9612

96 ДІЛИТЬСЯ націлене на 12

END AT LINE 70

RUN

?214

21 HE ДІЛИТЬСЯ націлене на 4

END AT LINE 70 66

Структограмма цієї програми така:

Прості числа вже багато років є обєктом дослідження Що обговорювалася вище

програма надає певні можливості для вирішення питання, чи є дане число простим чи ні Простим називається таке ціле (позитивне) число, у якого немає інших дільників, крім одиниці і самого себе Наступна структограмма ілюструє програму, що визначає, чи є вводиться значення змінної А простим

Сама програма така:

10 REM ПРОГРАМА ДЛЯ ПЕРЕВІРКИ простота ЧИСЛА га INPUT A

30   FOR B=2 TO A-1

40       D=A/B

50       IF INT(D)&lt&gtD THEN 80

60 PRINT A HE є простим числом

70            STOP

80 NEXT В

90 PRINT А Є простим числом

100   END

Хоча та частина, яка відповідає за перевірку перших дільника, наскільки змінилася порівняно з попередньою програмою, проте і структу-

грама, і текст останньої програми ясно показують, як попередня програма використовується в якості блоку всередині великої програми

341 ВИПАДКОВІ ЧИСЛА

Генерація випадкових чисел вимагає деяких розяснень, оскільки майже в кожній системі реалізація функції RND має свої специфічні особливості Ця функція використовується досить широко: багато ігрові програми і емулятори застосовують випадковий порядок вибору елементів даних ЕОМ не мають генераторів дійсно випадкових чисел (такі генератори повинні реалізовуватися апаратно) і генерують числа програмно, використовуючи рекурентні формули Хоча ці числа лише селестічні, зазвичай вони утворюють цілком прийнятні послідовності Найчастіше випадкові числа знаходяться в діапазоні 0 . 1, але бувають і винятки Наприклад, в Бейсике ВВС передбачено кілька варіантів (див табл 34)

Основна особливість функції RND полягає в тому, що при кожному зверненні до неї виходить інше значення Нижче наводиться приклад простої програми (у Вашій системі може вийти інша послідовність випадкових чисел):

10 REM ПРОСТІ ВИПАДКОВІ ЧИСЛА

20 FOR I = 1 ТО 8

30   X=RND

40   PRINT I,X

50 NEXT I

60 END

При роботі з Бейсиком ВВС для отримання потрібного формату виводу замініть рядок 40 на оператор

40 PRINT I, Х

Оскільки числа генеруються за формулою, завжди починаються з одного й того ж стартового значення, то при кожному запуску програми командою RUN вийде одна і та ж послідовність Виняток становить Бейсік ВВС, при роботі з яким послідовність випадкових чисел продовжується до тих пір, поки не буде ініційована заново Хоча відновлення послідовності випадкових чисел при кожному запуску програми і зручно для тестування і налагодження програми, воно мало прийнятно при експлуатації програми Зазвичай алгоритм генерації випадкових чисел

спирається на стартове породжує значення, яке може бути змінено оператором RANDOMIZE, або викликом RND (X) з відємним значенням аргументу X, або яким-небудь іншим способом (Див табл 31 – 34) Після цього генерується нова послідовність псевдовипадкових чисел Нижче наводяться приклади ініціації нової послідовності для різних систем:

100   RANDOMIZE 92 100   RAND 4 100  X=RND (-42)

Якщо додати в наведений вище простий приклад введення значення і перевстановлення з його допомогою генератора випадкових чисел, то вийдуть наступні результати:

35 ФОРМАТ ВИВЕДЕННЯ ДАНИХ

У цьому розділі мова піде про ті можливості управління форматом виводу даних, яких цілком достатньо при написанні програми для роботи в режимі діалогу Якщо ж потрібно друкувати важливі таблиці і звіти, то додатково можуть знадобитися засоби управління шириною стовпців і форматами виводу чисел Такі можливості надаються оператором PRINT USING, обговорюваним в розд 63 Подібні можливості управління забезпечуються в Бейсике ВПС і іншим шляхом (див наступний підрозділ)

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*