
- •Базовий курс програмування у середовищі 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 Спадкування
- •Індивідуальні завдання
- •Контрольні питання
- •Список літератури
- •Зразок оформлення результатів виконання практичного завдання
1.2 Лічильник
Підрахунок числа днів (n_pol) з додатною середньодобовою температурою реалізує цикл for з використанням короткої форми оператора умови if_then:
…
n_pol:=0;
for i:=1 to n do
if T[i]>0
then
n_pol:=n_pol+1;
…
Тут реалізується підрахунок додатних значень масиву Т. Аналогічним шляхом можна визначити:
число від’ємних елементів масиву;
число елементів, які дорівнюють числу, що задається;
число елементів, більших або менших числа, що задається;
число елементів, які знаходяться в інтервалі значень, що задаються.
При розв’язанні цієї задачі задіяний алгоритм, який називають лічильником.
1.3 Екстремуми
Для визначення мінімального елементу T_Min масиву T припустимо, що він знаходитися, наприклад, в першій комірці T[1];
T_Min:=T[1];
Далі послідовно формуватимемо значення T[i] в наступних комірках із значеннями T_min. Якщо у всіх інших комірках від T[2] до T[n] знаходитимуться величини більші за T_min (або T[1]), то тоді значення в комірці T[1] дійсно є мінімальним і вміст змінної T_min змінювати не потрібно. Якщо ж в результаті такого послідовного порівняння виявиться, що в якійсь комірці T[i] є значення менше за значення в комірці T[1], то змінній T_min необхідно привласнити це значення:
T_min:=T[i];
Виконуючи таке порівняння далі, тобто порівнюючи T_min з T[i+1], T[i+2] тощо, зрештою виявиться, що в T_min розташовуватиметься істине мінімальне значення масиву T.
…
T_Min:=T[1];
for i:=2 to n do
if T[i]<T_min
then
T_min:=T[i];
…
2 Методи сортування
Сортування є одним з процесів перетворення масивів, які використовуються найчастіше. Нижче розглянуто два найбільш поширених методи сортування.
2.1 Метод лінійного сортування
Сутність методу.
Задано масив чисел R[1..n]. Потрібно відсортувати числа за зростанням значень. Розглянемо спочатку конкретний масив з п'яти елементів:
15 106 12 5 22.
Після його ручного сортування легко одержати таку послідовність зростаючих чисел:
5 12 15 22 106.
В цьому випадку найбільш прийнятний метод сортування такий. З наявних вихідних чисел знайти найменше (5) і помістити його в першу позицію нового запису масиву, у попередньому записі масиву це число виключити. Далі, із чисел, що залишилися, знову вибрати найменше (12) і помістити його на другу позицію нового запису. Якщо продовжити цей процес для наступних елементів, можна виявити, що останнє число вихідного масиву буде максимальним і тому його варто помістити останнім у новому записі.
У такому алгоритмі фактично використовувались вихідний масив і новий масив. У програмуванні це неприпустимо (адже масиви можуть бути величезної довжини). Тому цей цілком працюючий алгоритм необхідно модернізувати на випадок застосування тільки однієї змінної – одного масиву.
Алгоритм методу.
Знайти найменший елемент масиву й помістити його в R[1]. Для здійснення цієї операції необхідно у вихідному масиві порівняти R[1] з кожним наступним елементом (тобто з R[2], R[3], R[4], R[5]). Якщо виявиться, що якийсь із цих елементів менше за R[1], то варто поміняти їх місцями й продовжувати порівняння доти, доки з R[1] не буде порівняно останній елемент масиву. Якщо при такому порівнянні виявиться, що якийсь елемент більше або дорівнює R[1], то необхідно перейти до порівняння R[1] з наступним елементом, а цей елемент залишити на тому ж місці.
Виключивши з розгляду елемент у позиції 1, повторити зазначений процес, починаючи з позиції 2, тобто серед елементів, що залишилися, знайти тим самим способом найменший і помістити його в R[2].
Ці дії виконати для всіх елементів масиву, за винятком останнього.
Для перевірки розглянутого алгоритму проведемо його ручне трасування: елементи пронумеруємо, розмістимо в окремі прямокутники, які розмістимо у вигляді стовпця, факт порівняння двох елементів масиву помітимо дужкою, а кожну перестановку регіструватимемо у новому сусідньому стовпці.
Першій прохід
Рисунок 1 – Порівняння R[1] з іншими елементами масиву
Другий прохід
Рисунок 2 – Другий цикл
Третій прохід
Рисунок 3 – Третій цикл
Четвертий прохід
Рисунок 4 – Четвертий цикл
Розглянутий метод називається лінійним сортуванням, або сортуванням відбором, оскільки на кожному кроці алгоритму ми відбираємо єдиний елемент, переглядаючи елементи масиву один за одним.
Для сортування 5 елементів масиву нам треба було 4 цикли. Ясно, що якщо елементів масиву буде 6, буде потрібно 5 циклів, а для масиву з n елементів – (n-1) цикл.