ОСНОВНІ ПОНЯТТЯ ПРОГРАМУВАННЯ

+13

No comments posted yet

Comments

Slide 1

Профільний курс інформатики Модуль “Алгоритмізація та програмування”

Slide 2

ОСНОВНІ ПОНЯТТЯ ПРОГРАМУВАННЯ Тема 1: «Основні поняття алгоритмізації», 4 години 26.02.2012 2 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Slide 3

Основні поняття програмування  Програмування – розробка програм за допомогою мов програмування. Мова програмування – це формальна система знаків, що призначена для написання програм, зрозуміла для виконавця (комп’ютера). Програма (program, routine) - впорядкована послідовність команд (інструкцій) комп'ютера для розв'язання задачі. Програмне забезпечення (software) - сукупність програм обробки даних та необхідних для їх експлуатації документів. Програми призначені для машинної реалізації завдань (Задач). Терміни завдання і застосування (програма) мають дуже широке вживання в контексті інформатики і програмного забезпечення. Завдання або задача (problem, task) - проблема, що підлягає вирішенню. Застосування або програма (application) - програмна реалізація на комп'ютері рішення задачі. Розробка програмного забезпечення (англ. software engineering, software development) - це рід діяльності (професія) і процес, спрямований на створення і підтримку працездатності, якості та надійності програмного забезпечення, використовуючи технології, методологію та практики з інформатики, управління проектами, математики, інженерії та інших сфер знань. Алгоритм (Algorithmi, від імені перського математика IX ст. аль-Хорезмі) — система правил виконання обчислювального процесу, що обов'язково приводить до розв'язання певного класу задач після скінченного числа операцій. При написанні комп'ютерних програм алгоритм описує логічну послідовність операцій. Для візуального зображення алгоритмів часто використовують блок-схеми. Засоби швидкої розробки додатків (RAD) дозволяють створити програмний продукт, що складається з ряду застосувань, що дозволяють користувачам вводити дані в таблиці або редагувати вже існуючі дані, аналізувати введені дані і представляти їх у більш зручному для сприйняття вигляді - графіків, зведених таблиць або звітів (у тому числі у вигляді "паперових" документів). 26.02.2012 3 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Slide 4

ПАРАДИГМИ ТА МОВИ ПРОГРАМУВАННЯ   26.02.2012 4 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т. Парадигма програмування — це спосіб мислення розробника програми. Мова програмування може підтримувати або не підтримувати ту чи іншу парадигму. В першому випадку застосування парадигми стає зручним, тобто простим, безпечним і ефективним. Ми розглянемо три основних наказових парадигми — процедурне, об’єктне (модульне) і об’єктно-орієнтовне (ієрархічне) програмування. 

Slide 5

ПРОЦЕДУРНЕ ПРОГРАМУВАННЯ Процедурне програмування подає програму у вигляді набору алгоритмів, для оформлення яких можуть застосовуватися іменовані програмні блоки — процедури і функції. В останньому випадку передбачається наявність механізмів передачі параметрів і поверненні результату. Спочатку процедурне програмування користувалося довільними засобами керування, в тому числі, переходом за міткою — одним з найбільш вживаних операторів керування в Фортрані. До мов процедурного програмування відносяться Fortran, Cobol, Pascal, Basic, та інші. В 1968 році голландський вчений Е. Дейкстра вперше звернув увагу на проблеми, що виникають у програмах з неконтрольованими переходами, в 1970 році проголосив новий напрямок, який він назвав структур(ова)ним програмуванням. Структурне програмування — це варіант процедурного, що вживає три типи структур керування: послідовне виконання дій, розгалуження і цикл. Не дивно, що Фортран не підтримував цю парадигму — в наборі його засобів не було циклів за умовами. Починаючи з Алголу, а особливо в Паскалі, цикли стають основним засобом організації обчислень в програмі. Автор Паскалю, професор Н. Вірт, відібрав до створюваної ним мови програмування лише прості в поясненні і легкі в реалізації конструкції. Завдяки сильній типізації програми в Паскалі відзначаються високою надійністю, вони мобільні завдяки закладеній в них концепції Паскаль-машини, їх легко читати і розуміти завдяки дисципліні програмування, продиктованої вжитою парадигмою. Але разом з цим застосування Паскалю гальмувалося саме складністю виходу за межі віртуальної машини, потребою ефективного використання наявної апаратури. Головним критерієм, вжитим Б.Керніганом і Д.Річі до створеної ними мови С, стала саме гнучкість використання особливостей конкретної апаратури і ефективність виконання програм. 26.02.2012 5 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Slide 6

ОБ'ЄКТНЕ (МОДУЛЬНЕ) ПРОГРАМУВАННЯ Процедурна парадигма віддала належне алгоритмічній компоненті програмування. Але з ростом обсягу програм і складності даних з'явилася нова проблема структурної організації даних, найбільш ємко висловлена Віртовською формулою “алгоритми + структури даних = програми”. 26.02.2012 6 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Slide 7

