задачі та вибір певного виконавця. Проте набір команд із системи команд вибраного виконавця суттєво впливає на ступінь деталізації алгоритму та на його структуру.
Розглянемо, наприклад, простий алгоритм «переходу через вулицю». Взагалі для кожної дитини можна вважати це командою, що входить до її «системи команд». Але кожний пам’ятає, як у дитинстві батьки та вихователі неодноразово повторювали: якщо там, де необхідно перейти вулицю, є підземний перехід, то скористайся ним, якщо немає—відшукай місце, де є світлофор, і перейди вулицю, користуючись правилами; якщо немає ані підземного переходу, ані світлофора... (далі
Допоміжний алгоритм повинен мати тільки один вхід та один вихід, причому того, хто користується ним, зовсім не цікавить, як реалізований цей алгоритм. Головне, щоб усі команди, які входять до складу допоміжного алгоритму, входили до системи команд обраного виконавця. Зверніть увагу й на те, що в реальному житті допоміжні алгоритми можуть виконувати навіть інші виконавці. Наприклад, якщо батьки вдома вирішили зробити ремонт, то зовсім не обов’язково, що вони власноруч повинні зробити шпалери та клей. Алгоритми виробництва матеріалів існують, і їх хтось виконує, а ми тільки користуємося результатами такої роботи.
Таким чином, можна вважати допоміжний алгоритм своєрідним «чорним ящиком», на вхід якого подаються деякі вхідні дані, а на виході ми отримуємо очікуваний результат. Головне — чітко домовитись про правила оформлення вхідних даних та результату. Невиконання домовленостей може призвести до збою у виконанні допоміжного алгоритму або до отримання неочікуваного результату. Описаний метод послідовної деталізації лежить в основі технології структурного програмування і широко застосовується у таких мовах програмування, як Паскаль, С, C++ та інших мовах високого рівня. При описуванні програми для комп’ютера мовами високого рівня допоміжні алгоритми реалізовуються у вигляді підпрограм. Правила опису, звернення до них та повернення в точку виклику визначаються конкретною мовою програмування. Для зручності часто використовувані підпрограми можна об’єднувати в бібліотечні модулі і за необхідності підключати їх в свої програми.
Домашнє завдання
• Вивчити означення, що були прочитані на лекції;
• Придумати та записати алгоритм, в якому залежно від вибору певноговиконавця необхідний різний ступінь деталізації;
• Продумати приклади алгоритмів, для яких будь-який ступінь деталізації все одно не дозволить виконати їх заданим виконавцем.
Мета уроку: Дати поняття про програму, класифікацію мов програмування, поняття системи програмування, поняття про інтерпретацію та компіляцію.
Теоретичний матеріал
Процес роботи комп’ютера полягає у виконанні програм, тобто деякого набору команд, що надходять у визначеному порядку. Машинний код команди, реалізований у двійковій системі числення, складається з нулів та одиниць. Він указує, яку саме дію треба виконати центральному процесору. Отже, щоб задати комп’ютеру послідовність дій, яку він має виконати, треба задати послідовність двійкових кодів відповідних команд. Писати такі програми—дуже складна справа. Раніше для цього програміст повинен був пам’ятати не тільки всі комбінації нулів та одиниць двійкового коду кожної команди, але й двійкові коди адрес даних, що використовувалися під час виконання програми.
Щоб полегшити роботу програмістів, було розроблено багато мов програмування, які в більш наочному (для людини) вигляді подавали послідовність дій комп’ютера.
Алгоритмічні мови опису побудованих алгоритмів, призначених для виконання комп’ютерами, називаються
Описи алгоритмів мовою програмування називають
Легше написати програму мовою, яка наближена до людської, а перекладання цієї програми у машинні коди доручити комп’ютеру.
Нині створено багато мов програмування. Взагалі, для розв’язування більшості задач можна написати програму будь-якою з них. Тільки досвідчені програмісти знають, яку мову краще використати для розв’язування певного класу задач, щоб урахувати всі особливості та специфіку задач.
Мови програмування можна поділити на дві групи: мови низького рівня; мови високого рівня. До мов низького рівня належать мови
Але більшості програмістів під час складання програм зручніше користуватися певною мовою високого рівня. Для описування алгоритмів такою мовою використовується певний набір символів — алфавіт мови. З цих символів складаються так звані
Мови високого рівня максимально наближені до «людської» мови, тому ними зручно писати програми. Але програми, написані мовами програмування високого рівня, комп’ютер «не розуміє». Для того, щоб він міг виконати програму, її потрібно перекласти на машинну мову. Для такого перекладу використовують спеціальні програми, які мають назву — транслятори.