Все права на текст принадлежат автору: І Вільївна Скляр, Ірина Вільївна Скляр.
Это короткий фрагмент для ознакомления с книгой.
Я готуюсь до курсу інформатики. Алгоритмізація та програмуванняІ Вільївна Скляр
Ірина Вільївна Скляр

I. Вільївна Скляр Я готуюсь до курсу інформатики. Алгоритмізація та програмування


УРОК 1. Етапи розв’язування задач за допомогою комп’ютера

Мета уроку: Дати поняття про основні етапи розв’язування задачі з використанням комп’ютера.

Теоретичний матеріал

Нині важко уявити собі життя сучасної людини без комп’ютера. Люди використовують його для розв’язання найрізноманітніших задач: від виконання складних обчислень у наукових дослідженнях та економіці до виконання кропіткої домашньої роботи (наприклад: такі процеси як прання білизни, приготування їжі, миття посуду з використанням сучасної побутової техніки зараз комп’ютеризовані. Комп’ютеру можна доручити навіть функції домашнього секретаря). Комп’ютер—це помічник людини, без нього неможлива обробка величезного потоку інформації, який кожного дня все зростає: будь то оформлення складної документації, створення та обробка графічних зображень, розв’язування математичних задач, отримання даних з будь-якої теми, тощо. Це далеко не повний перелік всіх можливостей нашого помічника.

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

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

Розглянемо розв’язання прикладної задачі за допомогою комп’ютера:

Постановка (або формулювання) — це перший крок у розв’язанні будь-якої задачі. На цьому етапі слід чітко з’ясувати: що дано і що треба знайти. Тобто чітко уяснити суть задачі, необхідні початкові дані для її розв’язання, а також те, що можна вважати за очікуваний результат.

Наприклад, батьки вирішили відремонтувати квартиру. Отже, безпосередньо комп’ютер не може зробити ремонт. Але комп’ютер може допомогти не тільки розрахувати кількість потрібних матеріалів, вартість їх перевезень та вартість виконаних ремонтних робіт, а навіть запропонувати оптимальний варіант з кількох можливих, враховуючи всі вимоги до якості та до термінів ремонту, а також фінансові можливості родини.

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

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

У нашому прикладі математичною моделлю задачі буде:

• по-перше, розрахунок площі поверхні стін, що підлягає ремонту;

• по-друге, розрахунок необхідних матеріалів (з урахуванням площішпалер, що знаходяться в рулоні, та додаткових шпалер, необхідних дляспівпадання малюнків на стіні);

• по-третє, розрахунок вартості витратних матеріалів та вартості виконаних робіт.

Примітка: Ці формули отримати неважко, тому таке завдання можна дати учням безпосередньо на уроці або вдома.

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

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

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

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

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

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

Тепер програму можна експлуатувати і, навіть, пропонувати іншим користувачам, доповнивши її необхідною документацією.

Отже, підіб’ємо підсумки. Основні етапи розв’язування задачі за допомогою комп’ютера такі:

1) постановка задачі;

2) побудова математичної моделі;

3) розробка алгоритму;

4) опис алгоритму мовою програмування;

5) тестування та налагоджування програми;

6) експлуатація програми.

Домашнє завдання:

• За підручником Т. Караванової «750 задач з алгоритмізації та програмування» прочитати сторінки 21—24.

• Придумати власну задачу, яка може бути розв’язана за допомогоюкомп’ютера. Записати етапи її розв’язування.

• Створити математичну модель задачі розрахунку кількості фарби дляфарбування заданої поверхні, якщо відома норма витрат фарби на квадратний метр поверхні (вид поверхні: квадрат, прямокутник, шар тощо).

УРОК 2. Інформаційна модель

Мета уроку: Дати поняття про моделювання та створення інформаційних моделей об’єктів.

Теоретичний матеріал

З давніх часів людина використовує моделювання для дослідження об’єктів та явищ в різних галузях діяльності. Результати цих досліджень допомагають визначити та покращити характеристики реальних об’єктів та процесів, краще зрозуміти сутність явищ та пристосуватися до них або керувати ними, конструювати нові та модернізувати старі об’єкти. Моделювання допомагає людині приймати обгрунтовані рішення та передбачати наслідки своєї діяльності. Комп’ютерне моделювання — це використання в цьому процесі комп’ютера як потужного сучасного засобу обробки інформації. Завдяки комп’ютеру суттєво розширюються галузі застосування моделювання, а також забезпечується всебічний аналіз отриманих результатів. Що ж таке модель? Моделлю можна назвати і матеріальні макети реально існуючих об’єктів, і нематеріальні об’єкти (наприклад такі, як теорія розвитку суспільства або всім відома формула земного тяжіння Р = mgh), багато чого іншого. Як же в одному слові можна об’єднати такі різні поняття?

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

