5.06.21
1
Zaawansowane metody
Zaawansowane metody
programowania w
programowania w
zastosowaniach inżynierskich
zastosowaniach inżynierskich
Programowanie – zagadnienia ogólne: podejście
Programowanie – zagadnienia ogólne: podejście
algorytmiczne, deklaratywne i obiektowe
algorytmiczne, deklaratywne i obiektowe
Prof. dr hab. inż. Jerzy Pokojski
Wydział SiMR PW
Studia dzienne, inżynierskie, 
semestr VII
Wykład 1 i 2
5.06.21
2
Plan
Plan
geneza i podstawowe koncepcje 
podejścia algorytmicznego
geneza i podstawowe koncepcje 
podejścia deklaratywnego,
podejście obiektowe – podstawy.
5.06.21
3
Podejście algorytmiczne
Podejście algorytmiczne
5.06.21
4
Podejście algorytmiczne
Podejście algorytmiczne
Aspekt historyczny
- 
John von Neumann (matematyk działający w USA)
zaproponował w latach 40-tych XX wieku aby komputer 
sekwencyjnie wykonywał kolejno, zapisane w jego pamięci, 
rozkazy. Sekwencję rozkazów należy wcześniej wprowadzić do 
pamięci komputera. Sekwencje rozkazów są tworzone 
stosownie do rozwiązywanych zadań. Sekwencje rozkazów 
nazwano programami. Programy mogą być zapisywane i 
składowane na odpowiednich nośnikach. Programy mogą być 
wielokrotnie uruchamiane na komputerze. Komputer może 
wykonywać, w zależności od potrzeb, różne programy. 
5.06.21
5
Podejście algorytmiczne
Podejście algorytmiczne
Aspekt historyczny
- John von Neumann  - okoliczności zajęcia się zagadnieniami 
komputerowymi.
- metody rozwiązywania problemów matematycznych przed 
pojawieniem się komputerów.
- przemysł XIX i XX wieczny – stosowane modele i metody ich 
badania.
5.06.21
6
Podejście algorytmiczne
Podejście algorytmiczne
Koncepcja
Komputer może wykonywać, w zależności od potrzeb, różne 
programy. 
-         sekwencje rozkazów tworzą dany program.
-        języki algorytmiczne programowania to fortran, algol, 
pascal, c, ...
5.06.21
7
Podejście algorytmiczne
Podejście algorytmiczne
Koncepcja
- 
systemy komputerowe, rozumiane jako sprzęt komputerowy i
oprogramowanie, mogą wykonywać różne zadania w realnym 
świecie,
-         występuje duża różnorodność zarówno sprzętu 
komputerowego jak i oprogramowania, 
        
5.06.21
8
Podejście algorytmiczne
Podejście algorytmiczne
Koncepcja
- 
oprogramowanie – program komputerowy jest ciągiem instrukcji
wykonywanych kolejno przez komputer,
-         program jest to także pewna metoda rozwiązania problemu, 
pewien szczegółowy przepis postępowania mający na celu uzyskanie 
rozwiązania określonej jakości; przepis ten często przyjmuje formę 
planu zapisanego na określonym poziomie szczegółowości; 
twórcami programów mogą być zarówno programiści jak i 
użytkownicy,
5.06.21
9
Podejście algorytmiczne
Podejście algorytmiczne
Koncepcja
- 
plan rozwiązania problemu często nazywany jest algorytmem,
-         algorytm może być przedstawiany za pomocą szeregu 
podejść; jednym z bardziej popularnych są schematy blokowe, 
gdzie poszczególnym krokom algorytmu odpowiadają ściśle 
sprecyzowane figury geometryczne; inny sposób to posługiwanie 
się tzw. pseudokodem czyli instrukcjami, które oddają sens 
wykonywanych działań, są wyrażane w języku polskim, ale w tej 
postaci nie występują w żadnym języku programowania,
-         generalnie opisy obiektów występujących w algorytmie 
nazywamy deklaracjami, opisy czynności instrukcjami. 
5.06.21
10
Podejście algorytmiczne
Podejście algorytmiczne
- przykład
- przykład
5.06.21
11
 
 
 
 
 
 
 
 
 
