
- •Базовий курс програмування у середовищі Turbo Pascal Методичні вказівки
- •Базовий курс програмування у середовищі Turbo Pascal Методичні вказівки
- •Практична робота №1
- •Організація вводу та виводу даних
- •Мета роботи: ознайомитись з конструкціями мови Turbo Pascal, структурою програм, стандартними типами даних і процедурами вводу та виводу.
- •Теоретичні відомості
- •1 Особливості мови Turbo Pascal
- •1.1 Спеціальні символи
- •1.2 Зарезервовані (ключові) слова
- •1.3 Ідентифікатори
- •1.5 Числа
- •1.6Рядки
- •1.7 Коментарі
- •2 Структура програми
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №2
- •Логічні та циклічні структури
- •Теоретичні відомості
- •1 Логічні структури
- •1.1 Команда розгалуження if (умовна команда)
- •1.2 Команда goto
- •1.3 Команда вибору (сase)
- •2 Циклічні структури
- •2.1 Команда циклу з параметром (for)
- •2.2 Команда циклу з передумовою (while)
- •2.3 Команда циклу з постумовою (repeat)
- •2.4 Порівняння роботи команд циклу while, repeat та for
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №3
- •Одновимірні масиви. Сортування
- •Мета роботи: ознайомитись з поняттям одновимірних масивів та діями над ними, навчитися застосовувати різні методи сортування для розв’язку математичних і технічних задач.
- •Теоретичні відомості
- •1 Одновимірні масиви
- •1.1 Додавання елементів масиву
- •1.2 Лічильник
- •1.3 Екстремуми
- •2 Методи сортування
- •2.1 Метод лінійного сортування
- •2.2 Сортування методом «бульбашки»
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №4
- •Багатовимірні масиви
- •Мета роботи: вивчити технологію роботи з багатовимірними масивами.
- •Теоретичні відомості
- •1 Опис багатовимірних масивів
- •2 Доступ до елементів масивів
- •3 Масиви ідентичного типу
- •4 Головна та побічна діагоналі
- •6 Ввід матриці
- •7 Виведення матриці
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №5
- •Підпрограми
- •Мета роботи: ознайомитись з правилами використання підпрограм, вивчити відмінності між процедурами та функціями.
- •Теоретичні відомості
- •1 Процедури та функції
- •1.1 Опис процедури
- •1.2 Опис функції
- •1.3 Формальні та фактичні параметри
- •1.3.1 Передача параметрів у підпрограмах
- •1.3.2 Виклик підпрограм
- •1.4 Глобальні та локальні змінні
- •1.5 Основні відмінності між функціями і процедурами
- •2 Рекурсивні функції
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №6
- •Символьні та рядкові змінні
- •Мета роботи: ознайомитись з прийомами роботи із символьними та рядковими змінними.
- •Теоретичні відомості
- •1 Символьні змінні
- •2 Множини
- •3 Рядкові змінні
- •3.1 Оголошення рядкових змінних
- •3.2 Доступ до окремих елементів рядка
- •3.3 Зміна поточної довжини рядка
- •3.4 Злиття рядків
- •3.5 Порівняння рядків
- •3.6 Порожній рядок
- •3.7 Рядки і символи
- •3.8 Масиви символів і рядка
- •3.9 Стандартні підпрограми для обробки рядків.
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №7
- •Записи. Записи з варіантами
- •Мета роботи: навчитись створювати прості бази даних за допомогою записів та записів з варіантами.
- •Теоретичні відомості
- •1 Записи
- •2 Записи з варіантами.
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №8
- •Файли: текстові, типізовані, нетипізовані
- •Мета роботи: ознайомитись з випадками використання файлів, типами файлів та методами обробки елементів файлів.
- •Теоретичні відомості
- •1 Текстові файли
- •2 Типізовані файли. Мітки
- •3 Нетипізовані файли
- •Приклад 4:
- •Приклад 5:
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №9
- •Мета роботи: вивчити структуру та особливості роботи з модулями в Turbo Pascal.
- •Теоретичні відомості
- •1 Структура модуля
- •1.1 Заголовок модуля
- •1.2 Інтерфейс модуля
- •1.3 Виконавча частина модуля
- •1.4 Розділ ініціалізації.
- •2 Етапи розробки модуля
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №10
- •Графіка
- •Мета роботи: ознайомитись з принципами побудови графіків функцій та інших графічних об’єктів за допомогою засобів TurboPascal.
- •Теоретичні відомості
- •1 Основні процедури і функції модуля Graph
- •2 Робота із зображеннями.
- •3 Побудова і масштабування графіків
- •Індивідуальні завдання
- •Контрольні питання
- •1 Дані динамічної структури
- •2 Вказівник
- •3 Списки
- •4 Стек. Черга
- •4.1 Алгоритм побудови стека
- •4.2 Алгоритм побудови черги
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №12
- •Об’єктно-орієнтоване програмування
- •Мета роботи: засвоїти матеріал щодо можливостей TurboPascal при створенні об’єктів.
- •Теоретичні відомості
- •1 Поняття «об'єкт»
- •2 Спадкування
- •Індивідуальні завдання
- •Контрольні питання
- •Список літератури
- •Зразок оформлення результатів виконання практичного завдання
Контрольні питання
Що таке масив як структура даних?
Які дані можуть бути використані у якості індексів та елементів одновимірного масиву?
Яким чином здійснюється підсумовування елементів одновимірного масиву?
Яким чином працює алгоритм «лічильник» для елементів одновимірного масиву?
Як визначають мінімальне та максимальне значення елементів одновимірного масиву?
Які показники використовуються для оцінки швидкодії різних методів сортування?
У чому полягає принцип методу сортування «бульбашки»?
У чому полягає принцип методу сортування відбором?
У чому полягає принцип двійкового пошуку?
У чому полягає принцип методу Хоара?
У чому полягає принцип методу «шейкерного» сортування?
У чому полягає різниця методу лінійного сортування і методу сортування «бульбашки»?
Практична робота №4
Багатовимірні масиви
Мета роботи: вивчити технологію роботи з багатовимірними масивами.
Теоретичні відомості
1 Опис багатовимірних масивів
const
n=23; {Кількість студентів}
tурe
Semestrj=array[l..n,1..5] of integer; {тип - двовимірний масив чисел з n рядків і 5 стовпців}
Rik=array[l..n,1..5,1..2] of integer; {тип - тривимірний масив чисел: n – кількість студентів, 5 - кількість предметів, 2 – кількість семестрів року}
var
Semestr_l:Semestrj {двовимірний масив чисел типу integer}
C_Rik:Rik;{тривимірний масив чисел типу integer}
Grupa:array[l..n,1..5,1..4] of integer;{менш кращий спосіб завдання масивів}
При описі двовимірних масивів у квадратних дужках спочатку вказується інтервал зміни номерів рядків (номерів студентів), а потім, після коми, – інтервал зміни номерів стовпців (назв предметів). У тривимірних масивах після інтервалів зміни індексів рядків і стовпців, також після коми, варто вказати інтервал зміни індексів за третім виміром (номером семестрів року).
Масиви більших розмірностей описуються аналогічним образом, але на практиці зустрічаються значно рідше.
2 Доступ до елементів масивів
Способи доступу до елементів одновимірних і багатовимірних масивів повністю аналогічні. Так, наприклад, для того, щоб студентові під номером 2 по третьому предмету поставити оцінку 2, необхідно виконати наступну операцію присвоєння:
Semestr_l[2,3]:=2;
У матриці ця оцінка перебуває на перетинанні другого рядка й третього стовпця. На першому місці у квадратній дужці необхідно вказувати номер рядка, а потім, після коми, – номер стовпця елемента масиву, до якого здійснюється доступ.
У загальному випадку
Semestr_l[i,j]:=3;
такий запис означає операцію присвоєння конкретного значення 3 елементу, розташованому на перетині рядка з номером i і стовпця з індексом j.
До елементів масиву можливий ще й такий варіант доступу:
Chetv_l[i][j]:=3.
3 Масиви ідентичного типу
tурe
Massjv=array[1..26,1..5] of integer;
var
Mas_1,Mas_2:Massiv;
Mas_3:Massiv;
Mas_4,Mas_5:array[1..26,1..5] of integer;
Mas_6:array[1..26,1..5] of integer;
Змінні Mas_l, Mas_2, Mas_3 мають так званий ідентичний тип. Масиви Mas_4 і Mas_5 також є змінними ідентичного типу. Однак тип змінних Mas_l, Mas_2, Mas_3 не ідентичний типу змінних Mas_4 і Mas_5, а також типу змінної Mas_6. Більше того, тип масиву Mas_6 не ідентичний жодному з типів зазначених змінних.
Для масивів ідентичного типу можна застосувати наступний оператор присвоєння: Mas_l:=Mas_2;
У цьому випадку на місце кожного елемента Mas_l присвоюється відповідний елемент Mas_2. В результаті в масивах Mas_l і Mas_2 будуть розміщенні ті самі дані. Припустимі також наступні оператори:
Mas_1:= Mas_2; Mas_3:= Mas_1; Mas_4:= Mas_5;
Неприпустимі операції присвоєння:
Mas_1:= Mas_4; Mas_3:= Mas_5; Mas_4:= Mas_6;
Компілятор буде вважати, що у всіх трьох випадках змінні по різні сторони операторів присвоєння, належать різним типам. Разом із цим структура всіх розглянутих масивів зовсім однакова.
Якщо тип масиву задавати не в розділі визначення змінних, а в розділі опису типів, то повторне використання оголошеного типу в розділі оголошення змінних не приведе до яких-небудь непорозумінь: всі масиви цього типу для компілятора будуть ідентичними.