asyan.org
добавить свой файл
  1 ... 8 9 10 11 12 ... 15 16

Поняття алгоритму.

Алгоритм – це чітко визначена для конкр.виконавця послідовність дій, які спрямовані на досягн.поставленої мети або розв’яз.задачі певного типу (описове означення, оскільки поняття алг.відноситься до первісних, неозначуваних). Сам термін “алгоритм” утворився в результаті перекладу на європейські мови імені арабського математика Аль-Хорезмі, який описав правила (алгоритми) виконання основних арифметичних операцій в десятковій системі числення.

Пр.алг.: приготування кулінар-ної страви згідно з рецептом, пошук слова у словнику, розв-ня квадр. рівн.

Властивості алгоритму

Власт. алг.:

1.Скінченність. Виконання кожного алг. повинно завершуватись за скінчене число кроків.

2.Результативність. Виконання алг.завжди повинно приводити до певного результату.

3.Формальність. Виконавець відповідно до алгоритму повинен одержати результат, не вникаючи в його суть.

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

5.Масовість. За допомогою складеного алг. повинен розв’язуватись цілий клас задач.

6.Зрозумілість. В алг.повинні бути лише операції, які знайомі виконавцеві. При цьому виконавцем алгоритму може бути: людина, комп’ютер, робот тощо.

Способи опису алгоритмів.

Способи опису алг.:

1.Словесно-формульний (опис здійснюється в словесній формі з використанням математичних чи інших формул);

2.Графічний (за допомогою блок-схем );

3.З використанням спеціальних алгоритмічних мов (таких як навчальна алгоритмічна мова);

4.У вигляді програм, написаних певною мовою програмування.

Навчальна алгоритмічна мова.

Навчальна алгоритмічна мова

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

Близька до природної мови; містить правила опису лише чотирьох вказівок: надання значення, розгалуження, повторення і вказівку про вико-ня алг.; дає можливість перевірити правильність написання алг.людиною; має свої службові слова і описи вказівок.

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

При конструюванні викор.такі базові алгор-ні структури:

1.Слідування. Команда с.подається у вигляді послідовності двох (або більше) простих команд, що виконуються одна за одною. Якщо алгоритм можна подати у вигляді послідовності команд, то його називають лінійним алгоритмом.

Пр.: Скласти алг.обч-ня значення виразу y=(Ax+B)(Cx+D).

2. Розгалуження (вибір). Команда розг. – це вказівка виконати одну з двох команд: команду 1 або 2 залежно від іст. чи хибності деякого твердж.Р. На цьому виконання команди розгалуження закінчується.

– +

Пр. Скласти алг. розв’яз.квадр. рівн.

3.Повторення(цикл). Розрізняють два типи циклів – поки і до.

Поки До



+

Порівняняльна характеристика

Поки

До

Перевірка умови

до

після

К-ть повторень команд в циклі

Може не повтор. жодного разу

Повтор. хоч один раз

Умова виходу з циклу

Якщо умова є хибною

Якщо умова є істинною

Пр.Скла.алг.обч.суми цілих чисел від 1 до 100.

структурне програмування є технологією програмування, яка об’єднує способи складання добре структурованих надійних програм, зручних для читання і розуміння їх людиною, слідкування за логікою їх роботи, внесення до них виправлень та інших змін. Згідно з думкою Н.Вірта “структурізація є принциповим інструментом, яке допомагає програмісту систематично синтезувати складні програми, зберігаючи про них повне уявлення” [1].

Реалізація цих ідей заснована на таких принципах:

1) аналітичне (згори донизу) програмування;

2) структурне кодування , тобто використання лише базових елементів програми;

3) принцип модульності.

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

Технологія побудови алгоритму “згори до низу” та структурний підхід до розробки алгоритмів.

Метод побудови алг.“зверху вниз”:

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

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

Кожний алг. можна подати у вигляді комбінації 3 базових алг-их структур, що є їх основною власт. Викор-ня цього принц. лежить в основі структурного підходу до побудови алгоритмів.

Технологія структурного програмування.

Технологія структурного програмування:

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

26.Програмування. Основні методології (стилі, парадигми) програмування. Поняття програми. Класифікація мов програмування. Системи програмування, основні функції і компоненти. Інтегровані середовища програмування. Поняття про інтерпретацію та компіляцію. Поняття редактора, транслятора, налагоджувача.

