Навчальна частина

Прикладна область: Циклічні операції

Постановка задачі:Створити програму виконання циклічних операцій.

Рекомендації

Під час розробки програмного засобу слід використовувати наступні об’єкти:

· поле ре­да­гування (Edit)

· Мітка (Label)

· Кнопки (Button)

· Флажки (CheckBox)

· Поле (Memo)

· Компонент (GroupBox)

· Меню (Menu)

Хід роботи

1. Завантажте середовище візуального програмування Delphi.

2. Змініть заголовок (Caption) форми з “Form1” на “Використання циклів” (без лапок) і збільшіть розміри форми у вертика­льно­му нап­рямку.

3. Збережіть виконану на даний момент форму у своїй власній пап­ці (FileÞSave All).

4. Розташуйте у формі поле редагування Edit1 і відповідне йому текстове поле “Межа”.

5. Вставте у форму панель групи об’єктів (об’єкт типу GroupBox).

Для цього використайте компоненту GroupBox із закладки Standard. Змініть значення властивості Caption (підпис) цього об’єкта на слово “Виведення” (без лапок). Розмір, стиль і колір шрифту виберіть на власний розсуд. Збільшіть панель групи.

6. Вставте у панель три прапорці (об’єкти типу CheckBox).

Для цього використайте компоненту CheckBox із закладки Stan­dard палітри компонентів Delphi. Вирівняйте прапорці, зазда­легідь виокремивши їх. Змініть значення влас­ти­вос­ті Caption (підпис) цих об’єктів на такі, як показано на рис. 1. Стиль і колір шрифтів виберіть на власний розсуд.

7. Встановіть прапорець “Цикл For” у положення “увімкнено”.

Для цього виокремте цей об’єкт та змініть значення його властивості Checked (контроль вибору) на True.

8. Вставте у форму багаторядкове поле редагування (об’єкт Memo).

Для цього використайте компоненту Memo із закладки Standard палітри компонентів Delphi. Збільшіть розміри поля. Властивість ScrollBars (наявність смуг прокручування) цього об’єкта задайте як ssBoth (будуть обидві смуги - вертикальна і горизонтальна). File Þ Save All.

9. Задайте початкове значення для поля редагування межі,

наприклад, такі, як на рис. 1.

Для цього змініть властивість Text цього об’єкта. Для набору символу десяткової крапки використайте символ, передбачений операційною системою комп’ютера.

 

Рис. 1.

10. Витріть слово Memo1 у багаторядковому полі редагування (див. пояснення нижче).

Для цього у вікні Object Inspector змініть значення властивості Lines (рядки) об’єкта Memo1. Вик­лич­те вікно редагування цієї властивості (вікно String list editor ¾ ре­дактор багаторядкового поля). Витріть слово Memo1 та закін­чіть роботу з цим вікном, клацнувши на кнопці Ok.

11. Вставте у форму головне і 2 контекстові меню (об’єкти типу MainMenu i PopupMenu).

Для цього використайте компоненти MainMenu і PopupMenu із закладки Standard. Розташуйте піктограми в довільному місці форми, на етапі виконання програми вони будуть неви­ди­ми­ми.

12. Введіть назви команд головного меню форми (див. рис. 2 і рис. 3).

Для цього виберіть об’єкт MainMenu1 і двічі клацніть на значенні його властивості Items. Інший шлях ¾ двічі клацніть на са­мо­му об’єкті.. У вікні, яке відкриється (Form1.MainMenu1), вибирайте мишею рамку команди і записуйте назву команди, наприклад, “Обчислення”, як значення властивості Caption у вікні Object Ispector. Закрийте вікно створення команд головного меню Form1.MainMenu1.

 

Рис. 2.

 

 

Рис. 3.

 

 

Рис. 4.

 

 

Рис. 5.

 

13. Введіть назви команд контекстового меню форми.

Для цього аналогічно змініть значення властивості Items об’єкта PopupMenu1 за допомогою вікна Form1.PopupMenu1 (виклик цього вікна див. у п. 14). У вікні Object Ispector введіть текст “Очистити поле виведення” без лапок як значення властивості Caption (Рис. 4). За бажанням можете придумати ще якусь команду. Закрийте вікно Form1.PopupMenu1. Збережіть форму (Save All).

14. Запрограмуйте команду “Очистити поле виведення” головного меню, скориставшись методом Сlear об’єкта Memo1.

Методи об’єкта ¾ це набір процедур та функцій, які, аналогічно до властивостей, застосовують до об’єкта. Як і у випадку влас­ти­вос­ті, ім’я об’єкта від імені його метода відокремлюється крап­кою. Виконайте команду меню “Очистити поле виведення”, не за­пус­каючи програму на виконання. З’явиться заготовка про­це­ду­ри реакції на подію виклику цієї команди. У ній запишіть команду виклику методу Clear для очистки поля виведення об’єкта Memo1:

