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

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

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

Таким чином, можна вважати допоміжний алгоритм своєрідним «чорним ящиком», на вхід якого подаються деякі вхідні дані, а на виході ми отримуємо очікуваний результат. Головне — чітко домовитись про правила оформлення вхідних даних та результату. Невиконання домовленостей може призвести до збою у виконанні допоміжного алгоритму або до отримання неочікуваного результату. Описаний метод послідовної деталізації лежить в основі технології структурного програмування і широко застосовується у таких мовах програмування, як Паскаль, С, C++ та інших мовах високого рівня. При описуванні програми для комп’ютера мовами високого рівня допоміжні алгоритми реалізовуються у вигляді підпрограм. Правила опису, звернення до них та повернення в точку виклику визначаються конкретною мовою програмування. Для зручності часто використовувані підпрограми можна об’єднувати в бібліотечні модулі і за необхідності підключати їх в свої програми.

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

• Вивчити означення, що були прочитані на лекції;

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

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

УРОК 6. Програма. Мова програмування

Мета уроку: Дати поняття про програму, класифікацію мов програмування, поняття системи програмування, поняття про інтерпретацію та компіляцію.

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

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

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

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

Описи алгоритмів мовою програмування називають програмами.

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

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

Мови програмування можна поділити на дві групи: мови низького рівня; мови високого рівня. До мов низького рівня належать мови асемблера (від англ. to assembleскладати, компонувати). У мовах такого рівня використовуються символьні позначення команд, які легко зрозуміти і за-пам’ятати. Замість послідовностей двійкових кодів команд записуються їх символьні позначення, а замість двійкових адрес даних, які використовуються під час виконання програми, — символьні імена цих даних. Іноді мову асемблера називають мнемокодом або автокодом.

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

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

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

0

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

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