microbik.ru
1

10-Б клас

Лекція з курсу «Основи візуального програмування»

Тема. Поняття програми, мови програмування. Складові програми. Атрибути і методи об’єкта. Події і їх обробники. Поняття алгоритму, властивості алгоритмів. Поняття про середовище програмування, транслятор, компілятор. Етапи розв’язування задач з використанням комп’ютера.

Програма - це запис, що служить для автоматичного виконання дій, запланованих людиною. Процес складання програм називається програмуванням.

При розробці комп'ютерної моделі дуже важливим є вибір програмного забезпечення (ПЗ), за допомогою якого буде реалізована модель. Можливі два основних варіанти вибору - це, по-перше, ППЗ й, по-друге, середовище програмування.



Прикладні програми (текстові, графічні, музичні редактори, електронні таблиці, математичні пакети й ін.) мають високий рівень сервісних можливостей. Завдяки цьому робота на комп'ютері виконується в режимі користувача, знання мов програмування при цьому не потрібно. Інша справа, коли потрібна реалізація моделі в середовищі програмування. У цьому випадку буде потрібно й знання конкретної мови, і розуміння принципів побудови комп'ютерних моделей.

Якщо в якості ПЗ було обране середовище програмування, то побудова комп'ютерної моделі завершується створенням програми. Якщо ж для побудови моделі обране існуюче прикладне ПЗ, то рішення завдання приводить до створення деякої комп'ютерної технології. Під комп'ютерною технологією розуміється послідовність операцій по обробці вхідних даних, що приводить до бажаного результату.

Поняття про мови програмування. Українська, російська, англі-йська тощо — це природні мови спілкування людей в усній чи письмо¬вій формі. Щоб грамотно написати будь-який текст природною мовою, потрібно протягом декількох років вивчати значну кількість правил, писати диктанти та твори. Правила бувають граматичні (вони забезпе¬чують правильне написання тексту), синтаксичні (правильне формуван¬ня конструкцій, зокрема, використання розділових знаків), семантичні (правильне передавання змісту). 

Для спілкування з комп'ютерами створені мови програмування. Вони призначені для написання програм, тобто для опису деякого алгоритму зрозумілою для комп'ютера мовою. 

Програма — це текст алгоритму розв'язування деякої задачі, записаний за правилами мови програмування.

Ідея керування обчислювальним процесом за допомогою програми належить Аді Лавлейс, дочці відомого англійського поета Дж. Байрона, яка разом з Ч. Беббіджем працювала над проектом створення універсальної обчислювальної машини. Хоча ідея була реалізована лише через 10 років, Аду Лавлейс символічно вважають першим у світі програмістом. На її честь названа одна з новітніх мов програмування Ада. 
Мови програмування поділяють на два види: мови низького та високого рівнів. Спочатку (у 40-х роках XX ст.) були створені мови низького рівня. Такі мови базуються на командах-кодах для роботи з процесами оперативної пам'яті та регістрами процесора. Їх використовують для розробки швидкодіючих програм. Прикладом такої мови є юна Асемблер. 

Мови високого рівня були створені в 50-х роках минулого століття метою наблизити користувача до комп'ютера. Ці мови близькі до розмовних мов, оскільки дають змогу записувати команди у вигляді речень. Приклади таких мов: Фортран, Бейсик, Паскаль, Сі (мови процедурного типу); Пролог (мова логічного програмування); Visual Basic, Delphi (середовища візуального програмування). 
Отже, мова програмування — це деякий алфавіт та сукупність граматичних, синтаксичних та семантичних правил написання програм. 

Кожна мова програмування має такі компоненти:

1) алфавіт – множину символів, з яких можна утворювати слова та речення цієї мови;

2) словник – набір спеціальних (зарезервованих, ключових) слів.

3) синтаксис – правила складання та запису мовних конструкцій (не словникових слів і речень);

4) семантику – встановлене однозначне тлумачення мовних конструкцій, правил їх виконання.

Використання символів, що не входять до алфавіту, неправильне написання словникових слів, порушення синтаксичних правил призводить до неможливості виконання комп’ютером відповідної команди. Такі порушення називаються синтаксичними помилками.

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

