Docsity
Docsity

Przygotuj się do egzaminów
Przygotuj się do egzaminów

Studiuj dzięki licznym zasobom udostępnionym na Docsity


Otrzymaj punkty, aby pobrać
Otrzymaj punkty, aby pobrać

Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium


Informacje i wskazówki
Informacje i wskazówki

Programowanie w języku C++ Podstawowe paradygmaty ..., Prezentacje z Programowanie funkcyjne

Istnieje pojęcie paradygmaty programowania i na początek warto ... Paradygmat programowania to ogół oczekiwań programisty wobec języka programowania i ...

Typologia: Prezentacje

2022/2023

Załadowany 24.02.2023

Bazyli
Bazyli 🇵🇱

4.9

(15)

268 dokumenty

1 / 24

Toggle sidebar

Ta strona nie jest widoczna w podglądzie

Nie przegap ważnych części!

bg1
Programowanie w języku C++
Podstawowe paradygmaty programowania
Mirosław Głowacki 1,2
1Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie
Wydział Inżynierii Metali i Informatyki Stosowanej
Katedra Informatyki Stosowanej i Modelowania
2Uniwersytet im. Jana Kochanowskiego w Kielcach
Wydział Matematyczno-Przyrodnmiczy
Instytut Fizyki
Zakład Informatyki
Październik 2017
Mirosław Głowacki (AGH, UJK) Programowanie w C++ 2015 1 / 24
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Podgląd częściowego tekstu

Pobierz Programowanie w języku C++ Podstawowe paradygmaty ... i więcej Prezentacje w PDF z Programowanie funkcyjne tylko na Docsity!

Programowanie w języku C++

Podstawowe paradygmaty programowania

Mirosław Głowacki 1 ,^2 (^1) Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki Stosowanej i Modelowania (^2) Uniwersytet im. Jana Kochanowskiego w Kielcach Wydział Matematyczno-Przyrodnmiczy Instytut Fizyki Zakład Informatyki

Październik 2017

Spis treści

(^1) Pojęcie paradygmatu

(^2) Podstawowe paradygmaty programowania

(^3) Programowanie imperatywne

(^4) Programowanie funkcyjne

(^5) Programowanie w logice

(^6) Programowanie obiektowo zorientowane

(^7) Paradygmaty a języki programowania

Pojęcie paradygmatu

Powinniśmy zapewne zacząć od wyjaśnienia, o czym będzie mowa w niniejszym wykładzie. Istnieje pojęcie paradygmaty programowania i na początek warto przyjrzeć się znaczeniu słowa paradygmat , często nadużywanemu przez filozofów, lingwistów i informatyków Otóż, jak podaje Słownik Języka Polskiego PWN, paradygmat to:

przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp.

lub

zespół form fleksyjnych (deklinacyjnych lub koniugacyjnych), właściwy danemu typowi wyrazów; wzorzec, model deklinacyjny lub koniugacyjny.

Pojęcie paradygmatu

Jak te definicje mają się do programowania? Trudno powiedzieć - sięgnijmy jeszcze do greckich korzeni słowa. Greckie παραδειγμα oznacza wzorzec bądź przykład. Czyżby chodziło więc o typowy, wzorcowy sposób pisania programów? Niezupełnie chodzi raczej o zbiór mechanizmów, jakich programista używa, pisząc program, i o to, jak ów program jest następnie wykonywany przez komputer. Zatem

Paradygmat programowania

Paradygmat programowania to ogół oczekiwań programisty wobec języka programowania i komputera, na którym będzie działał program.

Cztery najważniejsze paradygmaty

Przyjrzyjmy się czterem zasadniczym przykładom. Przykłady te, obejmujące najbardziej powszechne paradygmaty programowania.

Programowanie imperatywne Programowanie funkcyjne Programowanie w logice Programowanie obiektowo orientowane

Spis treści

(^1) Pojęcie paradygmatu

(^2) Podstawowe paradygmaty programowania

(^3) Programowanie imperatywne

(^4) Programowanie funkcyjne

(^5) Programowanie w logice

(^6) Programowanie obiektowo zorientowane

(^7) Paradygmaty a języki programowania

Programowanie imperatywne

