Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lr_hw_IZDN.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
1.12 Mб
Скачать

Контрольні запитання

  1. Що таке підпрограма, яке її призначення?

  2. Що таке аргумент підпрограм?

  3. Наведіть типи підпрограм.

  4. Опишіть способи передачі значень у закриту підпрограму.

  5. Опишіть способи повернення значень з закритої підпрограми.

  6. Дайте порівняльну характеристику закритих та відкритих підпрограм (переваги та нестатки).

  7. Що таке незалежна компіляція?

  8. Що таке перевантаження підпрограм?

Література: [1]; [4]; [5]; [6]; [7].

Додаток 1

Напередвизначені типи

Напередвизначені типи – Паскаль (табл. 1, 2)

Таблиця 1

Індикатор типу

Діапазон подання значень

Цифри мантиси, що значать

Розмір значення в байтах

Приклад зображення

Цілі

Shorting

-128…127

-

1

-23

Integer

-32768…32767

-

2

+1567

Longint

-2147483648…2147483647

-

4

-1234567

Byte

0…255

-

1

157

Word

0…65535

-

2

35678

Символьні

Сhar

Значення ASCII

-

1

‘a’

Дійсні

Single

от 1.5*10-45 до 3.4*1038

7…8

4

3.4Е+5

34.5

8.5е-5

Real

от 2.9*10-39 до 1.7*1038

11…12

6

-"-

Double

от 5.0*10-324 до 1.7*10308

15…16

8

-"-

Extended

от 3.4*10-4932 до 1.1*104932

19…20

10

-"-

Comp

от -2-63+1 до 263 -1

19…20

8

1.235е-30

Вказівні

рointer (адресний) - нетипізований

-

-

4

$0000:$FF00

^<індикатор типу> (посилковий) – типізований

-

-

4

-

Таблиця 2

Індикатор типу (логічні)

Значенню False відповідає

Розмір значення в байтах

Boolean

число 0

1

ByteBool

число 0

1

WordBool

Число 0 в усіх байтах

2

LongBool

Число 0 в усіх байтах

4

Операції над значеннями напередвизначенихтипів – Паскаль (табл. 3)

Таблиця 3

Типи операндів

Тип результату

Позначка

Семантика

Арифметичні унарні

цілий

дійсний

цілий

дійсний

+

збереження

знаку

цілий

дійсний

цілий

дійсний

-

заперечення

знаку

Арифметичні бінарні

цілий

дійсний

цілий

дійсний

+

додавання

цілий

дійсний

цілий

дійсний

-

віднімання

цілий

дійсний

цілий

дійсний

*

множення

Арифметичні бінарні

цілий

дійсний

дійсний

дійсний

/

ділення

цілий

цілий

div

цілочисельне

ділення

цілий

цілий

mod

залишок від

ділення

Відношень

скалярний

вказівний

булевський

=

дорівнюється

скалярний

вказівний

булевський

<>

не дорівнюється

скалярний

булевський

<

менше

скалярний

булевський

>

більше

скалярний

булевський

<=

менше або дорівнюється

скалярний

булевський

>=

більше або дорівнюється

Логічна унарна

булевський

булевський

Not

логічне заперечення

Логічні бінарні

булевський

булевський

And

логічне І

булевський

булевський

Or

логічне АБО

булевський

булевський

xor

логічне АБО,

що виключає

Бітова унарна

цілий

цілий

not

порозрядне

заперечення

Бітові бінарні

цілий

цілий

and

порозрядне І

цілий

цілий

or

порозрядне АБО

цілий

цілий

xor

порозрядне АБО, що виключає

цілий

цілий

shl

порозрядний зсув ліворуч

цілий

цілий

shr

порозрядний зсув праворуч

Спеціальні и базові

вказівний (посилковий)

будь-який

^

одержання значення вмісту (розіменування)

будь-який

вказівний, сумісний з nill

@

одержання значення iмені (взяття адреси)

будь-який

цілий

sizeof

одержання розміру пам'яті, що займається значенням типу

індикатор скалярного типу

скалярний

high

одержання максимального значення типу

індикатор скалярного типу

скалярний

low

одержання максимального значення типу

скалярний

скалярний

ord

одержання порядкового номеру значення в диапазоні типу

Напередвизначені типи - Сі (Сі++) (табл. 4)

Таблиця 4

Індикатор типу (цілі)

Діапазон подання значень

Розмір значення в байтах

Приклад зображення

Логічні

Bool (С++)

False, true

1

False, true

Символьні

Char

-128..127

1

‘a’, ‘7’, ‘*’

[signed] char

-128..127

1

23

Unsigned char

10..255

1

20, 0x1A

Цілі

int [signed]

short [int signed]

-32768..32767

2

355

int [signed] 32 p.

-2147483647.. 2147483647

4

300000000

Unsigned [int] 32 p.

Unsigned short [int]

0..65535

2

65535

Індикатор типу (цілі)

Діапазон подання значень

Розмір значення в байтах

Приклад зображення

Цілі

Unsigned [int] 32

0..4294967295

4

40000000

long [int signed]

-2147483647.. 2147483647

4

-123456L, 0x0FFFL

Unsigned long [int]

0L..429467295L

4

123456L

Дійсні

Float

3.4E-38.. 3.4E+38 –3.4E-38..-3.4E+38

4

2.78, 1.3E5

Double [long float]

1.7E-308.. 1.7E+308 –1.7E-308.. –1.7E+308

8

12.67, 45.7E+76

[long] double

3.4E-4932.. 3.4E+4932

-1.1E4932.. –3.4E+4932