Деякі мови програмування використовуються для складання програм для розв’язування задач з різних галузей науки, техніки, виробництва, сфери побуту та ін. (наприклад, Delphi, С++, С#, Java), а деякі створені спеціально для складання програм для розв'язування спеціального кола задач (наприклад, Prolog (програмування в логіці), Lips (опрацювання списків)).

Процесор комп'ютера може виконувати команди, подані тільки ма­шинною мовою. Машинна мова - це мова програмування, в якій ко­манди подаються як послідовності двійкових кодів. Машинна мова про­грамування орієнтована на процесори конкретної архітектури, тобто машинні мови для різних процесорів можуть відрізнятися одна від одної.

^ Об’єкти, їх властивості та методи

По-перше, об’єкт – це завжди дещо конкретніше, оскільки ми можемо певно визначити його межі, де він починається та де закінчується, що належить до нього, а що ні.

По-друге, об’єкт завжди має певну внутрішню будову, про те вона не завжди нам відома.

По-третє, об’єкт характеризується певною поведінкою, за якою можна або просто спостерігати (як за польотом НЛО), або навіть впливати на неї (наприклад, змінювати траєкторію польоту НЛО).

Ви самі можете навести багато прикладів різноманітних об’єктів, внутрішня будова яких вам невідома або відома досить поверхньо, проте ви постійно використовуєте їх у своєму житті (холодильниу, СВЧ-піч, плита, телевізор, цифровий плеєр, мобільний телефон, фотоапарат і відеокамера тощо). Усі ці об’єкти різні, тож кожний з них має певні властивості, які дають змогу відрізняти один об’єкт від іншого. І досить часто нам доводиться оцінювати ці властивості, щоб зрозуміти, які дії та як можна виконувати з об’єктами. Наприклад, якщо ви допомагаєте татові повісити карниз у кімнаті, ви маєте оцінити властивості стінки, до якої будете кріпити карниз, і властивості шурупів, адже стінка може виявитися надзвичайно міцною. Тож треба обрати міцні металеві шурупи саме для неї, а не використовувати маленькі цвяшки, призначені для кріплення на дерев’яній стінці. Властивості невід’ємно пов’язані з об’єктами, тому вони не можуть існувати без об’єктів.

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

Якщо ми бажаємо працювати з об’єктами, це не означає, що всі об’єкти нам треба створювати самостійно. Об’єкт, створений в одній програмі, можна використовувати в інших. При цьому додавання такого об’єкта не порушує роботу всіх інших об’єктів, використаних у програмі, а поведінка даного об’єкта також не змінюється внаслідок існування інших об’єктів.

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

За дапомогою подій забезпечується взаємодія програми з користувачем. Коли ви переміщуєте мишу або натискаєте її кнопку, це реєструється елементом керування як певна подія, а потрібні дії виконуються в методі-обробнику. Тому, щоб програма могла виконувати те, що бажає користувач, вона має постійно перевіряти стан своїх елементів керування, оскільки конкретні події відповідають типовим прийомам керування. Наприклад, кнопка може реагувати на натискання клавішею миші, крім того, більшість програм здатні розрізняти одинарне та подвійне натискання клавіш миші, використовуючи у цих випадках різні обробники подій.

Основною одиницею в об’єктно-орієнтовному програмуванні є об’єкт, який об’єднує дані з кодом, призначеним для їх обробки, та має:

  • певне ім’я;

  • властивості, тобто його характеристики, які можна перевірити або змінити;

  • методи, тобто дії, які можна виконати над об’єктом;

  • події, тобто можливі для даного об’єкта ситуації (зміни деяких станів об’єкту), на які він може відповісти заздалегідь визначеними подіями.

Класи об’єктів є шаблонами, які визначають набори властивостей, методів та подій, за якими створюють об’єкти. Об’єкт, що створений за шаблоном класу об’єктів, є екземпляром класу, має власне унікальне для даного класу ім’я, проте наслідує весь набір властивистей, методів та подій даного класу. Різні екземпляри класу мають однаковий набір властивостей, проте значення властивостей у них мають бути різними.

Кожний об’єкт має певний набір властивостей, які можна змінювати в таких ситуаціях:

1) призначити початкові значення під час початкової розробки проекту;