procedureTForm1.N3Click(Sender: Tobject); {Тут N3 ¾ ім’я команди “Очистити поле виведення””, у вас може бути інший номер, його не виправляйте} begin Memo1.Clear; {Викликаємо метод об’єкта Memo1, який очищає багаторядкове поле редагування} end;{Тепер клацніть на формі}

15. Запрограмуйте команду “Кінець” головного меню, скорис­тав­шись стандартною процедурою Сlose.

procedure TForm1.N5Click(Sender: TObject); {Тут N6 ¾ ім’я команди “Кінець”} begin Сlose; {Закриваємо вікно програми} end;{Тепер клацніть на формі}

Збережіть виконану на даний момент форму у своїй власній папці (FileÞSave All).

16. Запрограмуйте команду “Очистити поле виведення” контекстового меню.

Двічі клацніть на команді контекстового меню “Очистити поле виведення” у вікні Form1.PopupMenu1. Текст процедури очистки, ¾ такий же, як і у команди головного меню, а саме: Memo1.Clear.

17. Прив’яжіть” контекстове меню PopupMenu1 до форми Form1, а PopupMenu2 до компонента GroupBox1.

Клацніть на формі і задайте властивість форми PopupMenu як PopupMenu1. Зауваження. Значення властивості форми Menu автоматично встановлюється як MainMenu1 у момент створення головного меню.

18. Запустіть створену програму та дослідіть її ро­бо­ту.

Поекспериментуйте з багаторядковим полем редагування Memo1, вводячи та коректуючи у ньому будь-який текст. Звер­ніть увагу на те, що в цьому вікні можна виконувати такі ж дії з текс­том, як і в текстовому редакторі: виокремлювати фрагмент текс­ту, копіювати, переносити чи вилучати цей фрагмент. Вит­ріть текст за допомогою команди головного меню “Очистити поле виве­дення”. Ще раз введіть текст і витріть його за допомогою кон­текстового меню (для виклику контекстового меню форми пот­ріб­но клацнути правою клавішею миші на вільному місці фор­ми). За­кінчіть роботу програми, клацнувши на команді меню “Кінець”.

19. Запрограмуйте команду “Виконати”.

Властивість Lines об’єкта типу Memo є комплексною, тобто також є об’єктом зі своїми властивостями та методами. Результат роботи даної програми – це таблиця, що складається з декількох рядків. Щоб долучити (додати) у поле Memo1 новий рядок до таблиці, треба змінити значення комплексної властивості Lines (рядки) за допомогою її метода Add (додати) з одним аргументом ¾ символьним рядком: Memo1.Lines.Add(рядок символів). Виконайте команду “Виконати” з головного меню, клацнувши на ній один раз. З’явиться заготовка до процедури, яку заповніть так:

var fib, fac, i, a, b, sum1, sum2, n:integer; begin {Зчитуємо межу обчислень з поля Edit1} n:=StrToInt(Edit1.Text); {Перевіряємо чи встановлений флажок Checkbox1} {якщо так то обчислюємо числа фібоначі} if Checkbox1.Checked then begin Memo1.Lines.Add('Побудова чисел фібоначі'); Memo1.Lines.Add('за допомогою цикла FOR'); a:=1; b:=1; for i:=3 to n do begin fib:=a+b; a:=b; b:=fib; Memo1.Lines.Add(IntToStr(i)+'-->'+IntToStr(fib)); end; end; {Перевіряємо чи встановлений флажок Checkbox2} {якщо так то обчислюємо факторіал числа } if Checkbox2.Checked then begin Memo1.Lines.Add('Побудова Факторіала'); Memo1.Lines.Add('за допомогою цикла WHILE'); fac:=1; i:=1; while i<=n do begin fac:=fac*i; Memo1.Lines.Add(IntToStr(i)+'-->'+IntToStr(fac)); i:=i+1; end; end; {Перевіряємо чи встановлений флажок Checkbox3} {якщо так то обчислюємо суму парних чисел та добуток непарних} if Checkbox3.Checked then begin sum1:=0; sum2:=0; Memo1.Lines.Add('Побудова суми парних та'); Memo1.Lines.Add('добутку непарних чисел'); Memo1.Lines.Add('за допомогою цикла REPEAT'); i:=1; repeat if i mod 2 = 0 then sum1:=sum1+i else sum2:=sum2+i; i:=i+1; until i>n; Memo1.Lines.Add('Сума парних чисел -->'+IntToStr(sum1)); Memo1.Lines.Add('Сума непарних чисел -->'+IntToStr(sum2)); end;