Урок 1
Тема: Поняття моделі, алгоритму, властивості алгоритмів. Типи моделей. Форми подання алгоритмів. Графічне подання алгоритмів
Навчальна мета: Засвоїти відомості з основ алгоритмізації та програмування, навчатися створювати моделі та дослідити етапи моделювання, навчатися створювати алгоритми, познайомитися з їх властивостями та базовими структурами
Розвивальна мета: Розвивати координацію рухів, зорову пам’ять, вміння працювати з програмами
Виховна мета: Виховувати зосередженість, вміння активно сприймати новий матеріал.
Тип уроку: Урок вивчення нового матеріалу (лекція)
Структура уроку
Хід уроку
І. Організаційний момент
Сьогодні ми з вами розглянемо тему: «Поняття моделі, алгоритму, властивості алгоритмів. Типи моделей. Форми подання алгоритмів. Графічне подання алгоритмів».
II. Етап орієнтації
Мета сьогоднішнього уроку якомога найкраще познайомитися з відомостями з основ алгоритмізації та програмування, навчатися створювати моделі та дослідити етапи моделювання
III. Етап проектування
План уроку
ІV. Етап навчальної діяльності
Поняття моделі.
Кожен оточуючий нас об’єкт має свої властивості.
Об’єкт – цілісна частина навколишнього світу. Наприклад, стіл має такі властивості, як розміри, форму, колір, матеріал з якого зроблений і т.д.
Модель – це спрощене подання реального процесу чи об’єкта.
У процесі життя і практичної діяльності людина постійно застосовує різні моделі для дослідження поведінки реального об’єкта в різних ситуаціях.
Будь-яка наука починається з розробки моделі, а вже потім реального об’єкта (план будинку виконується перед будівництвом, конструкція машини виконується одразу на папері і тільки потім на моделі, а ще потім на реального об’єкті і т.д.).
Типи моделей.
Під час вивчення інформатики нас цікавитимуть математичні та інформаційні моделі. Давайте розглянемо, що це за моделі.
Інформаційна модель.
Інформаційна модель (ІМ) - це модель, яка описує інформаційні процеси або містить опис об’єкта, в якому вказано деякі його типові властивості, важливі для виконання конкретної задачі.
Будь-яка ІМ містить лише суттєві відомості про об’єкт з урахуванням мети її створення. Наприклад, розклад руху поїздів – це ІМ яка має вигляд таблиці, схеми або тексту яка відображає потрібні замовнику данні
Інформаційні моделі можуть бути:
Наприклад, іграшки в які ви гралися в дитинстві – це моделі реальних об’єктів. Такі моделі називають фізичними або матеріальними.
Іноді люди створюють не матеріальні моделі, а абстрактні моделі – об’єкти, що подані у вигляді формул, образів, креслень, зображень, графіки тощо.
Абстрактні в свою чергу поділяються на знакові(моделі подані на основі знаків, фігур, символів, фрагментів тексту зображені на папері) та вербальні(моделі, які формуються в голові людини або в усній формі, результати виводів або не докінця усвідомлення реального зображення).
За формою представлення можна виділити наступні види інформаційних моделей:
Існують різні класифікації моделей:
Першим етапом побудови ІМ є системний аналіз, мета якого визначити ті характеристики об’єкта які потрібні для даної ІМ. ІМ одного і того самого об’єкта призначені для різних цілей будуть різні.
Причина різних видів представлень ІМ полягає в тому, що лише філософи можуть дозволити собі мати справу з реальним світом. При розв’язуванні конкретних задач реальна дійсність відтворюється із суттєвими обмеженнями, що залежать від області діяльності, поставлених цілей і потужності обчислювальних засобів. В подальшому реальні інформаційні процеси в системі будемо називати предметною областю даних.
Математична модель — заміна об'єкта-оригіналу чи явища (процесу) відповідним аналогом за допомогою математичних залежностей.
За допомогою математичних моделей описуються розв’язки різних логічних задач, фізичні процеси, прогнозується, управляється, проектується чи планується безліч механізмів та систем.
Комп'ютерна модель математична модель, реалізована за допомогою певних програмно-апаратних засобів.
Відрізняються КМ від ІМ тим, що вони реалізуються за допомогою ПК та вже наявного ПЗ.
Комп'ютерне моделювання (КМ) - один із самих ефективних інструментів пізнання, аналізу та проектування. КМ дає можливість інженерові (дослідникові) експериментувати з об'єктами в тих випадках, коли робити це на реальному об'єкті практично неможливо або недоцільно. Сутність методології КМ складається в заміні вихідного технологічного об'єкта його “образом” - математичною моделлю - і надалі вивченні моделі за допомогою алгоритмів реалізованих на комп'ютерах.
Цей метод пізнання, конструювання та проектування містить у собі переваги як теорії, так і експерименту. Робота не із самим об'єктом (явищем, процесом), а з його моделлю дає можливість відносно швидко й без істотних витрат досліджувати його властивості та поводження в будь-яких ситуаціях (переваги теорії). У той же час обчислювальні (імітаційні) експерименти з моделями об'єктів дозволяють докладно та глибоко вивчати об'єкти в достатній повноті, недоступної чисто теоретичним підходам (переваги експерименту).
КМ- процес конструювання моделі реального об'єкта і постановки обчислювальних експериментів на цій моделі з метою або зрозуміти (досліджувати) поводження цієї системи, або оцінити різні стратегії (алгоритми), що забезпечують функціонування даної
системи. Таким чином, процес КМ включає й конструювання моделі, і її застосування для розв’язання поставленого завдання: аналізу, дослідження, оптимізації або синтезу (проектування) технологічних процесів. Всі ці завдання надзвичайно складні й містять у
собі майже нескінченне число елементів, змінних, параметрів, обмежень і т.д.
У процесі КМ дослідник має справу із трьома обєктами: системою, математичною моделлю та програмою у комп’ютері, що реалізує алгоритм розв’язання рівнянь моделі. Традиційна схема комп'ютерного моделювання як єдиного процесу побудови та дослідження моделі, що має відповідну програмну підтримку, може бути представлена в наступному вигляді:
Побудова моделі.
Побудова ІМ
Чітких правил немає.
Спочатку виділяються суттєві характеристики об’єкта, дається розгорнутий змістовний опис зв’язків між ними (неформальна постановка задачі). Далі формалізується зміст опису зв’язків між характеристиками об’єкта за допомогою мови схем, математичної мови, тощо.
Форма подання інформації залежить від мети ІМ(важлива наочність чи ні, мовна(описова), формальна(словесна + математична мови)).
Формалізація – це процес побудови ІМ за допомогою формальних мов, під час якого здійснюється перехід від змістовного опису зв’язків об’єкта (словесного опису) до опису мовою кодування(схеми, математична мова тощо)
Побудова Математичної моделі
Етапи моделювання
Отримавши задачу, користувач, виходячи з її умови, вирішує, яким програмним засобом можна скористатися для її розв'язання. Якщо в складі програмного забезпечення є програма, придатна для цього, то користувач вибирає її як інструмент, якщо ж ні, то доводиться створювати нову спеціальну програму, виконання якої призведе до очікуваного результату.
Наприклад, нам необхідно оформити газету, присвячену якійсь події. Вочевидь, що для розв'язування цієї задачі будь-який комп'ютер має необхідні програми, що дозволяють оформити тексти та графічні зображення різної складності (це текстові та графічні редактори, настільні видавницькі системи тощо).
Інший приклад: необхідно побудувати графік заданої функції. І для розв'язування цієї задачі комп'ютер має необхідне програмне забезпечення - електронні таблиці.
Примітка: можна запропонувати дітям дати свої приклади задач для комп'ютера.
Однак є величезна категорія задач, для розв'язку яких не існує відповідного програмного забезпечення, або існуюче програмне забезпечення з деяких причин нас не влаштовує. В цьому випадку ми повинні самостійно написати програму для виконання поставленої мети.
Розглянемо технологію розв'язання прикладної задачі на ЕОМ (зверніть увагу, що задачі будуть нескладні і тому можна було б скористатися і наявним програмним забезпечення для їх розв'язання, але з навчальною метою ми прослідкуємо етап створення самостійного програмного продукту).
Розв'язування будь-якої задачі починається з її постановки. На цьому етапі треба чітко з'ясувати, що дано і що треба знайти. Тобто треба добре уявити, в чому полягає дана задача, які необхідні початкові дані для її розв'язання, та що можна вважати за очікуваний результат. Наприклад, батьки вирішили зробити ремонт вашої кімнати. Вочевидь, що безпосередньо зробити ремонт персональний комп'ютер не може. Але він може допомогти у виконання розрахунків на витратні матеріали, оплату виконаних робіт тощо. (Більш серйозні програмні засоби можуть допомогти, навіть, у виборі оптимального набору витратних матеріалів з урахуванням вартості безпосередньо матеріалів та вартості перевезень з пошуком найдешевших варіантів, але ми задачу спрощуємо.)
В нашому випадку вхідними даними повинні бути: розміри кімнати, що підлягає ремонту, набір необхідних витратних матеріалів (можна тільки поклеїти шпалери та виконати фарбувальні роботи, а можна замінити двері, вікна та меблі), ціни на витратні матеріали, вартість виконуваних робіт тощо. Результатом роботи програми повинна бути необхідна сума коштів на виконання ремонтних робіт з урахуванням витратних матеріалів.
Другим етапом розв'язування задач є побудова математичної моделі. Це дуже відповідальний етап, тому що не завжди в умові задачі міститься формула, придатна для застосування в програмі. Для цього створюється інформаційна математична модель об'єкта. В нашому випадку математичною моделлю нашої задачі буде:
Примітка: ці формули отримати неважко і тому за бажанням можна дати це завдання учням безпосередньо на уроці або вдома.
Наступним етапом є розробка алгоритму на основі побудованої математичної моделі. Для цього можна використати вже відомі методи та способи розв'язування отриманих математичних співвідношень, причому при наявності кількох методів розв'язання необхідно вибрати оптимальний, провівши їх оцінку та аналіз. Якщо серед існуючих методів розв'язання необхідний відсутній, треба розробити власний.
Під час створення складних алгоритмів застосовується метод покрокової деталізації, який полягає в тому, що складний алгоритм розбивається на прості підзадачі, кожна з яких в свою чергу може розбиватися на ще простіші. Такий підхід дозволяє також розбити алгоритм на окремі частини - модулі, реалізацію кожного з яких доручити окремому програмісту. В цьому випадку програміст концентрується на розв'язанні окремої підзадачі, використовуючи для цього свої методи.
Останнім етапом у методі покрокової розробки є об'єднання окремих модулів у єдине ціле. Для цього між всіма модулями повинні бути встановлені зв'язки, тобто узгоджена передача інформації від одних модулів до інших. Це дуже важка робота і від оптимальності вибору вхідних та вихідних параметрів окремих модулів кінець кінцем залежить оптимальність роботі всієї програми.
Алгоритм, призначений для комп'ютерної реалізації, має бути записаний однією з мов програмування. На даному етапі розвитку комп'ютерної техніки різноманітність існуючих мов програмування дає програмісту можливість вибрати оптимальний варіант для отримання бажаного результату. А враховуючи можливість розбиття алгоритму на окремі модулі, реалізацію кожної підзадачі взагалі можна виконати різними засобами.
Написану вибраною мовою програмування програму необхідно тепер налагодити та протестувати. Під налагоджуванням програми розуміється процес випробування роботи програми з виправленням виявлених при цьому помилок. Виправити помилки, пов'язані з правилами написання програм, вам допомагає середовище програмування, а ось логічні помилки виправити набагато важче. В цьому вам можуть допомогти правильно підібрані тести.
Останній етап - це використання програми для отримання шуканих результатів. На цьому етапі обов'язково ще раз перевірити правильність очікуваних результатів. Якщо отримані результати являються помилковими, необхідно повернутися до одного з попередніх етапів (іноді, навіть, до найпершого - постановки задачі) і ще раз перевірити правильність зроблених робіт. Можливо, що на деяких етапах буде необхідно доопрацювати або повністю переробити весь етап.
Тепер програму можна експлуатувати і, навіть, пропонувати іншим користувачам, доповнивши її необхідною документацією.
Отже, основними етапами розв'язку задачі за допомогою ЕОМ є наступні:
Алгоритм
Кожна людина щодня зустрічається з безліччю задач від найпростіших і добре відомих до дуже складних. Для багатьох задач існують визначені правила (інструкції, команди), що пояснюють виконавцю, як розв'язувати дану проблему. Ці правила людина може вивчити чи заздалегідь сформулювати сама в процесі розв'язування задачі. Чим точніше описані правила, тим швидше людина опанує ними і буде ефективніше їх застосовувати.
У нашому житті ми постійно складаємо опис деякої послідовності дій для досягнення бажаного результату, тому поняття алгоритму не є для нас чимось новим і незвичайним. Так, ранком мама перед твоїм виходом до школи, дає вказівку: "Коли прийдеш зі школи, відразу пообідай і вимий посуд. Після цього підмети підлогу, сходи в магазин і можеш трохи погуляти. Гуляти дозволяю не більше години, а потім відразу за уроки".
Ця інструкція складається з послідовності окремих вказівок, що і визначають твою поведінку після повернення зі школи. Це і є алгоритм.
Кожний з нас використовує сотні різних алгоритмів. Спробуйте згадати деякі з них (алгоритми виконання арифметичних дій, розв'язування задач, прибирання квартири, миття посуду, готування їжі - рецепти тощо).
Отже, після обговорення кількох прикладів алгоритмів, давайте спробуємо сформулювати визначення, що ж таке алгоритм.
Алгоритм — зрозуміле і точне розпорядження виконавцю виконати послідовність дій, направлених на досягнення визначеної мети або на розв'язання поставленого завдання.
Поняття алгоритму в інформатиці є фундаментальним, тобто таким, котре не визначається через інші ще більш прості поняття (для порівняння у фізиці - поняття простору і часу, у математиці - крапка).
Алгоритм може бути висловлений в усній формі, записаний у вигляді тексту.
Будь-який виконавець (і комп'ютер зокрема) може виконувати тільки обмежений набір операцій (екскаватор копає яму, вчитель вчить, комп'ютер виконує арифметичні дії). Тому алгоритми повинні мати наступні властивості.
Під виконавцем алгоритму ми розуміємо будь-яку істоту (живу чи неживу), яка спроможна виконати алгоритм. Все залежить від того, якої мети ми намагаємося досягнути. Наприклад: риття ями (виконавці - людина або екскаватор), покупка деяких товарів (один із членів родини), розв'язування математичної задачі (учень або комп'ютер) тощо.
Відмінність між виконавцями алгоритмів — людьми і комп'ютерами: якщо люди виконують багато дій, навіть не усвідомлюючи, що при цьому вони виконують якісь алгоритми, то комп'ютери не можуть функціонувати без програм, вказівок яких вони точно додержують.
Властивості алгоритмів
Форми подання алгоритму
Тепер залишається з'ясувати, яким чином можна подати алгоритм виконавцю.
Існує кілька методів запису алгоритмів, вибір яких залежить від виконавця та того, хто його задає.
Першій спосіб - це словесний опис алгоритму. Сьогодні на уроці розібрано вже кілька алгоритмів, і всі вони подавалися виконавцю за допомогою словесного опису.
Другий спосіб - це подача алгоритму у вигляді таблиць, формул, схем, малюнків тощо. Наприклад, всіх вас вчили в дитячому садочку правилам поведінки на дорозі. І найкраще діти, вочевидь, сприймають алгоритм, що поданий у вигляді схематичних малюнків. Дивлячись на них, дитина, а потім і доросла людина, відпрацьовує ту лінію поведінки, що їй пропонується. Аналогічно можна навести приклади алгоритмів, що записані у вигляді умовних позначок на купленому товарі, щодо його користування (заварювання чаю, прання білизни тощо). В математиці наявність формул дозволяє розв'язати задачу, навіть "не використовуючи слів".
Третій спосіб - запис алгоритмів за допомогою блок-схеми. Цей метод був запропонований в інформатиці для наочності представлення алгоритму за допомогою набору спеціальних блоків.
Четвертий спосіб - навчальні алгоритмічні мови (псевдокоди). Ці мови мають жорстко визначений синтаксис і вже максимально наближені до машинної мови (мови програмування). Але створені вони з навчальною метою, тому мають зрозумілий для людей вигляд. Таких псевдокодів зараз існує велика кількість, починаючи з графічних середовищ "Алгоритміка", "Роботландія", "Лого-світи", "Черепашка" тощо і закінчуючи текстовими "національними" реалізаціями алгоритмічних мов, подібних до Паскаля. Ці псевдокоди мають програмну реалізацію і дуже широко застосовуються на етапі навчання основам програмування.
П'ятий спосіб максимально наближений до комп'ютера - це мови програмування. Справа в тому, що найчастіше в практиці виконавцем створеного людиною алгоритму являється машина і тому він повинен бути написаний мовою, зрозумілою для комп'ютера, тобто мовою програмування.
Базові структури алгоритмів
Для опису логічно зумовленого ходу виконання дій при складані будь-якого алгоритму використовуються одні й ті самі елементи, щ називаються базовими структурами. їх усього чотири: проходження, розвилка (умова), цикл, змішіна. Із цих елементів можна скласти будь-який алгоритм.
Для графічного представлення базових структур застосовуються спеціальні позначки.
Прямокутником позначається дія, яку треба виконати (рис. 1)
Дією тут може бути як одна окрема дія (наприклад, скласти два числа чи накреслити лінію), так і послідовність логічно об'єднаний дій (наприклад, виконати обчислення за заданими формулами або намалювати малюнок.
Ромбом позначається перевірка значення логічного виразу (рис. 2) У логічних виразах можуть використовуватися логічні операції «не» «і», «або». Логічний вираз може набувати одного з двох значень — істина чи хиба.
Перевірка значення логічного виразу звичайно зводиться до перевірки виконання чи невиконання певних умов.
Перейдемо до опису базових структур.
1. Проходження означає, що дії мають бути виконані послідовно одна за одною (рис. 3).
Наприклад, будь-який алгоритм можна подати як послідовність трьох дій (рис. 4).
2. Розвилка, яка також називається «якщо-то-інакше», означає вибір одного з двох варіантів залежно від значення певного логічного виразу (рис. 5). Може виявитися, що при одному зі значень логічного виразу не потрібно виконувати жодних дій. У цьому випадку структура розвилки називається «якщо-то» і може бути представлена у вигляді, що на рис. 7.
Така структура використовується в тих випадках, коли необхідність виконання дій залежить від певних умов. Наприклад, виконувати сортування послідовності з я елементів має сенс лише тоді, коли в ній більше, ніж один елемент (рис. 8).
3. Цикл означає повторне виконання тієї самої дії або блока дій, що мають назву тіло циклу, доти, доки певний логічний вираз залишається істинним (рис. 9).
Такий цикл називається «цикл-поки», або «цикл із передумовою» (умова перевіряється перед виконанням тіла циклу). Спочатку — на першому кроці циклу — перевіряється значення логічного виразу. Якщо воно є істинним, то виконується тіло циклу. Потім — на другому кроці — знову перевіряється значення логічного виразу і, якщо воно досі є істинним, знову виконується тіло циклу тощо. Цикл завершується, коли значення логічного виразу стає хибним.
Можливі ситуації, коли тіло циклу не виконається жодного разу. Це відбувається тоді, коли на першому кроці циклу значення логічного виразу є хибним.
Наприклад, для обчислення суми п чисел а1; а2, ..., ап (п > 2) слід користуватися структурою циклу. Позначимо через S шукану суму, а через і — номер числа в послідовності. До початку циклу S = 0 (ще нічого не підсумовували) та і = 1 (почнемо підсумовувати з першого члена) (рис. 10).
Отже, як ми вже зазначили базових структур написання алгоритму є чотири:
Наприклад, алгоритм обчислення суми двох чисел може бути таким:
VI. Контрольно-оцінювальний етап
Запитання для узагальнення
VII.Домашнє завдання
Вивчити терміни, конспект § 1 пит.1, 2, 3, 4, 7, 9 на с. 16 + пит.. 2, 5 с.17(самост.)
§ 2, 3 пит.1, 3, 4, на с. 26 + пит.. 4 с. 27(самос)т + пит.. 1,5 с.41(самост.)
1