problem:
 
-  program na liczenie średniej arytmetycznej ( średnia ocen)
-  chcemy żeby program liczył średnią ocen ucznia z danego przedmiotu
-  wstawienie ujemnej oceny ma przerwać wprowadzanie danych i wyprowadzić 
wynik
 
 
 
-         przykład zostanie przedstawiony w postaci schematu blokowego; 
równocześnie będzie pokazywane okno ze stanem ekranu komputera, stanem 
pamięci poszczególnych komórek (zmiennych), komentarzem w danej chwili 
wykonywania algorytmu.
 
5.06.21
12
 
 
 
 
 
 
 
 
 
początek
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Schemat 
blokowy
5.06.21
13
 
 
 
 
 
 
 
 
 
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Schemat 
blokowy
5.06.21
14
 
 
 
 
 
 
 
 
 
początek
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
Ekran
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Uruchomienie 
programu.
Zmienne
5.06.21
15
 
 
 
 
 
 
 
 
 
początek
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
Ekran
ocena
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Wydruk na ekranie 
tekstu „ocena”.
Zmienne
5.06.21
16
 
 
 
 
 
 
 
 
 
początek
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
Ekran
ocena 5
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Wczytanie wartości 
zmiennej ocena z 
klawiatury i 
wpisanie w pole 
zmiennej ocena.
5
Zmienne
5.06.21
17
 
 
 
 
 
 
 
 
 
początek
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
Ekran
ocena 5
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Nadanie wartości 
zerowych 
zmiennym suma i 
ilosc.
5
0
0
Zmienne
5.06.21
18
 
 
 
 
 
 
 
 
 
początek
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
srednia = suma / ilosc
Ekran
ocena 5
ocen
a
sum
a
ilosc
sredni
a
Komentar
z
Zbadanie czy 
zawartość zmiennej 
ocena jest większa 
od 0. Ponieważ 
wynosi ona 5 
nastąpi przejście w 
kierunku „tak”.
5
0
0
Zmienne
5.06.21
19
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena 5
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Do aktualnej 
zawartości 
komórki suma 
(poprzedni slajd - 
wynosi 0) 
dodajemy 
zawartość komórki 
ocena. Wynikiem 
dodawania jest 5. 
Wynik jest 
zapisany w 
komórce suma.
5
5
0
Zmienne
5.06.21
20
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena 5
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Do aktualnej 
zawartości 
komórki ilosc 
(poprzedni slajd – 
wynosi 0) 
dodawana jest 
liczba 1. Wynik 
jest zapisany w 
komórce ilosc.
5
5
1
Zmienne
5.06.21
21
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Wydruk na 
ekranie napisu 
„ocena”.
5
5
1
Zmienne
5.06.21
22
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena 3
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Wczytanie kolejnej 
wartości do 
zmiennej ocena, 
jest nią liczba 3.
3
5
1
Zmienne
5.06.21
23
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena 3
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Zbadanie czy 
zawartość 
zmiennej ocena 
jest większa od 0. 
Wynosi 3 , jest 
większa od 0, 
zatem dalej 
przetwarzanie 
nastąpi w kierunku 
„tak”
3
5
1
Zmienne
5.06.21
24
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena 3
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Do aktualnej 
zawartości 
komórki suma 
(poprzedni slajd – 
wynosi 5) dodana  
jest zawartość 
komórki ocena 
wynosząca 3. 
Wynik wynosi 8 i 
jest zapisany w 
komórce suma
3
8
1
Zmienne
5.06.21
25
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena 3
ocen
a
suma
ilosc
sredni
a
Komentarz
Do aktualnej 
zawartości komórki 
ilosc (poprzedni 
slajd – wynosi 1) 
dodana  jest liczba 
1. Wynik wynosi 2 i 
jest zapisany w 
komórce ilosc.
3
8
2
Zmienne
5.06.21
26
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena
ocen
a
suma
ilosc
sredni
a
Komentarz
Na ekranie pojawia 
się napis „ocena”.  
3
8
2
Zmienne
5.06.21
27
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena -1
ocen
a
sum
a
ilosc
sredni
a
Komentar
z
Wczytanie nowej 
zawartości komórki 
ocena, liczby –1. 
-1
8
2
Zmienne
5.06.21
28
 
 
 
 
 
 
 
 
 
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Ekran
ocena -1
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Sprawdzenie czy 
zawartość 
komórki ocena 
jest większa od 0. 
Wynosi ona –1 i 
nie jest ona 
większa od 0. 
Następuje 
przejście w 
kierunku „nie”.
-1
8
2
Zmienne
5.06.21
29
 
 
 
 
 
 
 
 
 
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
nie
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Ekran
ocena -1
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Odbywa się 
obliczenie 
ilorazu : 
zawartość 
komórki suma 
jest dzielona 
przez zawartość 
komórki ilosc. 
Wynik dzielenia 
wynosi 4 i jest 
zapisany w 
komórce srednia. 
-1
8
2
4
Zmienne
5.06.21
30
 
 
 
 
 
 
 
 
 
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
nie
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Ekran
4
oce
na
sum
a
ilosc
sredn
ia
Komenta
rz
Na ekranie 
drukowana jest 
zawartość 
komórki srednia 
czyli liczba 4.
-1
8
2
4
Zmienne
5.06.21
31
 
 
 
 
 
 
 
 
 
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
nie
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Ekran
4
ocen
a
sum
a
ilosc
sredn
ia
Komentar
z
Koniec pracy 
programu
-1
8
2
4
Zmienne
5.06.21
32
 
 
 
 
 
 
 
 
 
