Базові структури алгоритмів

Слідування - вказівка подається у вигляді послідовності двох (або більше) простіших вказівок «Виконати». Наприклад: «Подрібнити ягоди шипшини» => «Закип'ятити воду» => «Залити ягоди кип'ятком» => «Кип'ятити 10 хвилин» => «Дати прохолонути» => «Процідити»...

Розгалуження - використовується для вибору напрямку подальшої роботи залежно від виконання або невиконання заданої умови. Наприклад, «буде дощ, так: взяти парасольку, ні: не брати парасольку»; «набрав прохідний бал, так: поступив, ні: не поступив».

Повторення - використовуються, коли доводиться одну й ту саму дію або послідовність дій виконувати кілька разів. Приклад алгоритму повторення: «Бити молотком цвях, поки його шляпка не зрівняється з поверхнею дошки».


Заняття № 20

ПредметОснови інформатики”

Тема:Основи структурного програмування.

Цілі:

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

2) Виховна: виховувати старанність, уважність.

 

Зміст

1. Запис програм.

2. Програми-посередники.

3. Мови програмування.

4. Середовище програмування.

5. Сучасне програмування.

6. Помилки в програмах.

7. Проблеми розв’язування задач.

 

Програми. Програмування

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

Мова програмування - система позначень, за допомогою яких можна точно описати алгоритм для виконання його комп’ютером.

Машинні коди - набір двійкових кодів для роботи центрального процесора конкретного типу.

Розрізняють такі типи програм:

· текст програми, написаний мовою програмування і призначений для компіляції чи інтерпретації;

· об'єктний модуль - програма, переведена на машинну мову, але не готова до реалізації через відсутність програмних блоків, які приєднуються під час редагування програми;

· машинна програма (виконуваний модуль), яка збирається із об'єктних модулів і може бути завантажена в оперативну пам'ять для виконання;

· мікропрограми, які вбудовані в пристрої (мікропрограмне керування пристроєм).

Запис програм

Першим програмістам доводилося писати команди в «машинних кодах», тобто так, як сприймає їх машина. Наприклад, додавання двох чисел виглядало так: 15 0127 2677 3656. Число 15 -це код операції, яка означає «додати два деяких числа і суму записати в пам'ять». Числа 0127, 2677 і 3656 - це номери комірок пам'яті, в яких зберігаються числа. Зміст команди такий: додати число, яке записане в комірці номер 0127, з числом, записаним в комірці з номером 2677, а результат розташувати в комірку з номером 3656.

Пізніше, щоб полегшити процес запису програм, створили систему умовних позначень (мову програмування) для запису команд і внутрішню програму, яка вже сама «перекладала» команди в машинні коди. Тепер приклад додавання двох чисел виглядає так: с = а + b. Перед виконанням команди машина кожній змінній вкаже номер комірки, де знаходяться дані. Знак «=» означає записати (або присвоїти).

Аналогічно записуються більш складні операції, які повинен виконати комп'ютер. Наприклад, перевірку умови аі > т можна записати англійською: if a[i]>m then m=а[і].

Такий підхід вимагає існування:

• чіткої системи умовних позначень для запису команд зрозумілою людині мовою (мова програмування);

• програми-посередника, яка перекладатиме команди мовою, зрозумілою машині.

Команди, записані мовою програмування називають операторами або вказівками. Послідовність таких команд називають текстом програми. Текст програми записують в текстовому файлі.

Існує багато різних мов програмування (дивись малюнок). Взагалі, для розв'язування більшості задач можна використовувати будь-яку з них. Тільки досвідчені програмісти знають, яку мову програмування краще використовувати для розв'язування складних спеціалізованих задач, щоб урахувати особливості тієї чи іншої з них.

Всі існуючи мови програмування можна поділити на дві групи:

¨ мови низького рівня;

¨ мови високого рівня.

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

Більшість програмістів при складанні програм користуються деякою мовою високого рівня. Для описування алгоритмів такою мовою використовується певний набір символів - алфавіт мови. З цих символів складаються так звані службові слова мови, кожне з яких має певне призначення. Службові слова зв'язуються одне з одним в речення за певними синтаксичними правилами мови і визначають деяку послідовність дій, які мусить виконати комп'ютер. Використання мов високого рівня надає можливість описувати програми для комп'ютера, використовуючи загальноприйняті позначення операцій і функцій. Та програми, що написані на мовах програмування високого рівня (алгоритмічних мовах програмування), комп'ютер "не розуміє". Для того, щоб він міг виконати програму, її потрібно перекласти на машинну мову. Для такого перекладу використовують спеціальні програми, що мають назву - транслятори.

