
- •Методичний посібник для самостійної роботи
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •Затверджено методичною радою коледжу
- •Мета та задачі предмету. Історія створення та розвитку мови Pascal. Етапи розробки програми. Інтегроване середовище Turbo Pascal 7.0. Основні розділи теми.
- •Помилки. Компілятор. Синтаксис і семантика
- •Типи помилок
- •Інтегроване середовище Turbo Pascal 7.0.
- •Рядок меню.
- •Меню Compile
- •Питання для самоконтролю.
- •Алфавіт мови. Структура програми. Типи даних. Основні розділи теми.
- •Алфавіт мови
- •Типи даних
- •Стандартні типи даних.
- •Цілі типи
- •Дійсні типи
- •Нестандартні прості типи.
- •Наприклад
- •Завдання 1:
- •Типізовані константи.
- •Структура програми.
- •Перша програма.
- •Питання для самоконтролю.
- •Лінійні програми. Команди присвоювання. Команди введення та виведення даних. Форматоване виведення даних. Основні розділи теми.
- •Лінійні програми.
- •Команда присвоювання.
- •Основні операції, стандартні функції і процедури. Основні операції
- •Основні стандартні функції і процедури
- •Правила запису арифметичних виразів.
- •Правила запису стандартних функцій.
- •Команди введення даних (read, readln).
- •Команди виведення даних (write, writeln).
- •Форматоване виведення даних.
- •Х.ХхххххххххЕзнакхх
- •Питання для самоконтролю.
- •Завдання 2:
- •Розгалуження: складена команда, логічний вираз, команда розгалуження if. Команда case. Основні розділи теми.
- •Розгалуження
- •Складений оператор.
- •Логічний вираз
- •Умовний оператор if.
- •Задача2:
- •Задача 3.
- •Оператор goto.
- •Вкладений if
- •Слід знати:
- •Задача 4.
- •Задача 5.
- •Оператор вибору case.
- •Задача 6.
- •Питання для самоконтролю.
- •Завдання 3. Написати і відладити наступні програми.
- •Цикли. Команда циклу з параметром (for), команда циклу з передумовою (while), команда циклу з після умовою (repeat). Основні розділи теми.
- •Оператор циклу з параметром (for).
- •Ця команда діє, як і попередня, але крок зміни лічильника рівний -1.
- •Задача 7.
- •Задача 8.
- •Задача 9.
- •Команда циклу з передумовою (while).
- •Задача 10.
- •Команда циклу з післяумовою (repeat).
- •Задача 11.
- •Задача 12.
- •Задача 13.
- •Завдання 4:
- •Завдання 5:
- •Завдання 6:
- •Завдання 7.
- •Дайте відповідь на питання, скільки разів ця цифра зустрічається в числі Задача 17:
- •Завдання 8
- •Вкадені цикли.
- •Задача 18
- •Завдання 9
- •Питання для самоконтролю.
- •Масиви. Опис масивів. Дії над масивами. Масиви. Основні розділи теми.
- •Опис масивів.
- •Опис меж
- •Дії над масивами.
- •Заповнення масиву даними
- •Виведення масиву.
- •Обробка масиву
- •Дії з одновимірними масивами
- •Завдання 10:
- •Питання для самоконтролю.
- •Завдання для самоконтролю.
- •Сортування масивів. Двовимірні масиви. Сортування масиву Основні розділи теми.
- •Лінійне сортування (сортування відбором)
- •Програма лінійного сортування по не зростанню
- •Бульбашковий метод.
- •Підсумовування елементів кожного рядка.
- •Програма транспонування матриці.
- •Завдання 12:
- •Питання для самоконтролю.
- •Підпрограми. Процедури, функції. Рекурсивні функції. Основні розділи теми.
- •Процедури (procedure) і функції (function).
- •Виклик процедур і функцій.
- •Оператор виклику працює так:
- •Область дії параметрів:
- •Завдання 13:
- •Рекурсивні функції.
- •Завдання 14:
- •Задачі, з постановки якиїх можна витягнути рекурсію.
- •Задачі, які можна розв’язати як окремий випадок узагальненої.
- •Задачі, в яких можна використати характеристику або властивість функції.
- •Відкриті масиви.
- •Завдання 15:
- •Питання для самоконтролю.
- •Дані рядкового типу string. Основні розділи теми.
- •Тип даних char.
- •Рядковий тип
- •Задача 28.
- •Операції над рядками
- •Задача 29.
- •Операції відношення
- •Рядкові процедури і функції
- •Задача 30.
- •Задача 31.
- •Питання для самоконтролю.
- •Завдання 16:
- •Модулі. Модулі користувача. Стандартні модулі. Основні розділи теми.
- •Поняття модуля
- •Структура модуля
- •Компіляція модулів
- •Стандартні модулі Короткий опис модулів.
- •Графіка
- •Запитання
- •Оператор with
- •Питання для самоконтролю.
- •Завдання 18:
- •Файли і робота з ними. Основні розділи теми.
- •Текстові файли
- •Типізовані файли.
- •Процедури і функції для типізованих файлів:
- •Питання для самоконтролю.
- •Завдання 19:
- •Інтегроване середовище розробки Delphi 7. Мова програмування Delphi. Структура програми Delphi: структура проекту, структура модуля, елементи програми. Основні розділи теми.
- •Інтегроване середовище розробки.
- •Головне вікно
- •Інструментальні кнопки
- •Палітра компонентів
- •Вікно форми
- •Вікно дерева об'єктів
- •Вікно інспектора об'єктів
- •Вікно коду програми
- •Зміна властивостей форми
- •Оброблювач події OnClick
- •Структура програм Delphi
- •Структура проекту
- •Структура модуля
- •Питання для самоконтролю.
- •Класи. Складові класу. Методи та властивості. Питання для самоконтролю.
- •Методи.
- •Властивості.
- •Оголошення класу.
- •Питання для самоконтролю.
- •Форми. Різновид форм. Створення і використання форм. Основні розділи теми.
- •Різновиди форм.
- •Методи форми
- •Події форми.
- •Робота з формою.
- •Питання для самоконтролю.
- •Компоненти. Властивості компонентів. Основні розділи теми.
- •Знайомство з компонентами.
- •Вкладка Standard
- •Вкладка Additional
- •Вкладка Win32
- •Вкладка System
- •Вкладка Dialogs
- •Вкладка Win31
- •Вкладка Samples
- •Вкладка ActiveX
- •Робота з об’єктами.
- •Питання для самоконтролю.
- •Delphi 7. Файли. Доступ до файлу. Текстові файли. Основні розділи теми.
- •Теоретичні відомості.
- •Хід роботи
- •Практична робота № 2.
- •Тема: Створення гри «Спіймай кнопку».
- •Мета: Вивчення особливостей компонента Timer.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 3
- •Тема: Створення логічної гри.
- •Мета: Вивчення можливостей використання властивості Tag і об'єкта Sender.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 4.
- •Тема: Генератор функцій.
- •Мета: Вивчення компонента PaintBox і методів малювання на канві. Компонент TrackBar.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 5
- •Тема: Створення елементів інтерфейсу найпростішого графічного редактора.
- •Мета: Вивчення компонентів ColorGrid, SpinEdit, RadioGroup, ListBox, ColorDialog.
- •Короткі теоретичні відомості.
- •Хід роботи. Частина 1
- •Частина 2.
- •Література
Завдання 15:
Написати програму, яка має дві функції та виконую наступні дії:
Описує та ініціює 3 двовимірні масиви розміром M,N,К випадковими числами.
Викликає функцію_1 для їх обробки: Знайти max елемент та обміняти його місцями з елементом, розташованим на 1 елемент зліва від нього.
Питання для самоконтролю.
Визначення процедури.
Визначення функції.
Формальні параметри.
Фактичні параметри.
Виклик процедур і функцій.
Відповідність між фактичними і формальними параметрами.
Область дії параметрів.
Рекурсивні функції.
Задачі, з постановки якиїх можна витягнути рекурсію.
Задачі, які можна розв’язати як окремий випадок узагальненої.
Задачі, в яких можна використати характеристику або властивість функції.
Відкриті масиви.
Література: 2.с.143..187.
Дані рядкового типу string. Основні розділи теми.
Тип даних CHAR.
Рядковий тип
Операції над рядками
Рядкові процедури і функції
В TurboPascal є два типи даних для роботи з текстами:
CHAR - літерний або символьний тип;
STRING - рядковий тип або просто рядок.
Тип даних char.
Значенням змінних символьного типу char є один символ. Кожному символу відповідає код символу – ціле число від 0 до 255, таким чином дії по обробці символів зводяться до дій над цілими числами, розташованими строго по порядку.
Над даними символьного типу визначені операції порівняння (< <= > >= = <>). «Великим» вважається символ, який розміщений в алфавіті далі (він має більший номер в таблиці кодів комп'ютера ASCII).
Для даних символьного типу визначені наступні стандартні функції:
chr(x) — повертає значення символу за його кодом;
ord(ch) — повертає код заданого символу ch;
pred(ch) — повертає попередній символ;
succ(ch) — повертає наступний символ;
upcase(ch) перетворить рядкову букву в заголовну. Обробляє букви тільки латинського алфавіту.
Приклад 1.:
ord('A')=65 pred('B')='A' upcase('n')='N'
chr(128)='Б' succ('Г')='Д'
Приклад 2. Перетворення російських і англійських букв в заголовні безпосередньо при введенні. Буква вводиться в будь-якому регістрі, а на екрані — завжди заголовна.
var с:char;
begin
с:=readkey;{ сліпе введення без відображення на екрані — модуль crt }
case с
{коди заголовних і прописних російських букв від А до П розрізняються на 32 }
'а' .. 'п': с:=chr(ord(c)-32);
'р' .. 'я': с:=chr(ord(c)-80); {а коди від Р до Я — на 80 }
'а' .. 'z': с:=upcase (с);
end;
write(c)
end.
Рядковий тип
Рядок — це послідовність символів. Максимальна кількість символів в рядку (довжина рядка) може змінюватися від 1 до 255.
Змінну рядкового типу можна задати через опис типу в розділі визначення типів.
type <ИмяТипа> = string [<макс. довжина рядка>];
var <Идентифікатор> ... : <ім’я типу>;
Приклад. type stroka=string[80];
var str1,str2: stroke;
Рядкову змінну можна задати і без попереднього оголошення типу безпосередньо в розділі оголошення змінних.
var <Идентификатор> . : string[макс. довжина рядка];
або
var <Идентификатор> ... : string;
Якщо максимальна довжина рядка не вказується, то вона рівна 255 байт.
Приклад. var str1,str2: string[80];
Рядкові дані можуть використовуватися в програмі також як константи.
Приклад. const strAdres = 'вул. миру, 35'; { рядкова константа }
sAdr: string[12]= ' вул. Мира' { константа, що типізується, її можна. використовувати як звичайну змінну}
Рядок в мові Turbo Pascal трактується як масив символів. Для рядка с п символів в пам'яті відводиться n+1 байт; n байтів — для зберігання символів рядка, а один додатковий байт — для значення поточної довжини рядка. Цей додатковий байт має номер 0, відповідно перший символ рядка має номер 1, другий — номер 2 і т.д.
Приклад:.змінна sAdr типу string[12] зберігається в пам'яті таким чином.
-
Номер байта
0
1
2
3
4
5
6
7
8
9
10
11
12
Його значення
9
В
у
л
.
М
и
р
у
Всього рядок займає 13 байтів, з них останні 4 байти виявилися незайнятими, оскільки реальна довжина рядка складає 8 символів, це значення і зберігається в нульовому байті рядка. Незайняті байти складають "хвіст" рядка, в якому може бути будь-яке "сміття", проте програма не звертатиметься до "хвоста", оскільки реальний розмір рядка їй відомий.
З цього уявлення зрозуміло і обмеження на максимальну довжину рядка — 255 символів, оскільки для зберігання довжини рядка відведений всього один байт (максимальне двійкове число, яке можна умістити в один байт, — вісім одиниць, що підряд йдуть, що відповідає десятковому числу 255).
До будь-якого символу в рядку можна звернутися як до елемента одновимірного масиву array [0..n] of char по номеру (індексу) даного символу в рядку.
Індекс визначається виразом цілочисельного типу, який записується в квадратних дужках, як для масиву.
Змінні рядкового типу можуть брати участь цілком в операторах введення-виведення.
Приклад. readln(st1); writeln(st2);
При введенні рядка кількість символів в ньому визначається автоматично, при цьому автоматично заповнюється нульовий байт. Для отримання довжини рядка є функція length, яка повертає значення нульового байта рядка.
Посимвольне введення рядка варто реалізувати тільки в тому випадку, якщо необхідно сумістити введення і якусь обробку символів. Посимвольне виведення також зручно використовувати для якої-небудь нестандартної форми виведення.