Алгоритм і програма h2>
Як
вам вже відомо, комп'ютер - це програмно-керована система для роботи з інформацією,
і саме програмне керування робить його таким універсальним. Тому, як
складаються програми, присвячена ця частина курсу інформатики та інформаційних
технологій. А почнемо ми її з двох базових понять: "алгоритм" і "програма". P>
Алгорітм1
- Одне з фундаментальних понять інформатики. Цим словом позначають точне і
безвідмовне припис послідовності дій, що переводить автоматичне
пристрій з початкового стану в результуюче. Тобто ми можемо вважати
алгоритмом будь-яку інструкцію, якщо: p>
її
команди не допускають різних варіантів виконання; p>
вказівки
передбачені для всіх можливих варіантів розвитку подій. p>
З
цієї точки зору можна скласти, наприклад, алгоритм переливання з пустого в
порожнє. Однак, на практиці алгоритми складають для вирішення тих чи інших
завдань, тобто отримання необхідних результатів за заданими вихідними даними. Вид
алгоритму, та й сама можливість його написання залежать від виконавця (це
може бути і людина, і автоматичний пристрій), або точніше, від його системи
команд (тобто набору інструкцій, які він "уміє" виконувати).
Тому, надалі ми будемо користуватися таким визначенням. P>
Алгоритм
рішення задачі - це послідовність допустимих команд виконавця,
визначають його дії по переходу від вихідних даних до шуканого результату. p>
Якими
властивостями повинен володіти алгоритм? Перерахуємо їх: p>
діскретность2
- Алгоритм ділиться на окремі елементарні кроки; p>
визначеність
- Кожна команда однозначно визначає дію виконавця; p>
кінцівку (результативність)
- Алгоритм повинен завершаться за кінцеве число кроків. p>
Крім
цього, алгоритм може мати ще одним корисним (але не обов'язковим)
властивістю - масовістю. Це означає, що він буде годиться не для однієї
конкретного завдання, а для цілого класу схожих завдань. p>
З
визначеністю безпосередньо пов'язана істотна особливість, про яку
не можна забувати: виконавець виконує алгоритм формально3, абсолютно не
замислюючись над сенсом Ваших дій. Тому не варто ображатися на
комп'ютер, "не здогадатися", що ви мали на увазі, - він чесно
робить те, що ви написали. p>
p>
Існує
багато різних способів запису алгоритмів: графічні (наприклад, у вигляді
блок-схем), за допомогою природної мови, якими-небудь умовними знаками идр.
Але якщо ми хочемо, щоб алгоритм був виконаний комп'ютером, він повинен бути
обов'язково записаний на особливому мовою. Такий запис називається программой4, а мова
- Мовою програмування. P>
Ви
знаєте, що вся інформація в комп'ютері представляється у вигляді двійкових кодів. У
кодах, кожен з яких означав одне просте дію (начебто,
"перенести число з однієї комірки пам'яті в іншу"), доводилося
писати і програми для перших ЕОМ. Але це заняття дуже складна і копітка,
а крім того, що вимагає глибокого знання особливостей конкретної машини.
Тому були придумані мови програмування високого рівня. Програма на
такою мовою - це послідовність команд, що позначаються словами
природної мови або їх скороченнями. Кожна з них відповідає
послідовності з десятків, а то й сотень машинних команд. У результаті
запис виходить набагато більш компактною і зрозумілою. p>
Але
процесор не розуміє команд мов високого рівня, тому їх попередньо
потрібно "перевести". Для цього є особливі програми - транслятори5. P>
Зараз
в світі існує безліч мов програмування, розрахованих на різні
області застосування. Ми в нашому курсі будемо використовувати Лого6 - мова,
спеціально створений для навчання основам програмування. Ця мова дуже
простий (до речі, на відміну від професійних мов програмування, він
дозволяє записувати команди російською мовою), але, в той же час, сприяє
формування навичок, що дозволяють потім, при бажанні, без особливих проблем
перейти до роботи з такими популярними мовами, як Сі або Паскаль. Особливо
знаменитий мова логотип своєї "черепашачою графікою". Про те, що це таке,
ми і поговоримо слідом чолі. p>
Примітки h2>
Algorithmi
(лат.) - перекручене ім'я математика IX століття аль-Хорезмі, який запропонував спосіб
виконання арифметичних обчислень з багатозначними числами. p>
Зауважимо,
що підхід до визначення алгоритму як послідовності операцій - не
єдино можливий. Крім такого - процедурного (імперативного), можливий і
функціональний підхід, коли алгоритм розглядається як система функцій. p>
Discrete
(англ.) - що складається з окремих частин p>
Formalis
(лат.) - строго за встановленими правилами p>
Programma
(грец.) - розпорядження p>
Translator
(англ.) - перекладач p>
Мова
Лого (Logo, від грец. Logos - слово, думка) розроблений у 1972 р. Сеймуром
Пейпертом (Массачусетський технологічний інститут, США).
"Прародителем" його був найбільш відомий з мов функціонального
програмування - Лісп, однак, у процесі розвитку Лого придбав ряд
особливостей, що дозволяють використовувати при роботі з ним як функціональний, так
і процедурний підходи. p>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту
http://macedu.narod.ru p>