Структурна методологія і обєктно-орієнтована методологія розробки програм.

За означенням визнаного автора в галузі об’єктно-орієнтованих методів розробки програм Граді Буча “О’єктно-орієнтоване програмування (ООП) – це методологія програмування, яка заснована на представленні програми у вигляді сукупності об’єктів, кожен з яких являється реалізацією певного класу (типу особливого виду), а класи утворюють ієрархію на принципах слідування.”

Об’єктно-орієнтована методологія (ОО-методологія) так само, як і структурна методологія, була створена з метою дисциплінувати процес розробки великих програмних комплексів і тим самим знизити їх складність та вартість.

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

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

то при створенні об’єктно-орієнтованої ієрархії (ОО-ієрархії) приймається інший погляд на той же вихідний об’єкт і в ієрархії обов’язково відображається наслідування властивостей батьківських (вище лежачих) типів об’єктів дочірніми (нижче лежачими) типами об’єктів.

Поняття програми. Класифікації мов програмування. Системи програмування, основні функції і компоненти. Інтегровані середовища програмування.

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

Існуючі мови програмування можна поділити на дві групи: мови низького рівня і мови високого рівня. Мова найнижчого рівня – це мова машинного кодування. Машинна мова – набір двійкових кодів для роботи центрального процесора конкретного типу. Працювати з такою мовою важко через велику кількість команд у двійковій формі і різноманітність процесорів. Машинні коди були основним засобом програмування від моменту створення комп’ютерів. Трохи вище лежить мова Ассемблера (від англ. складати, компонувати). У мові ассемблера використовуються символьні позначення вказівок, які легко зрозуміти і запам’ятати. Замість послідовностей двійкових кодів вказівок записують їх символьні позначення, а замість двійкових адрес даних, які використовуються під час виконання вказівки – символьні імена цих даних, які добирає програміст. Іноді мову ассемблера називають мнемокодом, або автокодом. Всі інші мови програмування є більш високого рівня, ніж мова Ассемблера. Мова програмування високого рівня (МВР) – мова, що складається з операторів, схожих на звичайні слова. Програми такими мовами дозволяють формулювати завдання для комп’ютера в звичайних для людини категоріях. МВР зробили використання комп’ютерів доступним широкому колу людей, які не фахівцями в галузі програмування. Мови програмування високого рівня поділяються на процедурні (детальний опис розв’язування задачі, тобто точно вказує дії щодо реалізації алгоритму шляхом переліку необхідних процедур) і непроцедурні (використання об’єктів і декларацій). Процедурні мови, у свою чергу поділяються на операціональні (Fortran, Basic, C) і структурні (Pascal, Модула). Серед непроцедурних виділяють об’єктні мови (C++, Delphi, Visual Basic) і декларативні (мови логічного програмування – Prolog, SmallTalk; мови функціонального програмування – Lisp). Програма, написана декларативною мовою, являє собою опис моделі предметної галузі засобами математичної логіки (логічне програмування) або ієрархії функцій (функціональне програмування). На відміну від процедурних мов програма декларативною мовою описує не способи (алгоритми) розв’язання задач, а логічний або функціональний взаємозв’язок понять предметної галузі, яка являє собою базу знань програми. Робота з програмою декларативною мовою полягає у задаванні програмі запитів, відповіді на які формулюються програмою на підставі її бази знань.

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

Поняття про інтерпретацію та компiляцiю. Інтегровані середовища програмування. Поняття редактора, транслятора, налагоджувача.

Для того, щоб комп’ютер міг виконувати програму, її потрібно перекласти на машинну мову. Для цього використовують спеціальні програми-транслятори. Транслятор – це програма, призначена для перекладу тексту програми з однієї мови програмування на іншу. Процес перекладання називається трансляцією. Розрізняють два типи трансляторів – компілятори та інтерпретатори. Компілятор – це програма, що призначена для перекладу та наступного запам’ятовування повністю всієї програми, яка написана деякою мовою, у програму в машинних кодах. Процес такого перекладання називається компіляцією. Компілятор створює програму в машинних кодах, яка потім виконується. Скомпільований варіант програми можна зберігати на дискові. Для повторного виконання програми компілятор вже не потрібен. Досить завантажити з диска в пам’ять комп’ютера скомпільований раніше варіант і виконати його. Існує інший спосіб поєднання процесів трансляції та виконання програми. Він називається інтерпретацією. Інтерпретатор – це програма, яка призначена для повказівкових трансляцій та виконання вихідної програми. Такий процес називається інтерпретацією.

