
- •Методичний посібник для самостійної роботи
- •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.
- •Література
Практична робота № 4.
Тема: Генератор функцій.
Мета: Вивчення компонента PaintBox і методів малювання на канві. Компонент TrackBar.
Короткі теоретичні відомості.
PaintBox являє собою деяку обмежену поверхню з канвою, на яку можна заносити зображення. Канва являє собою область компонента, на якій можна малювати або відображати готові зображення. Вона містить властивості та методи, істотно спрощують графіком Delphi.
Канва має властивість Pixels. Ця властивість є двовимірний масив, який відповідає за кольору канви. Наприклад, Canvas.Pixels [10,20] відповідає кольору пікселя, 10-го зліва та 20-го зверху. З масивом крапок можна звертатися як з будь-яким властивість: змінювати колір, задаючи пікселю нове значення, або визначати його колір по зберігається в ньому значенню. Наприклад, Canvas.Pixels [10,20]: = 0 або Canvas.Pixels [10,20]: = clBlack - це завдання пікселю чорного кольору.
Канва - об'єкт класу TCanvas має безліч методів, які дозволяють малювати графіки, лінії, фігури за допомогою властивості Pen - перо. Ця властивість є об'єктом, в свою чергу мають ряд властивостей. Одне з них вже відоме вам властивість Color - колір, яким наноситься малюнок. Друге властивість - Width (ширина лінії). Ширина задається в пікселях. За замовчуванням ширина дорівнює 1. Властивість Style визначає вид лінії.
Фігури в загальному випадку малюються не порожніми, а зафарбованими за допомогою властивості канви Brush - кисть. Властивість Brush є об'єктом, що має в свою чергу ряд властивостей. Властивість Color визначає колір заповнення. Властивість Style визначає шаблон заповнення (штрихування). За замовчуванням значення Style одно bsSolid, що означає суцільне зафарбовування кольором Color.
Компонент TrackBar являє собою елемент керування у вигляді повзунка, який користувач може переміщати курсором миші або клавішами під час виконання. Таким чином, користувач може управляти якимись процесами: гучністю звуку, розміром зображення і т.п. Основна властивість компонента - Position. Це властивість можна задавати під час проектування або програмно під час виконання. При переміщенні користувачем повзунка можна прочитати значення Position, що характеризує позицію, в яку користувач перемістив повзунок. Властивість Position - ціле, значення якого може змінюватися в межах, що задаються властивостями Min і Мах.
Хід роботи.
Запустіть Delphi. При цьому автоматично буде створений новий проект з формою.
Збережіть проект у своїй папці, створивши в ній папку генератор функцій. Для чого виконайте команду Save All, Unit назвіть U_generat, проект - P_generat.
Встановіть властивості форми Form1:
Дайте назву формі: «Генератор функцій».
Встановіть властивість Form1.Position в poDesktopCenter, щоб вікно при кожному запуску і при будь-якому екранному дозволі завжди було рівно посередині екрана.
Устанавіть властивість Form1.BorderStyle в bsSingle, для незмінного розміру вікна.
Залиште у вкладених властивостях BorderIcons тільки biSystemMenu в true, інші в false. Це для того, щоб вікно можна було скрутити в значок, розгорнути на весь екран і вікно мало іконку в заголовку.
В
становіть у форму компонент PaintBox (вкладка System), два компонента RadioButton, один компонент CheckBox, три кнопки Button (всі компоненти розташовані на панелі Standard) і повзунок прокрутки TrackBar, розташований на вкладці Win32. Розташуйте компоненти, як це зазначено на малюнку нижче:
RadioButton1.Caption перейменуйте в "Sin". Цей прапор буде ознакою малювання синусоїди. Початкове значення властивості Checked для RadioButton1 встановіть в true.
RadioButton2.Caption перейменовуємо в "Cos" - косінусоіда.
CheckBox1.Caption перейменуйте: "Усі". Якщо цей прапор встановлений, то буде малюватися два графіки.
Назви кнопок Button1 - "Старт", Button2 - "Стоп (пауза)" і Button3 - "Вихід". Назви на кнопках міняються через властивість Caption. Тепер призначення цих кнопок зрозуміло.
Компонент TrackBar1 властивість мінімального значення Min встановіть в 1, максимальне значення Max - 50.
Для PaintBox1, на якому буде безпосередньо малюватися графік задайте розміри висоти Height = 140, ширини Width = 500.
Відразу після слова Implementation в модулі вікна оголошуємо глобальні змінні, які будуть доступні з будь-якої процедури в цьому модулі.
Var
stop: boolean; / / ознака малювання
x: Integer; / / координата осі X
В обробнику події OnClick для кнопки Button1 («Старт») напишіть наступне:
procedure TForm1.Button1Click (Sender: TObject);
Var
y: Integer; / / вісь Y
begin
if x = 0 then // якщо точка на початку координат, то:
begin
PaintBox1.Canvas.Brush.Color: = clWhite; .// колір фону білий
PaintBox1.Canvas.FillRect (ClientRect); // заливка всієї робочої області
end;
stop: = false; / / прапор старту процесу малювання
While not stop do // нескінченний цикл, поки прапор зупинки не піднято:
begin
if (RadioButton1.Checked) or (CheckBox1.Checked) then
// Якщо встановлено "Sin" або "Всі", то:
begin
y: = Round (Sin (pi * x/100) * 50) +70;
// обчислення положення синусоїди
PaintBox1.Canvas.Pixels [x, y]: = clBlack;
// намалювати чорну точку
end;
if (RadioButton2.Checked) or (CheckBox1.Checked) then
// Якщо встановлено "Cos" або "Всі", то:
begin
// обчислення положення косінусоіди
y: = Round (Cos (pi * x/100) * 50) +70;
// намалювати чорну точку
PaintBox1.Canvas.Pixels [x, y]: = clBlack;
end;
inc (x); // збільшити значення X на одиницю.
X: = X +1
if x> 500 then // якщо X вийшов за межі PaintBox1, то:
begin
x: = 0; / / встановити X на початок координат
// Колір фону білий
PaintBox1.Canvas.Brush.Color: = clWhite;
PaintBox1.Canvas.FillRect (ClientRect); // Очищення робочої області
// Процедура "засинає" на заданий час в мілісекундах
PaintBox1end;Sleep (TrackBar1.Position);
Application.ProcessMessages; // Обробка всієї черги повідомлень
end;
end;
Як тільки натиснута кнопка "Старт" Компонент PaintBox1 очищається і починається нескінченний цикл While, вийти з якого можна тільки, поки мінлива Stop не прийме значення true. Це можна зробити кнопкою Button2, відповідна процедура якої обробиться під час Application.ProcessMessages. За допомогою бігунка TrackBar1 можна змінювати швидкість малювання кривої. Цей параметр передається в команду Sleep.
Напишіть процедуру натискання на кнопку зупинки Button2
procedure TForm1.Button2Click (Sender: TObject);
begin
Stop: = true; / / встановити прапор зупинки процесу малюванн
end;
Напишіть процедуру створення вікна
Form1OnCreate
procedure TForm1.FormCreate (Sender: TObject);
begin
x: = 0; / / початкове значення X
end;
Напишіть процедуру OnClick для кнопки Button3. Якщо натиснута кнопка "Вихід", то реакція на цю подію буде таким:
procedure TForm1.Button3Click (Sender: TObject);
begin
Close; / / закрити вікно
end;
Напишіть процедуру для форми OnClose: реакція перед закриттям вікна OnClose. Без цієї процедури, якщо малювання включено, вікно не закриється.
procedure TForm1.FormClose (Sender: TObject; var Action: TCloseAction);
begin
Stop: = true; / / зупинити (якщо включений) цикл малювання
end;
Після запуску програми, установки прапорця "Все" і натисненні на кнопку "Старт" на екрані з'явиться графік:
Виконайте самостійно:
Додайте CheckBox «Інвертувати», при виборі якого колір області побудови стає чорною, а графіки функцій вимальовуються білим кольором.
Зробіть так, щоб в неінвертірованном режимі синусоїда зображувалася червоним кольором, а косинусоіда - синім.
Поексперементуйте з програмою, додавши ще графіки: y = sin2x y = sin і можливість одночасної трансляції графіків трьох функцій: y = sin2x, y = sinx, y = sin різними кольорами. Спробуйте рухати повзунок прокрутки TrackBar вліво або вправо при запущеній програмі.
Результатом виконання даної практичної роботи є створений згідно із завданням програмний продукт. Виконане завдання повинне бути пред'явлено викладачеві в електронному вигляді. В ході захисту практичної роботи студент повинен продемонструвати свої навички роботи з вивченими компонентами і методами проектування інтерфейсу користувача.