- •Створення, виконання та відлагодження програм в інтегрованих середовищах програмування
- •Завдання
- •Дослідження цілих та дійсних типів та операцій над значеннями даних типів
- •Опис програмних об’єктів
- •Ініціалізація змінних при створенні
- •Оператор привласнення
- •Операції над значеннями цілих та дійсних типів
- •Загальна спрощена структура програми
- •Методичні вказівки Правила складання ідентифікаторів
- •Правила опису об’єктів у програмі
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Як досягти найменшої похибки в обчисленнях с дійними значеннями?
- •Дослідження бітових операцій над цілими значеннями
- •Бітові операції
- •Завдання
- •Дослідження логічних типів, логічних операцій та операцій відношення
- •Завдання
- •Лабораторна робота 1.5 дослідження вказівних типів та операцій над значеннями даних типів
- •Завдання
- •Лабораторна робота 1.6 дослідження символьних типів
- •Завдання
- •Лабораторна робота 1.7 дослідження виразів
- •Теоретичні відомості
- •Методичні вказівки Правила написання операторів привласнення та виразів
- •Завдання
- •Контрольні запитання
- •Лабораторна робота 1.8
- •Дослідження приведення типiв
- •Мета лабораторної роботи - вивчення суворої типізації, правил приведення типів та механізму обходу суворої типізації.
- •Теоретичні відомості
- •Завдання
- •Контрольні запитання
- •Мета лабораторної роботи - вивчити блочну організацію програм та стратегії розподілу пам'яті.
- •Динамічний розподіл пам’яті у блоці
- •Методичні вказівки Правила написання програм
- •Своєчасно звільняйте пам'ять, “захоплену” в “купі” (оператори dispose/ delete) Завдання
- •Контрольні запитання
- •Лабораторна робота 1.10
- •Дослідження структурних операторів
- •Мета лабораторної роботи - вивчити устрій структурних операторів та дослідити можливості та особливості застосування різноманітних форм структурних операторів.
- •Теоретичні відомості
- •Правила написання програм
- •Завдання
- •Методичні вказівки
- •Модуль 2 Лабораторна робота 2.1
- •Контрольні запитання
- •Лабораторна робота 2.2
- •Контрольні запитання
- •Контрольні запитання
- •Лабораторні робота 2.4
- •Завдання
- •Контрольні запитання
- •Лабораторна робота 2.5 дослідження механізму підпрограм Мета лабораторної роботи - вивчити опис та використання закритих підпрограм.
- •Контрольні запитання
- •Література
Методичні вказівки
Для моделювання на бітовому рівні арифметичних операцій та операцій відношення необхідно вміти вирішувати наступні задачі:
- визначати значення окремих бітів операнду(ів);
- формувати результат шляхом встановлення в 0 чи 1 певних бітів результуючого значення.
При цьому, реалізація операцій відношення потребує вирішення лише першої задачі, тоді як реалізація арифметичних операцій вимагає виконання обох задач.
Для визначення значення окремого n-го біту (sizeof(тип значення) >= n >= 0) операнду необхідно використовувати маску, що дорівнює 1, та бітові операції «І» та «зсув ліворуч». Наприклад, щоб дізнатись значення п’ятого біту вмісту цілої змінної iA необхідно виконати наступні перетворення:
iBitA := iA and (1 shl 5) (Паскаль) або iBitA = iA & (1 << 5) (Сі).
Якщо значення iBitA дорівнюється 0, п’ятий біт числа iA також є рівним 0, якщо будь якому додатному значенню, біт дорівнюється 1.
Порівнюючи значення відповідних бітів заданих операндів, можна визначити за їхнім бітовим представленням, який з операндів є більшим, меншим, тощо.
Наприклад:
Операція відношення = =
iA = 2510 = 110012 |
iBitA = iA and (1 shl 4) = 16 => 1 |
=> 1<>0 => iA<>iB |
iB = 910 = 010012 |
iBitB = iB and (1 shl 4) = 0 => 0 |
Для вирішення завдання моделювання операцій додавання та лічильника недостатньо вміти визначати значення окремих бітів операндів, але потрібно формувати результуюче значення, використовуючи його бітове представлення. Для цього використовуються маска та бітові операції «зсув ліворуч», «АБО», «АБО, що виключає»:
Наприклад:
Операція додавання +
iA = 2510 = 110012
iB = 910 = 010012
iSum = 3410 = 1000102
Результат iSum формується встановленням в 1 першого та п’ятого бітів, тобто:
1) iSum = 0, iSum = 010 = 02
2) iSum = iSum or (1 shl 1), iSum = 210 = 000102
3) iSum = iSum or (1 shl 5), iSum = 3410 = 1000102
Лічильник, або операції зменшення чи збільшення на одиницю не зводяться до операції додавання. Для отримання результату лічильника необхідно використовувати певні закономірності перетворення значень та застосовувати їх при побудові алгоритму для вирішення задачі.
Наприклад, при зменшені числа на одиницю в результуючому значенні всі біти, що дорівнюються 0, починаючи з молодшого, та перший слідуючий за ними біт, що дорівнюється 1, інвертуються, а старші залишаються незмінними. Для інвертування відповідних бітів використовується операція «АБО, що виключає».
Наприклад:
Лічильник зменшення на 1
iA = 2510 = 110012
iA – 1 = 2410 = 110002
1) iA = iA xor (1 shl 0), iA = 2410 = 110002
iA = 2410 = 110002
iA – 1 = 2310 = 101112
1) iA = iA xor (1 shl 0), iA = 2510 = 110012
2) iA = iA xor (1 shl 1), iA = 2710 = 110112
3) iA = iA xor (1 shl 2), iA = 3110 = 111112
4) iA = iA xor (1 shl 3), iA = 2310 = 101112
Контрольні запитання
Назвіть типи структурних операторів.
Що таке вектор-стан програми.
Поясніть, що таке перетворювальні оператори, наведіть приклади.
Поясніть значення оператора вибору, назвіть основні форми.
Наведіть семантику, синтаксис та приклади умовної форми if-then.
Наведіть семантику, синтаксис та приклади альтернативної форми if-then-elsе.
Наведіть семантику, синтаксис та приклади охоронної форми оператора вибору.
Поясніть призначення оператора повторення, назвіть його форми.
Наведіть семантику, синтаксис та приклади форми do.
Наведіть семантику, синтаксис та приклади форми while.