ОБ'ЄКТНЕ (МОДУЛЬНЕ) ПРОГРАМУВАННЯ Поняття модуля як абстракції даних було вперше запропоноване Парнасом у 1972 році, правда на той час уже існувала мова програмування Симула 67, в якій використовувалася парадигма об'єктів. У найбільш повному виді поняття абстракції даних було реалізоване в мові програмування Модула-2. Головна ідея полягає в забезпеченні доступу до даних, не залежному від їх конкретного представлення. Самі дані і програми їх обробки вбудовуються (інкапсулюються) в окремій одиниці програми. 26.02.2012 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т. 7 Вікно Симула 67

Slide 8

ОБ'ЄКТНО-ОРІЄНТОВНЕ ПРОГРАМУВАННЯ Об'єктно-орієнтована парадигма наділила класи ієрархією. Об'єктно-орієнтоване програмування за метафорою Б.Страуструпа, автора С++ — однієї з найпопулярніших мов об'єктно-орієнтованого програмування, — це високоінтелектуальний синонім доброго програмування. Дійсно, нові парадигми програмування з'являються не так часто, не частіше однієї в десятиліття. Той факт, що об'єктно-орієнтована парадигма успішно використовується протягом 20 років, сам по собі служить вагомим підтвердженням її життєздатності. 26.02.2012 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т. 8 Бьярн Страуструп

Slide 9

ОБ'ЄКТНО-ОРІЄНТОВНЕ ПРОГРАМУВАННЯ Алгоритми, реалізовані в процедурному програмуванні, надто конкретні. Будь-яка модифікація — це вже новий алгоритм і таким чином кількість процедур і функцій, що знаходяться у використанні, надмірно зростає. Модульне програмування групує алгоритми в модулі, одночасно інкапсулюючи структури даних. Тепер залишається зробити наступний крок — побудувати ієрархію модулів або класів. Таких ієрархій може бути дві. 1). Перша з них — бути частиною чогось. Наприклад, грань є частиною многогранника, ребро — частиною грані, вершина — частиною ребра. 2). Інша ієрархія — бути узагальненням або конкретизацією. Наприклад, овал і многокутник служать конкретизацією плоскої фігури, коло — конкретизацією овалу, чотирикутник — конкретизацією многокутника, подальшими конкретизаціями чотирикутника можуть служити паралелограм, прямокутник, ромб, квадрат. Той факт, що квадрат, ромб, прямокутник є повноцінними паралелограмами дозволяє їм користуватися усіма програмними засобами, створеними для паралелограма, паралелограм в свою чергу є повноцінним чотирикутником і так далі. Цей принцип, відомий під назвою reusable — знову вживаний — став одним з найважливіших досягнень об'єктно-орієнтованої парадигми. Знову вживаючи вже існуюче програмне забезпечення в більш конкретизованих умовах, ми дописуємо лише ту його частину, яка стосується особливостей наявної конкретизації. Цей принцип дістав назву programming by difference або дописування програм. І, нарешті, об'єктно-орієнтована парадигма доводить до логічної завершеності принцип моделювання реального світу, а точніше тієї його частини, абстракцією якої служить програма. При цьому підході програма складається з об'єктів, що відповідають реальним поняттям або предметам. Виконання програми зводиться до взаємодії об'єктів, яке служить абстракцією реальної взаємодії їх прототипів. Все це разом забезпечило об'єктно-орієнтованому підходу беззаперечне лідерство в галузі розробки програм. 26.02.2012 9 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Slide 10

Мови об'єктно-орієнтованого програмування Сьогодні в сімействі мов об'єктно-орієнтованого програмування три найбільш відомих представника: С++, Java і C # ( читається Сі шарп ). С++ і сьогодні залишається визнаним лідером в розробці великих і складних програмних систем. Java і C # виросли з С++. 26.02.2012 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т. 10

Slide 11

ЕВОЛЮЦІЯ МОВИ ПРОГРАМУВАННЯ C#  СТВОРЕННЯ ООП І C++ До кінця 1970-х розмір проектів став наближатися до критичного, при перевищенні якого методика структурного програмування і мова С "опускали руки". Тому стали з'являтися нові підходи до програмування, що дозволяють вирішити цю проблему. Один з них отримав назву об'єктно-орієнтованого програмування (ООП). Використовуючи ООП, програміст міг справлятися з програмами набагато більшого розміру, ніж раніше. Але проблема полягала у тому, що С, найпопулярніша на той час мова, не підтримувала ООП. Бажання працювати з об'єктно-орієнтованою версією мови С врешті-решт і привело до створення C++. Мова C++ була розроблена Бьорном Страуструпом (Bjarne Stroustrup) в компанії Bell Laboratories (Нью-Джерсі), роком створення вважається 1979-й. Спочатку творець нової мови назвав її "С з класами", але в 1983 році це ім'я було змінене на C++. C++ повністю включає елементи мови С. Таким чином, С можна вважати фундаментом, на якому побудований C++. Більшість доповнень, які Страуструп вніс до С, були призначені для підтримки об'єктно-орієнтованого програмування. По суті, C++ - це об'єктно-орієнтована версія мови С. Створюючи С++ на основі С Страуструп забезпечив плавний перехід багатьох програмістів на ООП. Замість необхідності вивчати абсолютно нову мову, С-програмістові досить було освоїти лише нові засоби, що дозволяють використовувати переваги об'єктно-орієнтованої методики. Впродовж 1980-х років C++ інтенсивно розвивалася і на початок 1990-х вже була готова для широкого використання. Зростання її популярності носило вибухоподібний характер, і до кінця цього десятиліття вона стала найбільш використовуваною мовою програмування. В наші дні мова C++ як і раніше має безперечну перевагу при розробці високопродуктивних програм системного рівня. 26.02.2012 11 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Slide 12

