Б С Бусигін - Прикладна інформатика - страница 29

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83 

Константи, змінні і функції дійсних типів об'єднуються у вирази знаками арифметичних операцій (+, -, *, /). У виразах дійсного типу можуть бути присутні об'єкти, які уявляються цілими числами. Дійсні константи відображаються у двох формах: з фіксованою точкою та у експоненціальній формі (табл. 8.18). Експоненціальна форма уявляє число у вигляді цілої і дробової його частин, що помножені на основу 10 у цілій степені.

21 Мантиса - дробова частина числа, що записується у експоненціальній формі (див. далі)

219

Таблиця 8.18

Різні форми уявлення дійсних чисел

Число з фіксованою точкою

 

Воно ж у експоненціальній формі (інші назви: напівлогарифмічна форма або з плаваючою точкою)

1.0

=

1.00000000000Е+00

0.0000001

=

1е-7 = 1.0Е-7

456.437

=

4.56437Е+02 = 456.43Е0

-0.0256

=

-2.56Е-2

У мові Турбо Паскаль не допускається (!), щоб число дійсного типу:

- починалося з точки (.15 - невірно!);

- кінчалося точкою (29. - невірно!);

- не мало значення порядку після покажчика порядку літери Е (6.11Е - невірно!);

- мало би унарний знак перед покажчиком порядку літери Е (-54.99+Е - невірно!).

Дійсне  число   (константа)  з   фіксованою  точкою  містить наступні

компоненти (рис. 8.27) ,_

5.1465927364

Ціла частина числа

Розподільна точка

Дробна частина

Рис. 8.27 Складові числа з фіксованою точкою

Для числа у експоненціальній формі, тобто з плаваючою точкою, складові числа такі (рис. 8.28):

51.465927364Е-02

ч_ _у

Значення порядку

Знак порядку

Символ Е відзнаки порядку

Мантиса числа

Плаваюча точка, що відділяє цілу частину мантиси від дробової

Ціла частина числа

Рис. 8.28. Складові частини числа дійсного типу з плаваючою точкою (так звана експоненціальна або логарифмічна форма запису)

Назва "число з плаваючою точкою" виникла тому, що її можна пересувати поміж цифрами у числі, змінюючи відповідно показник ступеню числа, тобто порядок. Таким чином, рівнозначні поміж собою такі форми запису числа:

5.1465927664 Е-2 = 514.65927664 Е-4 = 0.051465927664

Точність відображення числа дійсного типу залежить від місця у пам'яті ПК, що відводиться для його розташування (для його цифр, що мають

значення) (табл. 8.19).

Таблиця 8.19

_Границі змін значень дійсних чисел для різних описів_

Довжина, байт

Назва типу

Кількість значущих цифр

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

4

Single

7..S

10^5 ... 10+ 3S

6

Real

11..12

-10+39 ... 10+ 3S

S

Double

15..16

-10+324 ... 10+ 30S

10

Extended

19..20

10+4951 4932

S

Comp

19..20

-2 • 10-63 + 1 ... 2 • 10+ 63 - 1

У виразах дійсного типу можливо використовувати наступні арифметичні функції, що вбудовані у мову ТП (таблиця 8.20). Треба звернути увагу на те, що у дужках вказані типи аргументів, а за дужками - тип результату роботи цих функцій.

Таблиця 8.20

_Вбудовані арифметичні функції мови ТП_

Найменування ф-ції

Дії, що виконуються

Abs(X:real):real;

- абсолютне значення аргументу ( |x| )

ArcTan(X:real):real;

- арктангенс аргументу (arctg x)

Cos(X:real):real;

- косинус аргументу (cos x)

Exp(X:real):real;

- експонента аргументу, тобто е .

Frac(X:real):real;

- дробна частина аргументу

Int(X:real):real;

- ціла частина аргументу

Ln(X:real):real;

- натуральний логарифм (ln x)

Pi

- значення Pi=3.141592653.......

Sin(X:real):real;

- синус аргументу (sin x)

Sqr(X:real):real;

- квадрат аргументу (x2)

Sqrt(X:real):real;

- корінь квадратний аргументу (Vx)

Round(X:real):Integer;

- округлення дійсного числа X до найближчого цілого

Trunc(X:real):Integer;

- округлення дійсного числа X до цілого з відкиданням

