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