Може виникнути запитання, чому не можна дослідити сам об’єкт, навіщо створювати моделі? Для цього може існувати багато причин:

• оригінала на момент дослідження може не існувати (наприклад, угіпотезах про загиблий материк Атлантида або про побудову Єгипетськихпірамід, або про можливу «ядерну зиму», яка може початися після атомногобомбардування);

• реально цей об’єкт не можна побачити цілком (наприклад, земну кулю,усю сонячну систему або атом);

• дослідник хоче побачити об’єкт, але не має можливості потрапити намісце його знаходження (наприклад: Ейфелева вежа, єгипетські піраміди,Софіївський собор тощо);

• процес, який досліджується, небезпечний для життя (наприклад,ядерна реакція).

• Таких прикладів можна навести багато. І ви також можете згадати багато моделей, що бачили у своєму житті.

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

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

Отже, кількість моделей та їх різноманітність дуже велика. Щоб не розгубитися в цьому розмаїтті, необхідно моделі класифікувати.

Розглянемо найсуттєвіші ознаки, за якими класифікуються моделі:

• галузі використання;

• урахування в моделі фактора часу;

• спосіб представлення моделей.

• Розглядаючи моделі за ознакою галузі використання, можна сказати, що вони бувають:

навчальні—наочні посібники, тренажери, навчальні програми;

дослідні — створюються для дослідження характеристик реальногооб’єкта (наприклад, модель теплоходу перевіряється на плавучість, амодель літака—на аеродинамічні характеристики);

науково-технічні—для дослідження процесів та явищ (наприклад,ядерний реактор або синхрофазотрон);

ігрові моделі — для вивчення можливої поведінки об’єкта в запрограмованих або непередбачених ситуаціях (наприклад: військові,економічні, спортивні ігри тощо);

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

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

За способом представлення моделі можуть бути матеріальні та інформаційні.

