
- •Методичний посібник для самостійної роботи
- •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.
- •Література
Практична робота № 3
Тема: Створення логічної гри.
Мета: Вивчення можливостей використання властивості Tag і об'єкта Sender.
Короткі теоретичні відомості.
Метою даної лабораторної роботи є написання наступної програми. Ігрова дошка містить сім клітин. На трьох лівих клітинах стоять червоні фішки, на трьох правих - сині. Центральна клітина порожня. Завдання полягає в тому, щоб, роблячи допустимі ходи, поміняти фішки місцями. Вид робочого вікна гри представлений нижче.
Правила ходів такі:
Червоні фішки можуть ходити тільки вправо, сині - тільки вліво.
Ходити дозволяється тільки на вільне поле.
Дозволені переміщення на сусіднє поле і «стрибок» через фішку. В ході вирішення головоломки кнопки будуть рухатися, а вид вікна змінюватися. Тому необхідно точно задати геометричні параметри об'єктів. Настроювати параметри будемо, змінюючи властивості Top, Left, Height, Width компонентів. Параметри повинні бути наступними:
У чому полягає хід гри? У тому, що одна з фішок-кнопок переноситься на вільне місце. Це означає, що достатньо вказати, ка ¬ кой фішкою треба піти. Якщо фішка може зробити хід, то він тільки один.Отже, користувач може вибрати хід, клацнувши на одній з кнопок. Тобто ми будемо обробляти подія OnClick (При клацанні).Але ми повинні розрізняти кнопки, а також знати, де вони знаходяться і де знаходиться вільна клітина. Тому ми поступимо так: будемо зберігати додаткові дані прямо у властивостях об'єкта-кнопки. Для цього нам потрібно «вільне» властивість. Така властивість є: всі компоненти системи Delphi надають властивість Tag, яке програміст може використовувати на свій розсуд.Властивість Tag може зберігати будь-яке ціле число. Нам потрібно зберігати два числа. По-перше, номер клітки, в якій знаходиться кнопка, а по друге, ознака «кольору» фішки (від нього залежить, в який бік вона може ходити). Ці дані легко «упакувати» в одне ціле число: помножимо номер клітки на 2 і, якщо фішка синя, додамо до нього одиницю. Таке значення легко «розібрати» назад на складові. Розділимо його на 2. Приватне дасть номер клітки, а залишок буде ознакою кольору фішки
Хід роботи.
Запустіть Delphi. При цьому автоматично буде створений новий проект з формою.
Збережіть проект у своїй папці, створивши в ній папку Логічна гра. Для чого виконайте команду Save All, Unit назвіть U_logic, проект - P_logic.
Дайте назву формою: Йде гра.
Додайте на формі компонент Panel (розміри і колір форми та компонента Panel підберіть самі).
На панелі розташуйте 6 компонентів BitBtn (панель Additional) розміром 49 на 49. Властивість Top всіх компонентів дорівнюватиме 8, Left - приблизно: 64,120,232,288,344 (перерахуйте самостійно).
Створіть за допомогою графічного редактора зображення червоного і синього трикутників або інших фігур на ваш смак і збережіть їх у форматі bmp. Потім, використовуючи властивість Glyph компонента, помістіть зображення на кнопки.
Тепер можна задати значення властивості Tag для всіх кнопок. По черзі виберіть фішки зліва направо і задайте для властивості Tag значення, наведені в таблиці.
Значення властивості Tag
Коментарі
2
перша клітинка, червона фішка
4
друга клітинка, червона фішка
6
третя клітинка, червона фішка
11
п’ята клітинка, синя фішка
13
шоста клітинка, синя фішка
15
сьома клітинка, синя фішка
8. Опишіть глобальну змінну n, в якій будите зберігати номер порожній клітини і змінну win, в якій буде міститися кількість ходів.
var
Form1: TForm1;
n: integer = 4;
win: integer = 24;
Тут ми не тільки описуємо потрібні змінні, але і відразу присвоюємо їм початкове значення. Спочатку у нас пуста четверта клітка, звідси і вибір цього числа, 24 - максимально можливе число ходів.
Виберіть першу кнопку і створіть обробник OnClick для неї.
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,c,k,ak:integer;
begin
with Sender as TBitBtn do
begin
i:=Tag div 2;
c:=Tag mod 2;
k:=n-i;
ak:=abs(k);
if ak<3 then
if ((c=0) and (k>0)) or
((c=1) and (k<0)) then
begin
tag:=tag+2*k;
left:=left +56*k;
win:=win-ak;
n:=i;
end;
end;
if win=0 then
begin
caption:=’Vaw!!!!';
panel1.Color:=clFuchsia; //міняємо колір панелі
panel1.Enabled:=false; //всі кнопки на панелі становляться не дійсними
end;
end;
Зверніть увагу на те, що в процедуру передається параметр - об'єкт Sender. Він представляє саме той об'єкт, який викликав подія, і може дати доступ до його властивостей. Але безпосередньо це не вийде. Програмі треба спеціально вказати, що об'єкт Sender в даному випадку слід вважати кнопкою. Для цього служить ключове слово as. Після нього вказують тип, якому насправді належить об'єкт Sender: Sender as TBitBtn.
Для кожної з кнопок на вкладці Події у вікні навпроти OnClick виберіть зі списку вже описану процедуру.
Виконайте самостійно:
11 Додайте вікно: привітання з виграшем.
Введіть лічильник кількості ходів і повідомте за скільки ходів виграли.
Спробуйте виграти!
Результатом виконання даної практичної роботи є створений згідно із завданням програмний продукт. Виконане завдання повинне бути пред'явлено викладачеві в електронному вигляді. В ході захисту практичної роботи студент повинен продемонструвати свої навички роботи з вивченими компонентами і методами проектування інтерфейсу користувача.