2) у режимі виконання проєкту з використанням програмного коду.

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

Якщо привести аналогію з нашою звичайною мовою, об’єкту відповідає іменник, його властивостям – прикметник, а методи можна зіставити з дієсловом.

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

^ Події та їх обробники

Працюючи з різноманітними програмами, ви звикли до того, що вибір кнопки завжди приводив до настання певної події: відкриття або закриття пев-ного вікна, змінення значень властивостей певних об’єктів, переміщення певно-го об’єкта по екрану тощо. Але якщо вибрати кнопку в будь-якому з проектів, які ви створювали під час вивчення попереднього уроку, то нічого не відбудеться.

Причиною цієї ситуації є те, що лише самого розміщення на формі кнопки недостатньо, щоб за її вибору щось відбулося. Програмі потрібно «повідомити», яка нова подія повинна відбутися за вибору кнопки.

Якщо виділити кнопку, то у вікні Object Inspector на вкладці Events (англ. events – події) можна вказати, яка подія повинна відбутися як реакція на на-стання іншої події, наприклад вибір кнопки (рис. 1).

Для цього потрібно двічі клацнути в полі справа від напису OnClick (англ. on click – на клацання кнопкою миші). У результаті цих дій у полі OnClick на вкладці Events з’являється текст Button1Click (Button1 – це ім’я виділеної кноп-ки), а у центральній частині вікна середовища розробки відкривається вікно коду Unit1.pas, на якій створюється заготовка процедури TForm1.Button1Click, команди якої й будуть ви-конуватися після вибору кнопки Button1.

Процедура (лат. procedure – просуватися, йти вперед) – це частина про-грами, яка має ім’я та яку можна за цим іменем викликати на виконання в різних частинах програми.

Отже, після вибору кнопки Button1 (подія Click) настає подія OnClick, яка полягає у виконанні команд процедури TForm1.Button1Click.

Процедури в Delphi є одним з видів підпрограм. Іншим видом підпрограм у Delphi є функції. Їх розглянемо пізніше. Процедура, яка виконується при настанні певної події, називається об-робником цієї події. Процедура, яка пов’язана з певним об’єктом, називається методом цього об’єкта.

Так, процедура TForm1.Button1Click є обробником події OnClick, яка настає після вибору кнопки Button1, а також є методом об’єкта «Кнопка Button1».

Аналогічно викладеному вище можна створювати обробники інших подій, наприклад:

. OnMouseMove (англ. on mouse move – на переміщення миші) – ця подія настає після наведення вказівника на кнопку;

. OnKeyPress (англ. on key press – на натиснення клавіші) – ця подія настає після натиснення клавіші клавіатури;

. OnStartDrag (англ. on start drag – на початок перетягування) – ця подія настає після початку перетягування об’єкта.

Аналогічно можна створювати методи й інших об’єктів, наприклад фор-ми. Список подій на вкладці Events для форми містить події, які ми вже бачили на вкладці для кнопки, а також деякі інші події.

Наприклад:

. OnCreate (англ. on create – на створення) – ця подія настає після початку створення форми; команди обробника цієї події виконуються під час створення форми, перед її відкриттям;

. OnDblClick (англ. on double click – на подвійне клацання) – ця подія настає після подвійного клацання на формі.

Зараз важко уявити собі життя людини без комп'ютера. Люди використовують його для розв'язання найрізноманітніших задач: від виконання важких обчислень до виконання кропіткої домашньої роботи.

Термін «алгоритм» бере початок від назви середньоазіатського міста Хорезм. У цьому місті в 9 ст. жив математик і астроном Мухаммед, що сформулював правила чотирьох арифметичних дій. Арабський варіант його ім'я Аль-Хорезм, що у Європі записувався на латині як Аlgorithmi, і поклав початок терміну «алгоритм». Однак пізніше під словом алгоритм стали розуміти правила дій по знаходженню найбільшого спільного дільника. У наш час поняття алгоритму було узагальнено, і словом «алгоритм» стали позначати опис будь-якої послідовності дій. Поняття алгоритму є одним з фундаментальних понять у сучасній математиці й інформатиці.