Матеріальні моделі — це предметне відображення об’єкта зі збереженням геометричних та фізичних властивостей (наприклад: іграшки,

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

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

геометричні—графічні форми та об’ємні конструкції;

словесні—усні та письмові описи з використанням ілюстрацій;

математичні—математичні формули, що відображають зв’язок різних параметрів об’єкта;

структурні—схеми, графіки, таблиці;

логічні — моделі, в яких представлені різні варіанти вибору дій на основі різних заключень та аналізу умов;

спеціальні—ноти, хімічні формули тощо;

комп’ютерні та некомп’ютерні.

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

Домашнє завдання:

• Вивчити означення: модель, моделювання, класифікація моделей,комп’ютерне моделювання.

• Записати приклади моделей, з повсякденного життя.

УРОК 3. Алгоритми та їх властивості

Мета уроку: Дати поняття про алгоритм, його властивості та способи подачі. Навчити розпізнавати алгоритми навколо себе. Вміти розрізняти правильно та неправильно сформульовані алгоритми.

Теоретичний матеріал

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

У житті ми постійно складаємо опис деякої послідовності дій для досягнення бажаного результату, тому поняття алгоритму не є для нас чимось новим і незвичайним. Так, ранком мама перед твоїм виходом до школи дає вказівку: «Коли прийдеш зі школи, відразу пообідай і вимий посуд. Після цього підмети підлогу, сходи в магазин і можеш трохи погуляти. Гуляти дозволяю не більше години, а потім відразу за уроки».

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

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

Отже, давайте спробуємо сформулювати, що ж таке алгоритм.

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

В цьому визначенні використовується поняття «виконавець». Що це означає? Під виконавцем алгоритму ми розуміємо будь-яку істоту (живу чи неживу), яка спроможна виконати алгоритм. Все залежить від того, якої мети ми намагаємося досягнути. Наприклад: риття ями (виконавці— людина або екскаватор), покупка деяких товарів (один з членів родини), розв’язування математичної задачі тощо.

Поняття алгоритму в інформатиці є фундаментальним, тобто таким, яке не визначається через інші ще більш прості поняття (для порівняння: у фізиці — поняття простору і часу, в математиці—точка і т.д.).

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

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

Наприклад: мама доручила купити в магазині продукти. Виконавцем цього алгоритму може бути хтось із родини: батько, син, бабуся, донька. Ясно, що для тата достатньо сказати, які купити продукти, а далі деталізувати алгоритм не потрібно. Сину-підлітку необхідно детальніше пояснити в яких магазинах можна придбати потрібний товар, що можна купити замість відсутнього товару і таке інше.

Маленькій доньці алгоритм необхідно деталізувати ще більше: де взяти сумку, щоб принести товар, яку решту грошей необхідно принести з магазину, як дійти до магазину і як там себе поводити.

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

2. Визначеність (однозначність). Зрозумілий алгоритм не повиненмістити вказівок, зміст яких може сприйматися неоднозначно. Наприклад,«почисти картоплю», «посоли за смаком», «прибери в квартирі» тощо єнеоднозначними, тому що в різних випадках можуть привести до різнихрезультатів. Окрім того, в алгоритмах неприпустимі такі ситуації, колипісля виконання чергового розпорядження алгоритму виконавцю не ясно,що потрібно робити потім. Наприклад, вас послали за якимось товаром умагазин, та ще й попередили: «без хліба (цукру тощо) не повертайся». Ащо робити, коли цей товар відсутній?

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

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

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

5. Результативність. Виконання будь-якого алгоритму повиннозавершуватися одержанням кінцевих результатів. Тобто ситуації, колиможуть виникнути так звані «зациклення», повинні бути виключені щепри написанні алгоритму. Наприклад, розглянемо таку ситуацію: роботудано вказівку залишити кімнату (замкнутий простір), не виконуючируйнівних дій. У цьому випадку, якщо йому не дати команди «відкритидвері» (які, можливо, закриті), то спроби робота залишити кімнату будутьбезуспішними.

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

Першій спосіб—це словесний опис алгоритму. Сьогодні на уроці ми вже розібрали кілька алгоритмів і всі вони подавалися виконавцю за допомогою словесного опису.

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

Третій спосіб — запис алгоритмів за допомогою блок-схеми. Цей метод був запропонований в інформатиці для наочності представлення алгоритму за допомогою набору спеціальних блоків.

Основні з цих блоків такі:

Четвертий спосіб — навчальні алгоритмічні мови (псевдокоди). Ці мови мають чітко визначений синтаксис і максимально наближені до машинної мови (мови програмування). Але створені вони з навчальною метою, тому мають зрозумілий для людей вигляд. Таких псевдокодів зараз існує велика кількість, починаючи з графічних середовищ «Алгоритміка», «Роботландія», «Лого-світи», «Черепашка» тощо і закінчуючи текстовими «національними» реалізаціями алгоритмічних мов, подібних Паскалю. Ці псевдокоди мають програмну реалізацію і дуже широко застосовуються на етапі навчання основам програмування.

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

Домашнє завдання:

• Прочитати сторінки 7—16 запропонованого підручника;

• Вивчити означення: алгоритм, властивості алгоритму, способи подання алгоритму;

• Придумати та записати у зошит будь-який алгоритм на побутову тему(кулінарний, прибирання кімнати, виконання уроків і т.д.);

УРОК 4. Базові структури алгоритмів

Мета: Дати поняття про базові структури алгоритмів. Навчити розпізнавати базові структури в запропонованих алгоритмах.

Теоретичний матеріал

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

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

Існує чотири базових структури алгоритмів: лінійні; розгалужені; циклічні; змішані. Найпростіша в написанні та виконанні перша з цих структур — лінійна. До неї відносяться алгоритми, що складаються лише з простих команд. Які ж команди можна назвати простими?

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

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

Прокинутися / зробити ранковий туалет / одягнутися / поснідати / зібрати речі / одягнути верхній одяг, взутися / вийти до школи. ...



Все права на текст принадлежат автору: І Вільївна Скляр, Ірина Вільївна Скляр.
Это короткий фрагмент для ознакомления с книгой.
Я готуюсь до курсу інформатики. Алгоритмізація та програмуванняІ Вільївна Скляр
Ірина Вільївна Скляр