Zaawansowane programowanie w C++ (ZPR)
|
|
- Dawid Kamiński
- 6 lat temu
- Przeglądów:
Transkrypt
1 Zaawansowane programowanie w C++ (ZPR) Wykªad 9 - w tki, std::thread Robert Nowak 2017L Zaawansowane programowanie w C++ (ZPR) 1/34
2 Równolegªo± - obliczenia podczas obsªugi urz dze«bardzo wolna reakcja czªowieka wolne urz dzenia wej±cia - wyj±cia (np. drukarki) bardzo szybkie procesory PC AT (1987) PC (2017) Poprawa zegar procesora 6 MHz 3.3 GHz 500x ilo± rdzeni (procesorów) 1 4 4x pami wielko± 1MB 16 GB 16000x pami (czas dost pu) 200 ns 40 ns 5x pami (czas dost pu/cykl) x rodzaj pami ci wielko± czas dost pu (cykle procesora) cache L1 64kB 2 cache L2 1MB 14 cache L3 8MB 14 DRAM 16GB 150 HDD 1000GB Zaawansowane programowanie w C++ (ZPR) 2/34
3 Graczne porównanie czasów realizacji operacji 1 1 zakªadaj c 1GB/sec SSD, dane z Peter Norvig, Teach Yourself Programming in Ten Years, 2014 Zaawansowane programowanie w C++ (ZPR) 3/34
4 Wspóªbie»no± wieloprocesowe systemy operacyjne na platformach jedno-procesorowych (jedno-rdzeniowych) na platformach wieloprocesorowych (wielordzeniowych) aplikacje wielow tkowe W tek (lekki proces), pozwala realizowa niezale»ne ci gi instrukcji w ramach procesu. w tki wspóªdziel kod, dane oraz zasoby. mechanizm przeª czania nie wprowadza du»ych narzutów Zaawansowane programowanie w C++ (ZPR) 4/34
5 Aplikacja wielow tkowa pozwala na reakcj na zlecenia u»ytkownika podczas przeprowadzania oblicze«lepiej wykorzystuje dost pn moc obliczeniow (szczególnie na platformach wieloprocesorowych) mo»e obsªugiwa wiele zlece«równolegle poprawnie zaprojektowana jest szybsza na platformach wieloprocesorowych (wielordzeniowych) Zaawansowane programowanie w C++ (ZPR) 5/34
6 C++ pozwala implementowa aplikacje wielow tkowe Wspóªdzielone obiekty globalne obiekty dynamiczne (adres jest unikalny niezale»nie od w tku) obiekty automatyczne je»eli dost p jest przez wska¹nik lub referencje zasoby systemu operacyjnego (pliki, okna itp) kod wykonywany Niezale»ne rejestry ci g wykonywanych instrukcji stos zmienne automatyczne Program ma zawsze jeden w tek (funkcja main() ) - w tek gªówny lub inicjuj cy. Mo»e tworzy dodatkowe w tki. Zaawansowane programowanie w C++ (ZPR) 6/34
7 W tki w C++ Zabronione funkcje biblioteki standardowej (przechowuj stan pomi dzy woªaniami): funkcja biblioteka zamiennik rand cstdlib boost random strtok cstring boost tokenizer lub boost regex asctime ctime localtime gmtime ctime boost date_time nale»y u»ywa bibliotek przeznaczonych do pracy wielow tkowej standard C++03 nie dostarczaª mechanizmów tworzenia i synchronizacji w tków, standard C++11 ma te mechanizmy, mo»na byªo u»ywa w tków mechanizmami dostarczanymi przez system operacyjny Zaawansowane programowanie w C++ (ZPR) 7/34
8 Biblioteka boost::date_time nazwa opis size date data (gregoria«ska) od 1 stycznia 4B 1400 do 31 grudnia 9999 date_duration dªugo± w czasie (w dniach) 4B date_period przedziaª czasu 8B ptime punkt w czasie (date i 8 lub 12B time_duration). Dokªadno± ms, ale mo»e by ns (wi kszy obiekt). time_duration dªugo± w czasie 4 lub 8B time_period przedziaª czasu 16 lub 24B gregorian::date d(2011,gregorian::apr,20); //data 20 kwietnia 2011 posix_time::ptime t1(d,posix_time::time_duration(18,0,0) );//18:00 posix_time::ptime t2(d, posix_time::hours(12)+posix_time::seconds(4)); posix_time::time_duration td = t2 - t1; //odejmowanie, 4 sekundy posix_time::ptime t3 = t2 + td*10; //mno»enie przez liczb Zaawansowane programowanie w C++ (ZPR) 8/34
9 Biblioteka std::chrono (boost::chrono) Biblioteka wykorzystywana w boost::thread (od wersji 1.49) nazwa opis time_point reprezentuje punkt w czasie duration dªugo± w czasie, przechowuje liczb cykli oraz dªugo± cyklu clock dostarcza funkcji now, bie» cy punkt w czasie #include <chrono> duration<long, milli > d1; //licznik milisekund u»ywaj c typu long duration<int, ratio<60> > d2; //licznik minut u»ywaj c typu int this_thread::sleep_for( milliseconds(1000)); //argument typu duration system_clock::time_point time_limit = system_clock::now() + seconds(1); this_thread::sleep_until(time_limit); //wykorzystuje time_point Zaawansowane programowanie w C++ (ZPR) 9/34
10 std::thread - w tki w C++ #include <thread> //Funkcja gªówna w tku u»ytkownika void my_thread() { /*... */ } //Mo»na te» u»y funktora class MyThread { public: //tutaj implementacja funkcji w tku u»ytkownika void operator()() { /*... */ } }; int main() { std::thread thrd(&my_thread); //Utworzenie i uruchomienie w tku try { thrd.join(); //Bie» cy watek czeka na zako«czenie w tku thrd } catch(...) { } //wyj tek zgªaszany, gdy w tek ju» nie istnieje return 0; } Zaawansowane programowanie w C++ (ZPR) 10/34
11 Wy±cigi (race conditions) wiele w tków pisze lub czyta t sam pami niewªa±ciwa warto± niezdeniowane zachowanie jedno z rozwi za«: synchronizacja (blokady) Zaawansowane programowanie w C++ (ZPR) 11/34
12 Blokady w boost, mutex (mutual-execution) jest u»ywany do problemu wykluczania. Stany: zablokowany, odblokowany. #include <mutex> mutex.lock(); //Sekcja krytyczna mutex.unlock(); //Utworzenie obiektu sªu» cego do synchronizacji std::mutex mutex_resource; /*... */ { //lock_guard - konstruktor: lock, destruktor: unlock //boost::scoped_lock std::lock_guard guard(mutex_resource); //Tutaj dost p do zasobu }//Tutaj zwolnienie zasobu Zaawansowane programowanie w C++ (ZPR) 12/34
13 Zakleszczenia (deadlock) ka»dy z w tków czeka na jaki± inny (jest blokowany). aden z nich nie mo»e dalej pracowa. Rozwi zanie: zajmowanie blokad zawsze w tej samej kolejno±ci stosowanie innych mechanizmów synchronizuj cych Zaawansowane programowanie w C++ (ZPR) 13/34
14 Samo-zakleszczenie brak zwalniania sekcji krytycznej (np. w algorytmach rekurencyjnych) struct Foo { mutex m; void recfun(){ std::lock_guard l(m); /*... */ recfun();//woªanie rekurencyjne }; Rozwi zanie: std::recursive_mutex Zaawansowane programowanie w C++ (ZPR) 14/34
15 Rodzaje prostych blokad w boost std::mutex lock wolny: zajmuje, zaj ty: blokuje try_lock wolny: zajmuje (zwraca true), zaj ty (zwraca false) std::recursive_mutex lock jak wy»ej try_lock jak wy»ej try_lock_for(time duration) try_lock_until(time point) wolny: zajmuje (zwraca true), zaj ty: blokuje na dany czas Zaawansowane programowanie w C++ (ZPR) 15/34
16 Typowe ko«czenie w tku nie ma mo»liwo±ci przerwania w tku z zewn trz class MyThread { public: MyThread() : finish_(false) {} void finish() { finish_ = true; } void operator()() { while(!finish_) { //tutaj cz ± przetwarzania //a nast pnie sprawdzanie warunku!finish_ } } private: volatile bool finish_; }; Zaawansowane programowanie w C++ (ZPR) 16/34
17 W tki i mechanizm wyj tków wyj tki s mog by rzucane i wyªapywane w niezale»nych w tkach w tek nie powinien rzuca wyj tku, który b dzie wyªapywany w innym w tku class MyThread { //... void operator()() { //funkcja w tku u»ytkownika try { //... } catch(...) { /* Wyªapuje wszystkie wyj tki */ } } }; Zaawansowane programowanie w C++ (ZPR) 17/34
18 Skalowalno± - zapewnienie bardziej wydajnej pracy przy zwi kszaniu zasobów W tki mog pracowa niezale»nie gdy: odczytuj wspóªdzielone dane zapisuj wªasne (lokalne) dane zapis wspóªdzielonych danych jest kªopotliwy (spowalnia) Wyró»nia si szybk i woln ±cie»k w funkcjach wykonywanych w w tkach brak blokad na szybkiej ±cie»ce (blokady, wykorzystywane nawet tylko do odczytu zapisuj stan) usuwanie wspóªdzielonych obiektów do zapisu (lepiej informacj wyj±ciw przechowywa niezale»nie dla ka»dego w tka, a pó¹niej scala wynik) Zaawansowane programowanie w C++ (ZPR) 18/34
19 Problem czytelników i pisarzy Bardziej skomplikowany (od problemu wykluczania): czytelnicy: w tki nie wykluczaj ce si nawzajem pisarze: w tki wykluczaj ce ka»dy inny w tek, zarówno czytelnika jak i pisarza boost::shared_mutex (std::shared_mutex w C++14) M::lock, M::try_lock, M::timed_lock M::lock_shared, M::try_lock_shared, M::timed_lock_shared Zaawansowane programowanie w C++ (ZPR) 19/34
20 Zagªodzenia (starvation) dany w tek nie mo»e si wykonywa, poniewa» caªy czas jest blokowany Zaawansowane programowanie w C++ (ZPR) 20/34
21 problemy z usuwaniem bª dów w aplikacjach wielow tkowych niektóre bª dy s niepowtarzalne ró»ne zachowanie si wersji debug od release testy na platformach z jednym procesorem (rdzeniem) mog nie pokazywa bª dów które wyst pi na platformach posiadaj cych wiele procesorów (rdzeni) trudno testowa wszystkie mo»liwe przebiegi sterowania Zaawansowane programowanie w C++ (ZPR) 21/34
22 Wzorzec projektowy monitora (pasywny obiekt) Monitor: dostarcza metod, które mog by woªane przez wiele ró»nych w tków. Obiekt sam zapewnia synchronizacj. //monitor, najprostsze rozwi zanie: wewn trzny mutex class InOutQueue : public InOut { std::queue<char> dane_; std::mutex mutex; public: virtual void put(char c) { std::lock_guard guard(mutex); dane_.push(c); } virtual bool get(char& c) { bool read = false; while(!read) { std::lock_guard guard(mutex); if(! dane_.empty() ) { c = dane_.front(); /*... */ } } }; Zaawansowane programowanie w C++ (ZPR) 22/34
23 Przetwarzanie potokowe algorytmy wykorzystuj ce przetwarzanie potokowe wygodnie tworzy przy wykorzystaniu w tków Zaawansowane programowanie w C++ (ZPR) 23/34
24 Aktywny obiekt Asynchroniczne woªanie komend komenda wykonuje si w niezale»nym w tku Zaawansowane programowanie w C++ (ZPR) 24/34
25 Aktywny obiekt - scenariusz komendy nie zwracaj ce wyniku komendy zwracaj ce wynik Zaawansowane programowanie w C++ (ZPR) 25/34
26 Aktywny obiekt: przykªad implementacji mt4cpp.sourceforge.net #include <mt4cpp/scheduler.hpp> struct DummyCmd : public mt4cpp::command { DummyCmd() {} virtual ~DummyCmd() {} virtual void operator()(mt4cpp::progress& progress) { /*... */ progress.setprogress(0.5);//wiadomo± o post pie /*... */ } }; using namespace mt4cpp; Scheduler scheduler(1); //liczba w tków w puli PCommand cmd(new DummyCmd ); scheduler.executeasynchronously( cmd ); //scheduler.executesynchronously( cmd ); Zaawansowane programowanie w C++ (ZPR) 26/34
27 boost::asio - asynchroniczne wej±cie/wyj±cie biblioteka skªada si tylko z nagªówków u»ywa: boost_system (kody bª dów), boost_date_time, boost_thread Zawiera przeno±n obsªug : zegarów (timer) gniazd (socket) UDP, TCP (oraz strumieni z nimi zwi zanych) portów szeregowych i in. Windows 95 itp. Win32 (Windows NT itp), Win64 Linux (j dra: 2.4, 2.6) Mac OS X, Solaris i in. Zaawansowane programowanie w C++ (ZPR) 27/34
28 boost::asio - zegary //Funkcja woªana, gdy zajdzie odpowiednie zdarzenie void event(const boost::system::error_code&) { cout << "timer 2 event" << endl; } int main() { boost::asio::io_service io; //obiekt obsªuguj cy zdarzenia boost::asio::deadline_timer t1(io, boost::posix_time::seconds(3)); t1.wait(); //rejestracja zdarzenia i wykonanie synchroniczne cout << "timer 1 event" << endl; boost::asio::deadline_timer t2(io, boost::posix_time::seconds(3)); t2.async_wait(event); //rejestracja zdarzenia i wykonanie synchr. io.run(); //obsªuga zdarze«asynchronicznych return 0; } Zaawansowane programowanie w C++ (ZPR) 28/34
29 boost::asio, porty szeregowe typedef vector<char> Buffer; typedef steady_timer::duration Timeout; class SerialPort { public: SerialPort(const std::string& port_name, const Timeout timeout) : timeout_(timeout), io_(), port_(io_, port_name ), timer_(io_) { } ~SerialPort() { port_.close(); } const Buffer& read_n(int n) { timer_.expires_from_now( timeout_ ); timer_.async_wait(bind(&serialport::timerevent, this, placeholders:: readsomecall(n); io_.run(); return readbuffer_; } private: Timeout timeout_; io_service io_; serial_port port_;//port szeregowy steady_timer timer_; //zegar char buffer_ [1]; //bufor transmisji Buffer readbuffer_; //bufor odczytu //... Zaawansowane programowanie w C++ (ZPR) 29/34
30 boost::asio, porty szeregowe (2) //... void readsomecall(int n) { port_.async_read_some( buffer(buffer_), bind(&serialport::readevent, this, placeholders::error, n)); } void readevent(const error_code& error, int n) { if( error ) return; //je»eli wyst piª bª d odczytu readbuffer_.push_back(buffer_[0]); if(readbuffer_.size()>=n){timer_.cancel();return;}//koniec czytania readsomecall(n); } void timerevent(const error_code& error) { if( error ) return; //je»eli zdarzenie wycofane, to nic nie rób port_.cancel(); //wygeneruje zdarzenie odczytu z bª dem } }; mt4cpp.sourceforge.net mt4cpp::serialport s("com20", boost::chrono::milliseconds(50) ); std::vector<char> in = s.read_n(3); //czyta 3 bajty albo timeout Zaawansowane programowanie w C++ (ZPR) 30/34
31 boost::asio - obsªuga sieci std::size_t completion(error_code& error, std::size_t ) { /* */ } int main() { io_service io_service;//obsªuguje» dania wej±cia-wyj±cia ip::address address = ip::address::from_string(" "); ip::tcp::endpoint endpoint(address, 80); ip::tcp::socket socket(io_service); socket.connect(endpoint);//nawi zanie poª czenia synchroniczne streambuf request;//» danie wysyªane do serwera www std::ostream request_stream(&request); request_stream << "GET index.html HTTP/1.0\r\n" << "Host: localhost\r\n" << "Accept: */*\r\n" << "Connection: close\r\n\r\n"; write(socket, request);//synchronicznie wysyªa» danie streambuf response; error_code ec; read(socket, response, completion, ec); //odczytuje odpowied¹ std::cout << &response; return 0; } Zaawansowane programowanie w C++ (ZPR) 31/34
32 biblioteki boost zwi zane ze wspóªbie»no±ci boost::interprocess - komunikacja pomi dzy procesami Przeno±ne mechanizmy komunikacji pomi dzy procesami (aplikacjami). pami dzielona (shared memory) mechanizmy synchronizuj ce w tej pami ci (semafory, zmienne warunkowe komunikacja przez pliki kolejki komunikatów std::atomic (C++11), boost::atomic - operacje atomowe obiekty, które gwarantuj niepodzielno± wykonywanych na nich operacji kolekcje wspóªbie»ne nie u»ywaj ce blokad Zaawansowane programowanie w C++ (ZPR) 32/34
33 Podsumowanie aplikacje wielow tkowe s coraz bardziej powszechne boost zapewnia obiekty reprezentuj ce w tki oraz mechanizmy synchronizacyjne obsªuga w tków zostaªa dodana do C++11 biblioteka ACE (Adaptive Communication Environment) OpenMP - interfejs do tworzenia aplikacji wykorzystuj cych wspóªbie»no± OpenCL - biblioteka do tworzenia algorytmów wykonywanych na CPU i/lub GPU Zaawansowane programowanie w C++ (ZPR) 33/34
34 Dodatkowa lektura ( R. Nowak, Aktywny obiekt - wspóªbie»no± i komendy, Software Developer's Journal, R. Nowak, Wspóªdzielenie obiektów w aplikacjach wspóªbie»nych, Software Developer's Journal, R. Nowak, Asynchroniczna obsªuga urz dze«wej±cia-wyj±cia, Software Developer's Journal, R. Nowak, Wspóªbie»na obsªuga zdarze«bez w tków, Programista, Dzi kuj
Zaawansowane programowanie w C++ (PCP)
Wykład 10 - boost Thread. 8 czerwca 2007 Równoległość bardzo wolna reakcja człowieka wolne urządzenia wejścia - wyjścia (np. drukarki) bardzo szybkie procesory można przeprowadzać obliczenia podczas obsługi
Bardziej szczegółowo1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.
1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja
Bardziej szczegółowoProgramowanie i struktury danych
Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w
Bardziej szczegółowoWzorce projektowe strukturalne cz. 1
Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter
Bardziej szczegółowoProgramowanie wspóªbie»ne
1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast
Bardziej szczegółowoProgramowanie współbieżne Wykład 9 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska
Programowanie współbieżne Wykład 9 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Sekcja krytyczna Instrukcje wykonywane na zmiennych współdzielonych tworzą sekcję krytyczną. Instrukcje
Bardziej szczegółowoRozwi zania klasycznych problemów w Rendezvous
Cz ± I Rozwi zania klasycznych problemów w Rendezvous 1 Producenci i konsumenci Na pocz tek rozwa»my wersj z jednym producentem i jednym konsumentem, dziaªaj cymi w niesko«czonych p tlach. Mechanizm komunikacji
Bardziej szczegółowoProgramowanie wspóªbie»ne
1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,
Bardziej szczegółowoProjekt systemy operacyjne 2 - Systemowe mechanizmy synchr
systemy operacyjne 2 - Systemowe mechanizmy synchronizacji procesów 19 lutego 2012 Wielow tkowo± Mechanizmy synchronizacji Wielow tkowo± Mechanizmy synchronizacji Klasyczne przykªady programów Wielow tkowo±
Bardziej szczegółowoProgramowanie obiektowe w C++ Wykªad 4
Programowanie obiektowe w C++ Wykªad 4 dr Lidia St pie«akademia im. Jana Dªugosza w Cz stochowie L. St pie«(ajd) Programowanie obiektowe w C++ 1 / 26 Dziedziczenie - podstawy Denicja klasy dziedzicz cej
Bardziej szczegółowoWzorce projektowe kreacyjne
Wzorce projektowe kreacyjne Krzysztof Ciebiera 14 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawy Opis Ogólny Podstawowe informacje Wzorce kreacyjne sªu» do uabstrakcyjniania procesu tworzenia obiektów. Znaczenie
Bardziej szczegółowoProgramowanie wspóªbie»ne
1 Programowanie wspóªbie»ne wiczenia 2 semafory cz. 1 Zadanie 1: Producent i konsument z buforem cyklicznym type porcja; void produkuj(porcja &p); void konsumuj(porcja p); porcja bufor[n]; / bufor cykliczny
Bardziej szczegółowoProgram współbieżny jest zbiorem sekwencyjnych PROGRAMOWANIE C++
PROGRAMOWANIE C++ Współdzielenie obiektów w aplikacjach współbieżnych Używanie tych samych obiektów przez różne wątki może prowadzić do niezdefiniowanego zachowania się aplikacji. Obiekty synchronizacyjne
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Wykład 7 - sprytne wskaźniki. 20 kwietnia 2007 Potrzeba współdzielenia kodu źródłowego Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania największego elementu) Szablony mechanizm
Bardziej szczegółowoWspółbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Wykład 9 - powtórzenie. 11 maja 2007 Powtórzenie materiału obiekty automatyczne, statyczne, tymczasowe, dynamiczne dziedziczenie, agregacja polimorfizm, funkcje wirtualne wzorce projektowe (strukturalne,
Bardziej szczegółowoChess. Joanna Iwaniuk. 9 marca 2010
9 marca 2010 Plan prezentacji 1. Co to jest? 2. Jak u»ywa? 3. Prezentacja dziaªania 4. kontrola przeplotów model checking odtwarzanie wadliwego wykonania 5. Ogólna idea Wynik dziaªania Co to jest? program
Bardziej szczegółowoSubversion - jak dziaªa
- jak dziaªa Krótka instrukcja obsªugi lstelmach@gmail.com Stelmisoft 12/07/2010 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 Spis tre±ci Czym jest Czym jest repozytorium 1 Czym jest Czym jest repozytorium
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 6 - szablony. dr inż. Robert Nowak - p. 1/15 Kolekcje i algorytmy» Deklaracja szablonu y Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania
Bardziej szczegółowoANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15
ANALIZA NUMERYCZNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Metoda Eulera 3 1.1 zagadnienia brzegowe....................... 3 1.2 Zastosowanie ró»niczki...................... 4 1.3 Output do pliku
Bardziej szczegółowowykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Historia C++ został zaprojektowany w 1979 przez Bjarne Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i
Bardziej szczegółowo1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Bardziej szczegółowoPROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu
Bardziej szczegółowoPROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.
PROGRAMOWANIE OBIEKTOWE W C++ - cz 1 Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. Program komputerowy opisuje w pewien sposób rzeczywisto.
Bardziej szczegółowoKurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Bardziej szczegółowoSVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows
SVN - wprowadzenie Adam Krechowicz 16 lutego 2013 1 Wprowadzenie do SVN SVN SubVersion jest systemem kontroli wersji pozwalaj cym wielu u»ytkownikom na swobodne wspóªdzielenie tych samych plików. Pozwala
Bardziej szczegółowoListy i operacje pytania
Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik
Bardziej szczegółowoObliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003
Obliczenia równoległe i rozproszone w JAVIE Michał Kozłowski 30 listopada 2003 Wątki w JAVIE Reprezentacja wątków jako obiektów Uruchamianie i zatrzymywanie wątków Realizacja wątków Ograniczenia Mechanizmy
Bardziej szczegółowoBazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego
Bardziej szczegółowoRzut oka na zagadnienia zwi zane z projektowaniem list rozkazów
Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów 1 Wst p Przypomnijmy,»e komputer skªada si z procesora, pami ci, systemu wej±cia-wyj±cia oraz po- ª cze«mi dzy nimi. W procesorze mo»emy
Bardziej szczegółowoWYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH Klasa: 3TIR - Technik informatyk Program: 351203 Wymiar: 4 h tygodniowo Podręcznik: Kwalifikacja E.14 Programowanie
Bardziej szczegółowo1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Bardziej szczegółowoJęzyk C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.
- - uzupełnienie notatek: dr Jerzy Białkowski - - 1-2 - - - 1 #include 2 #include 3 # include 4 using namespace std ; 5 6 class Punkt { 7 8 private : 9 double
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoTemat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).
Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation). 1. Programowanie zdarzeniowe Programowanie zdarzeniowe
Bardziej szczegółowoMechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Bardziej szczegółowoWyjątki. Wyjątki. 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
Bardziej szczegółowoKurs programowania. Wykład 8. Wojciech Macyna
Wykład 8 Program bez watków, jeden procesor, trzy zadania Program z watkami, jeden procesor, trzy zadania Procesory wielordzeniowe, każde zadanie na osobnym procesorze Trzy zadania uruchomione w watkach
Bardziej szczegółowowykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy
i obiekty Programowanie i obiekty uzupełnienie notatek: dr Jerzy Białkowski i obiekty 1 2 3 4 i obiekty Obiektowość języka C++ Na tym wykładzie poznamy: ˆ Klasa (w języku C++ rozszerzenie struktury, typ
Bardziej szczegółowoImi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy
Imi i nazwisko....................................................... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy 21.01.2017 Instrukcja:
Bardziej szczegółowoWstę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:
Bardziej szczegółowoJęzyk C++ wykład VIII
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,
Bardziej szczegółowoProjektowanie klas c.d. Projektowanie klas przykład
Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej
Bardziej szczegółowoDYNAMICZNE PRZYDZIELANIE PAMIECI
DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne
Bardziej szczegółowoProgramowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów
Bardziej szczegółowoLab. 02: Algorytm Schrage
Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z
Bardziej szczegółowoProActive Parallel Suite
ProActive Parallel Suite Grzegorz Chimosz Wydziaª Matematyki, Informatyki i Mechaniki UW 8 stycznia 2009 Spis tre±ci 1 Programowanie wspóªbie»ne i rozproszone Architektura 2 3 Przykªad Bibliograa Programowanie
Bardziej szczegółowoSpis treści. Wprowadzenie 15
Spis treści Wprowadzenie 15 1. Mechanizmy języka C++ 19 1.1. Struktura programu jednostki translacji.................. 21 1.1.1. Składnia tekstu źródłowego...................... 22 1.1.2. Preprocesor...
Bardziej szczegółowoProgramowanie w językach
Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie
Bardziej szczegółowoOprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD
Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD 1. Wprowadzenie DuŜa grupa sterowników mikroprocesorowych wymaga obsługi przycisków, które umoŝliwiają uŝytkownikowi uruchamianie
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)
Bardziej szczegółowoOperacje 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
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoSystemy wbudowane Mikrokontrolery
Systemy wbudowane Mikrokontrolery Budowa i cechy mikrokontrolerów Architektura mikrokontrolerów rodziny AVR 1 Czym jest mikrokontroler? Mikrokontroler jest systemem komputerowym implementowanym w pojedynczym
Bardziej szczegółowoWspółbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoProsta aplikacja klient - serwer na bazie protokoªu UDP. Sprawozdanie.
Prosta aplikacja klient - serwer na bazie protokoªu UDP. Sprawozdanie. Autor Pierwszy, Autor Drugi, Autor Trzeci Stycze«2012r Wy»sza Szkoªa Biznesu w D browie Górniczej Informatyka, I rok Studiów UM Spis
Bardziej szczegółowoProgramowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 9 Katarzyna Grzelak 14 maja 2018 K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe plus
Bardziej szczegółowoDzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton
Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu
Bardziej szczegółowoJę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
Bardziej szczegółowoInstrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX
Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX 1. Pierwsze uruchomienie... 3 2. Ekran podstawowy widok diagramu... 4 3. Menu... 5 - Historia... 5 - Ustawienia... 6 - Ustawienia / Nastawa czasów...
Bardziej szczegółowoJęzyki i Techniki Programowania II. Wykład 7. Współbieżność 1
Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to
Bardziej szczegółowoIMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
Bardziej szczegółowoWyją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.
Bardziej szczegółowoWartości domyślne, szablony funkcji i 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 2012 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowopublic: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje
Zbudujemy klasę Definicję klasy zapiszmy w pliku tstring.h #ifndef TSTRING_H #define TSTRING_H #include // w pliku nagłówkowym NIE // otwieramy przestrzeni std // interfejs private: // implementacja
Bardziej szczegółowoAutor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
Bardziej szczegółowoProgramowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33
Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoAPI transakcyjne BitMarket.pl
API transakcyjne BitMarket.pl Wersja 20140314 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Odpowiedzi serwera... 3 1.5. Przykładowy
Bardziej szczegółowoAnaliza wydajno±ci serwera openldap
Analiza wydajno±ci serwera openldap Autor: Tomasz Kowal 13 listopada 2003 Wst p Jako narz dzie testowe do pomiarów wydajno±ci i oceny konguracji serwera openldap wykorzystano pakiet DirectoryMark w wersji
Bardziej szczegółowo1 Bª dy i arytmetyka zmiennopozycyjna
1 Bª dy i arytmetyka zmiennopozycyjna Liczby w pami ci komputera przedstawiamy w ukªadzie dwójkowym w postaci zmiennopozycyjnej Oznacza to,»e s one postaci ±m c, 01 m < 1, c min c c max, (1) gdzie m nazywamy
Bardziej szczegółowo1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Bardziej szczegółowoW2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :
Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;
Bardziej szczegółowoProgramowanie i struktury danych 1 / 44
Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje
Bardziej szczegółowo1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!
Temat: Klasy typu sealed. Klasy abstrakcyjne. Deklaracja i implementacja interfejsu. Typ Object i operatory is oraz as. Czas ycia obiektu. Destruktory. 1. Klasa typu sealed Przykład 1 Klasa typu sealed
Bardziej szczegółowoProgramowanie równoległe i rozproszone. W1. Wielowątkowość. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone W1. Wielowątkowość Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np.
Bardziej szczegółowoInstrukcja programu PControl Powiadowmienia.
1. Podłączenie zestawu GSM. Instrukcja programu PControl Powiadowmienia. Pierwszym krokiem w celu uruchomienia i poprawnej pracy aplikacji jest podłączenie zestawu GSM. Zestaw należy podłączyć zgodnie
Bardziej szczegółowoWykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest
Bardziej szczegółowoProgramowanie w języku C++
Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Bardziej szczegółowoWstęp do programowania
wykład 6 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji
Bardziej szczegółowoAplikacja wielow tkowa prosty komunikator
Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host
Bardziej szczegółowoKomunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET
PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400, w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci Industrial Ethernet, protokołu
Bardziej szczegółowoSzablony 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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoSzeregowanie zada« Wykªad nr 5. dr Hanna Furma«czyk. 4 kwietnia 2013
Wykªad nr 5 4 kwietnia 2013 Procesory dedykowane Przypomnienie: zadania s podzielone na operacje (zadanie Z j skªada si z operacji O ij do wykonania na maszynach M i, o dªugo±ciach czasowych p ij ); zadanie
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki W językach niskopoziomowych błędy zgłaszane były przez zwracanie odpowiedniego statusu (liczby) W C main() zwraca int żeby można było określić
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoWykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Potrzeba synchronizacji Procesy wykonują się współbieżnie. Jeżeli w 100% są
Bardziej szczegółowoWstę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 8 Przykład realizowany na wykładzie Klasy StringBad i String. Wstępne pliki załaczone jako źródła.
Bardziej szczegółowoWstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)
Języki i Paradygmaty Programowania Laboratorium 1 Obiekty i klasy C++ Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać) UWAGA! Umiejętność tworzenia
Bardziej szczegółowoSpis treści 1. Wstęp 2. Projektowanie systemów informatycznych
Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.
Bardziej szczegółowoSystemy operacyjne III
Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w
Bardziej szczegółowoSystemy mikroprocesorowe - projekt
Politechnika Wrocławska Systemy mikroprocesorowe - projekt Modbus master (Linux, Qt) Prowadzący: dr inż. Marek Wnuk Opracował: Artur Papuda Elektronika, ARR IV rok 1. Wstępne założenia projektu Moje zadanie
Bardziej szczegółowoBazy danych, 4. wiczenia
Bazy danych, 4. wiczenia 2007-10-23 1 Plan zaj PL/SQL, cz ± II: tabele kursory sªu» ce do zmiany danych, procedury, funkcje, pakiety, wyzwalacze. 2 Tabele Deklaracja TYPE t_tab IS TABLE OF VARCHAR(20)
Bardziej szczegółowoSYSTEMY CZASU RZECZYWISTEGO - VxWorks
WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()
Bardziej szczegółowoInsERT GT Własne COM 1.0
InsERT GT Własne COM 1.0 Autor: Jarosław Kolasa, InsERT Wstęp... 2 Dołączanie zestawień własnych do systemu InsERT GT... 2 Sposób współpracy rozszerzeń z systemem InsERT GT... 2 Rozszerzenia standardowe
Bardziej szczegółowoOperacje 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.
Bardziej szczegółowoJęzyk Java wątki (streszczenie)
Programowanie współbieżna Język Java wątki (streszczenie) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Języka Java wątki Autor:
Bardziej szczegółowo