У процесі трансляції відбувається перевірка опису програми на відповідність до правил використовуваної для її описування мови. Якщо в програмі знайдено помилки, транслятор виводить повідомлення про них на пристрій виведення (як правило, на екран дисплея). Інтерпретатор повідомляє про знайдені помилки після трансляції кожної вказівки програми. Це значною мірою полегшує процес пошуку та виправлення помилок, але суттєво збільшує час трансляції. Компілятор транслює програму набагато швидше, ніж інтерпретатор, але повідомляє про знайдені помилки лише після завершення компіляції всієї програми. Знайти та виправити помилки в цьому випадку важче. Через це інтерпретатори розраховані, в основному, на мови, що призначені для навчання програмування. Більшість сучасних мов програмування призначені для розробки складних пакетів програм і розраховані на компіляцію.

Як правило, програми компілятори і інтерпретатори називаються так само, як і мови, для перекладу з яких вони призначені. Слова Бейсік, Паскаль, Ада, Сі можна сприймати і як назви мов, і як назви відповідних програм-трансляторів.

Інтегроване середовище програмування – це система програмування, що поєднує редактор для зручного введення і редагування програми, транслятор і налагоджувач помилок.
27. Процедурні мови програмування. Характеристика процедурних мов програмування. Алфавіт. Основні поняття мови: числа, рядки, ідентифікатори, описи, оператори. Структура програми. Основні розділи програми і правила їх опису
Характеристика процедурних мов програмування. Алфавіт. Основні поняття мови: оператори, ідентифікатори, числа, рядки, описи.

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

Кожна мова програмування має свій алфавіт, фіксований словник, синтаксис і семантику. Для описування алгоритму такою мовою використовується певний набір символів – алфавіт мови. Алфавіт складається зазвичай з літер латинської абетки, цифр, спеціальних символів (дужки, роздільники), знаків логічних операцій (not, and, or та ін.), знаків операцій порівняння (=, <, > та ін.). З цих символів складаються і так звані ключові слова мови. Кожне з ключових слів має певне призначення. Ключові слова зв’язуються одне з одним за певними синтаксичними правилами мови. Кожне речення визначає певну послідовність дій, які повинен виконати комп’ютер. Словник мови програмування складається з кінцевого фіксованого набору ключових слів, наприклад, integer, while, var тощо. Сукупність правил побудови описів програм деякою мовою програмування називають синтаксисом мови програмування. Правила семантики пояснюють, яке смислове значення має опис кожної з вказівок програми і які дії повинен виконати комп’ютер під час виконання кожної з таких вказівок. У будь-якій мові програмування можна виділити чотири типи елементів, що використовуються при побудові описів програм: символи, слова, виразі і вказівки (оператори). Символи мови – це основні неподільні знаки, за допомогою яких описують програми і дані. Слова мови – структури, утворені із символів і які є мінімальними одиницями, що мають деякий смисл. Слова – це імена (позначення, ідентифікатори) змінних величин, числа, службові слова, які використовуються в описах вказівок. Правила запису ідентифікаторів: 1) Усі ідентифікатори складаються з літер латинської абетки, цифр, починаються з літери або знака підкреслення "_"; 2) Великі і малі літери на розрізняються; 3) Ідентифікатори можуть мати різну довжину, але використовуються тільки перші 63 символи. Виразце текст, який задає правило обчислення одного значення того чи іншого типу. Якщо одержуване значення числове, о вираз називають арифметичним. Якщо одержуване значення логічне, то вираз називають логічним, чи булівським. Якщо одержуване значення – текст, то вираз називають літерним. Вказівка – це вказівка про виконання певної дії. У мовах програмування застосовуються вказівки трьох типів: 1) вказівки про безумовне виконання деякої дії чи набору дій: надання значень, уведення, виведення, виконання алгоритму; 2) Вказівки розгалуження; 3) Вказівки повторення.



<< предыдущая страница   следующая страница >>