
- •Базовий курс програмування у середовищі 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 Спадкування
- •Індивідуальні завдання
- •Контрольні питання
- •Список літератури
- •Зразок оформлення результатів виконання практичного завдання
3.4 Злиття рядків
Злиття рядків здійснює оператор конкатенації «+» і функція Concate:
Str_l+Str_2+...+Str_n=Concate(Str_l,Str_2...Str_n);
Якщо сумарне число символів складових рядків перевищує 255, то результуючий рядок має максимальну довжину в 255 літер. При цьому всі символи складових рядків, номер яких в сумарному рядку перевищує це число, в результуючий рядок не заносяться.
Оператор конкатенації має більш високий пріоритет по відношенню до операцій відносин <, <=, >, >=, <>, =.
3.5 Порівняння рядків
Приклади результатів порівняння декількох рядків:
'Яблуко'='Яблуко';
'Яблуко'>'Яблуко' {будь-який символ завжди більше порожнього місця}
'Яблуко'<'яблуко' {оскільки Ord('Я')<Оrd('я')}
Ці результати ґрунтуються на наступних правилах. Порівняння рядків виконується посимвольно, починаючи з першого символу в рядку. Рядки рівні, якщо мають однакову довжину і посимвольно еквівалентні.
Якщо при посимвольному порівнянні виявиться, що один символ «більше» іншого (його код більше), то рядок, що його містить, також вважається більшим. Залишки рядків і їх довжини ігноруються і на результат порівняння не впливають:
'Яблуко'<'Ялбуко'.
3.6 Порожній рядок
Рядок, довжина якого дорівнює нулю, називається порожнім або нуль-рядком. Порожній рядок позначається двома лапками «"». Приведемо фрагмент програми, який виводить відповідне повідомлення, якщо рядок Str_n є порожнім.
if Str_n=' '
then
writeln('Рядок Str_n порожній');
Порожній рядок використовують для додавання рядків або літер:
Symmarn_String:='';
for Ch:='A' to 'Z' do
Symmarn_String:=Symmarn_String+Ch;
Після завершення роботи цього фрагмента програми рядок Symmarn_String, буде містити всі прописні букви латинського алфавіту.
3.7 Рядки і символи
Змінні типу string і char є сумісними: змінна типу char може бути використана всюди, де допускається змінна типу string. Проте змінна типу string, призначена змінною типу char, може мати довжину, тільки рівну одиниці. Причина цього обмеження очевидна:
var
Str_3:string[3];
Str_7:string[7];
Simvol:char;
...
begin
...
Str_3:='Яна';
Simvol:='o';
Str_7:=Concate(Simvol,Str_3[2],Str_3[3]);
Simvol:=Str_3[1];
writeln(Simvol,'і',Str_7); {я і вона}
...
3.8 Масиви символів і рядка
Змінна типу array[1..n] of char є рядком постійної довжини n. Тому масивами символів можна оперувати так само, як і рядками. Проте є єдине обмеження: не можна призначати змінну типу string змінній типу array[1..n] of char.
const
Str_Const='віpно'; {рядкова константа}
tурe
Mas_Simvol=array[1..5] of char;{масив символів}
var
Const_str_1, Const_str_2:Mas_Simvol;
Perem_Str:string[10];
begin
Const_str_1:='мірно'; {масиву символів привласнили рядкову
константу завдовжки в п'ять символів}
Const_str_2:='Str_Const'; {масиву символів привласнили рядкову константу}
if Const_str_1>Const_str_2 {умова виконується оскільки «мірно»>«вірно»}
then
WriteLn('''',Const_str_1,'''більше,ніж ''',Const_str_2,''''); {буде виведено 'мірно' більше, ніж 'вірно'}
Perem_Str:='При';{рядкову константу присвоїли рядку}
Perem_Str:=concate(Perem_Str,Const_str_1);
{в змінній Perem_Str знаходитиметься рядкова константа «Приблизно»}
Const_str_1:=Perem_Str{тaкe привласнення виконати не можна}
Для виведення одинарних лапок «'» в операторах Write і WriteLn необхідно подвоювати їх число «"». В цьому випадку компілятор не сприймає їх як межі рядкових констант. Мабуть, в таких випадках в тексті програм зручніше одинарні лапки замінювати подвійними «"».