Лабораторна робота № 1
Лінійні програми
Мета: навчитися створювати лінійні програми.
Теоретичні відомості
Структура Pascal-програми:
Program
| Заголовок програми
|
|
Uses
| Опис модулів
| Розділ описів
|
Label
| Опис міток
|
Const
| Опис констант
|
Type
| Опис типів даних користувача
|
Var
| Опис змінних
|
Procedure
| Опис процедур користувача
|
Function
| Опис функцій користувача
|
begin
|
|
|
команда 1
| Опис алгоритму
| Алгоритмічний блок (розділ операторів)
|
……………….
|
команда N
|
end
|
|
|
Правила оформлення програм (пунктуації):
Крапка з комою не ставиться після begin і перед end, тому що ці слова є операторними дужками, а не операторами.
Крапка з комою розділяє оператори. Її відсутність між операторами викликає помилку компіляції. Наявність між операторами декількох крапок з комою не є помилкою, тому що компілятор сприймає їх як ознаку наявності порожніх операторів.
При використанні вкладених структур може виникнути ситуація:
end
end
end;
У цьому випадку крапка з комою ставиться тільки після останнього end. А наприкінці програми крапка з комою взагалі не ставиться.
В операторах циклу крапка з комою не ставиться після while, repeat, do і перед until.
В умовних операторах крапка з комою не ставиться після then і перед else.
Тип даних – це діапазон значень, що можуть приймати об'єкти програми, і сукупність операцій, які дозволяється виконувати над цими значеннями.
Усі типи даних у мові програмування Паскаль розділяються на дві групи:
ü скалярні (прості),
ü структуровані (складені).
Скалярні типи у свою чергу підрозділяються на стандартні та типи користувача. Стандартні типи пропонуються користувачам розроблювачами системи Turbo Pascal. Типи користувача – розробляються самим програмістом (у шкільному курсі ми з ними знайомитися не будемо).
До стандартних скалярних типів відносяться наступні типи:
ü цілі,
ü дійсні,
ü літерні,
ü булівські.
Величини цілихтипів можуть бути подані, як у десятковій, так і в шістнадцятковій системах. Якщо число представлене в шістнадцятковій системі, перед ним без проміжку записується знак $. Діапазон зміни шістнадцяткових чисел від $0000 до $FFFF.
Цілітипи даних являють собою значення, що можуть використовуватися в арифметичних виразах. Усі стандартні цілі типи зведені в наступну таблицю:
Тип
| Діапазон
| Необхідна пам'ять (байт)
|
byte
| 0...255
|
|
shortint
| -128...127
|
|
integer
| -32768...32767
|
|
word
| 0...65535
|
|
longint
| -2147483648...2147483647
|
|
Дійснітипи даних являють собою дійсні значення, що використовуються в арифметичних виразах і займають у пам'яті від 4 до 6 байт. Паскаль допускає представлення дійсних значень у вигляді, як із плаваючою, так і з фіксованою крапкою.
Дійсні десяткові числа з фіксованою крапкою записуються за звичайними правилами арифметики. Єдине, що відрізняє цей формат від звичного математичного це те, що ціла частина від дробової відокремлюється десятковою крапкою, а не комою. Якщо десяткова крапка відсутня, число вважається цілим. Перед числом може знаходитися знак “+” або “-“. Якщо знак відсутній, за замовчуванням число вважається додатнім.
Дійсні десяткові числа у форматі з плаваючою крапкою подаються в наступному (експоненціальному) виді:
mЕ+p,
де m – мантиса (ціле або дробове число з фіксованою десятковою крапкою),
Е – означає “десять у степені”,
р – порядок (ціле число).
Взагалі мантиса повинна бути нормалізованою, тобто представленою у вигляді числа, що належить діапазону від 0 до 1 (це означає, що крапка завжди розташовується перед першою цифрою числа). Однак програмісту дозволяється писати мантису у вигляді будь-якого дробового числа з фіксованою крапкою. Нормалізація при цьому виконується системою автоматично.
Приклад:
Число у форматі з плаваючою крапкою
| Значення числа
|
0.4500E+02
| 0.45*102=45
|
-2.600E05
| -2.6*105=-260000
|
+0.45670E-02
| 0.4567*10-2=0.004567
|
Стандартний найбільш часто використовуваний дійсний тип даних представлений у наступній таблиці:
Тип
| Діапазон значень
| Необхідна пам'ять (байт)
|
Single
| 1.5E-45…3.4E+38
|
|
Real
| 2.9*E-39...1.7*E+38
|
|
Double
| 5.0*E-324…1.7*E+308
|
|
Extended
| 3.6E-4951…1.1E+4932
|
|
Літерний (символьний) тип може набувати значень кодової таблиці ПЕОМ (дивись таблицю ASCII кодів). Цій змінній в пам’яті виділяється один байт, тому в ній можна зберегти тільки один символ ASCII таблиці.
Таблиця ASCII кодів.
| 32)пробіл
| 64) @
| 96) `
| 128)А
| 160)а
| 192)└
| 224)р
|
1)☺
| 33) !
| 65) A
| 97) a
| 129)Б
| 161)б
| 193)┴
| 225)с
|
2)☻
| 34) "
| 66) В
| 98) b
| 130)В
| 162)в
| 194)┬
| 226)т
|
3)♥
| 35) #
| 67) С
| 99) с
| 131)Г
| 163)г
| 195)├
| 227)у
|
4)♦
| 3В) $
| 68) D
| 100) d
| 132)Д
| 164)д
| 196)─
| 228)ф
|
5)♣
| 37) %
| 69) E
| 101) e
| 133)Е
| 165)е
| 197)┼
| 229)х
|
6)♠
| 38) &
| 70) F
| 102) f
| 134)Ж
| 166)ж
| 198)╞
| 230)ц
|
7)•
| 39) '
| 71) G
| 103) g
| 135)З
| 167)з
| 199)╟
| 231)ч
|
8)◘
| 40) (
| 72) H
| 104) h
| 136)И
| 168)и
| 200)╚
| 232)ш
|
9)○
| 41) )
| 73) I
| 105) i
| 137)Й
| 169)й
| 201)╔
| 233)щ
|
10)◙
| 42) *
| 74) J
| 106) j
| 138)К
| 170)к
| 202)╩
| 234)ъ
|
11)♂
| 43) +
| 75) К
| 107) k
| 139)Л
| 171)л
| 203)╦
| 235)ы
|
12)♀
| 44) ,
| 76) L
| 108) l
| 140)М
| 172)м
| 204)╠
| 236)ь
|
13)♪
| 45) -
| 77) M
| 109) m
| 141)Н
| 173)н
| 205)═
| 237)э
|
14)♫
| 46) .
| 78) N
| 110) n
| 142)О
| 174)о
| 206)╬
| 238)ю
|
15)☼
| 47) /
| 79) 0
| 111) о
| 143)П
| 175)п
| 207)╧
| 239)я
|
16)►
| 48) 0
| 80)P
| 112) p
| 144)Р
| 176)░
| 208)╨
| 240)Ё
|
17)◄
| 49) 1
| 81) Q
| 113) q
| 145)С
| 177)▒
| 209)╤
| 241)ё
|
18)↕
| 50) 2
| 82) R
| 114) г
| 146)Т
| 178)▓
| 210)╥
| 242)Є
|
19)‼
| 51) 3
| 83) S
| 115) s
| 147)У
| 179)│
| 211)╙
| 243)є
|
20)¶
| 52) 4
| 84) T
| 116) t
| 148)Ф
| 180)┤
| 212)╘
| 244)Ї
|
21)§
| 53) 5
| 85) U
| 117) u
| 149)Х
| 181)╡
| 213)╒
| 245)ї
|
22)▬
| 54) 6
| 86) V
| 118) v
| 150)Ц
| 182)╢
| 214)╓
| 246)Ў
|
23)↨
| 55) 7
| 87) W
| 119) w
| 151)Ч
| 183)╖
| 215)╫
| 247)ў
|
24)↑
| 56) 8
| 88) X
| 120) x
| 152)Ш
| 184)╕
| 216)╪
| 248)°
|
25)↓
| 57) 9
| 89) Y
| 121) у
| 153) Щ
| 185)╣
| 217)┘
| 249)∙
|
26)→
| 58) :
| 90) Z
| 122) z
| 154)Ъ
| 186)║
| 218)┌
| 250)·
|
27)←
| 59) ;
| 91) [
| 123) {
| 155)Ы
| 187)╗
| 219)█
| 251)√
|
28)∟
| 60) <
| 92) \
| 124) |
| 156)Ь
| 188)╝
| 220)▄
| 252) №
|
29)↔
| 61) =
| 93) ]
| 125) }
| 157)Э
| 189)╜
| 221)▌
| 253)¤
|
30)▲
| 62) >
| 94) ^
| 126) ~
| 158) Ю
| 190)╛
| 222)▐
| 254)■
|
31)▼
| 63) ?
| 95) _
|
| 159)Я
| 191)┐
| 223)▀
| 255)
|
Зверніть увагу на те, що символьні константи на відміну від символьних змінних можуть включати в себе рядок (декілька) будь-яких символів ASCII таблиці між двома апострофами. Рядкові змінні відносяться до структурованих типів даних і тому будуть вивчатися пізніше.
Булевський тип подається двома значеннями: True (істина) або False (хибність). Він широко застосовується в логічних виразах і виразах відношення.
Структуровані типи у своїй основі мають один або декілька скалярних типів даних. До структурованих типів даних відносяться рядки, масиви, файли, записи і т.д.