^ Алгоритм - це точний і зрозумілий опис послідовності дій над заданими об'єктами, що дозволяє одержати кінцевий результат.

Ви вже не раз зустрічалися з алгоритмами в інших шкільних предметах. Найбільше прикладів алгоритмів у математиці - у науці, у якій і зародилося саме це поняття. По суті, математика займається вивченням різних алгоритмів і створенням нових. До алгоритмів зі шкільного курсу математики можна віднести правила виконання арифметичних дій, правила знаходження розв’язків рівнянь і т.д. У вигляді алгоритмів можна сформулювати правила побудови різних геометричних фігур.

До слова «алгоритм» близькі за значенням слова: спосіб, рецепт. Однак алгоритми в інформатиці - це не тільки рецепти розвязку завдань. Алгоритми розробляються насамперед з метою автоматизації дій виконавця.

Складання алгоритму починається з того, що описуваний процес розбивається на послідовність окремих кроків. Властивість розбивки алгоритму на окремі кроки називається дискретністю алгоритму. Кожний крок алгоритму формулюється у вигляді інструкцій (команд), тобто певних приписань виконавцеві.

Виконавець і властивості алгоритму

Алгоритм розвязку одного й того ж завдання може бути представлений по різному.

Алгоритми складаються з орієнтацією на певного виконавця алгоритму: дресирована тварина, людини, автомат, ЕОМ. В алгоритм повинні входити команди, які виконавець може виконати, і неприпустимі команди, які він виконати не в змозі. У кожного виконавця є свій кінцевий набір команд, які для нього зрозумілі й виконувані. Цей набір називають системою команд виконавця.

Користуючись системою команд, виконавець може виконувати алгоритм формально, не вникаючи в зміст поставленого завдання. Від виконавця потрібно тільки строге виконання послідовності дій, передбачених алгоритмом. Коли алгоритм зрозумілий конкретному виконавцеві, говорять, що такий алгоритм має властивість визначеності. Завдяки визначеності багаторазове виконання одного алгоритму різними виконавцями при тих самих вихідних умовах буде приводити до однакових результатів.

Для одержання конкретного результату не допускаються довільні дії з боку виконавця.

Крім визначеності, алгоритм повинен володіти рядом інших властивостей. Очевидна властивість алгоритму, про яку ми вже говорили, - це його дискретність. Будь-який алгоритм складається з послідовності скінченних дій - кроків. Перехід до наступного кроку можливий лише після завершення попереднього.

Ще одною властивістю алгоритму, сформульованим як необхідність, є його результативність. Виконання алгоритму повинне приводити до конкретного результату – розв’язанню завдання за скінченне число кроків. Під розвязком завдання може розумітися також повідомлення про те, що завдання розв’язків не має.

Найбільш кращими є ті алгоритми, які забезпечують розв’язання широкого кола завдань. Про такі алгоритми говорять, що вони мають властивість масовості. Вони дозволяють вирішувати не одне конкретне завдання, а безліч однотипних завдань (клас завдань) і робити це неодноразово. Властивість масовості значно збільшує практичну цінність алгоритму.

Поняття про середовища програмування. На базі систем програмування для надання додаткових зручностей користувачеві були створені середовища програмування. 
Середовище програмування — це програма, що має засоби автомати¬зації процесів підготовки та виконання програм користувача, а саме; 
• редактор текстів програм; 
• довідково-інформаційну систему про мову програмування та сере-довище; 
• бібліотеки з корисними процедурами і функціями; 
• компілятор чи інтерпретатор, що не лише констатує факт помилки в програмі, а й вказує на тип і місце помилки, а в деяких випадках пропонує шляхи усунення помилок (або усуває їх); 
• засоби виконання усієї програми або крок за кроком з метою виявлення семантичних помилок шляхом відстеження значень величин, які входять до програми, тощо. 
Завдяки цим можливостям середовища програмування часто нази¬вають інтегрованими, або дружніми, середовищами. Приклади середовищ програмування: Тurbо Ваsіс, Тurbо Раsсаl 7.0, Воrland Раsсаl vor Windows, Delphi 4, Delphi 5, Vusial Ваsіс 5, Visual Ваsіс 6 та багато інших. Число означає номер версії програми; чим воно більше, тим новішою й досконалішою є програма. 
Від машинних кодів через мови і системи програмування до друж¬ніх середовищ програмування — ось шлях розвитку технологій програ¬мування протягом останніх п'ятдесяти років. На черзі — створення засобів для усного спілкування користувачів з комп'ютерами. 