początek
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Schemat
blokowy
5.06.21
33
 
 
 
 
 
 
 
 
 
Wydruk:  
ocena ?
Wczytanie:
ocena
suma = 0
ilosc = 0
Jeżeli
ocena > 0
tak
nie
suma = suma + ocena
ilosc = ilosc + 1
srednia = suma / ilosc
Wydruk:
srednia
Koniec
Wydruk:
ocena ?
Wczytanie:
ocena
Schemat
blokowy
5.06.21
34
 
 
 
 
 
 
 
 
 
 
 
 -
zmienne: ocena, suma, ilosc, srednia
 
-             wydrukuj napis „podaj ocenę”
 
-             wczytaj zmienną: ocena
 
-              suma =0
 
-             ilosc = 0
 
-         A : jeżeli ( ocena większa od zera  ) to
 
-                              suma = suma +ocena
 
-                             ilosc = ilosc +1 
 
-                             wydrukuj: „Podaj ocenę:”
 
-                             wczytaj ocena
 
-                            skocz do A
 
-                 w przeciwnym razie
 
-                            srednia = suma / ilosc
 
-                            wydrukuj „Srednia:”  srednia
 
-
koniec
 
 
Pseudokod
5.06.21
35
 
 
 
 
 
 
 
 
 
 
 
 -
zmienne: ocena, suma, ilosc, srednia
 
-             wydrukuj napis „podaj ocenę”
 
-             wczytaj zmienną: ocena
 
-              suma =0
 
-             ilosc = 0
 
-         A : jeżeli ( ocena większa od zera  ) to
 
-                              suma = suma +ocena
 
-                             ilosc = ilosc +1 
 
-                             wydrukuj: „Podaj ocenę:”
 
-                             wczytaj ocena
 
-                            skocz do A
 
-                 w przeciwnym razie
 
-                            srednia = suma / ilosc
 
-                            wydrukuj „Srednia:”  srednia
 
-
koniec
 
 
Pseudokod
- deklaracje
5.06.21
36
 
 
 
 
 
 
 
 
 
 
 
 -
zmienne: ocena, suma, ilosc, srednia
 
-            
wydrukuj napis „podaj ocenę”
 
-             wczytaj zmienną: ocena
 
-              suma =0
 
-             ilosc = 0
 
-         A : jeżeli ( ocena większa od zera  ) to
 