Poszczególne instrukcje (w kodzie maszynowym) to właśnie polecenia zmieniające ów globalny stan. Przykładowo, instrukcje podstawienia działają na danych pobranych z pamięci i umieszczają wynik w tejże pamięci. Abstrakcją komórek pamięci są zmienne. Języki wysokiego poziomu — takie jak Fortran, Algol, Pascal, Ada lub C posługują się pewnymi abstrakcjami, ale wciąż odpowiadają paradygmatowi programowania imperatywnego.

Programowanie imperatywne

Przykładowy program w języku imperatywnym - Pascal

program silnia;

var i, n, s: integer;

begin

read(n); s := 1; for i := 2 to n do s := s * i; write (s)

end.

Programowanie funkcyjne

Tutaj program to po prostu złożona funkcja (w sensie matematycznym), która otrzymawszy dane wejściowe wylicza pewien wynik Zasadniczą różnicą w stosunku do poprzednich paradygmatów jest brak stanu maszyny: nie ma zmiennych, a co za tym idzie nie ma żadnych efektów ubocznych. Nie ma też imperatywnych z natury, tradycyjnie rozumianych pętli (te wymagają np. zmiennych do sterowania ich przebiegiem). Konstruowanie programów to składanie funkcji, zazwyczaj z istotnym wykorzystaniem rekurencji. Charakterystyczne jest również definiowanie funkcji wyższego rzędu, czyli takich, dla których argumentami i których wynikami mogą być funkcje (a nie tylko „proste” dane jak liczby lub napisy).

Przykładowy program w języku funkcyjnym

Jako przykład może tu posłużyć implementacja algorytmu szybkiego sortowania quickSort w języku Haskel :

quickSort :: (Ord a) => [a] -> [a] quickSort [] = [] quickSort (x:xs) = let smallerSorted = quickSort [a | a <- xs, a <= x] biggerSorted = quickSort [a | a <- xs, a > x] in smallerSorted ++ [x] ++ biggerSorted

Jeszcze bardziej zwięzły program wg tego samego algorytmu:

quickSort [] = [] quickSort (x:xs) = quickSort [b | b<-xs, b<=x] ++ [x] ++ quickSort [b | b<-xs, b>x]

Programowanie w logice

Na program składa się zbiór zależności (przesłanki) i pewne stwierdzenie (cel). Wykonanie programu to próba udowodnienia celu w oparciu o podane przesłanki. Obliczenia wykonywane są niejako „przy okazji” dowodzenia celu. Podobnie jak w programowaniu funkcyjnym, nie „wydajemy rozkazów”, a jedynie opisujemy, co wiemy i co chcemy uzyskać.

Przykładowy program w języku PROLOG

ojciec(jan, jerzy). ojciec(jerzy, janusz). ojciec(jerzy, jozef).

dziadek(X, Z) :- ojciec(X, Y), ojciec(Y, Z).

?- dziadek(X, janusz).

:- oznacza „ jeśli” lub „wtedy gdy” ?- oznacza „czy”. Stałe: rozpoczynają się z małej litery, a zmienne z dużej.

Programowanie obiektowo zorientowane

W programowaniu obiektowym program to zbiór porozumiewających się ze sobą obiektów, czyli jednostek zawierających pewne dane i umiejących wykonywać na nich pewne operacje. Dane składowe klasy obiektów stanowią o stanie obiektów będących ich instancjami, a funkcje składowe klasy umożliwiają zmianę tego stanu. Ważną cechą jest tu powiązanie danych (czyli stanu) z operacjami na nich (czyli poleceniami) w całość, stanowiącą odrębną jednostkę — obiekt. Cechą nie mniej ważną jest mechanizm dziedziczenia, czyli możliwość definiowania nowych, bardziej złożonych obiektów, na bazie obiektów już istniejących.

Programowanie obiektowo zorientowane

Myślenie obiektowe

Zwolennicy programowania obiektowego uważają, że ten paradygmat dobrze odzwierciedla sposób, w jaki ludzie myślą o świecie.

Nawet jeśli pogląd ten uznamy za przejaw pewnej egzaltacji, to niewątpliwie programowanie obiektowe zdobyło ogromną popularność i wypada je uznać obecnie za paradygmat dominujący.