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

Страницы:
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 

{Так не можна!!!}

 

t  := i + r

;   {Так можна !!!}

 

Ось чому потрібно уважно стежити за співпаданням типів у виразах ТП (табл. 8.22).

Таблиця. 8.22

Уявлення цілочисельних даних

Вид

 

 

 

 

уявлення даних

Уявляються

Приклади запису

 

Константи

Числами

1

-256

10000

 

Текстом (стрінгами)

'64'

'-127'

'10000'

Змінні

Іменами

Irez2

NextFunk

IOrect

Функції

Зарезервованими іменами функцій з

pred (5)

succ (Irez2)

sqr(4)

 

потрібними типами аргументів

trunc (0.2З9)

abs(-75)

ord (З2)

Константи, змінні і функції цілих типів об'єднуються у вирази знаками арифметичних операцій (+, -, *, div (цілочисельне ділення), mod (залишок від цілочисельного ділення)). У виразах у першу чергу виконуються операції у дужках (рос. - скобках), потім операції типу множення (*, div, mod), а потім (+, -). Операції (*, div, mod) виконуються послідовно (табл. 8.23).

Таблиця. 8.23

Виконання обчислень у цілочисельних виразах_

Тип даних у виразу

Вираз

Арифметичний -(З+6 mod 8)+125 div 5 mod 4*2 цілий

Частковий вираз

Результат

 

6 mod 8 =

З + 0 = - (З) =

125 div 5 =

25 mod 4 = 1 * 2 =

+ 2 =

Результат

0

З

- З

25

1

2 -1

-1

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

Таблиця. 8.24

Типи цілочисельних даних і їх величини

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

Назва типу

Діапазон значень чисел

1

Byte

0 ... 255

1

ShortInt

-128 ... +127

2

Word

0 ... 65535

2

Integer

-32768 ... +32767

4

Longint

-2 147 483 648 ... +2 147 483 648

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

Таблиця 8.25

_Вбудовані функції для роботи з цілочисельними даними_

Найменування функції чи процедури

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

Abs(X:integer): integer;

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

Sqr(X: integer): integer;

- обчислює квадрат аргументу Х

Round(X:real):integer;

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

Trunc(X:real):integer;

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

Randomize

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

Random(Range :Word);

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

О^значення перелічено­го типу і у тому числі, цілого) : integer;

- повертає номер елемента у послідовності значень аргументу

Р^(значення перелічено­го типу і у тому числі, цілого):иП^єг;

- повертає номер попереднього елемента у послідовності

Succ(значeння переліченого типу і у тому числі, цілого):иП^єг;

- повертає номер наступного елемента у послідовності

Inc(X [,k]); - процедура

- якщо присутній тільки аргумент X, то віднімає від нього одиницю. Якщо присутні X і k, віднімає від X значення k.

Dec(X [,k]); -процедура

- якщо присутній тільки аргумент X, то додає до нього одиницю. Якщо присутні X і k, додає до X значення k.

Для цілих чисел та інших порядкових типів справедливі такі співвідношення:

Ого!(х)-1 = Ого!(Ргео!(х)),  Ого!(х)+1 = Ого(Бисс(х)).

Приклади:

Var

 

j, i, k, p, n,

m : integer;

Begin

 

j   := 23;  i :=

5;

k  := pred(23);

{k набуває значення 22}

p  := succ(k)

+ ord(i);   {p набуває значення 23+5=28}

dec(j,i); {j

набуває значення 23-5=18}

ink(k); {k

набуває значення 22+1=23}

m := sqr(2

)div pred(i);   {m набуває значення 4/4=1}

end.

Коли Ви починаєте вирішувати задачу, то повинні чітко розуміти, які типи даних будете використовувати, бо від цього залежать:

О типи даних, що обираються і приймають участь у обчисленнях (integer, byte, word,  real,  extended, boolean та ін.);

в припустимі операції над змінними у виразах з даними цих типів (+, -, *, /, div, mod, and, or та ін.);

© типи кінцевих значень виразів з обраними даними;

О результати обчислень, що повертають вбудовані функції. Бо деякі з них повертають результати, що залежать від типу аргументів.

Таким чином:

О Неприпустимо пересилати за допомогою оператора привласнення дані одного типу до змінної іншого. Наприклад, неможливо заслати логічне значення True у цілу чи дійсну змінну Rez.

в Неприпустимо у виразах зі змінними одного типу, застосовувати операції і функції, що належать до інших типів.

Наприклад, у цілу змінну Irez неможливо переслати результат дійсної операції (/):

Irez 2  / cos(0.5) ;

© Неприпустимо змішувати у виразах дані (константи і змінні) різних типів.

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

Irez    :=   40 div 4.0 ;

Але можливо переслати до логічної змінної результат операції порівняння, бо це є логічне значення.

Brez     :=     (5 >= 2) ;

Вправи

1. Які числа звуться цілими?

2. Які Ви знаєте цілочисельні вбудовані функції?

3. Чому не можна заносити (привласнювати) значення типу real до типу integer?

4. Виконайте наступні дії з цілочисельними даними. Перевірте свої обчислення на комп'ютері. Значення вхідних даних завдайте самі.

а) A div Y;

б) A mod A;

в) (А+  Y)   div   (A - Y);

г) + Y)   mod (Y);

д) A div 10;

