
- •Методичні рекомендації до проведення лабораторних робіт
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •Затверджено методичною радою коледжу
- •Лабораторна робота №1. Тема: Програмування алгоритмів циклічної структури. Оператор циклу з параметром. Оператори циклу while, repeat.
- •Хід роботи
- •Лабораторна робота №2. Тема: Робота з одновимірними масивами.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 2 . Масиви.
- •Дії над масивами. Заповнення масиву даними
- •Виведення масиву.
- •Дії з одновимірними масивами
- •Сортування масиву
- •Лабораторна робота №3. Тема: Сортування масивів. Робота з двовимірними масивами.
- •Хід роботи
- •Лабораторна робота №4. Тема: Процедури та функції. Рекурсивні функції. Відкриті масиви
- •Хід роботи
- •Використання процедур без параметрів та з параметрами.
- •Використання функцій.
- •Лабораторна робота №5. Тема: Робота з даними рядкового типу.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 5 . Рядки (string)
- •Змінну рядкового типу оголошують за допомогою слова string так:
- •Лабораторна робота №6. Тема: Модулі користувача. Модулі crt і graph.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 6. Модулі.
- •Виведення тексту
- •Приклад виводу тексту.
- •Поняття модуля
- •Структура модуля
- •Компіляція модулів
- •Стандартні модулі Короткий опис модулів
- •Графіка
- •Лабораторна робота №7. Тема: Записи. Команда приєднання (with).
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 7. Поняття запису
- •Оператор with
- •Лабораторна робота №8. Тема: Робота з текстовими файлами. Використання типізованих файлів.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 8. Файли і робота з ними.
- •Лабораторна робота № 1. Тема: Створення форми «Анкета студента». Об'єкти: форма, текстове поле, зображення, кнопка. Програмування кнопок.
- •Хід роботи.
- •Збережіть створюваний проект в своїй папці.
- •Візуально ознайомтеся з властивостями форми Left, Top, Width і Height.
- •Змініть колір фону форми.
- •Вставте у форму текстове поле (об'єкт типу Label) з текстом «Анкета студента».
- •Вставте у форму об'єкт типу Image (картинка).
- •Накладіть свою художню фотографію на портретну, вставивши у форму ще один об'єкт типу Image.
- •Запрограмуйте кнопку «Портретна фотографія» так, щоб після її натиснення у формі з'являлася портретна фотографія
- •Запрограмуйте кнопку «Художня фотографія» відповідно її призначенню
- •Лабораторна робота № 2. Тема: Задача «Обмін валюти».
- •Хід роботи.
- •Збережіть створений проект в своїй папці.
- •Теоретичні відомості до лабораторної роботи.
- •Лабораторна робота № 3. Тема: Задача «Табулювання функції».
- •Хід роботи.
- •Збережіть виконану на даний момент форму в своїй папці.
- •Запрограмуйте команду «Вихід» головного меню, скориставшись стандартною процедурою Close.
- •Запрограмуйте команду «Очистити поле виведення» контекстного меню.
- •Запустіть створену на цей момент програму і досліджуйте її роботу.
- •Запрограмуйте команду «Табулювати».
- •Лабораторна робота № 4. Тема: Задача «Біржа цінних паперів».
- •Хід роботи.
- •Збережіть виконану на даний момент форму в своїй папці (FileSave All).
- •Вставте у форму три таблиці текстових рядків StringGrid.
- •Розмістіть на формі текстові поля так, як показано в пункті 5.
- •У вікні тексту програми перед розділом Implementation введіть опис констант і змінних програми:
- •Запрограмуйте кнопки SpeedButtonl і SpeedButton2 таким чином:
- •У вікні тексту програми після розділу Implementation введіть опис методу Refresh форми
- •Запрограмуйте процедуру створення форми FormCreate.
- •Збережіть виконану на даний момент роботу в своїй папці.
- •Лабораторна робота № 5. Тема: Задача «Телефонний довідник».
- •Хід роботи.
- •Відкрийте нову форму з багатосторінковим блокнотом.
- •Виділіть (клацнувши усередині сторінки мишею) і видаліть (Delete) третю сторінку блокнота TabSheet3.
- •Заповніть обидві сторінки форми візуальними об'єктами так, як це показано на малюнку.
- •Збережіть виконану на даний момент форму в своїй папці (FileSave All).
- •Д одайте на форму команди головного меню і введіть назви його команд, як показано на малюнку.
- •Створіть вікно форми «Про програму».
- •Запрограмуйте кнопку Ok вікна «Про програму».
- •Видаліть непотрібну порожню форму Form1 з проекту.
- •Напишіть процедуру створення форми.
- •Напишіть процедуру заповнення полів редагування NewEdit.
- •Напишіть процедуру заповнення комбінованого списку NewComboBox.
- •Запрограмуйте кнопку переходу на попередній запис «Попередній».
- •Аналогічно запрограмуйте кнопку «Наступний».
- •Збережіть програму і переконайтеся в правильності її роботи.
- •Створіть ехе-файл програми.
- •Закрийте Delphi, запустіть створену програму .
- •Продемонструйте створену форму викладачеві.
- •Лабораторна робота №6 Тема: Створення програми: текстовий редактор «Блокнот».
- •Хід роботи.
- •Завантажте систему візуального програмування Delphi.
- •Створення інтерфейсної частини
- •Створення головного меню
- •Створення програмної частини.
- •Лабораторна робота № 7. Тема: Задача «вивчення англійської мови».
- •Хід роботи.
- •Введіть опис глобальних змінних модуля:
- •Введіть опис глобальних констант програми:
- •Запрограмуйте процедури: створення форми FormCreate, Вставки в неї малюнків SetPicture, виведення інформації про результати тестів Information і кнопку Ex:
- •Аналогічно запрограмуйте перетаскування двох інших малюнків.
- •Створіть ще одну функцію Position1, для перевірки, чи знаходиться малюнок на даній фігурі, чи ні.
- •Запрограмуйте кнопку «Далі» для перевірки правильності розташування малюнків і для формування наступних малюнків
- •Запрограмуйте другий таймер, який забезпечує індикацію часу від 100% до 0%, зворотно пропорційно числу в SpinEditl. Кнопка «Далі» повинна бути активною, якщо всі малюнки розставлені.
- •Збережіть програму в своїй папці.
- •Створіть ехе-файл програми.
- •Закрийте Delphi, запустіть створену програму.
- •Продемонструйте створену програму викладачеві.
- •Оформіть звіт по лабораторній роботі: тема і мета роботи; послідовність виконання роботи, завдання до лабораторної роботи.
- •Лабораторна робота №8. Тема: Програмування гри «о, щасливчик!».
- •Хід роботи.
- •Компіляція і запуск програми
- •Шифрування бази відповідей
- •Лабораторна робота № 9.
- •Тема: Проектування субд в середовищі delphi.
- •Мета: Ознайомитись з компонентами роботи з субд.
- •Постановка завдання:
- •Короткі теоретичні відомості. Створення і перегляд псевдонімів баз даних
- •Хід роботи.
- •Створення звітів
- •Варіант контрольного завдання:
Збережіть програму в своїй папці.
Для цього виконайте команду головного меню File => Save All або натисніть кнопку Save All на панелі інструментів.
В вікні Save Unit as за допомогою списку виберіть свою папку, створіть в ній папку Teach_Engl і відкрийте її, задайте назву для файлу тексту програми UTeachEngl, попередньо видаливши запропоновану назву.
В наступному вікні «Save Project1 As» введіть назву файлу проекту PTeachEngl, видаливши запропоновану назву. Зверніть увагу: файли проекту і тексту програми повинні мати різні назви.
Скопіюйте файли малюнків і звуків у папку з програмою. Зверніть увагу, що малюнки повинні зберігатись в папці «img» в папці проету. При зміні папки треба змінити константу «folder» в програмі. Музику і малюнки можна знайти в Інтернеті, або в папці «C:\Program Files\Microsoft Office\CLIPART\PUB60COR»,або отримати у викладача.
Запустіть програму. Перетягуйте малюнки на середину відповідних фігур.
Створіть ехе-файл програми.
Закрийте Delphi, запустіть створену програму.
Продемонструйте створену програму викладачеві.
Виконайте додаткові завдання .
№
Задача
Забезпечте можливість перетягування малюнка лише лівою кнопкою миші
Збільшить частоту появи напису «Обов’язково натисніть кнопку «далі» після розміщення малюнків »
Забезпечте індикацію оцінки за пройдений тест. Диапазону 100-86 балів, поставте оцінку "5", диапазону 78-85 балов - оцінку "4", 51-77 - оцінку "3", менше 51 бала - оцінку "2". Підберіть звукові ефекти для різних випадків
Підберіть нормальну швидкість для SpinEditl і зробіть його недоступним для внесення змін
Видаліть об’єкт SpinEditl і задайте саму вдалу швидкість в самому проекті
Збільшить кількість питань з малюнками і підписів до них
Оформіть звіт по лабораторній роботі: тема і мета роботи; послідовність виконання роботи, завдання до лабораторної роботи.
Delphi 7.
Лабораторна робота №8. Тема: Програмування гри «о, щасливчик!».
Мета роботи: Навчитись працювати з файлами.
Хід роботи.
Всі питання, а також правильні і неправильні відповіді будуть зберігатися не в коді програми, а в зовнішньому INI-файлі, в якому всі дані розбиті на розділи.
Створіть в тому ж каталозі, що і майбутня програма, файл з ім'ям lucky.ini і введемо в нього наступний текст:
; початок файлу
[num]
num=3
[Questions]
1=Скільки клавіш на клавіатурі?
2=Основна несправність миші?
3=Основні файлові системи:
[Answers]
1=101
2=забруднення
3=FAT, NTFS
[Wrong]
1=100
11=96
111=116
2 =зависання
22=залипання
222=заїдання
3=AFX, KFX
33=ATF,NFTS
333=TAF,TNFS
Перший рядок - це коментар. Тут можна писати все, що завгодно. Перший розділ num містить тільки один параметр з таким же ім'ям, який вказує на кількість питань в тесті. Цей параметр знадобиться для того, щоб питання задавалися в довільній послідовності. Наступний розділ - Questions. У ньому знаходяться всі питання. У розділі Answers знаходяться правильні відповіді. У розділі Wrong знаходяться неправильні відповіді.
Для того щоб не створювати три розділи, кожен з яких містить неправильний варіант відповіді, використовуємо ідентифікацію за номером питання. Неправильні відповіді до першого питання знаходяться в параметрах 1, 11 і 111, до другого - в параметрах 2, 22 і 222, до п'ятнадцятого - в параметрах 15, 1515, 151 515 і т.д.
Завантажте систему візуального програмування Delphi.
Створіть новий проект програми: виконайте команду меню FileNew Application.
Дайте значення деяким властивостям форми Form1 згідно з таблицею.
Властивості форми гри "О, щасливчик"
Властивість |
Значення |
Пояснення |
BorderStyle |
bsSingle |
Тепер ніхто не зможе змінити розмір вікна і зробити нашу гру не привабливою. |
Caption |
Вітаємо вас на грі "О, счастливчик"! |
Заголовок вікна |
Height |
414 |
Висота |
Width |
380 |
Ширина |
Розмістіть на формі ряд компонентів з вкладки Standard палітри компонентів:
три компоненти Button (кнопка)
- кількість кнопок відповідає загальній кількості запитань (у нашому прикладі - 3);
RadioGroup (група перемикачів)
;
Memo (багаторядкове текстове поле)
;
два компоненти Label (напис)
.
Тепер розмістимо на компоненті RadioGroup1 (не на формі!) Чотири компоненти RadioButton (перемикач)
з тією ж вкладки Standard.
І, нарешті, розмістимо на формі шість компонентів Image (зображення)
з вкладки Additional палітри компонентів.
Змініть властивості перерахованих компонентів згідно з таблицею:
Компонент |
Властивість |
Значення |
Пояснення |
|
|
Buttonl, Button2 |
Caption |
Наступне питання >>>> |
Кнопка використовується для переходу до слідуючого питання |
|
|
Left |
104 |
Відступ зліва |
|
||
Top |
356 |
Відступ зверху |
|
||
Button2 |
Visible |
False |
При запуску програми кнопка відповіді на друге питання не видна |
|
|
RadioGroupl |
Caption |
Варианты ответов |
Заголовок группи перемикачів |
|
|
Font.Style |
[fsBold] |
Шрифт — напівжирний |
|
||
Font.Color |
clBlue |
Колір шрифта — синій |
|
||
Height |
90 |
Висота |
|
||
Left |
12 |
Відступ зліва |
|
||
|
|
|
|
|
|
|
Top |
256 |
Відступ зверху |
|
|
Width |
348 |
Ширина |
|
||
RadioButtonl |
Name |
an1 |
Перший варіант відповіді |
|
|
Caption |
|
Без надпису |
|
||
Font.Style |
[fsBold] |
Шрифт — напівжирний |
|
||
Font.Color |
clNavy |
Шрифт — темно-сиій |
|
||
RadioButtonl |
Left |
24 |
Відступ зліва |
|
|
Top |
280 |
Відступ зверху |
|
||
Width |
160 |
Ширина |
|
||
RadioButton2 |
Name |
an2 |
Другий варіант відповіді |
|
|
Caption |
|
Без надпису |
|
||
Font.Style |
[fsBold] |
Шрифт —напівжирний |
|
||
Font.Color |
clNavy |
Шрифт — темно-синий |
|
||
Left |
192 |
Відступ зліва |
|
||
Top |
280 |
Відступ зверху |
|
||
Width |
160 |
Ширина |
|
||
RadioButton3 |
Name |
an3 |
Третій варіант відповіді |
||
Caption |
|
Без надпису |
|||
Font.Style |
[fsBold] |
Шрифт — напівжирний |
|||
Font.Color |
clNavy |
Шрифт — темно-синий |
|||
Left |
24 |
Відступ зліва |
|||
Top |
312 |
Відступ зверху |
|||
|
|
|
|||
|
Width |
160 |
Ширина |
||
RadioButton4 |
Name |
an4 |
Четвертий варіант відповіді |
||
Caption |
|
Без надпису |
|||
Font.Style |
[fsBold] |
Шрифт — напівжирний |
|||
Font.Color |
clNavy |
Шрифт — темно-синій |
|||
Left |
192 |
Відступ зліва |
|||
Top |
312 |
Відступ зверху |
|||
Width' |
160 |
Ширина |
|||
Memol |
Color |
clActiveBorder |
Замальовуєм поле питання |
||
Height |
90 |
Висота |
|||
Lines |
|
Очистити вміст |
|||
Left |
12 |
Відступ зліва |
|||
Top |
156 |
Відступ зверху |
|||
Readonly |
True |
Заборона на зміну вмісту поля |
|||
Width |
348 |
Ширина |
|||
Label1 |
Caption |
О, счастливчик! |
Назва гри |
||
Align |
a ITop |
Розміщення вздовж верхнього краю форми |
|||
Alignment |
taCenter |
Вирівнювання тексту — по центру |
|||
Font.Style |
[fsBold] |
Шрифт — напівжирний |
|||
Font.Size |
12 |
Размер шрифта — 12 |
|||
Font.Color |
clRed |
Шрифт— червоний |
|||
Label2 |
Caption |
Первый вопрос: |
Відображає номер даного питання |
||
Font.Style |
[fsBold] |
Шрифт — напівжирний |
|||
Left |
16 |
Відступ зліва |
|||
Top |
140 |
Відступ зверху |
Компоненти Image використовуються для відображення малюнків, які відповідають використаним і невикористаним підказок типу "50 на 50", "Дзвінок другу" і "Допомога залу" (три малюнки - для використаних підказок і три - для невикористаних).
Присвойте властивостям кожного з компонентів Image значення згідно таблиці:
Властивість
Значення
Пояснення
AutoSize
True
Розмір компонену вибирається автоматично в залежності від властивостей Picture
Тор
32
Відступ зверху
Cursor
crHelp
При разміщенні над рисунком показник миші набуває форму
?
Тепер присвойте властивості, унікальні для кожного з шести компонентів Image:
Компонент |
Властивість |
Значення |
Пояснення |
Image1 |
Name |
yes50 |
Малюнок, що відповідає не використаній підказці типу "50 на 50" |
Left |
16 |
Відступ зліва |
|
Picture |
|
Відповідний малюнок |
|
Image2 |
Name |
yesZvonok |
Малюнок, що відповідає не використаній підказці типу «Звонок другу» |
Left |
132 |
Відступ зліва |
|
Picture |
|
Відповідний малюнок |
|
Image3 |
Name |
yesZаl |
Малюнок, що відповідає не використаній підказці типу «Помощь зала» |
Left |
252 |
Відступ зліва |
|
Picture |
|
Відповідний малюнок |
|
Image4 |
Name |
no50 |
Малюнок, що відповідає використаній підказці типу "50 на 50" |
Left |
16 |
Відступ зліва |
|
Picture |
|
Відповідний малюнок |
|
Visible |
False |
Спочатку невидимий |
|
Image5 |
Name |
noZvonok |
Малюнок, що відповідає використаній підказці типу «Звонок другу» |
Left |
132 |
Відступ зліва |
|
Picture |
|
Відповідний малюнок |
|
Visible |
False |
Спочатку невидимий |
|
Image6 |
Name |
noZаl |
Малюнок, що відповідає використаній підказці типу «Помощь зала» |
Left |
252 |
Відступ зліва |
|
Picture |
|
Відповідний малюнок |
|
Visible |
False |
Спочатку невидимий |
Розробка програмного коду.
Оголосіть всі змінні, які будуть використані в програмі:
var
Forml: TForml;
rang: boolean; // перевірка на наявність lucky.ini;
ss, dir: string; // для зберігання шляху до робочої папки і до файлу lucky.ini
i, a, n, pd: integer; // i - лічильник масивів;
// А - номер поточного питання;
// N - кількість питань у базі;
// Pd - для підказки 50/50, для того,
// Щоб випадково не прибрали 1 або 3 варіантів
win: TiniFile; // для роботи з ini-файлом
mass: array [1 .. 10] of integer; // масив містить номери питань, які вже були задані, щоб уникнути повторення питань
Перша подія OnCreate форми:
procedure TForml.FormCreate (Sender: TObject);
label ran ; // оголошуємо мітку
begin
Randomize; // дізнаємося поточний каталог, з якого запускається наша програма
dir: = GetCurrentDir;
ss: = dir + '\ lucky.ini'; // розміщення бази даних
// Перевіряємо чи існує файл з питаннями
rang: = FileExists (ss);
if rang = False
then begin // якщо файлу немає виводимо повідомлення про його відсутність
MessageDlg ('Файл не знайдений: lucky.ini!', MtError, [mbok], 0);
halt; // і виходимо з програми
end;
win: = TIniFile.Create (ss);
// З розділу num дізнаємося кількість питань
ss: = win.ReadString ('num', 'num', ss);
n: = strtoint (ss);
ran: / / мітка
a: = random (n) + 1;
for i: = l to n do // порівнюємо з усіма, що були задані раніше
if mass [i] = a then goto ran; //і якщо таке питання вже був заданий, то згенерувати новий
for i: = 1 to n do
if mass [i] = 0 then begin mass [i]: = а; // запам'ятати, що це питання вже задавалося
break;
end;
// Заносимо в Memol випадково згенерований питання
Memol.Text: = win.ReadString ('Questions', IntToStr (a), Memol.text);
// Правильну відповідь
anl.Caption: = win.ReadString ('Answers', IntToStr (a), anl.Caption);
// Перший варіант
an2.Caption: = win.ReadString ('Wrong', IntToStr (a), an2.Caption);
/ / Другий
аn3.Caption: = win.ReadString ('Wrong', IntToStr (a) + IntToStr (a),
аn3.Caption);
/ / І третій
an4.Caption: = win.ReadString ('Wrong', IntToStr (a) + IntToStr (a) + IntToStr (a), an4.Caption);
win.Free;
end;
Для роботи з ini-файлами необхідно підключити модуль IniFiles:
unit Unitl;
interface
user Windows, Messages, ..., IniFiles;
Створіть обробник події OnCliсk кнопки Button1:
procedure TForml.ButtonlClick (Sender: TObject);
label ran;
begin
Label2.Caption: = 'Друге питання:';
if anl.Checked
then begin // якщо відповідь правильна
Buttonl.Visible: = False; // прибираємо поточну кнопку
Button2.Visible: = True; // і показуємо наступну кнопку
anl.Checked: = False; // приберемо галочку від минулого відповіді
// Виставимо всі пункти заново, на випадок якщо
// Користувач скористався підказкою 50/50
an2.Enabled: = True;
апЗ.Enabled: = True;
an4.Enabled: = True;
Randomize;
// ... тут код ідентичний тому, що знаходиться в
// ... обробнику події OnCreate форми
win.Free;
end
else begin // якщо відповідь неправильна, виводимо повідомлення
// О неправильному відповіді і повідомляємо правильний
MessageDlg ('Да-а ... Не кожен зміг би на першому' +
'Питанні програти!' + # 13 # 10 +
'А правильну відповідь був "' + anl.Caption + '"',
mtError, [mbok], 0);
halt; // завершуємо гру
end;
end;
Для розробки інших 15 питань слід розмістити на формі 15 кнопок, аналогічних Buttonl, і створити для них обробники подій OnClick, подібні розглянутому вище. Дивіться пункти 6 і 8.4
Розглянте подію, яка відбудеться при натисканні кнопки, відповідній останньому питанню:
procedure TForml.Button2Click (Sender: TObject);
begin
if anl.Checked
then begin // якщо на питання відповіли вірно,
Hide; // ховаємо першу форму
Form2.Show; // показуємо другу форму
end
else begin // якщо неправильно
// Виводимо повідомлення з правильною відповіддю.
MessageDlg ('Треба ж! На останньому питанні погорів! "+# 13 # 10 + "А правильна відповідь була: '+ anl.Caption + '!', mtError, [mbok], 0);
halt;
end;
end;
У разі перемоги пропадає сувора форма з питаннями і повинна з'явитися весела - з поздоровленнями (в коді програми вона називається Form2). Додайте до проекту нову форму, виконавши команду меню File New Form або клацнувши на кнопці панелі інструментів New Form. На екрані з'явиться нова чиста форма. Її властивості Align присвойте значення alCustom, а властивості BorderStyle - bsNone.
П
отім розмістіть на формі компонент Image із вкладки Additional, його властивості Picture призначте який-небудь "веселий" рисунок (наприклад такий, як показано на рис.2.7 Або придумайте свій), а властивості Align присвойте значення alClient.
Після цього двічі клацніть на компоненті Image1, щоб створити обробник події OnClick (виникає при клацанні мишею):
procedure TForm2.ImagelClick (Sender: TObject);
begin
halt;
end;
Збережіть створюваний проект у своїй папці.
Для цього виконайте команду головного меню File Save All або натисніть на кнопку Save All на панелі інструментів.
У вікні Save Unit as за допомогою списку виберіть свою папку, створіть в ній папку Щасливчик і відкрийте її, задайте назву для файлу тексту програми Lucky1, попередньо видаливши запропоноване комп'ютером назву Unitl.pas => кнопка Сохранить.
У наступному вікні «Save Projectl As» введіть назву файлу проекту Р_Lucky, видаливши запропоноване комп'ютером назву Project1.dpr Сохранить