Знати мову програмування і мати комп'ютер — не достатньо, щоб реалізувати програму. Потрібно мати транслятор мови і, бажано, бібліотеки стандартних програм та засоби отримання підказок від комп'ютера, що робити у випадку допущення помилок. Сукупність таких засобів утворює систему програмування деякою мовою. Найважливішим елементом у такій системі є транслятор. 
Транслятор — це спеціальна програма, яку використовують для перекладу програм користувача, написаних мовою програмування високого рівня, у так звані машинні коди, зрозумілі процесору. Транслятори створюють для кожної мови програмування. Отже, транслятори перекладають команди користувача в набір команд процесора. Це дає змогу використовувати програми, створені мовою низького рівня, на різних типах машин. Іншими словами, транслятор — це перекладач. Транслятори бувають двох типів: інтерпретатори і компілятори. 
Інтерпретатор перекладає команди програми в машинні коди по черзі й відразу їх виконує. Повторний запуск програми на виконання супроводжується повторним перекладом. Це невигідно, якщо програми великі. Приклади інтерпретаторів: інтерпретатори мов GW-Ваsіс, Q-Ваsіс тощо. Інтерпретатор може бути двопрохідним. Перший раз він опрацьовують кожну команду відразу після її введення, аналізує на наявність помилок, але не виконує її. Другий «прохід» відбувається після запуску програми на виконання: команди одна за одною пере¬кладаються в машинні коди і виконуються. 
Компілятор функціонує інакше. Перш за все зазначимо, що програми створюють для багаторазового використання. Компілятор аналізує команди програми на наявність помилок і відразу перекладає її в машинні коди, утворюючи так званий ехе-файл програми. Ехе-файл може тимчасово зберігатися в оперативній пам'яті або постійно — на диску. В останньому випадку програму, точніше створений ехе-файл, можна запускати на виконання багаторазово. Це зручно для великих програм, бо заощаджується час на перекладання програми в машинні коди. Крім цього, компілятор «стискує» ехе-файл. Тому ехе-файл займає значно менше місця на диску, ніж власне текст (так звані вихідні модулі) програми користувача. В ехе-файли не можна вносити зміни. Ось чому усі прикладні програми поширюють у вигляді ехе-файлів. Приклади компіляторів: Тurbо Ваsіс, Quick Ваsіс 4.5, Тurbо Раsсаl 7.0 тощо. Отже, компілятор дає змогу, переклавши програму в машинні коди лише один раз, отримати ехе-файл, придатний для багаторазового виконання. 

Етапи розв'язування задач з використанням комп'ютера

Вам уже відомо, що перші ЕОМ були створені для швидкого вико­нання громіздких обчислень. А сучасні комп'ютери здатні розв'язувати не тільки обчислювальні задачі, а й створювати та редагувати малюн­ки, текстові документи, презентації, мультфільми і кінофільми, виби­рати потрібні дані з великих масивів даних, керувати роботою різно­манітних пристроїв та багато іншого. Використовувати комп'ютер для розв'язування деяких із цих задач ви вже навчилися в 10-му класі, деякі з них будуть розглянуті в 11-му класі.

Усі ці задачі різні за своєю суттю, кожна з них вимагає свого, інди­відуального підходу. Але все ж таки хід розв'язування кожної із задач можна поділити на кілька етапів, які є спільними для всіх задач, що розв'язуються з використанням ПК.

I етап. Аналіз умови задачі, визначення вхідних даних і кінцевих ре­зультатів.

II етап. Створення інформаційної моделі.

III етап. Вибір програмних засобів для розв'язування задачі.

IV етап. Створення алгоритму розв'язування задачі.

V етап. Отримання комп'ютерної моделі.

VІ етап. Дослідження отриманих результатів на реальність і на від­повідність умові.