background image

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

background image

5.06.21

2

Plan

Plan

geneza i podstawowe koncepcje 
podejścia algorytmicznego

geneza i podstawowe koncepcje 
podejścia deklaratywnego,

podejście obiektowe – podstawy.

background image

5.06.21

3

Podejście algorytmiczne

Podejście algorytmiczne

background image

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. 

background image

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.

background image

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, ...

background image

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, 
        

background image

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,

background image

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. 

background image

5.06.21

10

Podejście algorytmiczne

Podejście algorytmiczne

- przykład

- przykład

background image

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.
 

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

5.06.21

37

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- rozwiązanie problemu

- rozwiązanie problemu

problem

rozwiązanie 
problemu 

implementacja

background image

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

background image

5.06.21

39

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- typy danych

- typy danych

-identyfikatory (nazwy 
zmiennych, funkcji,...)

-typ całkowity, rzeczywisty, 
znakowy,..

background image

5.06.21

40

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- operatory 

- operatory 

arytmetyczne

arytmetyczne

- +,  -,  *,  ...

background image

5.06.21

41

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- operatory logiczne i 

- operatory logiczne i 

relacyjne

relacyjne

->, <, ...
- i, lub, ...

background image

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

background image

5.06.21

43

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- sterowanie (pętla)

- sterowanie (pętla)

 wykonuj dopóki ( wyrażenie )

                akcja  

background image

5.06.21

44

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- sterowanie (pętla)

- sterowanie (pętla)

wykonuj

               akcja

dopóki (wyrażenie

background image

5.06.21

45

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- sterowanie (pętla)

- sterowanie (pętla)

wykonuj od i = 1 do i = N

               akcja

background image

5.06.21

46

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- procedury, funkcje

- procedury, funkcje

background image

5.06.21

47

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- operacje 

- operacje 

wejścia/wyjścia

wejścia/wyjścia

background image

5.06.21

48

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- przykład

- przykład

background image

5.06.21

49

 

 
 
 

 
 
 

 
 
 

background image

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

background image

5.06.21

51

 

 
 
 

 
 
 

 
 
 

początek

Wczyt
aj
xpocz, 
xkon, 
dx

x = xpocz
pole = 0

x = x +dx


>xko
n

Wydruk: 
pole

Koniec

pole_p. = dx * (x * x)

pole = pole + pole_p

tak

nie

background image

5.06.21

52

 

 
 
 

 
 
 

 
 
 

Podejście algorytmiczne

Podejście algorytmiczne

- budowa 

- budowa 

kompleksowych 

kompleksowych 

programów

programów

- podział na moduły, hierarchia

background image

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     

background image

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     

background image

5.06.21

55

 

 
 
 

 
 
 

 
 
 

Przykład 

Przykład 

kompleksowego 

kompleksowego 

programu

programu

- aplikacja wspomagająca proces 
projektowania schodów spiralnych

background image

5.06.21

56

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

background image

5.06.21

57

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

- pokaz aplikacji systemów doradczych.

background image

5.06.21

58

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

Zapis wiedzy:

             - reguły :

             jeżeli ( przesłanka) to

                       konkluzja

background image

5.06.21

59

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

Zapis wiedzy:

             - reguły – setki, tysiące

background image

5.06.21

60

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

background image

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ć >

 

background image

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>

 

background image

5.06.21

63

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

- przykład

- przykład

AGENDA

Reguła nr 1

 

background image

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>

 

background image

5.06.21

65

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

- przykład

- przykład

AGENDA

Reguła nr 2, Reguła nr 4

 

background image

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ć >

 

background image

5.06.21

67

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

- przykład

- przykład

AGENDA

Reguła nr 3

 

background image

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ą >  

background image

5.06.21

69

 

 
 
 

 
 
 

 
 
 

Podejście deklaratywne

Podejście deklaratywne

background image

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

background image

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

background image

5.06.21

72

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

background image

5.06.21

73

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

-geneza 

    -problemy z rozwojem i konserwacją 

     oprogramowania algorytmicznego

background image

5.06.21

74

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

-pojęcie klasy

background image

5.06.21

75

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

- klasa:

        - składniki : dane, metody

background image

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  ...  

background image

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

background image

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

background image

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

,

     

background image

5.06.21

80

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

Klasa

Klasa-i-

obiekt


notacja

background image

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,

-    

background image

5.06.21

82

ObWytaczanie

ObWytaczanieRowka

ObWytaczanieZgrubne

ObWytaczanieKsztaltujace

.......

UstalNaddatkiObrobkowe()

WytaczanieOtworu()

....

- przykład klasy 

ObWytaczanie

Podejście obiektowe

Podejście obiektowe

- podstawowe koncepcje

- podstawowe koncepcje

background image

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

background image

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

background image

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

background image

5.06.21

86

-zawartość metod: 

                   reguły, procedury, bazy 
danych

Podejście obiektowe

Podejście obiektowe

- podstawowe koncepcje

- podstawowe koncepcje

background image

5.06.21

87

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

- klasa:

               składniki : 

                          dane, metody

background image

5.06.21

88

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

- ukrywanie informacji

        - np. informacja publiczna i 
prywatna

background image

5.06.21

89

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

- ukrywanie informacji

        - składnik: dana lub metoda 
prywatna lub publiczna

background image

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

background image

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

background image

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 

background image

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)

background image

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()

...

....

...

background image

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

background image

5.06.21

96

Podsumowanie:

- duży udział pracy koncepcyjnej w 
budowie modeli obiektowych,

 

Podejście obiektowe

Podejście obiektowe

- podstawowe koncepcje

- podstawowe koncepcje

background image

5.06.21

97

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

- ukrywanie informacji

        - np. informacja publiczna i 
prywatna

background image

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..

background image

5.06.21

99

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

- abstrakcyjne typy danych

background image

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()

background image

5.06.21

101

 

 
 
 

 
 
 

 
 
 

Podejście obiektowe

Podejście obiektowe

- podstawowe 

- podstawowe 

koncepcje

koncepcje

- dziedziczenie

                               Window

MenuWindow      EditWindow       
DialogWindow

                                           InfoDialog       
QuestionDialog

background image

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()

background image

5.06.21

103

 

 
 
 

 
 
 

 
 
 

Podsumowanie

Podsumowanie

background image

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

background image

5.06.21

105

Podejście algorytmiczne

Podejście algorytmiczne

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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)

background image

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 ?

background image

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)

background image

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 ?

background image

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


Document Outline