10

8.5e-3000

Вказівні

void* (адресний)- нетипізований

-

4

-

<індикатор типу> (посилковий)- типізований

-

4

-

Операції над значеннями напередвизначених типів – Сі (табл. 5)

Таблиця 5

Тип

Позначка

Семантика

Синтаксис

операндів

результату

Арифметичні

скалярний

скалярний

+

унарний плюс

x = + y

скалярний

скалярний

-

унарний мінус

x = - y

скалярний

скалярний

+

додавання

z = x + y

скалярний

скалярний

-

віднімання

z = x - y

скалярний

скалярний

*

множення

z = x * y

скалярний

скалярний

/

ділення

z = x / y

цілий

цілий

%

ділення за модулем (залишок)

z = x % y

Відношень

скалярний вказівний

цілий – 0/1 (boolean)

<

менше ніж

(i < j)

скалярний вказівний

цілий – 0/1 (boolean)

<=

менше або рівно

(i <= j)

скалярний вказівний

цілий – 0/1 (boolean)

>

більше

(i > j)

скалярний вказівний

цілий – 0/1 (boolean)

>=

більше або рівно

(i >= j)

скалярний вказівний

цілий – 0/1 (boolean)

==

рівно

(i == j)

скалярний вказівний

цілий – 0/1 (boolean)

!=

не рівно

(i != j)

Логічні

скалярний вказівний

цілий – 0/1 (boolean)

&&

логічне І

((i >0) && (i <10))

скалярний вказівний

цілий – 0/1 (boolean)

||

логічне АБО

((i == 0) || (i > 0))

скалярний вказівний

цілий – 0/1 (boolean)

!

логічне НІ

! ((i == 0) ||

(i > 0))

Маніпулювання бітами

дискретні

дискретні

&

And

(i & 128)

дискретні

дискретні

|

Or

(i | 64)

дискретні

дискретні

^

Xor (АБО, що виключає)

(i ^ 23)

дискретні

дискретні

~

not

(~ i)

дискретні

дискретні

<<

побітовий зсув ліворуч

(i << 2)

дискретні

дискретні

>>

побітовий зсув праворуч

(i >> 5)

Базові і спеціальні

вказівний (посилковий)

будь-який

*

одержання вмісту (розіменування)

*pPointer

будь-який

вказівний, сумісний з* nill

&

взяття адреси

&pPointer

будь-який

цілий

sizeof

одержання розміру пам'яті значення

sizeof (int)

Примітка.-1-true, -0-false; <<-вільні біти заповнюються 0, >>- вільні біти заповнюються 0/1 (знаком).

Додаток 2

Структура тексту програми на лексичному рівні

а) Коментарі.

Паскаль:

Текст, довжиною у декілька строчок

{ }

Текст, довжиною у декілька строчок

( * * )

Сі:

Текст, довжиною у строчку

/ /

Текст, довжиною у декілька строчок

/ * * /

б) Пробільні символи.

<пробільні символи>::=<табуляція, ASCII 09 >| <пробіл, ASCII 10>| <перевід строки, ASCII 10>| <вертикальна табуляція, ASCII 11>| <нова сторінка, ASCII 12>|<повернення каретки, ASCII 13>

в) Позначки.

Напередвизначені позначки

- напередвизначені зарезервовані позначки

Паскаль:

<позначки>::=and|asm|array|begin|case|const|div|do|downto|else|end|file|for|function|goto|implementation| in|inline|interface|mod|not|nil|of|or|program|procedure|record|repeat|set|shl|shr|string|then|to|type|uses|varfile|while|with|xor

Сі:

<позначки>::=asm|auto|break|case|char|const|continue|default|delete|do|double|else|enum|extern|float|for|goto|huge|if|inline|int|long|new|public|register|return|short|signed|sizeof|static|struct|switch|template|this|union|unsigned|void|volatile|while

-стандартні позначки

позначки (індикатори) напередвизначених типів

Паскаль:

<позначки(індикатори)>::=Shorting|Integer|Longint|Byte|Word|Single|Real|

Extended|Comp|Boolean|ByteBool|WordBool|LongBool|Char|String|Pchar|Pointer|

Text

Сі:

<позначки(індикатори)>::=char|double|float|int|long|short|signed|unsigned|void

позначки операцій

Паскаль:

<позначки операцій>::= +|-|*|/|div|mod|=|<>|<|>|<=|>=|not|and|or|xor|shl|shr|^|&|sizeof

Сі :

<позначки операцій>::= ->|++|--|&|*|+|-|~|!|sizeof|%|>>|<<|

<|>|<=|>=|==|!=|^||||&&|/=|

позначки розподілювачів

Паскаль:

<позначки розподілювачів>::=’|(|)|,|.|/|;|[|]|{|}|#|$|..|

Сі:

<позначки розподілювачів>::=’|(|)|,|.|\|;|[|]|{|}|#|”|

-зображення

Паскаль:

<зображення>::=Nil | False | True

Сі:

<зображення>::=NULL

Позначки, що визначаються

ідентифікатор

П аскаль, Сі:

ідентифікатор:

< цифра>::=0|1|2|3|4|5|6|7|8|9

<буква>::=A|B|..|Z|a|b|..|z

Зображення значень напередвизначених типів - Паскаль

шістнадцяткова цифра::=A|B|C|D|E|F|<цифра>

<цифра>::=0|1|..|9

<знак>::=+|-

ц

Послідовність

цифр

Послідовність

шістнадцяткових

цифр

ілі без знаку:

$

ціле зі знаком:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]