-                              suma = suma +ocena
 
-                             ilosc = ilosc +1 
 
-                             wydrukuj: „Podaj ocenę:”
 
-                             wczytaj ocena
 
-                            skocz do A
 
-                 w przeciwnym razie
 
-                            srednia = suma / ilosc
 
-                            wydrukuj „Srednia:”  srednia
 
-
koniec
 
 
Pseudokod
- część 
wykonawcza
5.06.21
37
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- rozwiązanie problemu
- rozwiązanie problemu
problem
rozwiązanie 
problemu 
implementacja
5.06.21
38
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- etapy rozwiązania
- etapy rozwiązania
problemu
problemu
rozwiązanie problemu:
- specyfikacja problemu
- budowa algorytmu
- testowanie ręczne algorytmu
implementacja:
- kodowanie
- testowanie kodu
5.06.21
39
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- typy danych
- typy danych
-identyfikatory (nazwy 
zmiennych, funkcji,...)
-typ całkowity, rzeczywisty, 
znakowy,..
5.06.21
40
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- operatory
- operatory
arytmetyczne
arytmetyczne
- +, -, *, ...
5.06.21
41
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- operatory logiczne i
- operatory logiczne i
relacyjne
relacyjne
->, <, ...
- i, lub, ...
5.06.21
42
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- sterowanie –
- sterowanie –
instrukcja warunkowa)
instrukcja warunkowa)
Jeżeli ( wyrażenie ) to
akcja_1
w przeciwnym razie
akcja _2
5.06.21
43
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- sterowanie (pętla)
- sterowanie (pętla)
wykonuj dopóki ( wyrażenie )
akcja
5.06.21
44
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- sterowanie (pętla)
- sterowanie (pętla)
wykonuj
akcja
dopóki (wyrażenie)
5.06.21
45
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- sterowanie (pętla)
- sterowanie (pętla)
wykonuj od i = 1 do i = N
akcja
5.06.21
46
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- procedury, funkcje
- procedury, funkcje
5.06.21
47
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- operacje
- operacje
wejścia/wyjścia
wejścia/wyjścia
5.06.21
48
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- przykład
- przykład
5.06.21
49
 
 
 
 
 
 
 
 
 
5.06.21
50
 
 
 
 
 
 
 
 
 
 
    Przykład          
zadanie  przykładowe:
 
- dana jest krzywa y = x*x
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-         chcemy policzyć pole powierzchni pod krzywą 
-         prostokąt elementarny: dx * y 
-          x się zmienia:
-                                             x = xpocz
-                                             x = xpocz +dx
-                                             x = xpocz +dx +dx
-                                             x = xpocz +dx + dx +dx
P
dx
5.06.21
51
 
 
 
 
 
 
 
 
 
początek
Wczyt
aj
xpocz, 
xkon, 
dx
x = xpocz
pole = 0
x = x +dx
x 
>xko
n
Wydruk: 
pole
Koniec
pole_p. = dx * (x * x)
pole = pole + pole_p
tak
nie
5.06.21
52
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- budowa
- budowa
kompleksowych
kompleksowych
programów
programów
- podział na moduły, hierarchia
5.06.21
53
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- budowa
- budowa
kompleksowych
kompleksowych
programów
programów
Problem kompleksowy
Wczytanie      Testowanie    Obliczenia     
Wizualizacja
danych           danych                                  
wyników     
5.06.21
54
 
 
 
 
 
 
 
 
 
Podejście algorytmiczne
Podejście algorytmiczne
- budowa
- budowa
kompleksowych
kompleksowych
programów
programów
Program - całość
Moduł Moduł Moduł Moduł
wczytania      testowania     obliczania     
wizualizacji
danych           danych                                
wyników     
5.06.21
55
 
 
 
 
 
 
 
 
 