Randomize

- ініціалізує     випадкове     значення вбудованого

Random(Range: Word);

- якщо параметр Range відсутній функція повертає дійсне число у діапазоні від 0 до 1;

- якщо параметр Range вказаний - то ціле число у діапазоні від 0 до значення (Range-1)

Так як список функцій у Турбо Паскалі дещо обмежений, користувач може самостійно конструювати деякі важливі і часто потрібні у роботі функції. Наприклад, оскільки у ТП немає функцій tg x i ctg x, потрібно виразити їх за допомогою функцій sin x i cos x, наприклад так:

sin x

tgx =-,   ctg x

= cos x = 1

(S.2)

cos x

sin x    tg x

А коли у програмі буде потрібно обчислити, припустимо, значення цих функцій від аргументу 0.6, на мові ТП ці вирази запишуться так:_

zntg  := sin(0.6)/cos(0.6); znctg  := cos(0.6)/sin(0/6);

Тобто у змінні гг^д і гпс^д будуть занесені значення відповідних тангенса і котангенса від константи 0.6.

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

Таблиця 8.21

Додаткові функції, що може описати користувач

Алгоритм реалізації ф-ції

Дії, що виконуються

Tan(X:real)=sin(x)/cos(x)

- tg х

Ctg(X:real)=cos(x)/sin(x)

- х

Arcsin(X:real)=Arctan(x/sqrt(1-x*x))

- арксинус х (для (х <1)

Arccos(X:real)=Pi/2-Arctan(x/sqrt( 1 -x*x))

- арккосинус х

PowerA(X:real)=exp(x*Ln(A))

- А (дійсна степінь числа А)

LogA(X:real)=Ln(x)/Ln(A)

- логарифм значення х з будь якої основи А - 1пАх (а>0, х>0)

ArcCot(X:real)=Pi/2-Arctan(x)

- арккотангенс х

ArcCsc(X:real)=Arctan(1/sqrt(x*x-1))+(Sgn(x)-1)*(Pi/2)

- арккосеканс х (АЬб(х)>=1)

Sgn(X:real)={ 1, якщо x>0; 0, якщо x=0; -1, якщо x<0}

- функція знаку

ArcSec(X:real)=ArcTan(Sqrt(x*x-1)+(Sgn(x)-1)*(Pi/2)

- арксеканс х (АЬб(х)>=1)

Cosh(X:real)=(exp(x)+exp(-x))/2

- гіперболічний косинус х

Csc(X: real)=1/sin(x)

- косеканс х (х не дорівнює 0)

Sec(X:real)=1/cos(x)

- секанс х (х не дорівнює Рі/2)

У загальному вигляді взаємодія змінних, констант і функцій у виразі може бути представлена так (рис. 8. 29).

Re z := 2.0 * sin (x) / Z min ;

А Д

А Л і

Змінна Zmin типу Real, що має дійсне значення

Знак операції дійсного —І розподілу

Змінна Х що має значення 0.6

Стандартна функція віп(), яка обчислює синус значення аргументу дійсного типу 0.6, який розташований у змінній Х

Знак операції множення

Дійсна константа 2.0

-"V-

Загальний результат обчислення, що має дійсний тип

Оператор привласнення, тобто занесення значення дійсного типу виразу у змінну, що розташована зліва від оператора :=

Змінна дійсного типу, що приймає значення обчисленого виразу дійсного типу

Рис. 8.29. Відповідність типів даних, констант, функцій і операцій у виразах до загального обраного дійсного типу даних (Real)

Вправи

1. Знайти периметр і площу паралелограма зі сторонами а, Ь і кутом між ними а. При обчисленні використовувати формулу: £ = а ■ Ь ■ бій а.

2. Знайти внутрішній кут а і суму внутрішніх кутів правильного опуклого

п-косинця. При обчисленні використовувати формули: а = п-2 , я = піп - 2) .

п

3. Знайти обсяг і площу поверхні прямого паралелепіпеда зі сторонами а, Ь

і с.

4. Знайти середню лінію і площу трапеції, якщо відомі її основа і висота.

5. Дано координати трьох вершин трикутника А(х ьу 1), В(х 2,у 2) і З(х 3,у3). Знайти середини його сторін. При обчисленні використовувати формули:х=-—^— , У=—2— ' де М(х,у) - середина відрізка ЛБ, заданого точками

А(Х !,у !) І Б(Х 22).

6. Дано координати трьох вершин трикутника Л(х ьу і), В(х 2,у 2) і З(х 3,у3). Обчислити периметр трикутника. Для обчислень скористайтеся формулою     відстані     між    двома    точками    Л(х і,уі)     і Б(х2,у2):

4=4і - Х2)2 + і - У2)2.