ж) A div 1000;

з) A mod 1000; і) A div 100 к) A mod 100;

л) A mod 2 ;

е) A mod 10;

м)(A mod 10)*( (A mod 10)  mod 2) .

8.11. Логічні типи даних (Boolean). Операції і вбудовані функції роботи з ними. Конструювання логічних виразів для формування логіки роботи програм на основі п'яти рівнів абстракції

Одним з найбільш важливіших для конструювання логіки програми та організації вибору тих чи інших блоків обчислень у залежності від деяких обставин є логічний тип даних, що у ТП має назву Boolean. Він характеризується тільки двома конкретними значеннями:

0 (False - неправда);

1 (True - правда)

кожне з яких займає у пам'яті ПК лише один байт. Логічні змінні та їх значення розцінюються компілятором у програмах таким чином (у такому контексті):

О у логічних виразах, як значення True та False;

в у цілочисельних виразах та у результатах виконання вбудованих функцій роботи з порядковими типами (ord, succ, pred), як значення 0 або 1.

У виразах логічні дані використовуються у вигляді: О констант; в змінних;

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

Таблиця 8.26

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

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

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

Ord (значення порядково­го типу і у тому числі, цілого) : integer;

- повертає номер елемента у послідовності значень аргументу

Ord(False)  = 0,  Ord(True  )  = 1

Pred (значення порядково­го типу і у тому числі, лoгiчнoгo):integer;

- повертає номер попереднього елемента у послідовності:

Pred  (True  )  = False

Succ (значення поряд­кового типу і у тому числі, логічного):иїг^єг;

- повертає номер наступного елемента у послідовності:

Succ   (False)  = True

Odd (значення цілого типу): boolean;

- повертає значення True, якщо значення цілого непарне (рос. - нечётное), і значення False, якщо воно парне (рос. - чётное):

Odd  (-2)   = False,  Odd  (-1)   = True, Odd  (0)   = False,

Odd (1) = True, Odd (2) = False, Odd (3) = True, Odd (4) = False і так

далі.

Зверніть увагу на те, що логічні значення у програмі Ви можете

отримувати у результаті порівняння характеристик і значень різних об'єктів.

Наприклад, небо синє, або ні; дощ йде або, ні; дощ сильний, або ні; 1 менше 5, або ні і так далі. Але для комп'ютера такі загальні характеристики невідомі (синій, сильний, смачний і т. ін.). Для ПК потрібно усі ці характеристики відображати чисельно. Наприклад, не існує логарифма негативного (рос. - отрицательного) числа. Тому, перед обчисленням логарифма у Вашій програмі, якщо Ви бажаєте щоб вона була універсальною, потрібно перевірити, від якого числа Ваша програма буде його обчислювати. Для цього потрібно порівняти вхідне числове значення з нульовим (значенням). Цей конкретний факт не обмежує безліч можливих ситуацій, які Ви повинні будете програмувати. Тому у мові ТП є спеціальні операції порівняння або відношення (табл. 8.27).

Таблиця 8.27

_Операції порівняння мови ТП_

Математичне позначення операцій порівняння

=

 

Позначення цих операцій у мові Турбо Паскаль

=

<> 

 

 

Операції порівняння поєднують об'єкти порівняння (константи, змінні та вирази) у прості і складні логічні вирази, але одна змінна (константа, вираз) може поєднуватися лише однією операцією порівняння лише з однією змінною (константою, виразом)! Тобто не можна писати 0<x<9. Але, вірними простими логічними виразами з точки зору конструкцій мови ТП можуть бути такі:

5 < 1  {Завжди має значення False}

x >= 4 {При х > 4 цей вираз має значення True}

a <=  'f' {При опису змінної a символьним типом (var a  :  Char;) і привласненні a значення літери d (а:='^;) вираз a < 'f' має значення True} (x*x - b)  <> 0 {Має значення True, якщо значення виразу (x2-b) ф 0}

Але, якщо Вам потрібно сконструювати складний логічний вираз, то прості логічні вирази Ви повинні об'єднувати у складні за допомогою логічних операцій (таблиця 8.28).

Таблиця 8.28

_Логічні операції_

№ п/п

Назва операції

Математичне позначення

Позначення у ТП

1.

Заперечення (рос. - отрицание)

 

NOT

2.

Логічне    множення,    І    (рос. -логическое умножение, И)

л

AND

3.

Логічне  додавання, АБО  (рос. -логическое сложение, ИЛИ)

v

OR

4.

АБО,    що    виключає    (рос. -исключающее ИЛИ)

е

XOR

Логічними операціями (NOT, AND, OR та XOR) звуться операції, котрі можуть виконуватися з логічними константами, змінними, виразами та значеннями (True або False).

Результати виконання вищевказаних логічних операцій з двома операндами (змінними) А та В, що мають у різних поєднаннях значення True і False,   наведені у таблиці 8.29.

Таблиця 8.29

Результати виконання логічних операцій NOT, AND, OR та XOR

Логічні аргументи, що

приймають різні значення True і False

Результат виконання відповідних логічних операцій з різними комбінаціями значень аргументів А і В

A

B         NOT A

A AND B

A OR B

A XOR B

False

False True

False

False

False

False

True True

False

True

True

True

False False

False

True

True

True

True False

True

True

Страницы:
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 


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

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