16.1. Цэлалікавы тып даных
Часта пры рашэнні задач трэба працаваць з цэлымі лікамі. Для гэтага ў Pascal выкарыстоўваецца тып даных integer.
З дапамогай пераменных гэтага тыпу задаюцца цэлыя лікі ад –2147483648 да 2147483647. Для тыпу даных integer вызначаны наступныя аперацыі:
Матэматычныя |
Запіс |
+ (складанне) |
+ |
– (адніманне) |
– |
∙ (множанне) |
* |
цэлалікавае дзяленне |
div |
знаходжанне астачы |
mod |
Для цэлалікавых даных не вызначана аперацыя дзялення, як для рэчаісных лікаў. Пры спробе выкарыстаць аперацыю дзялення будзе выдадзена памылка (прыклад 16.1).
Для арганізацыі вылічэнняў з цэлымі лікамі вызначаны аперацыі div и mod. Гэтыя аперацыі маюць такі ж прыярытэт, як і аперацыі дзялення і множання.
Пример 16.2. Дадзены два цэлыя лікі a і b. Напішам праграму, якая знаходзіць цэлую частку ад дзялення a на b і астачу.
Этапы выканання задання:
1. Вызначэнне зыходных даных: пераменныя a і b.
2. Вызначэнне вынікаў: пераменныя c (цэлалікавая дзель) і d (астача).
3. Алгарытм рашэння задачы:
3.1. Увод зыходных даных.
3.2. Цэлалікавую дзель знаходзім як вынік аперацыі a div b, астачу — a mod b.
3.3. Вывад выніку.
4. Апісанне пераменных.
Усе пераменныя, вызначаныя для рашэння задачы, маюць тып integer.
Значэнне, якое выдаецца як вынік аперацыі mod, можа адрознівацца ад матэматычнага азначэння астачы (у матэматыцы пад астачай разумеюць неадмоўны лік). Калі астача не роўна нулю, то знак ліку, які з’яўляецца вынікам аперацыі mod, вызначае знак дзялімага.
16.2. Выкарыстанне цэлалікавых даных для рашэння задач
Прыклад 16.3. Няхай таймер паказвае час толькі ў секундах. Напішам праграму, якая пераводзіць час у мінуты і секунды.
Этапы выканання задання:
1. Вызначэнне зыходных даных: пераменная с (час у секундах).
2. Вызначэнне вынікаў: пераменныя m (поўная колькасць мінут) і s (астача секунд).
3. Алгарытм рашэння задачы:
3.1. Увод зыходных даных.
3.2. Для знаходжання поўнага ліку мінут трэба знайсці цэлую частку ад дзялення зыходнага ліку секунд на 60.
3.3. Секунды, што засталіся, знаходзім як астачу ад дзялення зыходнага ліку секунд на 60.
3.4. Вывад выніку.
4. Апісанне пераменных.
Пераменныя, вызначаныя для рашэння задачы, маюць тып integer.
Прыклад 16.4. Зададзены двухзначны лік. Трэба памяняць месцамі першую і другую лічбы ліку.
Этапы выканання задання:
1. Вызначэнне зыходных даных: пераменная а (зыходны лік).
2. Вызначэнне вынікаў: пераменная b (пераўтвораны лік).
3. Алгарытм рашэння задачы:
3.1. Увод зыходных даных.
3.2. Для пераўтварэння ліку неабходна выканаць наступныя дзеянні:
а) у пераменнай a1 захаваем другую лічбу ліку. Для вылучэння лічбы з ліку трэба знайсці астачу ад дзялення зыходнага ліку на 10 (a mod 10);
б) для вылучэння першай лічбы (пераменная a2) трэба знайсці цэлую частку ад дзялення ліку на 10;
в) шуканы лік b атрымаем, калі памножым a1 на дзесяць і да атрыманага здабытку дададзім значэнне пераменнай a2.
3.3. Вывад выніку.
4. Апісанне пераменных.
Усе пераменныя, вызначаныя для рашэння задачы, маюць тып integer.
Прыклад 16.5. У гістарычнай кнізе даўжыня адрэзу тканіны вымяралася ў локцях. Напішам праграму, якая перавядзе локці ў метры і сантыметры.
Этапы выканання задання:
1. Вызначэнне зыходных даных: пераменная l (локці).
2. Вызначэнне вынікаў: пераменныя m (метры) і s (санты-метры).
3. Алгарытм рашэння задачы:
3.1. Увод зыходных даных.
3.2. Спачатку перавядзём локці ў сантыметры. Для гэтага колькасць локцяў трэба памножыць на 45 і захаваць значэнне ў пераменнай x.
3.3. Для вызначэння ліку метраў знойдзем цэлую частку ад дзялення x на 100.
3.4. Сантыметры, што засталіся, можна знайсці як астачу ад дзялення x на 100.
3.5. Вывад выніку.
4. Апісанне пераменных:
Усе пераменныя, вызначаныя для рашэння задачы, маюць тып integer.
У PascalABC вызначаны розныя тыпы даных для работы з цэлымі лікамі, якія дазваляюць выконваць дзеянні над данымі з розных лікавых дыяпазонаў. Чым большы дыяпазон, тым больш месца ў памяці камп’ютара адводзіцца для захоўвання пераменных. Некаторыя цэлалікавыя ты-пы даных:
|
Прыклад 16.1. Памылка выкарыстання аперацыі дзялення для цэлалікавых тыпаў даных: Прыклад 16.2. 5. Праграма:
6. Тэсціраванне праграмы. Запусціце праграму і ўвядзіце значэнні a = 11 i b = 4. Вынік работы праграмы павінен быць такім, як паказана ніжэй: Вынік аперацый div і mod для розных лікаў:
Так, a mod b = a — ( a div b ) * b . |
Прыклад 16.3. 5. Праграма:
6. Тэсціраванне праграмы. Запусціце праграму і ўвядзіце значэнне c = 137. Вынік работы праграмы: Для значэння с = 24 атрымаем:
Прыклад 16. 4 . 5. Праграма:
6. Тэсціраванне праграмы. Запусціце праграму і ўвядзіце значэнне a = 25. Вынік работы праграмы павінен быць наступным: Здаўна на Русі ўжывалася сістэма мер, якая адрознівалася ад сучаснай Міжнароднай сістэмы адзінак (СІ). Напрыклад: 1 локаць = 45 см; Прыклад 16.5. 5. Праграма:
6. Тэсціраванне праграмы. Запусціце праграму і ўвядзіце значэнне l = 7. Вынік работы праграмы павінен быць наступным: |