Przykład
Przykład
kompleksowego
kompleksowego
programu
programu
- aplikacja wspomagająca proces 
projektowania schodów spiralnych
5.06.21
56
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
5.06.21
57
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- pokaz aplikacji systemów doradczych.
5.06.21
58
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
Zapis wiedzy:
- reguły :
jeżeli ( przesłanka) to
konkluzja
5.06.21
59
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
Zapis wiedzy:
- reguły – setki, tysiące
5.06.21
60
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
5.06.21
61
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- przykład
- przykład
BAZA WIEDZY
BAZA WIEDZY
1)  Jeżeli  <  różnica  średnic  dwóch  sąsiednich  stopni  wału  jest 
większa od    20 mm>
to < rośnie karb>
2) Jeżeli < rośnie karb >
to < maleje wytrzymałość zmęczeniowa >
3) Jeżeli <maleje wytrzymałość zmęczeniowa >
to < wał może cechować się mniejszą trwałością >
4) Jeżeli <rośnie karb>
to <można go zmniejszyć >
5.06.21
62
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- przykład
- przykład
LISTA FAKTÓW
  Fakt1  <  różnica  średnic  dwóch  sąsiednich  stopni  wału  jest 
większa od 20 mm>
5.06.21
63
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- przykład
- przykład
AGENDA
Reguła nr 1
5.06.21
64
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- przykład
- przykład
LISTA FAKTÓW
  Fakt1  <  różnica  średnic  dwóch  sąsiednich  stopni  wału  jest 
większa od 20 mm>
Fakt2 < rośnie karb>
5.06.21
65
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- przykład
- przykład
AGENDA
Reguła nr 2, Reguła nr 4
5.06.21
66
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- przykład
- przykład
LISTA FAKTÓW
  Fakt1  <  różnica  średnic  dwóch  sąsiednich  stopni  wału  jest 
większa od 20 mm>
Fakt2 < rośnie karb>
Fakt3 < maleje wytrzymałość zmęczeniowa >
Fakt4 < można go zmniejszyć >
5.06.21
67
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- przykład
- przykład
AGENDA
Reguła nr 3
5.06.21
68
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
- przykład
- przykład
LISTA FAKTÓW
  Fakt1  <  różnica  średnic  dwóch  sąsiednich  stopni  wału  jest 
większa od 20 mm>
Fakt2 < rośnie karb>
Fakt3 < maleje wytrzymałość zmęczeniowa >
Fakt4 <można go zmniejszyć >
Fakt5 < wał może cechować się mniejszą trwałością >
5.06.21
69
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
5.06.21
70
 
 
 
 
 
 
 
 
 
Podejście deklaratywne
Podejście deklaratywne
a proceduralne
a proceduralne
-różne problemy
-różny sposób tworzenia aplikacji 
-różne narzędzia
5.06.21
71
 
 
 
 
 
 
 
 
 
Przykład podejścia
Przykład podejścia
deklaratywnego
deklaratywnego
- generowanie w oparciu o wiedzę modelu 
dynamicznego płynu w rurociągu
5.06.21
72
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
5.06.21
73
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
-geneza
-problemy z rozwojem i konserwacją
oprogramowania algorytmicznego
5.06.21
74
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
-pojęcie klasy
5.06.21
75
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- klasa:
- składniki : dane, metody
5.06.21
76
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- np. klasa
samochód
:
- składniki:
kolor_samochodu String
pojemnosc_silnika Integer
cena ...
5.06.21
77
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- np. klasa
samochod
:
- obiekty klasy samochod:
Fiat 126P
–
obiekt
klasy samochod
Składniki:
Kolor: bialy,
Pojemnosc: 650
Cena: 1500
Polonez 1500
–
obiekt klasy 
samochod
Składniki:
Kolor: zielony,
Pojemnosc: 1500
Cena: 2500
5.06.21
78
-klasa
korpus_skrzynki_przekladniowej
:
-
określenie rodzaju korpusu (jednolity a
dzielony),
- określenie wymiarów gabarytowych,
- określenie ciężaru korpusu,
- określenie rodzaju półfabrykatu,
- określenie rodzaju obróbki cieplnej,
  - w przypadku półfabrykatów odlewanych – 
