дає завдання дітям: «Діти, напишіть, будь ласка, в зошитах десять цифр «1», а потім рядочок цифр «2». Чим відрізняються ці два завдання? В першому випадку дитина отримала чітку вказівку написати десять одиниць, а в другому — ця вказівка була неточною (рядочок двійок). Чому другий випадок не такий точний? Тому що кількість написаних кожним учнем цифр буде залежати від їх власного почерку: одні учні пишуть охайно маленькими цифрами, інші — неохайно величезними кривулями.

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

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

Крім того, в циклах з умовою теж можна виділити два різних випадки:

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

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

Мовою блок-схем обидва типи циклів виглядають таким чином:

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

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

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

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

• За підручником Т.Каравановой прочитати сторінки 14—16;

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

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

УРОК 5. Побудова алгоритмів

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

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

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

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

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

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

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

Метод покрокової деталізації конструювання алгоритмів не враховує конкретні особливості поставленої

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату