3. Парадигми програмування. Парадигма алгоритмізації Парадигма — спосіб або метод міркувань, який застосовується для розв’язання широкого класу задач. П. Алгоритмізації(1950-1960) -> Модульності (1960-1970) -> Абстрактних типів данних(АТД)(1970-1980) -> ООП (1980-...) -> Узагальнене програмування (1995-...). Парадигма алгоритмізації. Складові: 1) Структурне програмування 2) Механізми виклику підпрограми. Передача параметрів і повертання результатів. Мета: розбити складну задачу на прості підзадачі. Будемо говорити, що мова підтримує парадигму програмування, якщо: a) Вона робить зручним її застосування; б) контролює ненавмисні відхилення від парадигми. Мови, які підтримують парадигму алгоритмізації: -Fortran (1954) — - не було циклів з передумовою, оператора розгалуження,+Algol-60, +Algol-68,+Pascal,+C, +C++, +Java, +C#, +PHP. Приклад: ”|x|” #include <iostream> int abs(int x) { if (x<0) return -x; return x; } int main() { int a; cin>>a; cout<<abs(a)<<endl; return 0;}п Недолік парадигми: Програма, якого розміру б вона не була, утворює суцільний текст (єдиний файл), який компілюється увесь. Дана парадигма не підтримує інструментів для розбиття програми на окремо трансльовані одиниці.
Парадигма – спосіб\метод міркування який застосовується для широкого класу задач. 1950-60 – парадигма алгоритмізації 1960-70 – парадигма модульності 1970-80 – парадигма АТД 1980 -… - парадигма ООП 1990 -…- узагальнене програмування ->Мова програмування підтримує парадигму чкщо вона: 1) Робить зручним застосування цієї парадигми 2) Контролює ненавмисне відхилення від парадигми (Приклад) int x = “Hello world” ошибка С++
Парадигма Алгоритмізації Складові: 1) Конструкції структурного програмування: Теорема: алгоритми будь-якої складності можна уявити супрепозицією 3 алгоритмічних конструкцій а)слідування б)розгалуження в)цикл 2) Механізми виклику програм, способи передачі параметрів, повертання результату (by value, by reference, by name) Мовні засоби: Fortrain +- LISP – Algol60 +++ C + Pascal + C++ + Java, C#, PHP + (Приклад) #include <iostream> using namespace std; int f(int n) { int i = 1; int s = 0; while (i<=n) {if(i&s) i+=i; I+=1; } return &; } Int main() { Int k; Cin>> k; Cout<<f(k)<<endl; Return 0; } Недолік: Програмування = Алгоритми + Структури данних