Види навчальної діяльності
Обговорюємо
- Які особливості малювання геометричних фігур за координатами в середовищі програмування Lazarus?
- Чим відрізняється додавання зображень у середовищах програмування мовами Python та Object Pascal?
Діємо разом
- Вправа 1. У середовищі програмування мовою Python розробіть проект, у якому у вікні головної форми буде побудована стовпчаста діаграма, що демонструє співвідношення між числами 15, 50, 70, 25, 10, 30.
- Завантажте середовище програмування мовою Python, створіть новий файл і збережіть його з іменем Побудова діаграми.
- У вікно редактора коду введіть програмний код:
""" Проект "Стовпчаста діаграма" """ import tkinter from tkinter import ttk from tkinter import messagebox main = tkinter.Tk() main.wm_title('Стовпчаста діаграма') # оголошення списку значень data = [15, 50, 70, 25, 10, 30] # створення полотна для малювання та розміщення на головній формі cnv = tkinter.Canvas(main, width=200, height=100) cnv.pack() # команди для малювання на полотні - створення графічного примітиву: прямокутника cnv.create_rectangle(0, 100, 200, 100) i = 0 d_list = len(data) while i < d_list: cnv.create_rectangle(10 + i * 30, 100, 30 + i * 30, 100 - data[i], fill='yellow') i += 1 #запуск опрацювання подій програми main.mainloop()
- Запустіть проект на виконання. Перевірте, чи отримали ви вікно форми, зображене на малюнку.
- Вправа 2. У середовищі програмування Lazarus розробіть проект, у якому кошеня після натискання кнопки Бігти змінює своє положення. Зображення кошеняти збережені у файлах cat1.png, cat2.png, cat3.png, cat4.png.
- Завантажте середовище Lazarus і створіть новий проект.
- Додайте на форму 4 зображення кошеняти, використовуючи компонент Image
- Додайте на форму кнопку з написом "Бігти".
- Додайте на форму компонент Timer (встановлює затримки часу при виконанні тих чи інших дій).
- Для компонента Timer (1) в Інспекторів об'єктів встановіть такі значення властивостей, як на скріншоті: (2) - включення/виключення таймера, (3) - інтервал часу в мілісекундах, через який будуть змінюватися зображення кошеняти
- Результуюча форма матиме такий вигляд:
- Запишіть програмний код у вікні редактора коду перед словом implementation, в якому описані дві змінні: stage - може набувати значень цілих значень 0, 1, 2, 3 - це положення кошеняти (або номер зображення кошеняти), flag - логічна змінна, набуває значення істини (True) або хибності (False)
var Form1: TForm1; stage : Integer; flag : Boolean; implementation
- Створіть процедуру опрацювання події натиснули кнопку Бігти. Для цього двічі натисніть на кнопку з написом Бігти і у вікні редактора коду введіть команди
procedure TForm1.Button1Click(Sender: TObject); begin flag := True; case stage of 0: begin Image1.Visible := False; Image2.Visible := True; stage:= stage + 1; end; 1: begin Image2.Visible := False; Image3.Visible := True; stage:= stage + 1; end; 2: begin Image3.Visible := False; Image4.Visible := True; stage:= stage + 1; end; 3: begin Image4.Visible := False; Image1.Visible := True; stage:=0; end; end; end;
- Двічі натисніть на формі на зображенні годинника (компонент Timer). У вікні редактора коду запишіть програмний код для обробника подій:
procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled := flag; stage:=0; end;
- Запустіть проект на виконання. Перевірте, чи змінює своє положення і вигляд кошеня після натискання кнопки Бігти.
Виконуємо самостійно
- Завдання 1. Розробіть проект Енциклопедія, у якому на екранній формі Сенсорна система після натиснення кнопки Відобразити можна отримати відомості про основні сенсорні системи: зорову, слухову, смаку, нюху, рівноваги, руху, дотику, температури, болю. Спосіб відображення відомостей – малюнок, текст обирається за допомогою елементів управління. Вибір сенсорної системи – відповідними перемикачами. Потрібні відомості та зображення знайдіть в Інтернеті. Орієнтовний зразок форми:
Створіть програму в середовищі Lazarus, скориставшись програмним кодом нижче. Зверніть увагу, на використання нового компонента Memo (текстове поле для зберігання великих текстів)
та проаналізуйте код на наявність нових конструкцій і назв, які не зустрічалися до цього часу. Знайдіть інформацію про їхнє використання.
procedure TForm1.Button1Click(Sender: TObject); var m, t : boolean; begin m := CheckBox1.Checked; t := CheckBox2.Checked; if RadioGroup1.ItemIndex = 0 then begin Memo1.Lines.Clear; if m then Image1.Picture.LoadFromFile('img/zir.jpg') else Image1.Picture := nil; if t then Memo1.Lines.Add('Орган зору людини складається з очного яблука і допоміжного апарату. Очне яблуко розміщене в очній ямці черепа. Має кулясту форму і складається з трьох оболонок: зовнішньої — щільної білкової, яка захищає очне яблуко від пошкоджень та проникнення сторонніх тіл ззовні (спереду вона переходить у прозору і проникну для світла рогівку), до неї прикріплюються м' + #39 + 'язи, які рухають око; середньої — судинної (пронизаною густою сіткою кровоносних судин, що постачають кров очному яблуку); внутрішньої — сітчастої (в ній розміщені рецептори ока — палички і колбочки), де під дією світла виникають нервові збудження, які по зоровому нерву передаються в зорову зону кори головного мозку.') end else if RadioGroup1.ItemIndex = 1 then begin Memo1.Lines.Clear; if m then Image1.Picture.LoadFromFile('img/sluh.png') else Image1.Picture := nil; if t then Memo1.Lines.Add('Вухо як орган слуху забезпечує сприйняття звукових коливань. Завдяки слуху розрізняють звуки навколишнього середовища. Людина спроможна визначити напрямок звуку з джерела, що дає змогу орієнтування в навколишньому середовищі, а також висоту, тембр, силу звуку. Слух є одним із чуттів людини, які сприяють психічному розвитку повноцінної особистості. З слухом пов' + #39 + 'язані звукові, мовні спілкування. Орган слуху розташований в отворі слухового проходу скроневої кістки черепа. Він складається з трьох основних відділів: зовнішнього вуха, середнього вуха, внутрішнього вуха. Перші два беруть участь тільки в проведенні звукових коливань, а третій відділ містить звукосприймальний і вестибулярний апарат.') end else if RadioGroup1.ItemIndex = 2 then begin Memo1.Lines.Clear; if m then Image1.Picture.LoadFromFile('img/smak.jpg') else Image1.Picture := nil; if t then Memo1.Lines.Add('Смак — це сприйняття смакових особливостей речовин, що потрапляють в ротову порожнину. Рецептори смаку розташовані в смакових цибулинах виростів слизової оболонки язика — сосочків на стінках глотки і м'+#39+'якого піднебіння. Збудження від рецепторів передається по волокнах язикового нерва у довгастий мозок, міст, до скроневої кістки, де формується сприйняття у вигляді різних смакових відчуттів. Смак допомагає людині визначити якість їжі, сприяє виділенню травних соків і проходження процесу травлення в цілому.') end else if RadioGroup1.ItemIndex = 3 then begin Memo1.Lines.Clear; if m then Image1.Picture.LoadFromFile('img/nuh.jpg') else Image1.Picture := nil; if t then Memo1.Lines.Add('Нюх — це сприйняття запахів різних речовин. Велика кількість нюхових рецепторів міститься в слизовій оболонці порожнини носа. Від нюхових рецепторів нервові імпульси передаються у проміжний мозок, потім у лобову частку кори, де проходить аналіз речовин, що вдихаються. За запахом людина відрізняє недоброякісну їжу, вловлює появу в повітрі шкідливих для її здоров'+ #39+'я домішок.') end else if RadioGroup1.ItemIndex = 4 then begin Memo1.Lines.Clear; if m then Image1.Picture.LoadFromFile('img/dotuk.jpg') else Image1.Picture := nil; if t then Memo1.Lines.Add('Дотик — це сприйняття форми, розміру, щільності, температури різних предметів. У слизових оболонках шкіри містяться дотикові рецептори. Найбільше їх на губах, кінчику язика, пальців, а також на долоні. Користуючись дотиком, людина може визначити фізичні властивості предметів такі, як форма, твердість, м'+#39+'якість, характер поверхні, тепло або холод, орієнтуватися в темряві, блискавично реагувати на загрозливу небезпеку.') end else if RadioGroup1.ItemIndex = 5 then begin Memo1.Lines.Clear; if m then Image1.Picture.LoadFromFile('img/rivnovaga3.jpg') else Image1.Picture := nil; if t then Memo1.Lines.Add('Функція регуляції положення тіла в просторі і рівноваги забезпечується вестибулярним апаратом, який утворюється рецепторами мішечків і напівколових каналів внутрішнього вуха. Коли змінюється положення голови або людина рухається, рецептори збуджуються, виникають нервові імпульси. Вони проходять по нервових шляхах у середній мозок, мозочок і кору великих півкуль. Завдяки аналізатору контролю рівноваги і положення тіла забезпечується прямоходіння.') end else if RadioGroup1.ItemIndex = 6 then begin Memo1.Lines.Clear; if m then Image1.Picture.LoadFromFile('img/ruh.jpg') else Image1.Picture := nil; if t then Memo1.Lines.Add('М’язова система є джерелом численної сенсорної імпульсації. До складу нервів, що іннервують м’язи, входить від 30 до 50% аферентних волокон. Рецепторний апарат м'+ #39 + 'язів і суглобів сигналізує в нервову систему про ступінь напруження м’язових волокон, положення суглобів і різних частин тіла однієї відносно інших. Ця зворотна інформація необхідна для автоматичної регуляції постави і рухових актів. При порушеннях рухового аналізатора людина не може ні ходити, ні стояти. Імпульси від рухового аналізатора необхідні також для підтримання тонусу м’язів і тонкого пристосування вегетативних функцій до умов м’язової роботи.') end else if RadioGroup1.ItemIndex = 7 then begin Memo1.Lines.Clear; if m then Image1.Picture.LoadFromFile('img/dotuk.jpg') else Image1.Picture := nil; if t then Memo1.Lines.Add('Згідно із сучасними уявленнями, біль є суб' + #39 + 'єктивним сприйняттям системних процесів, які включають сенсорну оцінку інформації про ноцирецептивні (які порушують цілість тканин) стимули і про різноманітні рефлекторні реакції, спрямовані на захист організму від дії цих стимулів. Біль, на відміну від інших сенсорних модальностей, інформує нас про небезпеку, яка загрожує організмові. За образним висловлюванням стародавніх греків, біль є сторожовим псом здоров' + #39 + 'я. Справді, незважаючи на те що біль майже завжди порушує життєдіяльність, знижує працездатність людини, позбавляє її сну, він усе ж таки потрібний і до певних меж корисний.') end end;
- Завдання 2. Розробіть проект Природні зони, у якому на формі розміщене зображення карти України, збережене у файлі Map_of_Ukraine.png. Після вибору у списку однієї з природних зон рівнинної частини України: зона мішаних лісів і широколистяних лісів, зона лісостепу, зона степу – межі відповідної зони виділяються ламаною червоного кольору.
Розгляньте програмний код (координати точок спробуйте визначити самостійно) і реалізуйте програму:
procedure TForm1.RadioGroup1SelectionChanged(Sender: TObject); begin Image1.Canvas.Pen.Color := clRed; Image1.Canvas.Pen.Width := 3; Image1.Canvas.Pen.Style := psDot; if RadioGroup1.ItemIndex = 0 then begin Image1.Canvas.MoveTo(46,169); Image1.Canvas.LineTo(96,121); Image1.Canvas.LineTo(107,121); Image1.Canvas.LineTo(109,100); Image1.Canvas.LineTo(97,65); Image1.Canvas.LineTo(98,45); Image1.Canvas.LineTo(130,34); Image1.Canvas.LineTo(275,56); Image1.Canvas.LineTo(352,68); Image1.Canvas.LineTo(380,31); Image1.Canvas.LineTo(487,14); Image1.Canvas.LineTo(511,50); Image1.Canvas.LineTo(506,78); Image1.Canvas.LineTo(434,96); Image1.Canvas.LineTo(371,143); Image1.Canvas.LineTo(46,169) end else if RadioGroup1.ItemIndex = 1 then begin Image1.Canvas.MoveTo(46,170); Image1.Canvas.LineTo(366,145); Image1.Canvas.LineTo(434,96); Image1.Canvas.LineTo(506,80); Image1.Canvas.LineTo(633,121); Image1.Canvas.LineTo(646,183); Image1.Canvas.LineTo(305,220); Image1.Canvas.LineTo(319,336); Image1.Canvas.LineTo(242,248); Image1.Canvas.LineTo(127,289); Image1.Canvas.LineTo(18,239); Image1.Canvas.LineTo(46,170); end else if RadioGroup1.ItemIndex = 2 then begin Image1.Canvas.MoveTo(321,336); Image1.Canvas.LineTo(321,336); Image1.Canvas.LineTo(306,220); Image1.Canvas.LineTo(645,184); Image1.Canvas.LineTo(633,122); Image1.Canvas.LineTo(773,182); Image1.Canvas.LineTo(742,269); Image1.Canvas.LineTo(702,275); Image1.Canvas.LineTo(681,324); Image1.Canvas.LineTo(543,389); Image1.Canvas.LineTo(556,432); Image1.Canvas.LineTo(489,454); Image1.Canvas.LineTo(446,438); Image1.Canvas.LineTo(492,391); Image1.Canvas.LineTo(371,370); Image1.Canvas.LineTo(323,446); Image1.Canvas.LineTo(281,447); Image1.Canvas.LineTo(260,432); Image1.Canvas.LineTo(295,369); Image1.Canvas.LineTo(341,367); end; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Edit1.Text := IntToStr(X)+' ; '+IntToStr(Y) end; procedure TForm1.Button1Click(Sender: TObject); begin Image1.Picture.LoadFromFile('Map_of_Ukraine.png') end;
Домашнє завдання
- Опрацювати підручник: §27 с. 181-189