określenie technologii form odlewniczych. 
- przykład klasy:
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
5.06.21
79
- przykład klasy:
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- klasa
Otwór
:
-
uwzględnienie: postaci otworu, rowków
walcowych, podcięć stożkowych, pogłębień 
walcowych, i stożkowych, sfazowań krawędzi 
otworu,
    - uwzględnienie: parametru chropowatości 
powierzchni, dokładność wymiarowa każdej 
powierzchni
,
5.06.21
80
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
Klasa
Klasa-i-
obiekt
- 
notacja
5.06.21
81
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- pojęcie klasy
- definicja wzorca zagregowanego obiektu
- opis złożonej struktury danych np. stopień 
wału lub koło zębate, - duża liczba 
parametrów różnych typów,
- możliwość uwzględnienia istotnych 
aspektów np. opis geometryczny, pełnione 
funkcje,
- przedmiotem opisu mogą być również 
abstrakcje, zdarzenia, itp.,
- możliwość wielokrotnego wykorzystania 
napisanego oprogramowania,
-
5.06.21
82
ObWytaczanie
ObWytaczanieRowka
ObWytaczanieZgrubne
ObWytaczanieKsztaltujace
.......
UstalNaddatkiObrobkowe()
WytaczanieOtworu()
....
- przykład klasy
ObWytaczanie
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
5.06.21
83
ObWytaczanie
ObWytaczanieRowka
ObWytaczanieZgrubne
ObWytaczanieKsztaltujace
.......
UstalNaddatkiObrobkowe()
WytaczanieOtworu()
....
- przykład klasy
ObWytaczanie
Atrybuty 
klasy
Metody klasy
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
5.06.21
84
ObWiercenie
ObNawiercanie
ObWiercenie
ObPowiercanie
.......
UstalNaddatkiObrobkowe()
Wiercenie()
....
- przykład klasy
ObWiercenie
Atrybuty 
klasy
Metody klasy
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
5.06.21
85
ObFrezowanie
ObFrezowanieRowka
ObFrezowanieZgrubne
ObFrezowanieKsztaltujace
.......
UstalNaddatkiObrobkowe()
FrezowanieRowka()
....
- przykład klasy
ObFrezowanie
Atrybuty 
klasy
Metody klasy
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
5.06.21
86
-zawartość metod:
                   reguły, procedury, bazy 
danych
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
5.06.21
87
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- klasa:
składniki :
dane, metody
5.06.21
88
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- ukrywanie informacji
        - np. informacja publiczna i 
prywatna
5.06.21
89
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- ukrywanie informacji
        - składnik: dana lub metoda 
prywatna lub publiczna
5.06.21
90
W aplikacji występują:
- definicja klasy
- powołanie do życia obiektu
- dodatkowe czynności wykonywane przy 
powołaniu do życia obiektu – specjalna 
metoda: KONSTRUKTOR
- czas życia obiektu 
- usuwanie obiektu ; specjalna metoda 
DESTRUKTOR
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
5.06.21
91
W aplikacji występują :
- definicja klasy
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
Początek definicji klasy
Nazwa klasy
.......................                                            
    Dane 
.......................
.......................                                            
    Metody
.......................
Koniec definicji klasy
5.06.21
92
W aplikacji występują :
- powołanie do życia obiektu
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
- powołanie do życia obiektu klasy 
NAZWA_KLASY o nazwie NAZWA_OBIEKTU 
5.06.21
93
W aplikacji występują :
- dodatkowe czynności wykonywane przy 
powołaniu do życia obiektu – specjalna 
metoda: KONSTRUKTOR
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
- powołanie do życia obiektu klasy 
NAZWA_KLASY o nazwie NAZWA_OBIEKTU 
 (DANE_POCZATKOWE)
5.06.21
94
W aplikacji występują :
- czas życia obiektu
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
...
NAZWA_OBIEKTU. Dana
NAZWA_OBIEKTU.metoda()
...
....
...
5.06.21
95
W aplikacji występują :
-usuwanie obiektu ; specjalna metoda 
DESTRUKTOR
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
- automatycznie lub ręcznie
5.06.21
96
Podsumowanie:
- duży udział pracy koncepcyjnej w 
budowie modeli obiektowych,
Podejście obiektowe
Podejście obiektowe
- podstawowe koncepcje
- podstawowe koncepcje
5.06.21
97
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- ukrywanie informacji
        - np. informacja publiczna i 