INTERNET І ПОЯВА МОВИ JAVA Наступним рівнем на сходах прогресу мов програмування стала мова Java, яка спочатку називалася Oak (у перекладі з англ. "дуб"). Робота над її створенням почалася в 1991 році в компанії Sun Microsystems. Основною рушійною силою розробки Java був Джеймс Гослінг (James Gosling). 26.02.2012 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т. 12 Джеймс Гослінг

Slide 13

INTERNET І ПОЯВА МОВИ JAVA Java - це структурна об'єктно-орієнтована мова програмування, синтаксис і принципи якої "родом" з C++. Своїми новаторськими аспектами Java зобов'язана не стільки прогресу в мистецтві програмування, скільки змінам в комп'ютерному середовищі. Ще до настання ери Internet більшість програм писалися, компілювалися і призначалися для виконання з використанням певного процесора і під управлінням конкретної операційної системи. Не дивлячись на те що програмісти завжди прагнули робити свої програми так, щоб їх можна було застосовувати неодноразово, можливість легко переносити програму з одного середовища в іншу не була ще досягнута, до того ж проблеми переносимості постійно відкладалися, вирішувалися ж більш насущні проблеми. Проте з появою всесвітньої мережі Internet, в якій виявилися зв'язаними різні типи процесорів і операційних систем, стара проблема портативності заявила про себе вже в повний голос. Для її вирішення знадобилася нова мова програмування, і нею стала Java 26.02.2012 13 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Slide 14

СТВОРЕННЯ С# Розробники Java успішно вирішили багато проблем, пов'язаних з переносимістю в середовищі Internet, але далеко не всі. Одна з них - міжмовна можливість взаємодії (cross-language interoperability) програмних і апаратних виробів різних постачальників, або багатомовне програмування (mixed-language programming). В разі вирішення цієї проблеми програми, написані на різних мовах, могли б успішно працювати одна з іншою. Така взаємодія необхідна для створення великих систем з розподіленим програмним забезпеченням (ПЗ), а також для програмування компонентів ПЗ, оскільки найціннішим є компонент, який можна використовувати у широкому діапазоні комп'ютерних мов і операційних середовищ. Крім того, в Java не досягнута повна інтеграція з платформою Windows. Хоча Java-програми можуть виконуватися в середовищі Windows (за умови встанолення віртуальної машини Java), Java і Windows не є міцно зв'язаними середовищами. А оскільки Windows - це найбільш широко використовувана операційна система в світі, відсутність прямої підтримки Windows - серйозний недолік Java. Аби задовольнити ці потреби, Microsoft розробила мову С#. 26.02.2012 14 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Slide 15

СТВОРЕННЯ С# С# була створена в кінці 1990-х років і стала частиною спільної .NET-стратегії Microsoft. Вперше вона побачила світло як альфа-версія в середині 2000 року. Головним архітектором С# був Андерс Хейлсберг (Anders Hejlsberg) - один з провідних фахівців в області мов програмування, що отримав визнання у всьому світі. Досить сказати, що в 1980-х він був автором успішного продукту Turbo Pascal, витончена реалізація якого встановила стандарт для всіх майбутніх компіляторів. 26.02.2012 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т. 15 Андерс Хейлсберг

Slide 16

Взаємозв'язок та відмінності мов С# безпосередньо пов'язаний із С, C++ і Java. І це не випадково. Ці три мови - найпопулярніші і найулюбленіші мови програмування в світі. Більш того, майже всі професійні програмісти сьогодні знають С і C++, і більшість знає Java. Оскільки С# побудований на міцному, зрозумілому фундаменті, то перехід від цих "фундаментальних" мов до "надбудови" відбувається без особливих зусиль з боку програмістів. Оскільки Андерс Хейлсберг не збирався винаходити нову мову, він зосередився на введенні удосконалень. Прамовою С# є мова С. Від С мова С# успадкувала синтаксис, багато ключових слів і оператори. Крім того, С# побудований на покращеній об'єктній моделі, визначеній в C++. С# і Java зв'язані між собою дещо складніше. Java також є нащадком С і C++. У неї теж загальний з нею синтаксис і схожа об'єктна модель. Подібно Java C# призначений для створення переносимого коду. Проте С# - не нащадок Java. Швидше С# і Java можна вважати двоюрідними братами, що мають загальних предків, але що отримали від батьків різні набори "генів". 26.02.2012 16 Робота вчителя СЗОШ № 8 м. Хмельницького Кравчук Г.Т.

Summary: Навчальна презентація для курсу профільна інформатика. Лінія АТП Основні поняття програмування

Tags: інформатика навчальні презентації програмування

URL: