Style programowania - krótki przeglad
|
|
- Edward Zych
- 5 lat temu
- Przeglądów:
Transkrypt
1 Style programowania - krótki przeglad Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłacznie do własnych prywatnych potrzeb i może on być kopiowany wyłacznie w całości, razem z niniejsza strona tytułowa.
2 Ważniejsze style programowania Programowanie proceduralne Nacisk kładzie się na przetwarzanie, tzn. zbudowania algorytmu potrzebnego do wykonania wymaganych obliczeń. Programowanie modularne Uwypukla powiazanie danych z procedurami oraz ukrywa dane, które wykorzystywane sa tylko w pewnych blokach obliczeniowych reprezentowanych przez moduły. Programowanie z abstrakcja danych Zakłada możliwość definiowania typów, które maja te same własności jak typy wbudowane. Programowanie obiektowe Tworzenie struktur pochodnych poprzez dziedziczenie z możliwościa modyfikacji dzięki polimorfizmowi. Hermetyzacja wybranych struktur. Programowanie uogólnione Umożliwia tworzenie parametryzowanych struktur i funkcji/procedur, dla których parametrami jest typ danych. Style programowania - krótki przeglad 1
3 Programowanie z wykorzystaniem podprogramów (Zmienne globalne) suma zm zm1 zm_tmp wynik Program glowny 104 let zm1 = 2*suma + 5; 105 if zm1 = 10 then let zm = 0; 106 subroutine if wynik = zm1 then beep; Podprogram 4591 let zm_tmp = 2*zm1/31; 4595 if zm_tmp = 3.5 then let zm1 = zm_tmp; 4600 subroutine subroutine return; Podprogram 4595 if zm_tmp = 3.5 then let zm1 = zm_tmp; 4610 return; Podprogram 8225 if zm_tmp = 3.5 then let zm1 = zm_tmp; 8554 return; Styl charakterystyczny dla przypadku wykorzystywania asemblera oraz wczesnej wersji Basic a. Style programowania - krótki przeglad 2
4 Programowanie z wykorzystaniem podprogramów (Zmienne globalne) suma zm zm1 zm_tmp wynik Program glowny 104 let zm1 = 2*suma + 5; 105 if zm1 = 10 then let zm = 0; 106 subroutine if wynik = zm1 then beep; Podprogram 4591 let zm_tmp = 2*zm1/31; 4595 if zm_tmp = 3.5 then let zm1 = zm_tmp; 4600 subroutine subroutine return; Podprogram 4595 if zm_tmp = 3.5 then let zm1 = zm_tmp; 4610 return; Podprogram 8225 if zm_tmp = 3.5 then let zm1 = zm_tmp; 8554 return; Wielość wzajemnych powiazań prowadzi do tworzenia się nieczytelnych konstrukcji programów. Style programowania - krótki przeglad 3
5 Programowanie z wykorzystaniem podprogramów (Zmienne globalne) IdentManp KatObrotu PozycjaEfektora Ilosc WspX program Manipulator(input,output); begin PozycjonujManipulator(1); ObrocRamie(1,23); end. procedure PozycjonujManipulator(int ID); var Ilosc : integer; WspX :real; begin UstawPodstaweManipulatora(ID); PozycjonujRamiona(ID); end; procedure OtworzChwytak(int ID); begin end; Obrot procedure ObrocRamie(ID :integer; Kat :real); var Obrot :real; begin end; Zmienne lokalne poprawiaja wykorzystanie pamięci oraz czytelność programu. Style programowania - krótki przeglad 4
6 Programowanie proceduralne Paradygmat programowania proceduralnego: Zdecyduj jakie chcesz mieć procedury; stosuj najlepsze algorytmy jakie możesz znaleźć. Przykład języków programowania wspierajacych ten paradygmat: Pascal, C, Java, C++, Python, Perl itd. Style programowania - krótki przeglad 5
7 Programowanie proceduralne Podstawowe wady czystego programowania proceduralnego. Brak możliwości wyróżnienia powiazań między strukturami danych, a procedurami operujacymi na nich. Konieczność stosowania różnych nazw procedur nawet w przypadku, gdy wykonuja te same operacje, a jedyna różnica jest typ danych, na których wykonywana jest ta operacja. Umieszczanie wszystkich elementów w jednakowym obszarze zasięgu ważności definicji uniemożliwia hermetyzację wybranych partii programy i łatwego rozdzielenia całego zadania na poszczególne podzadania. Style programowania - krótki przeglad 6
8 Programowanie modularne Modul Glowny suma MacierzPodstawy ID_MacEfektora ID_Przegub1 wynik M1 nacznik int main() MacierzWJ M1; float nacznik; M1 =!M1; void Transformuj(MacierzWJ &M) if (M.nacznik()). M.Odwrotnosc(); void Wyswietl(MacierzWJ &M) Modul: Manipulator int Przegub[5]; PolozeniePodstawy Stan TransX Eksport: void ObrocPrzegub(int, float) void PrzesunPodstawe_X(float Tx) if (M0.TranslacjaX()). Modul: MacierzWJ MacierzBiezaca StosMacierzy[7]; float nacznik(int ID) Eksport: bool Odwrotnosc(int ID) if (( = nacznik(id))) ElementMac. void ZwiekszSkale(MacierzWJ &M) void Transformuj(MacierzWJ &M) if (M.nacznik()). M =!M; void OtworzChwytak() void TranslacjaX(int ID) bool UtworzMacierz() void SkalujRamie(MacierzWJ &M) void Zamien(ind ID1, int ID2) ElementMac Zbiór powiazanych ze soba procedur, struktur danych oraz zmiennych nazywamy modułem. W tym sensie moduł realizuje centralizację struktur danych oraz procedur i funkcji obsługujacych wspomniane struktury danych. Style programowania - krótki przeglad 7
9 Programowanie modularne Modul Glowny suma MacierzPodstawy ID_MacEfektora ID_Przegub1 wynik M1 nacznik int main() MacierzWJ M1; float nacznik; M1 =!M1; void Transformuj(MacierzWJ &M) if (M.nacznik()). M.Odwrotnosc(); void Wyswietl(MacierzWJ &M) Modul: Manipulator int Przegub[5]; PolozeniePodstawy Stan TransX Eksport: void ObrocPrzegub(int, float) void PrzesunPodstawe_X(float Tx) if (M0.TranslacjaX()). Modul: MacierzWJ MacierzBiezaca StosMacierzy[7]; float nacznik(int ID) Eksport: bool Odwrotnosc(int ID) if (( = nacznik(id))) ElementMac. void ZwiekszSkale(MacierzWJ &M) void Transformuj(MacierzWJ &M) if (M.nacznik()). M =!M; void OtworzChwytak() void TranslacjaX(int ID) bool UtworzMacierz() void SkalujRamie(MacierzWJ &M) void Zamien(ind ID1, int ID2) ElementMac Ten typ programowania pozwala ukryć pomocnicze funkcje i struktury danych. Możliwe jest dość precyzyjne określenie co jest udostępniane na zewnatrz i z czego dany moduł korzysta. Pozwala to ukryć ewentualne późniejsze modyfikacje struktur wewnętrznych. Style programowania - krótki przeglad 8
10 Programowanie modularne Paradygmat programowania modularnego: Zdecyduj jakie chcesz mieć moduły; podziel program w taki sposób, aby ukryć dane w modułach. Przykład języków programowania wspierajacych ten paradygmat: Modula 2, Ada, C, Java, C++ Style programowania - krótki przeglad 9
11 Programowanie modularne (najważniejsze cechy) Ukrywanie funkcji, struktur danych oraz zmiennych majacych znacznie lokalne w danym module Możliwość całkowitego ukrycia udostępnianych struktur danych. Na zewnatrz modułu widoczne sa jedynie ich cechy i własności. Odwoływanie się do konkretnego egzemplarza tworzonej struktury danych realizowane jest poprzez deskryptory. Wada tej techniki jest brak możliwości kontroli zgodności typów na etapie kompilacji. Możliwość odizolowania się od nazw funkcji i zmiennych modułu używanych w innych modułach. Możliwość precyzyjnego określenia co z danego modułu jest widoczne i udostępniane na zewnatrz, a co nie. Mechanizm ten pozwala również określić co dany moduł importuje z innych modułów. Łatwiejsza organizacja pracy zespołowej. Style programowania - krótki przeglad 10
12 Programowanie modularne Programowanie modularne umożliwia centralizację wszystkich danych jednego typu pod kontrola jednego modułu będacego zarzadc a danego typu. Daje to jednak wciaż znaczaco gorsze wsparcie niż dla typów wbudowanych. Wady czystego programowania modularnego: brak możliwości stosowania operatorów, w przypadku stosowania deskryptorów brak możliwości ścisłej kontroli typów na poziomie kompilacji, brak możliwości określenia dopuszczalności domyślnych konwersji oraz ich zdefiniowania. Style programowania - krótki przeglad 11
13 Abstrakcja typów danych Modul Glowny suma MacierzPodstawy ID_MacEfektora ID_Przegub1 wynik M1 nacznik int main() MacierzWJ M1; float nacznik; M1 =!M1; void Transformuj(MacierzWJ &M) if (M.nacznik()). M.Odwrotnosc(); void Wyswietl(MacierzWJ &M) void ZwiekszSkale(MacierzWJ &M) Modul: Manipulator MacierzWJ Przegub[5]; PolozeniePodstawy Stan TransX Eksport: void ObrocPrzegub(int, float) void PrzesunPodstawe_X(float Tx) if (M0.TranslacjaX()). void Transformuj(MacierzWJ &M) if (M.nacznik()). M =!M; void OtworzChwytak() class MacierzWJ float _Tab[4][4]; bool Odwrotnosc(); float nacznik(); foat TranslacjaX(); foat TranslacjaY(); foat TranslacjaZ(); MacierzWJ operator!(); MacierzWJ operator *(MacierzWJ); void SkalujRamie(MacierzWJ &M) Podejście oparte na abstrakcji danych pozwala traktować na równi typy wbudowane i typy definiowane przez programistę. Pozwala również bezpośrednio odwoływać się do struktur danych i dokonywanych na nich operacji. Style programowania - krótki przeglad 12
14 Abstrakcja typów danych Paradygmat programowania z zastosowaniem abstrakcji danych: Zdecyduj jakie chcesz mieć typy; dla każdego typu dostarcz pełny zbiór operacji. Przykład języków programowania wspierajacych ten paradygmat: Ada, Clu, C++ Style programowania - krótki przeglad 13
15 Abstrakcja typów danych Programowanie z wykorzystaniem abstrakcji danych pozwala na tworzenie struktur, które moga być dobrze izolowane od reszty programu. Zawieraja one zarówno odpowiednie pola danych, jak też zdefiniowane metody i operacje dokonywane na nich. Podstawowa wada jest brak elastyczności. Przykład: Konstruujac typy MacierzWJ (transformacje wektorów wyrażonych we współrzędnych jednorodnych) oraz Macierz4x4 należy zdefiniować oddzielne struktury danych wraz z metodami i operacjami, choć MacierzWJ jest jedynie uszczegółowieniem typu Macierz4x4. Style programowania - krótki przeglad 14
16 Programowanie obiektowe Modul Glowny suma MacierzPodstawy ID_MacEfektora ID_Przegub1 wynik int main() M1 MacierzWJ M1; nacznik float nacznik; M1 =!M1; void Transformuj(MacierzWJ &M) if (M.nacznik()). M.Odwrotnosc(); void Wyswietl(MacierzWJ &M) Modul: Manipulator MacierzWJ Przegub[5]; PolozeniePodstawy Stan TransX Eksport: void ObrocPrzegub(int, float) void PrzesunPodstawe_X(float Tx) if (M0.TranslacjaX()). class MacierzWJ class Macierz4x4 float _Tab[4][4]; bool Odwrotnosc(); float nacznik(); foat TranslacjaX(); class Macierz4x4 float _Tab[4][4]; bool Odwrotnosc(); float nacznik(); void ZwiekszSkale(MacierzWJ &M) void Transformuj(MacierzWJ &M) if (M.nacznik()). M =!M; foat TranslacjaY(); foat TranslacjaZ(); void OtworzChwytak() void SkalujRamie(MacierzWJ &M) MacierzWJ operator!(); MacierzWJ operator *(MacierzWJ); Podejście oparte na podejściu obiektowym umożliwia budowanie nowych typów danych na bazie wcześniej zdefiniowanych struktur. Style programowania - krótki przeglad 15
17 Programowanie obiektowe Paradygmat programowania obiektowego: Zdecyduj jakie chcesz mieć klasy; dla każdej klasy dostarcz pełny zbiór operacji; korzystajac z mechanizmu dziedziczenia, jawnie wskaż to, co jest wspólne. Przykład języków programowania wspierajacych ten paradygmat: C++, Java, Python Style programowania - krótki przeglad 16
18 Programowanie obiektowe Podstawowe cechy programowania obiektowego: dziedziczenie możliwość tworzenia nowych struktur danych z wykorzystaniem struktur wcześniej zdefiniowanych wraz ze wszystkimi ich atrybutami i metodami. hermetyzacja możliwość ograniczanie dostępu do wybranych struktur danych. Pozwala to definiować ściśle określony interfejs dostępu do tych struktur. polimorfizm możliwość modyfikacji metod (określanych mianem metod wirtualnych) w strukturach bazowych poprzez ich redefiniowanie w strukturach pochodnych. Style programowania - krótki przeglad 17
19 Programowanie obiektowe Czy programowanie obiektowe może mieć jakieś wady? Ależ tak! Jest wciaż mało elastyczne!!!! :-0 We wcześniejszym przykładzie typy Macierz4x4 i MacierzWJ zostały zdefiniowane dla typu float. Aby zdefiniować je dla typu double należy wszystko na nowo przepisać. :-( Czy nie można byłoby stworzyć ogólnych mechanizmów nie tylko definiowania struktur, ale również pisania funkcji, np. funkcji umożliwiajacych sortowanie dowolnych struktur bez konieczności dokonywania rzutowania lub konwersji typów? Style programowania - krótki przeglad 18
20 Programowanie uogólnione Przykład z biblioteki C realizacji uogólnionych algorytmów dla tworzenia, manipulowania i przeszukiwania struktury drzewa binarnego. #include <search.h> void *tsearch(const void *key, void **rootp, int(*compar)(const void *, const void *)); void *tfind(const void *key, const void **rootp, int(*compar)(const void *, const void *)); void *tdelete(const void *key, void **rootp, int(*compar)(const void *, const void *)); void twalk(const void *root, void(*action)(const void *nodep, const VISIT which, const int depth)); Style programowania - krótki przeglad 19
21 Programowanie uogólnione Modul Glowny suma MacierzPodstawy ID_MacEfektora ID_Przegub1 wynik M1 nacznik int main() FMacierzWJ M1; float nacznik; M1 =!M1; void Transformuj(FMacierzWJ &M) if (M.nacznik()). M.Odwrotnosc(); void Wyswietl(FMacierzWJ &M) void ZwiekszSkale(MacierzWJ &M) Modul: Manipulator FMacierzWJ Przegub[5]; PolozeniePodstawy Stan TransX Eksport: void ObrocPrzegub(int, float) void PrzesunPodstawe_X(float Tx) if (M0.TranslacjaX()). void Transformuj(FMacierzWJ &M) if (M.nacznik()). M =!M; void OtworzChwytak() template <class TYP> class MacierzWJ class Macierz4x4<TYP> TYP _Tab[4][4]; bool Odwrotnosc(); TYP nacznik(); TYP TranslacjaX(); TYP TranslacjaY(); TYP TranslacjaZ(); MacierzWJ<TYP> operator!(); template <class TYP> class Macierz4x4 TYP _Tab[4][4]; TYP Odwrotnosc(); TYP nacznik(); void SkalujRamie(FMacierzWJ &M) MacierzWJ<TYP> operator *(MacierzWJ<TYP>); Programowanie uogólnione pozwala tworzyć uniwersalne struktury, w których nie ma (lub sa one zminimalizowane) ograniczeń na typ pól. Daje możliwość skoncentrowania się na ogólnych mechanizmach manipulowania strukturami danych. Można stworzyć np. wzorzec listy. Style programowania - krótki przeglad 20
22 Programowanie uogólnione Modul Glowny suma MacierzPodstawy ID_MacEfektora ID_Przegub1 wynik M1 nacznik int main() FMacierzWJ M1; float nacznik; M1 =!M1; void Transformuj(FMacierzWJ &M) if (M.nacznik()). M.Odwrotnosc(); void Wyswietl(FMacierzWJ &M) void ZwiekszSkale(MacierzWJ &M) Modul: Manipulator FMacierzWJ Przegub[5]; PolozeniePodstawy Stan TransX typedef Macierz4x4<float> FMacierz4x4; typedef MacierzWJ<float> FMacierzWJ; Eksport: void ObrocPrzegub(int, float) void PrzesunPodstawe_X(float Tx) if (M0.TranslacjaX()). void Transformuj(FMacierzWJ &M) if (M.nacznik()). M =!M; void OtworzChwytak() template <class TYP> class MacierzWJ class Macierz4x4<TYP> TYP _Tab[4][4]; bool Odwrotnosc(); TYP nacznik(); TYP TranslacjaX(); TYP TranslacjaY(); TYP TranslacjaZ(); MacierzWJ<TYP> operator!(); template <class TYP> class Macierz4x4 TYP _Tab[4][4]; TYP Odwrotnosc(); TYP nacznik(); void SkalujRamie(FMacierzWJ &M) MacierzWJ<TYP> operator *(MacierzWJ<TYP>); Konkretyzacja typu następuje w momencie odwołania się do wzorca wraz ze wszystkimi parametrami. Sa one nazwami typów składowych. Odwołanie następuje wraz z deklaracja obiektu danej klasy. Nazwę typu można czynić bardziej wygodna używajac typedef. Style programowania - krótki przeglad 21
23 Programowanie uogólnione Paradygmat programowania uogólnionego: Zdecyduj jakie chcesz mieć algorytmy; parametryzuj je w taki sposób, by działały dla różnych typów i struktur. Przykład języków programowania wspierajacych ten paradygmat: C++ Programowanie uogólnione jest podstawowa technika programowania użyta przy tworzeniu standardowej biblioteki szablonów (STL), która jest jednym z podstawowych składników ANSI/ISO C++. Style programowania - krótki przeglad 22
Style programowania - krótki przeglad
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Style programowania, geneza języka C++
Style programowania, geneza języka C++ Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Programowanie
Geneza C++, hermetyzacja struktur danych
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument
Wprowadzenie do szablonów szablony funkcji
Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do
Wprowadzenie do szablonów szablony funkcji
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Szablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Pola i metody statyczne
Pola i metody statyczne Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2009 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania
Wartości domyślne, przeciażenia funkcji
Wartości domyślne, przeciażenia funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Wartości domyślne, przeciażenia funkcji
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Referencje do zmiennych i obiektów
Referencje do zmiennych i obiektów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Przesłanianie nazw, przestrzenie nazw
Przesłanianie nazw, przestrzenie nazw Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Wyliczanie wyrażenia obiekty tymczasowe
Wyliczanie wyrażenia obiekty tymczasowe Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Wprowadzenie do szablonów klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2008-2010 Bogdan Kreczmer Niniejszy
Szablon klasy std::vector
Szablon klasy std::vector Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat
Konstruktor kopiujacy
Konstruktor kopiujacy Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępniony
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Szablon klasy std::list
Szablon klasy std::list Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania
Operacje wejścia/wyjścia odsłona pierwsza
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Hermetyzacja oraz pola i metody statyczne
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2010 Bogdan Kreczmer Niniejszy dokument
Szablony funkcji i klas (templates)
Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp
Operacje wejścia/wyjścia (odsłona druga) - pliki
Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały
Rzutowanie i konwersje
Rzutowanie i konwersje Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) { zdefiniuje. Integer::operator=(ri);
Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Wstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Geneza powstania języka C++
Geneza powstania języka C++ Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat
Przestrzenie nazw. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska
Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania
Lista dwukierunkowa - przykład implementacji destruktorów
Lista dwukierunkowa - przykład implementacji destruktorów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2008 Bogdan Kreczmer Niniejszy dokument zawiera
Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:
Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów
Programowanie obiektowe, wykład nr 6. Klasy i obiekty
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Obiekty i metody stałe
Obiekty i metody stałe Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Wstęp do programowania obiektowego. Wykład 2
Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe
Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Klasa, metody, rozwijanie w linii
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Podejście obiektowe - podstawowe pojęcia
Podejście obiektowe - podstawowe pojęcia Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2003 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce
Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,
Klasa, metody, rozwijanie w linii
Klasa, metody, rozwijanie w linii Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie a dziedziczenie class Integer2: public Integer Operatory, z wyjątkiem operatora przypisania są automatycznie dziedziczone w klasach pochodnych. Integer2(int i): Integer(i) Automatyczne tworzenie
Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003
Szablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod
Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.
Podstawy programowania Wykład PASCAL Wstęp do programowania obiektowego 1 Programowanie obiektowe - definicja Programowanie obiektowe paradygmat programowania, w którym programy definiuje się za pomocą
Materiały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Geneza powstania języka C++
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Wykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Programowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43
Programowanie w C++ Wykład 6 Katarzyna Grzelak 1 kwietnia 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie (język C++) Wykład 1. Język C a C++. Definiowanie prostych klas. Typy referencyjne. Domyślne wartości argumentów. PrzeciąŜanie funkcji. Konstruktory, destruktory. Definiowanie
Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie Obiektowe (język C++) Wykład 1. Definiowanie prostych klas. Przykłady. Przypomnienie: typy referencyjne, domyślne wartości argumentów, przeciąŝanie funkcji. Konstruktory,
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 14 Katarzyna Grzelak 3 czerwca 2019 K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27 Na ostatnim wykładzie: Konstruktor standardowy (domyślny) to taki, który nie ma żadnych argumentów
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Definiowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Technologie cyfrowe semestr letni 2018/2019
Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów
Zaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie
Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this
Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE
C++ Przeładowanie operatorów i wzorce w klasach
C++ i wzorce w klasach Andrzej Przybyszewski numer albumu: 89810 14 listopada 2009 Ogólnie Przeładowanie (przeciążanie) operatorów polega na nadaniu im nowych funkcji. Przeładowanie operatora dokonuje
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Dziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Zaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 3 - polimorfizm. dr inż. Robert Nowak - p. 1/14 Powtórzenie Powtórzenie: klasy autonomiczne: konstruktor, konstruktor kopiujacy, operator przypisania, destruktor
Technologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Technologie obiektowe
WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność
Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY
Różne właściwości Funkcje tak samo jak zmienne mają swoje miejsce w pamięci, gdzie są zapisane. Można więc uzyskać ich adres. Podobnie jak adres tablicy jest zwracany przez jej nazwę, podaną bez nawiasu
Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 7 Katarzyna Grzelak 23 kwietnia 2018 K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40 Standard Template Library (STL) K.Grzelak (Wykład 7) Programowanie w C++ 2 / 40 C++ Templates
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Wyjątki (exceptions)
Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.
Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.
Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą
Programowanie obiektowe
Wykład 1 21 lutego 2019 Plan wykładu 1 Opis wykładu Zaliczenie i egzamin Literatura 2 3 Modelowanie obiektowe Abstrakcja Hermetyzacja Dziedziczenie Polimorfizm 4 Opis wykładu Zaliczenie i egzamin Literatura
Języki i paradygmaty programowania
Języki i paradygmaty programowania WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 Materiały do wykładu
Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska
Qt sygnały i sloty Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera
Paradygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
private - oznacza, że wszystkie elementy klasy bazowej zmieniają się w prywatne.
C++/Dziedziczenie 1 C++/Dziedziczenie Wstęp - Co to jest dziedziczenie Często podczas tworzenia klasy napotykamy na sytuację, w której klasa ta powiększa możliwości innej klasy, nierzadko precyzując jednocześnie
Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni
Język obiektowy był krokiem ewolucji w programowaniu komputerów. Powstał w wyniku rozwoju języków strukturalnych i zmiany podejścia do problemów informatycznych. Cały otaczający świat składa się z obiektów.
Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 7 Przegląd typów strukturalnych - klasy i obiekty - c.d. Klasa - powtórzenie
Programowanie w języku C++ Podstawowe paradygmaty programowania
Programowanie w języku C++ Podstawowe paradygmaty programowania Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra
Enkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Podstawy Języka Java
Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących
Programowanie komputerowe. Zajęcia 7
Programowanie komputerowe Zajęcia 7 Klasy Klasy to typy danych, które pozwalają na zgromadzenie w jednej zmiennej (obiekcie) zarówno danych jak i operacji związanych z tymi danymi. Obiekt danej klasy może
Szablony. Szablony funkcji
Szablony Szablony sa mechanizmem ponownego wykorzystania kodu (reuse) W przypadku funkcji ponownie wykorzystany jest algorytm W przypadku klas ponownie wykorzystane sa wszystkie skladowe Deklaracja szablonu
Technologie cyfrowe semestr letni 2018/2019
Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 8 (15.04.2019) Kompilacja Kompilacja programu (kodu): proces tłumaczenia kodu napisanego w wybranym języku na kod maszynowy, zrozumiały
Abstrakcyjny typ danych
Abstrakcyjny typ danych Abstrakcyjny Typ Danych (abstract data type-adt): zbiór wartości wraz z powiązanymi z nimi operacjami; operacje są zdefiniowane w sposób niezależny od implementacji; operacje są