Сторінка
1
Відшукай усьому початок, і ти багато чого зрозумієш.
Козьма Прутков Спочатку спробуємо розібратися в основних поняттях програмування.
1.1. Процес, алгоритм, мова
"Подібної тарабарщини, – сказав Король, – я ніколи в житті не чув"
Л.Керрол З проблемами, або задачами, нам доводиться мати справу кожен день. Для нас вони мають вигляд вимог, наприклад , "Дістати Луну з неба" чи "Розв'язати квадратне рівняння", або запитань – "Скільки в морі краплин води?" чи "Скільки буде 2 помножити на 2?". Для того, щоб задачу розв'язати, треба попрацювати, тобто виконати якісь відповідні дії. Причому ці дії виконуються в певній послідовності. Послідовність дій ми будемо називати процесом. Процес перерахування краплин почнеться поїздкою до моря, а розв'язування квадратного рівняння – з обчислення дискримінанта. Розв'язувати квадратні рівняння ми навчилися за підручником з алгебри. У ньому написано, що саме і в якому порядку треба зробити, щоб розв'язати рівняння. Тобто в ньому є описання дій. І це описання дій, які треба виконати для розв'язання задачі, називається алгоритмом. Створення алгоритму і є програмуванням. Людина програмує, тобто записує алгоритм, як правило, для того, щоб не згадувати наступного разу, які саме дії треба зробити, або щоб ці дії виконував хось інший. З алгоритмами ми маємо справу постійно. І рецепти приготування страв, і нотні записи музичних творів, і опис того, як обчислити корені квадратного рівняння за його коефіцієнтами, – усе це алгоритми. Тих, хто створює алгоритми, називають програмістами, а тих, хто виконує дії – виконавцями. У широкому розумінні програмістами можна вважати і композитора, і автора рецептів приготування страв із бульйонними кубиками. Відповідно музиканти, що грають по нотах, і господарки, що готують за рецептом, – виконавці. Не знаючи нотної грамоти, не зіграти по нотах; не розбираючись у назвах продуктів і кухонного посуду, не приготувати страви. Отже, алгоритми завжди записуються так, щоб виконавці їх розуміли і могли виконати. Це значить, що є правила запису алгоритмів, і ці правила повинні знати як програміст, так і виконавець. Взагалі, система запису, призначена для передачі якогось змісту, називається мовою. Людство придумало багато різноманітних мов, у тому числі й мов запису алгоритмів. Отже, алгоритм є записом, створеним за правилами деякої мови, тобто є виразом у цій мові. Ми будемо записувати алгоритми, призначені для виконання їх не людиною, а комп'ютером. Їх ми будемо називати програмами. Хоча і існують такі речі, як програми проведення великих свят, навчальні програми тощо. Для запису програм ми будемо користуватися мовою, що називається Паскаль на честь великого французького натураліста й математика. Цю мову створив на початку 70-х років видатний швейцарський вчений і педагог Ніклаус Вірт спеціально для навчання початкам програмування.
1.2. Комп'ютери та програми
Аналітична машина не претендує на винаходження чогось. Вона може робити все те, що ми зуміємо наказати їй.
Леді Лавлейс, 1844 г. Розглянемо комп'ютер, або обчислювальнумашину у найзагальнішому вигляді (рис.1.1). Він "уміє" робити тільки одне – виконувати програми. Програма складається з команд, якими задається обробка значень (числових і не тільки). Програма й значення знаходяться в оперативній пам'яті. Центральний процесор, або операційний пристрій, "читає" команди програми й значення з пам'яті та виконує команди. По цих командах він обробляє значення в пам'яті, породжує нові значення й "записує" їх у пам'ять. Дії процесора схожі на те, що робить учень біля класної дошки: він читає завдання, записані там учителем (команди програми), виконує їх і записує результати на цій же дошці (значення в пам'яті). Як і на дошці, у пам'яті комп'ютера можна записувати нові значення на місце старих, "стираючи" їх при цьому. У процесора є своя власна пам'ять для збереження та обробки значень. Вона утворена спеціальними елементами, регістрами, і називається регістровою. Значення в регістрах обробляються набагато швидше, ніж в оперативній пам'яті, тому перед обробкою значення, як правило, читаються з пам'яті в регістри. Дії, які може виконувати процесор, описуються вказівками типу: "прочитай число з такого-то місця пам'яті в такий-то регістр", "додай два числа з таких-то регістрів та запиши суму в такий-то регістр", "запиши число з такого-то регістра в таке-то місце пам'яті" або "виконай команду, записану в такому-то місці пам'яті". Ці вказівки називаються машинними командами. Нехай, наприклад, Пам1, Пам2 і Пам3 позначають місця в пам'яті, де записано числа, а Рег1 і Рег2 – регістри. Для того, щоб додати два числа з Пам1 і Пам2 і записати результат у Пам3, процесор виконує дії, що позначаються у вигляді команд приблизно так:
прочитати з Пам1 у Рег1,
прочитати з Пам2 у Рег2,
додати числа з Рег1 і Рег2 і суму записати в Рег1,
записати з Рег1 у Пам3. Дії процесора позначаються кодами операцій і вказуються в машинних командах, а програма для комп'ютера (машинна програма) є послідовністю такого роду команд. Значення, записані в оперативній пам'яті або іншому пристрої комп'ютера, називаються даними. Отже, програми задають обробку даних. Програми самі записуються в пам'ять і самі є даними. Проте прийнято відрізняти команди програми й дані, що обробляються при їх виконанні. Кажуть, що програма складається з команд і даних. Дані ще називаються інформацією, хоча загальне розуміння цього слова більш широке. У пам'яті комп'ютера одночасно перебувають, як правило, декілька програм. Серед них є ціла система програм і даних під загальною назвою "операційна система" (рис.1.2). Саме за нею процесор визначає, команди якої з програм йому треба виконувати в той чи інший момент часу. Назви деяких із операційних систем усім добре відомі: DOS, WINDOWS-98, UNIX, OS/2 та інші.
1.3. Зовнішня пам'ять та файли Крім оперативної пам'яті, у комп'ютері є зовнішня пам'ять – на зовнішніх носіях даних, наприклад, магнітних дисках. Носії розміщаються на спеціальних пристроях обміну даними з "зовнішнім світом", або пристроях уведення-виведення (ПУВ на рис.1.1). До ПУВ відносяться, наприклад, дисководи, екран, клавіатура, миша. Всі вони мають у своєму складі процесори, побудовані набагато простіше, ніж центральний процесор, і виконують зовсім інші команди. Процесори пристроїв обміну можуть переносити дані з зовнішніх носіїв в оперативну пам'ять, виконуючи читання з "зовнішнього світу" або навпаки, записувати дані з оперативної пам'яті в "зовнішній світ". Переміщення значень між процесором і УВВ відбуваються за допомогою спеціального пристрою – шини. Кожному пристрою обміну виділено свою особливу ділянку оперативної пам'яті – порт. З нього пристрій переносить дані на зовнішній носій, записуючи їх, наприклад, на диск або екран комп'ютера. І саме в порт записуються дані від пристроїв обміну, наприклад, від клавіатури або дисковода. Комп'ютери, як правило, мають кілька дисководів для роботи з дисками різних типів, наприклад, жорсткими (hard, або Winchester disks), гнучкими (floppy disks), компактними (compact) та іншими. Комп'ютер може мати й інші пристрої обміну даними, наприклад, сканери для читання візуальної інформації, плотери для створення зображень, модеми для підключення до телефонної мережі тощо. Програми, за допомогою яких операційна система керує роботою пристроїв обміну, називаються драйверами цих устроїв. Наприклад, драйвер клавіатури або драйвер екрана. Дані на зовнішніх носіях називаються файлами, наприклад, тексти або малюнки. Вони мають різноманітне походження та призначення, і записуються за різними правилами. Системи запису файлів називаються форматами. Машинна програма теж є прикладом файла. Спочатку за допомогою спеціальних програм вона створюється й записується, як правило, на диск. Потім для виконання вона переписується звідти в оперативну пам'ять (ОП на рис.1.3). Цей запис програми в оперативну пам'ять називається завантаженням і виконується за спеціальною програмою – завантажником.
1 2