Тема 3. Мат. моделювання. Алгоритми. Системи комп'ютерної математики
3. Мови та середовища програмування
Мови програмування - системи позначень для точного запису алгоритму, яка зрозуміла для ПК.
Мови програмування багато в чому нагадують звичайні мови - англійську чи українську і складаються із слів, фраз, синтаксичних правил. Написати програму - перекласти алгоритм мовою програмування, сприйнятливою ПК. Один і той же алгоритм може бути переведений на різні мови програмування.
Мови програмування поділяються на:
- алгоритмічні (процедурні) - мови, які описують алгоритм вирішення задачі за допомогою переліку процедур, наприклад, Basic, Pascal, C, Logo та інші;
- функціональні - опис моделі предметної області засобами ієрархії функцій, наприклад, мова Lisp;
- логічні - опис моделі предметної області засобами математичної логіки, наприклад, мови Prolog, SmallTalk.
Програмування умовно можна поділити на:
- візуальне програмування - засоби, за допомогою яких можна швидко створити додаток шляхом візуального проектування його макета в графічному вигляді, наприклад, Visual C, Visual Basic, Delphi.
- мови високого рівня - складається з операторів, схожих на звичайні слова;
- мови низького рівня (асемблер) - переводить зрозумілі людині символи (мнемоніку) в машинні коди.
Переклад з мови програмування у машинні коди здійснюється трансляторами - програмами-перекладами.
Можливі два варіанти трансляції:
- компілятор - здійснює переклад всієї програми, після чого вона виконується;
- інтерпретатор - здійснює переклад частини програми (рядка) і відразу виконує.
Мова Сі та її середовища
Мова Сі була створена в 1972 р Денісом Рітчі для розробки операційної системи UNIX. Після публікації в 1978 книжки «Мова програмування Сі» мова Сі становиться популярною мовою для прикладного і системного програмування, оскільки володіє компактним способом запису виразів та широким набором операторів. На мові Сі розроблена графічна система AutoCAD, операційна оболонка Windows тощо.
Переваги мови Сі:
- потужність - виконання максимум роботи за невелику кількість кроків;
- переносність - можливість реалізації Сі на різних комп’ютерах;
- популярність - має мільйонне коло програмістів, які використовують цю мову;
- розвиток - постійно доповнюється та розширює свої можливості за рахунок бібліотек функцій, нових операторів.
Система програмування (платформа, інтегроване середовище, IDE) - сукупність технічних і програмних засобів, які реалізують можливість запису операторів на мові програмуванні, їх відлагодження, компіляцію і виконання програми.
Інтегроване середовище - програма, яка включає в себе вбудований текстовий редактор, допомогу, компілятор, компоновщик - все те, що дозволяє одержати виконуваний файл *.ехе.
Текстовий редактор дозволяє писати вихідний текст програми (подібно друкарській машині), файл якого має розширення *.с (або ж *.cpp).
Щоб програма запрацювала на ПК її слід перевести в машинний код. В мові Сі цей процес виконується в декілька етапів: вихідний текст -текстовий редактор -*.с -компіляція -*.obj -компоновка-*.exe. Компілятор переглядає програму рядок за рядком, перевіряє правильність запису інструкцій. Якщо є синтаксичні помилки, він вказує вигляд помилки та її місце знаходження. Після виправлення всіх помилок в результаті компіляції отримаємо файл *.obj - об’єктний (проміжний) код програми.
Знаходження помилок (відлагодження) є невід’ємною частиною програмування. Для цього в середовищі Turbo C є Debug. Задачі компоновщика з’єднати всі коди в один виконуваний *.exe файл.
Структурний підхід до програмування
Для кращої ефективності створення програмного забезпечення використовують структурний підхід до програмування. Кожній підзадачі відповідає незалежний програмний модуль – який, як правило модуль реалізує одну функцію і повертає управління модулю, який його викликав.
Вихідний текст програми потрібно чітко розділити на блоки: 1) коротке пояснення призначення модуля, спосіб його виклику, вихідні дані і результат його роботи, дата створення тощо; 2) опис всіх змінних, які використовуються в даному модулі; 3) алгоритм вирішення задачі; 4) обробка результатів вирішення задачі.
Структурне програмування - метод написання тексту програми на основі використання базових структур управління процесом обчислення: лінійної, розгалуження і циклу. При такому підході код програми (програмні функції) і дані розділені. Функції визначають, що виконується над даними, але не навпаки.
Тестування - процес знаходження помилок:
- аналіз роботи програми в заданому діапазоні вихідних даних чи екстремальних даних;
- реакцію програми на неправильні вихідні дані;
- взаємодія між модулями тощо.
Об’єктно-орієнтоване програмування
ООП - метод програмування, який дозволяє розглядати концептуальну модель як набір об’єктів. ООП реалізовано в Visual C++, Delphi та в інших середовищах.
В основу ООП покладено новий об’єкт (тип даних) - class. Клас складається із набору змінних (даних) і операцій (методів=функцій-членів класу), які працюють лише з цими змінними. Маніпулювати одержаними класами можна лише тільки за допомогою повідомлень.
З ООП пов’язано ряд базових термінів:
- Інкапсуляція (encapsulation) - це спосіб об’єднання даних і функцій (методів) в єдину структуру. В класах С++ для управління функціональними елементами об’єкту використовуються дескриптори private, public, protected.
- Ієрархія класів. Об’єкти, які створені на основі опису класу, називаються екземплярами (instance) класу. Можна побудувати ієрархію класів, які складаються із базового класу батьків (parent) і декількох класів потомків (child). Батьківські класи представляють загальні задачі, а похідні класи реалізують більш конкретні задачі.
- Наслідування (inheritance) - здібність класу наслідувати особливості інших класів. Батьківський клас використовується для похідного класу зразком, який можна змінювати різними способами.
- Поліморфізм (polimorphism) - концепція ООП при якій одні і ті ж повідомлення можна посилати батьківському класу і об’єктам похідних класів. Кожний об’єкт підкласу реагує деяким образом на формат повідомлення, відповідно його опису.
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання