© 2006-2014 Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 1 (32) Бублик Володимир Васильович кафедра мультимедійних систем кімн.

Презентация:



Advertisements
Похожие презентации
Бройченко А.Г АЛФАВІТ МОВИ (Turbo Pascal 7.0) АЛФАВІТ МОВИ (Turbo Pascal 7.0) Інформатика-11 Тема-3.
Advertisements

Основи алгоритмізації і програмування. Тема 3. Мови програмування (4 год) Структура програми Елементи мови програму- вання.
Ізяславський НВК 2, Гульчак І.В. Мова програмування Pascal.
Дипломний проект Виконав: студент гр. П Ярошенко Я.І. Керівник дипломного проекту Сібрін Ю.І. Розробка програми Продаж друкованої продукції.
ІНФОРМАТИКА. 9 КЛАС Програмне забезпечення комп'ютерних систем Навчальна презентація вчителя Большакової Кристини Сергіївни ЗОШ 9 м. Ізмаїл.
Типи даних мови Visual Basic та їх опис. Опис величин Величина - це об'єкт, який має стале або змінне значення. Основні характеристики величин: ім'я,
Бройченко А.Г КОМАНДИ ПОВТОРЕННЯ (Turbo Pascal 7.0) КОМАНДИ ПОВТОРЕННЯ (Turbo Pascal 7.0) Інформатика-11 Тема-4.
Ізяславський НВК 2, Гульчак І.В. Компютерні програми і мови програмування. Етапи розвязування задач з використанням компютера.
ОБЧИСЛЮВАЛЬНА СКЛАДНІСТЬ АЛГОРИТМІВ І ПРОГРАМ НА ПРИКЛАДІ ЗАДАЧІ ПРО ЩАСЛИВІ КВИТКИ.
Перевірка знань за темою Алгоритми Що таке алгоритми ? Наведіть приклади. Що ви знаєте про історію виникнення алгоритмів ? Що таке система команд виконавця.
Дипломний проект Виконав: студент гр. П Карачевцев О.М. Керівник дипломного проекту Висоцька О.І. Електронне замовлення обідів.
Ковальчук О.М КОМАНДИ РОЗГАЛУЖЕННЯ (Turbo Pascal 7.0) КОМАНДИ РОЗГАЛУЖЕННЯ (Turbo Pascal 7.0) Інформатика-11 Тема-4 Ковальчук О.М., 2007.
Тема 2. Розгалуження. Алгоритми розгалуження Задача. Ввести два цілих числа і вивести на екран більше з них. Ідея розвязання: потрібно вивести на екран.
Тема уроку. Практична робота Складання програм з розгалуженням М ета уроку: формувати вміння працювати в середовищі програмування ; створювати проект.
Поняття циклу. Класифікація циклів. Порівняльна характеристика циклів. Формати команд повторення мовою програмування.
Тема 1. Вступ. Основи алгоритмізації Урок 3. Типові операції алгоритмізації Урок 4. Реалізація алгоритму на алгоритмічній мові Основи алгоритмізації та.
Основи алгоритмізації та програмування Вказівка повторення. Цикли.
Оператори. Введення і виведення даних. Оператор присвоювання Оператори це команди програми. Оператор присвоювання є основним оператором мови програмування.
Одновимірні масиви 11 клас (продовження). Задача 4. У даному масиві з десяти дійсних чисел визначити найбільше значення. Спочатку вважатимемо, що значення.
МОВИ ПРОГРАМУВАННЯ МОВИ ПРОГРАМУВАННЯ Програми ПК складається із двох частин: 1. Апаратної (електроніка, залізо); 2. Програмного забезпечення (ПЗ) Програмне.
Транксрипт:

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 1 (32) Бублик Володимир Васильович кафедра мультимедійних систем кімн. 1/204 консультації віторок 13 год. Процедурне програмування С/С++ Лекція 1. Парадигми і мови програмування Ресурси: distedu.ukma.kiev.ua

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 2 (32) Література Передумова: Н.Вирт, Систематическое программирование, М., Мир, В.В.Бублик, Конспект лекцій С++, С.Б.Липпман, Ж.Лажойе, Язык программирования С++, вводный курс, ДМК, М., Б.Страуструп, Язык программирования С++. Специальное издание, БИНОМ, М., Т.А.Павловская, С/С++ Программирование на языке высокого уровня, Питер, СПб, Г.Шилдт, Полный справочник по С, Вильямс, Б.Страуструп, Программирование. Принципы и практика использования С++, Вильямс, 2011

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 3 (32) Література Передумова: Н.Вирт, Систематическое программирование, М., Мир, В.В.Бублик, Конспект лекцій С++, С.Б.Липпман, Ж.Лажойе, Язык программирования С++, вводный курс, ДМК, М., Б.Страуструп, Язык программирования С++. Специальное издание, БИНОМ, М., Т.А.Павловская, С/С++ Программирование на языке высокого уровня, Питер, СПб, Г.Шилдт, Полный справочник по С, Вильямс, Б.Страуструп, Программирование. Принципы и практика использования С++, Вильямс, 2011 Adieu summer!

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 4 (32) Ресурси Шукайте цікаві нові ресурси, діліться ними з товаришами, але не забувайте класику…

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 5 (32) Важлива книга про С The White Book

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 6 (32) Нова книга Страуструпа

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 7 (32) Корисні книги про С++

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 8 (32) Мови програмування (повторення) Формальна мова в тому числі мова програмування - це множина слів у заданому алфавіті Слова мовою програмування – це програми, здатні керувати певними виконавцями (головним чином комп'ютерами) Запам'ятайте! В першу чергу програми пишуться для того, щоб їх читали люди (колеги по роботі, члени команди програмістів, рецензенти, супроводжувачі, студенти тощо)

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 9 (32) Мови програмування (повторення) This page has been intentively left blank

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 10 (32) Визначення мови програмування Синтаксис визначає граматично правильні слова (програми) –begin real 123x; end. Семантика наділяє програми змістом –begin writeln(Hello, world!); end. Прагматика визначає призначення і умови застосування мови програмування –Мову програмування ФОРТРАН використовують для математичних розрахунків, а КОБОЛ - для економічних.

Формальний синтаксис Контекстно-вільна граматика G = Т – множина термінальних символів N – множина нетермінальних символів (понять) ξ -> w – граматичне правило: ξ є N, w є (T U N)* R – множина граматичних правил ξ 0 – початковий символ Формальна мова L c T* - множина усіх слів в термінальному алфавіті T, що виводяться з початкового символу ξ 0 застосуванням правил із заданого набору R © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 11 (32)

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 12 (32) Практичні способи визначення синтаксису Форми Бекуса-Наура Діаграми Вірта

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 13 (32) Форми Бекуса-Наура Нетермінальні символи беруть у кутові дужки ::= ::= a|b|c|d||e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z ::=0|1|2|3|4|5|6|7|8|9 ::= | | Завдання. Записати систему форм Бекуса-Наура для визначення чисел з рухомою крапкою.

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 14 (32) Синтаксичні діаграми Вірта Буква Цифра Ідетифікатор Число

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 15 (32) Семантика мов програмування Глока куздра штеко будланула бокра i курдячить бокреня …Варчилось… Хлив'язкі тхурки Викрули, свербчись навкрузі, Жасумновілі худоки Гривіли зехряки у чузі Не кожній синтаксично коректній конструкції можна надати семантику –begin real x; boolean x; integer x; end. Потрібні додаткові семантичні обмеження

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 16 (32) Види семантики Операційна семантика визначає правила, за якими програма мовою програмування перетворюється на послідовність машинних команд Денотаційна (математична) семантика ставить програмі у відповідність функцію, що визначає перетворення вхідних даних у вихідні –z =max(x,y) Аксіоматична (логічна) семантика визначає спосіб виведення заключної умови на вихідні данні із заданих початкових умов на вхідні –{x>0} y := sqrt(x); {y = x 2 }

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 17 (32) Прагматика Умови застосування мови програмування значною мірою визначаються парадигмою (парадигмами), що підтримується (підтримуються) цією мовою Якщо прогрес мистецтва програмування в цілому вимагає постійного винайдення і вдосконалення парадигм, то вдосконалення умінь окремого програміста вимагає розширення свого репертуару парадигм. Роберт Флойд Robert Floyd ( )

Парадигми програмування Описова (декларативна) що? що шукати? що будувати? що рахувати? Наказова (імперативна) спочатку роби одне, а потім інше –Процедурна Структурована –Об'єктна (модульна, абстрактні типи даних) –Ієрархічна (об'єктно-орієнтована) © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 18 (32)

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 19 (32) Парадигми і мови програмування Paradigm From Wikipedia, the free encyclopedia Since the late 1800s, the word paradigm has referred to a thought pattern in any scientific discipline1800sscientificdiscipline (in computing) a paradigm is a style of programming, usually enforced by the programming language usedparadigmprogrammingprogramming language

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 20 (32) Наша мета reuse Reuse це здатність коду легко налаштовуватися на нові застосування в нових умовах (легко = без перепрограмування) Помилковий переклад: повторне використання Not reusable: Процедурна парадигма надто конкретна function max(x:integer, y:integer): integer; max (1, 2); max (pi,e)? max (прикладна математика, програмна інженерія)?

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 21 (32) Простір для інтерпретацій в процедурній парадигмі Піди туди, не знаю куди, принеси таке, не знаю яке Народна алгоритмічна творчість Не роби сьогодні те, що можна відкласти до завтра

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 22 (32) Мови програмування

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 23 (32) FORmula TRANSlator CКВАДРАТНИЙ КОРІНЬ З ДІЙСНОГО ЧИСЛА REAL FUCTION ROOT (A) S=A*.5 IF (A.EQ.0) GO TO 20 10T=(S+A/S)*.5 IF (ABS((T-S)/T).LE.1.T-6) GO TO 20 S=T GO TO 10 20ROOT=S END John Backus ( )

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 24 (32) Структуроване програмування Структури керування Послідовне виконання дій P;Q Розгалуження if F then P else Q Цикл while F do P; do P until F; for i:=a to b do P; NB DO 1 I= A(I) = B(I) Edsger Wybe Dijkstra

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 25 (32) Control structures + Data structures = Pascal function root(a: real,eps:real): real; var s, t: real; begin s:=a*0.5; if a<>0 then repeat t:=s; s:=(s+a/s)*O.5; until abs(s-t)/s<eps; root:=s; end Niklaus Wirth

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 26 (32) Back to Hardware! Мова програмування C double root (double x, double eps) { double s=0.5*x; double t; if (x!=0) do { t=s; s=(s+x/s)*0.5; } while ((fabs(s-t)/s)>eps); return s; }; Dennis Ritchie

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 27 (32) The White Book: K&R Brian Kernighan

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 28 (32) Incrementing C to C++ Мультипарадигменне програмування –Процедурна парадигма (++С підмножина С++) –Об'єктна парадигма (класи+об'єкти) –Ієрархічна парадигма (ієрархії об'єктів + ієрархії класів) –Узагальнене програмування (типи самі стали параметрами) template Type max (Type x, Type y) { return (x>y? x: y); } Bjarne Stroustrup

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 29 (32) Роздільна компіляція # відкомпілювати prog.c cc -c prog.c # визначити залежності: table.o : table.c table.h # відкомпілювати prog.c cc -c table.c # визначити залежності: prog.o: prog.o table.o func.o # зібрати робочу програму ld prog.o table.o func.o -o prog

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 30 (32) Підготовка і виконання програм Програмний проект Система програмування: Текстовий редактор Препроцесор Компілятор Компонувальник Налагоджувач Будемо використовувати Microsoft Visual Studio 2008, але досить Microsoft Visual Studio 6.0

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 31 (32) Висновки Навіть процедурна парадигма допускає певну міру нових застосувань, якщо не робити надто жорстких припущень, уникати зайвої деталізації і правильно визначати інтерфейси Не можна навчитися плавати, сидячи на березі і слухаючи поради тренера. Щоб не плавати на іспиті, пускайтеся плавом прямо зараз! 31

© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 32 (32) Висновки Навіть процедурна парадигма допускає певну міру нових застосувань, якщо не робити надто жорстких припущень, уникати зайвої деталізації і правильно визначати інтерфейси Не можна навчитися плавати, сидячи на березі і слухаючи поради тренера. Щоб не плавати на іспиті, пускайтеся плавом прямо зараз! Нагадую консультації: віторок з 13 год 32 Глядіть мені!