prywatna
5.06.21
98
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- enkapsulacja
- np. klasa String
              - pola ze znakami i z ilością 
znaków
              - metody do łączenia obiektów 
klasy 
String, itp..
5.06.21
99
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- abstrakcyjne typy danych
5.06.21
100
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- klient/serwer model
String s1
               s1.nadaj_wartosc 
(„poczatek”)
n = s1.policz_dlugosc()
5.06.21
101
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- dziedziczenie
Window
MenuWindow      EditWindow       
DialogWindow
                                           InfoDialog       
QuestionDialog
5.06.21
102
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
- podstawowe
- podstawowe
koncepcje
koncepcje
- polimorfizm
Window
MenuWindow      EditWindow       
DialogWindow
                                           InfoDialog       
QuestionDialog
- obiekt w, metody display()
5.06.21
103
 
 
 
 
 
 
 
 
 
Podsumowanie
Podsumowanie
5.06.21
104
 
 
 
 
 
 
 
 
 
Podejście obiektowe
Podejście obiektowe
a podejście
a podejście
proceduralne
proceduralne
Podejście obiektowe a
Podejście obiektowe a
podejście deklaratywne
podejście deklaratywne
5.06.21
105
Podejście algorytmiczne
Podejście algorytmiczne
5.06.21
106
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
wsadowe
wsadowe
czas
Dane 
wejścio
we
Wynik
i
Akcje podejmowane 
przez program
5.06.21
107
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
wsadowe
wsadowe
czas
Dane 
wejścio
we
Wynik
i
Poszczególne akcje 
podejmowane przez 
program
5.06.21
108
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne
interaktywne
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
Akcje podejmowane 
przez program
Dane 
wejścio
we i 
decyzje
Dane 
wejścio
we i 
decyzje
5.06.21
109
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne +
interaktywne +
elementy grafiki
elementy grafiki
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
Dane 
wejścio
we i 
decyzje
Dane 
wejścio
we i 
decyzje
5.06.21
110
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne + elementy
interaktywne + elementy
grafiki interaktywnej
grafiki interaktywnej
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
F1
F2
5.06.21
111
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne + elementy
interaktywne + elementy
grafiki interaktywnej
grafiki interaktywnej
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
Mysz
Zdarze
nie 
(które 
pole)
MS 
Windows
5.06.21
112
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne + elementy
interaktywne + elementy
grafiki interaktywnej
grafiki interaktywnej
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
Mysz
MS 
Windows
Zdarze
nie 
(który 
formula
rz, 
które 
pole)
5.06.21
113
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne + elementy
interaktywne + elementy
grafiki interaktywnej
grafiki interaktywnej
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
Mysz
MS 
Windows
Zdarze
nie 
(który 
formula
rz, 
które 
pole)
A obiekty ?
5.06.21
114
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne + elementy
interaktywne + elementy
grafiki interaktywnej
grafiki interaktywnej
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
Mysz
MS 
Windows
Zdarze
nie 
(który 
formula
rz, 
które 
pole)
5.06.21
115
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne + elementy
interaktywne + elementy
grafiki interaktywnej
grafiki interaktywnej
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
Mysz
MS 
Windows
Zdarze
nie 
(który 
formula
rz, 
które 
pole)
A reguły ?
5.06.21
116
Podejście algorytmiczne
Podejście algorytmiczne
- przetwarzanie
- przetwarzanie
interaktywne + elementy
interaktywne + elementy
grafiki interaktywnej
grafiki interaktywnej
czas
Dane 
wejścio
we i 
decyzje
Wynik
i
Mysz
MS 
Windows
Zdarze
nie 
(który 
formula
rz, 
które 
pole)
A reguły ?
Moduł 
regułow
y