7. На площині дана пряма рівнянням Лх+Бу+С=0 і точка М с координатами   (х і,уі).    Знайти   відстань   сі   від   крапки   до прямої:

А х + В- х + С

4=-,        2-.

л/А2 + В2

8. Дано два вектори а (хі,уі)і Ь (х2,у2) і кут ер між ними (у градусах).

Знайти скалярний добуток векторів по формулі:

a, b v ) a

cosp.

9. Дано два вектори а (хі,уі)і Ь (х2,у2). Знайти кут ер між ними. При

обчисленні використовувати формули: a, b

a

a =

4X + У

10. На площині дані дві прямі лінії: y=k ix+bi і y=k2x+b2 . Знайти кут ер між

k - к

прямими, скориставшись формулою: tgep = —--.

11. Обчислити кути трикутника, сторони якого задані рівняннями прямих:

y=k1x+b1, y=k2x+b2 і y=k3x+b3 . Для обчислень скористатися формулою:

k2 - k1

tgq> = —--, де k1 і k2 - коефіцієнти прямих, заданих рівняннями y=k 1x+b1 і

y=k2x+b2 , а ер - кут між ними.

12. Написати програму для обчислення площі бічної поверхні 5бок = 2nrH

й обсягу V = пГ H циліндра по заданим радіусі підстави г і висоті H. Відповідь вивести двічі: у стандартному виді і з заданою шириною поля висновку.

13. Написати  програму  для  розрахунку  часу   t = —0   і дальності

Я

l = V0t COS а польоту снаряда, що вилетів зі стовбура знаряддя з початковою швидкістю Vg під кутом а до обрію. Прискорення вільного падіння g= 0,8

Відповідь вивести двічі: у стандартному вигляді і з заданою шириною поля висновку.

8.10. Цілочисельні типи даних (Integer).

Операції та вбудовані функції роботи з ними.

На рівні з дійсними типами даних у програмах ТП використовуються цілочисельні (рос.-целочисленные) типи даних, які у ТП мають загальну назву "Integer". Цілі числа характеризуються тим, що на відміну від дійсних записуються без точки (Наприклад, число тридцять чотири запишеться так: 34).

Цілі числа віднесені у мові Турбо Паскаль до порядкових типів даних (див. Додаток 7).

До порядкових типів також віднесені такі типи (шо розглядаються далі): О логічний (рос.-логический); в символьний (рос.-символьный); © перелічувальний (рос.-перечислимый); О тип-діапазон.

До значень кожного з цих типів може застосовуватися функція ord (x). У результаті для кожного з типів застосування функції ord  (x) дає значення: О цілий (значення цілого, тобто ord  (9) = 9);

в логічний (0-1, тобто ord(false) = 0, а значення ord(true) = 1); © символьний (0-255, тобто ord ('M') = 77, див. таблицю ASCII кодів у Додатку б);

О перелічувальний (рос. -перечислимый); © тип-діапазон (значення базового типу). У виразах цілі числа, також як і дійсні, використовуються у вигляді: О констант; в змінних;

© значень відповідних стандартних функцій (див. табл. 8.22).

Треба мати на увазі, що деякі функції (abs(x), sqr(x), random(x) з цілим аргументом) використовуються водночас і для дійсних і для цілих типів даних. Це значить, що їхні значення при обох типах аргументів можна привласнювати дійсним змінним і використовувати у дійсних виразах. Але абсолютно неможливо використовувати дійсні результати у цілочисельних виразах і привласнювати дійсні значення цілочисельним змінним.

Наприклад:

Var

 

 

r,  t  : real;

 

 

i,  j   : integer

 

 

begin

 

 

i  := sqr (З);

{і набуває ціле значення

9}

r  := sqr (3.0

)   набуває (дійсне!!!)

значення 9.0 };

j   := i + r;

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83 


Похожие статьи

Б С Бусигін - Прикладна інформатика