
- •Базовий курс програмування у середовищі 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 Спадкування
- •Індивідуальні завдання
- •Контрольні питання
- •Список літератури
- •Зразок оформлення результатів виконання практичного завдання
Індивідуальні завдання
Варіанти.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над комплексними числами: додавання; віднімання; множення; ділення; визначення модуля комплексного числа; піднесення комплексного числа до ступеня n (n – натуральне число).
Комплексне число представити наступним чином:
Type Complex = Record
R: Real;
M: Real
End;
Використовуючи цей модуль, вирішити наступне завдання. Задано масив А – масив комплексних чисел. Отримати масив С, елементами якого будуть модулі сум розміщених поруч комплексних чисел.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над комплексними числами: додавання; віднімання; множення; ділення; визначення модуля комплексного числа; піднесення комплексного числа до ступеня n (n – натуральне число).
Комплексне число представити наступним чином:
Type Complex = Record
R: Real;
M: Real;
End;
Використовуючи цей модуль, вирішити наступне завдання. Задано масив А [М] – масив комплексних чисел. Отримати матрицю B[N×M], кожен рядок якої виходить зведенням у ступінь, що дорівнює номеру цього рядка заданого масиву А.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над звичайними дробами виду (Р – ціле, Q – натуральне): додавання; віднімання; множення; ділення; скорочення дробу; піднесення дробу до ступеня n (n – натуральне число); функцій, що реалізують операції відношення (дорівнює, не дорівнює, більше або дорівнює, менше або дорівнює, більше, менше).
Дріб представити наступним чином:
Type Frac = Record
Р: Integer;
Q: 1 .. 32767;
End;
Використовуючи цей модуль, вирішити наступне завдання. Задано масив А – масив звичайних дробів. Знайти суму всіх дробів, результат представити у вигляді нескоротного дробу. Обчислити середнє арифметичне всіх дробів, результат представити у вигляді нескоротного дробу.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над звичайними дробами виду (Р – ціле, Q – натуральне): додавання; віднімання; множення; ділення; скорочення дробу; піднесення дробу до ступеня n (n – натуральне число); функцій, що реалізують операції відношення (дорівнює, не дорівнює, більше або дорівнює, менше або дорівнює, більше, менше).
Дріб представити наступним чином:
Type Frac = Record
Р: Integer;
Q: 1 .. 32767;
End;
Використовуючи цей модуль, вирішити наступне завдання. Задано масив А – масив звичайних дробів. Відсортувати його за зростанням.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій з квадратними матрицями: додавання двох матриць; множення однієї матриці на іншу; знаходження транспонованої матриці; обчислення визначника матриці.
Матрицю описати наступним чином:
const NMax = 10;
type Matrica = Array [l .. NMax,1 .. NMax] оf Real;
Використовуючи цей модуль, вирішити наступне завдання. Розв’язати систему лінійних рівнянь N-го порядку (2 ≤ N ≤ 10) методом Крамера.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій з квадратними матрицями: додавання двох матриць; множення однієї матриці на іншу; знаходження транспонованої матриці; обчислення визначника матриці.
Матрицю описати наступним чином:
const NMax = 10;
type Matrica = Array [l .. NMax,1 .. NMax] оf Real;
Використовуючи цей модуль, вирішити наступне завдання. Заданий масив величин типу Matricya. Відсортувати цей масив за зростанням значень визначників матриць.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над векторами: додавання; віднімання; скалярного множення векторів; множення вектора на число; знаходження довжини вектора.
Вектор представити наступним чином:
Type Vector = Record
X, Y: Real;
End;
Використовуючи цей модуль, вирішити наступне завдання. Задано масив А – масив векторів. Відсортувати його в порядку спадання довжин векторів.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над векторами: додавання; віднімання; скалярного множення векторів; множення вектора на число; знаходження довжини вектора.
Вектор представити наступним чином:
Type Vector = Record
X, Y: Real;
End;
Використовуючи цей модуль, вирішити наступне завдання. За допомогою генератора випадкових чисел згенерувати 2N цілих чисел. N пap цих чисел задають N точок координатної площини. Вивести номери трійки точок, які є координатами вершин трикутника з найбільшим кутом.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над натуральними числами в Р-річній системі числення: додавання; віднімання; множення; переведення з десяткової системи числення в Р-річну; переведення з Р-річної системи числення в десяткову; функції перевірки правильності запису числа в Р-річній системі числення; функцій, що реалізують операції відношення (дорівнює, не дорівнює, більше або дорівнює, менше або дорівнює, більше, менше).
Використовуючи цей модуль, вирішити наступне завдання. Піднести число до ступеня (основа і показник ступеня записані в Р-річній системі числення). Результат видати в Р-річній і десятковій системах числення.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над натуральними числами в Р-річній системі числення: додавання; віднімання; множення; переведення з десяткової системи числення в Р-річну; переведення з Р-річної системи числення в десяткову; функції перевірки правильності запису числа в Р-річній системі числення; функцій, що реалізують операції відношення (дорівнює, не дорівнює, більше або дорівнює, менше або дорівнює, більше, менше).
Використовуючи цей модуль, вирішити наступне завдання. Задано масив А – масив чисел, записаних в Р-річній системі числення. Відсортувати його за спаданням. Результат видати в Р-річній і десятковій системах числення.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над натуральними числами в шістнадцятковій системі числення: додавання; віднімання; множення; ділення; переведення із двійкової системи числення в шістнадцяткову; переведення з шістнадцяткової системи числення в десяткову; функції перевірки правильності запису числа в шістнадцятковій системі числення; функцій, що реалізують операції відношення (дорівнює, не дорівнює, більше або дорівнює, менше або дорівнює, більше, менше).
Використовуючи цей модуль, вирішити наступне завдання. Піднести число до ступеня (основа і показник ступеня записані в шістнадцятковій системі числення). Результат видати в шістнадцятковій і десятковій системах числення.
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над натуральними числами в шістнадцятковій системі числення: додавання; віднімання; множення; ділення; переведення із двійкової системи числення в шістнадцяткову; переведення з шістнадцяткової системи числення в десяткову; функції перевірки правильності запису числа в шістнадцятковій системі числення; функцій, що реалізують операції відношення (дорівнює, не дорівнює, більше або дорівнює, менше або дорівнює, більше, менше).
Використовуючи цей модуль, вирішити наступне завдання. Задано масив А – масив чисел, записаних в шістнадцятковій системі числення. Відсортувати його за зростанням. Результат видати в шістнадцятковій і десятковій системах числення.
Визначимо граф як набір точок, деякі з яких з'єднані відрізками, підграф – як граф, який є підмножиною даного графа. Реалізувати у вигляді модуля набір підпрограм, що визначають: число точок у графі; число відрізків у графі; число ізольованих підграфів в графі (підграфів, які не з'єднані відрізками); діаметр графа – довжину максимальної незамкненої лінії в графі (довжина кожної ланки – 1); граф – об'єднання двох графів; підграф – перетин двох графів; підграф – доповнення даного графа до повного (графа з тією ж кількістю вершин, що і в даному, і з лініями між будь-якими двома вершинами); кількість відрізків, що виходять з кожної вершини графа.
При запуску повинні ініціалізуватися змінні: Full_Graph – повний граф з числом вершин NumberOfVertix; Null_Graph – граф без відрізків з числом вершин NumberOfVertix.
Граф представити як об'єкт:
const NumberOfVertix = 50;
type Graph = array[l..NumberOfVertix, 1..NumberOfVertix] of boolean;
Використовуючи цей модуль, вирішити наступне завдання. Знайти усі правильні графи з N вершин (граф правильний, якщо з усіх вершин виходить рівна кількість відрізків).
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над довгими числами: додавання; віднімання; множення; знаходження частки та залишку від ділення одного числа на інше; функцій, що реалізують операції відношення (дорівнює, не дорівнює, більше або дорівнює, менше або дорівнює, більше, менше).
Довге число представити наступним чином:
type Tsifra = 0..9;
Chislo = array [l..1000] of Tsifra;
Використовуючи цей модуль, вирішити наступне завдання. Піднести число до ступеня (основа і показник ступеня – довгі числа).
Піднести число до ступеня (основа і показник ступеня – довгі числа).
Реалізувати у вигляді модуля набір підпрограм для виконання наступних операцій над довгими числами: додавання; віднімання; множення; знаходження частки та залишку від ділення одного числа на інше; функцій, що реалізують операції відношення (дорівнює, не дорівнює, більше або дорівнює, менше або дорівнює, більше, менше).
Довге число представити наступним чином:
type Tsifra = 0..9;
Chislo = array [l..1000] of Tsifra;
Використовуючи цей модуль, вирішити наступне завдання. Задано масив довгих чисел. Впорядкувати цей масив за спаданням.
Реалізувати у вигляді модуля набір підпрограм для виконання операцій з поліномами від однієї змінної (перший поліном ступеня t, другий – ступеня n): додавання; віднімання; множення; ділення із залишком; функцій, що реалізують операції відношення (дорівнює, не дорівнює); піднесення до натурального ступеня k; обчислення похідної від полінома; обчислення значення в точці x0.
Поліном представити наступним чином:
type Polinom = array [1..500] of integer;
Використовуючи цей модуль, вирішити наступне завдання. Знайти найбільший спільний дільник поліномів Р(х) і Q(x).
Реалізувати у вигляді модуля набір підпрограм для виконання операцій з поліномами від однієї змінної (перший поліном ступеня t, другий – ступеня n): додавання; віднімання; множення; ділення із залишком; функцій, що реалізують операції відношення (дорівнює, не дорівнює); піднесення до натурального ступеня k; обчислення похідної від полінома; обчислення значення в точці x0.
Поліном представити наступним чином:
type Polinom = array [1..500] of integer;
Використовуючи цей модуль, вирішити наступне завдання. Обчислити Р(х) - Q(x).
Розробити спосіб представлення множин, що містять більше 255 елементів (до 2000). Створити модуль, що дозволяє виконувати наступні операції над елементами таких множин: об'єднання; перетин; різниця; функція перевірки належності елемента множині; функція перевірки, чи є дана нескінченність підмножиною (наднескінченістю) іншої.
Використовуючи цей модуль, вирішити наступне завдання. Задано масив множин. Впорядкувати елементи масиву за зростанням кількості компонент відповідних множин.
Розробити спосіб представлення множин, що містять більше 255 елементів (до 2000). Створити модуль, що дозволяє виконувати наступні операції над елементами таких множин: об'єднання; перетин; різниця; функція перевірки належності елемента множині; функція перевірки, чи є дана нескінченність підмножиною (наднескінченістю) іншої.
Використовуючи цей модуль, вирішити наступне завдання. Розробити програму, яка вводить декілька множин, вираз, операндами якого є ці множини, з операціями об'єднання, перетину і віднімання, обчислює значення цього виразу і виводить результат.
Підрахувати як зміниться середнє арифметичне елементів матриці, якщо у всіх стовпцях з номерами, більшими, ніж номер стовпця з максимальною кількістю від’ємних елементів, замінити всі від’ємні елементи їх модулями. При розв’язанні задачі використати модуль.
Написати програму розв’язання наступного завдання, використовуючи модуль: для кожної з матриць X(8×8) і Y(10×10) обчислити суму елементів, розташованих на головній діагоналі і над нею.
Написати програму вирішення розв’язання завдання, використовуючи модуль: переписати позитивні елементи масивів Х(8) Y(10) в масив Z(k) підряд. Запис здійснити в підпрограмі. Вивести на друк всі три масиви.
Створити модуль, в якому розробити функції, наведені нижче:
WordN – виділяє N-е слово;
MyMove – переносить заданий підрядок в задану позицію;
CountWord – визначає кількість слів у тексті;
MyInsert – вставляє підрядок із заданої позиції.
Виконати завдання з текстом в основній програмі: попарно переставити слова в цьому тексті.
Дано файл f, компоненти якого є цілими числами. Отримати у файлі g всі компоненти файлу f, які діляться на 5 і не діляться на 7. На основі даної задачі створити модуль.
Створити модуль, що містить функції одного компонента ряду і всього ряду цілком та процедуру розрахунку похибки.
,
Створити програму що виводить на екран: суму елементів; задане число елементів у вигляді таблиці; похибку.
Створити модуль, що містить процедури і функції, які працюють з файлами певного типу даних (TMyType). Створити модуль, що містить функції одного компонента ряду і всього ряду цілком та процедуру розрахунку похибки: , .
Створити програму, яка містить інтерфейс і дозволяє виконувати наступні дії, використовувати функції та процедури модуля: введення з клавіатури значення аргументу і загальної кількості елементів ряду f(x); введення з клавіатури значення першого елемента ряду f(x) і запис його в типізований файл; розрахунок всіх елементів ряду, що залишилися, і запис їх значень в файл; зчитування всіх елементів ряду (додатних) з файлу і виведення їх на екран.
Оформити програму обчислення сум і добутків натуральних чисел від 1 до n у вигляді процедури модуля. Написати програму, яка використовує створений модуль і в якій здійснюється звернення до процедури модуля.
Створити модуль MyMod, який містить наступні підпрограми:
1) функцію T(real,real), яка повертає номер чверті для точки, координати якої передані в якості параметрів;
2) процедуру ZAM (real,real), яка заміняє перший параметр напівсумою двох переданих чисел, а друге число – добутком цих чисел.
Написати програму, яка підключає розроблений модуль і демонструє роботу функції і процедури.
Реалізувати у вигляді модуля набір підпрограм для виконання операції множення над довгими числами:
Довге число представити наступним чином:
Type Tsifra = 0 .. 9;
Chislo = Array [1 .. 1000] of Tsifra;
Написати програму, яка підключає розроблений модуль і демонструє роботу функції і процедури.
Написати програму, що обчислює подвоєний квадрат площі трикутника за допомогою функції, в якій для розв’язання цієї задачі використовується формула Герона:
, де a, b, c – сторони трикутника, а p – напівпериметр, обчислюється за формулою
.
Виконати завдання, оформивши обчислення процедур і функцій у вигляді модулів.
Написати свій модуль з процедурою, яка визначає вісімковий код будь-якого введеного символу. Написати програму з використанням цього модуля.
Реалізувати модуль підрахунку визначника квадратної матриці і знаходження транспонованої та зворотної матриць. Написати програму з використанням цього модуля.
Оформити програму обчислення сум і добутків натуральних чисел від 1 до n у вигляді процедури модуля. Написати програму, яка використовує створений модуль і в якій здійснюється звернення до процедури модуля.
Написати програму, яка помножує кожний елемент масиву на добуток елементів головної діагоналі. Всі функції розмістити в окремому модулі.
Написати модуль, підключення якого дозволяло б вставляти\видаляти символ в будь-якому місці рядка, за вказівником, заданим користувачем.