Програми-посередники

Програма-компілятор (сотріlе - компонувати, збирати) перетворює текст програми на машинні коди і записує його на диск у вигляді виконуваного файлу. Після цього програма виконується незалежно від тексту програми, записаного в текстовому редакторі. Програми-компілятори ще називають трансляторами (перекладачами).

Програма-інтерпретатор завжди працює спільно з первинним текстом програми. Вона інтерпретує (тлумачить) кожну вказівку програми і відразу її виконує (тобто файл на машинній мові не створюється).

Програма в режимі інтерпретації працює значно повільніше, ніж в машинних кодах, тому що кожну вказівку інтерпретує безпосередньо перед виконанням (а не заздалегідь, як при компіляції). Багато вказівок в програмі повторюється і в кожному випадку інтерпретуються заново. Але під час налагоджування програми це має свої переваги. Для прискорення інтерпретації використовують псевдокомпіляцію (інтерпретовані команди запам'ятовуються і при повторному виконанні заново не перекладаються).

Мови програмування

В наш час машинні коди не використовуються, а кожна програма записується мовою програмування. Існує багато мов програмування, але всі вони, як правило, містять засоби описування даних, арифметичні оператори (подібні с=а+b), засоби керування і організації циклів (подібні if), засоби введення і виведення інформації. Мови програмування подібні принципами організації програм, але різні за синтаксисом.

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

Слова і синтаксис мов програмування придумуються штучно. Наприклад, програміст володіє мовою С і знає, що складені оператори виділяти треба дужками {...}. В Раsсаl, наприклад, такими дужками вже виділяються ремарки, а складені оператори треба писати begin (початок) і end - (кінець). Ніяка попередня підготовка і логіка не допоможе програмісту здогадатися, що дужки мають іншу функцію, тому що синтаксис мови, як і взагалі мову Раsсаl, придумав швейцарський вчений Н. Вірт.

Всі мови програмування можна поділити на:

• алгоритмічні (Ваsіс, Раsсаl, С та ін.);

• логічні (Рго1оg);

• об'єктно-орієнтовані (Smalltalk та ін.).

Наприклад, мова програмування ВАSІС створювалася як універсальна мова для початківців. Перші версії мали невелику кількість найнеобхідніших команд і передбачали лише режим інтерпретації. Але сучасні варіанти мови ВАSІС не лише не поступаються можливостями «грандам» (типу С), а й інколи перевершують їх. Наприклад, Visual Basic використовується в суперсучасних системах, які базуються на технології «клієнт-сервер».

Середовище програмування

Мова програмування завжди пов'язана з середовищем програмування. Середовище програмування (система програмування, СП) - це комплекс програмних засобів, за допомогою яких створюється програма, наприклад, мовою Ваsіс або мовою С.

Є мова програмування ВАSІС і є середовище програмування QuickВАSІС (на базі мови ВАSІС); є мова Раsсаl і є середовище Тurbo Раsсаl. Системи програмування мають, як правило, по декілька версій.

Сучасне програмування

Для створення сучасних програм широко використовуються об'єктно-орієнтовані мови четвертого покоління(4Gl). На відміну від класичних мов третього покоління (Раsсаl, С), які мають певних авторів і реалізуються в різних системах програмування, мова 4СL невід'ємна від середовища розробки і фірми, яка випускає інструментальні засоби на основі даної мови.

Мови Раsсаl, С в оригіналі є процедурними мовами. Мова 4СL працює з об'єктами (вікно, командна кнопка, перемикач тощо) і базується на понятті «подія-повідомлення». Об'єкт «чекає» повідомлення; отримавши повідомлення, реагує на нього. Тому мову 4СL ще називають непроцедурною мовою.

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

• використання об'єктно-орієнтованих мов;

• візуальне програмування (тобто побудова екранної форми за допомогою миші із готових напівфабрикатів);

• швидка розробка додатків;

• бази даних для одночасної роботи багатьох користувачів;

• програмування з використанням функцій АРІ Windows тощо.

Помилки в програмах

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

Розрізняють помилки даних і помилки програми. Користувач при введенні даних досить часто помиляється і програма «повинна вміти ці помилки виявляти. Але є й такі помилки, які найкраща програма не, може виявити. Наприклад, якщо дата народження 1982 рік, а користувач увів 1882, то програма попередить користувача, що введено «сумнівний» рік народження. Але якщо користувач увів 1983 рік, то програма не зафіксує це як помилку.

Користувачі і програмісти помиляються частіше, ніж машина. У комп'ютера можуть бути технічні поломки, як у будь-якого технічного апарата, але справний комп'ютер не помиляється.