IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG

Wielkość: px
Rozpocząć pokaz od strony:

Download "IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG"

Transkrypt

1 IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG Wydawnictwo Helion ul. Chopina Gliwice tel. (32) TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK CZYTELNIA SPIS TRECI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE C++. Projetowanie systemów informatycznych. Vademecum profesjonalisty Autor: John Laos T³umaczenie: Wojciech Moch (rozdz. 1 4), Micha³ Dadan (rozdz. 5, 6), Rados³aw Mery (rozdz. 7 10, dod. A C) ISBN: Tytu³ orygina³u: Large-Scale C++ Software Design Format: B5, stron: 688 Przy³ady na ftp: 52 B C++ nie jest tylo rozszerzeniem jêzya C, ale wprowadza zupe³nie nowy model programowania. Stopieñ sompliowania C++ mo e byæ przyt³aczaj¹cy nawet dla dowiadczonych programistów C, jedna zazwyczaj nie sprawia im problemów napisanie i uruchomienie ma³ego, niebanalnego programu w C++. Niestety, bra dyscypliny dopuszczalny przy tworzeniu ma³ych programów, zupe³nie nie sprawdza siê w du ych projetach. Podstawowe u ycie technologii C++ nie wystarczy do budowy du ych projetów. Na niezorientowanych czea wiele pu³ape. Ksi¹ a ta opisuje metody projetowania du ych systemów wysoiej jaoci. Adresowana jest do dowiadczonych programistów C++ próbuj¹cych stworzyæ architeturê ³atw¹ w obs³udze i mo liw¹ do ponownego wyorzystania. Nie zawarto w niej teoretycznego podejcia do programowania. W tej si¹ ce znajduj¹ siê pratyczne wsazówi wyp³ywaj¹ce z wieloletnich dowiadczeñ espertów C++ tworz¹cych ogromne systemy wielostanowisowe. Autor poazuje, ja nale y projetowaæ systemy, nad tórymi pracuj¹ seti programistów, s³adaj¹ce siê z tysiêcy las i prawdopodobnie milionów linii odu. W si¹ ce opisano: Tworzenie programów wielopliowych w C++ Konstruowanie omponentów Podzia³ projetu fizycznego na poziomy Ca³owit¹ i czêciow¹ izolacjê, regu³y jej stosowania Tworzenie paietów i ich podzia³ na poziomy Projetowanie funcji Implementowanie metod Dodati do si¹ i opisuj¹ przydatny wzorzec projetowy hierarchiê protoo³ów, implementowanie interfejsu C++ zgodnego ze standardem ANSI C oraz paiet s³u ¹cy do orelania i analizowania zale noci.

2 W.1. Od C do C W.2. Ja używać C++ do tworzenia dużych projetów W.2.1. Zależności cyliczne W.2.2. Nadmierne zależności na etapie onsolidacji...18 W.2.3. Nadmierne zależności na etapie ompilacji W.2.4. Globalna przestrzeń nazw W.2.5. Projet logiczny i fizyczny W.3. Ponowne użycie W.4. Jaość W.4.1. Kontrola jaości W.4.2. Zapewnienie jaości W.5. Narzędzia W.6. Podsumowanie Programy wielopliowe w C Delaracja a definicja Konsolidacja (łączenie) wewnętrzna a zewnętrzna Plii nagłówowe (.h) Plii implementacji (.c) Delaracje typedef Instrucje sprawdzające Kila słów na temat stylu Identyfiatory Nazwy typów Nazwy identyfiatorów sładające się z wielu słów Nazwy sładowych las Kolejność ułożenia sładowych w lasie Iteratory Logiczna notacja projetu Relacja Jest Relacja Używa-W-Interfejsie Relacja Używa-W-Implementacji Relacja Używa Relacje Ma i Trzyma Relacja Był

3 6 C++. Projetowanie systemów informatycznych. Vademecum profesjonalisty 1.7. Dziedziczenie i warstwy Minimalizacja Podsumowanie Przegląd Dostęp do pól lasy Globalna przestrzeń nazw Dane globalne Wolne funcje Wyliczenia, stałe i delaracje typedef Mara preprocesora Nazwy w pliach nagłówowych Kontrola dołączeń Dodatowa ontrola dołączeń Doumentacja Sposoby nazywania identyfiatorów Podsumowanie Komponenty a lasy Reguły projetów fizycznych Relacja ZależyOd Zależności impliowane Wydobywanie rzeczywistych zależności Przyjaźń Przyjaźń na odległość i zależności impliowane Przyjaźń i oszustwo Podsumowanie Metafora dla testowania oprogramowania Złożony podsystem Problemy z testowaniem dobrych interfejsów Projetowanie zorientowane na testowalność Testowanie pojedynczych modułów Acyliczne zależności fizyczne Numery poziomów Źródła numeracji poziomów Używanie numerów poziomów w oprogramowaniu Testowanie hierarchiczne i przyrostowe Testowanie złożonych podsystemów Testowalność ontra testowanie Cyliczne zależności fizyczne Suma zależności omponentów Jaość projetu fizycznego Podsumowanie Nietóre przyczyny cylicznych zależności fizycznych Rozszerzenie Wygoda Wewnętrzna zależność

4 Spis treści Wyniesienie Obniżenie Nieprzezroczyste wsaźnii Głupie dane Redundancja Wywołania zwrotne Klasa-menedżer Fatoring Wynoszenie enapsulacji Podsumowanie Od enapsulacji do izolacji Koszty powiązań na etapie ompilacji Konstrucje w języu C++ a zależności na etapie ompilacji Dziedziczenie (Jest) a zależności na etapie ompilacji Podział na warstwy (Ma/Trzyma) a zależności na etapie ompilacji Funcje inline a zależności na etapie ompilacji Sładowe prywatne a zależności na etapie ompilacji Sładowe chronione a zależności na etapie ompilacji Funcje sładowe generowane przez ompilator a zależności na etapie ompilacji Dyretywy include a zależności na etapie ompilacji Argumenty domyślne a zależności na etapie ompilacji Wyliczenia a zależności na etapie ompilacji Technii częściowej izolacji Rezygnacja z dziedziczenia prywatnego Usuwanie osadzonych danych sładowych Usuwanie prywatnych funcji sładowych Usuwanie sładowych chronionych Usuwanie prywatnych danych sładowych Usuwanie funcji generowanych przez ompilator Usuwanie dyretyw include Usuwanie argumentów domyślnych Usuwanie wyliczeń Technii całowitej izolacji Klasa protoołu W pełni izolująca lasa onretna Izolujące omponenty otaczające Pojedyncze omponenty otaczające Wieloomponentowe warstwy otaczające Interfejs proceduralny Architetura interfejsu proceduralnego Tworzenie i usuwanie nieprzezroczystych obietów Uchwyty Uzysiwanie dostępu do nieprzezroczystych obietów i manipulowanie nimi Dziedziczenie a nieprzezroczyste obiety Izolować czy nie izolować Koszt izolacji Kiedy nie należy izolować Ja izolować Do jaiego stopnia należy izolować Podsumowanie

5 8 C++. Projetowanie systemów informatycznych. Vademecum profesjonalisty 7.1. Od omponentów do paietów Zarejestrowane prefisy paietów Potrzeba stosowania prefisów Przestrzenie nazw Zachowanie integralności paietu Podział paietów na poziomy Znaczenie podziału paietów na poziomy Technii podziału paietów na poziomy Podział systemu Wytwarzanie oprogramowania w wielu ośrodach Izolacja paietów Grupy paietów Proces wydawania oprogramowania Strutura wydania Łaty Program main Faza startu Strategie inicjalizacji Technia przebudzenia w stanie zainicjowania Technia jawnego wywoływania funcji init Technia wyorzystania specjalnego licznia Technia sprawdzania za ażdym razem Porządowanie Przegląd Podsumowanie Abstracje i omponenty Projet interfejsu omponentu Poziomy enapsulacji Pomocnicze lasy implementacyjne Podsumowanie Specyfiacja interfejsu funcji Operator czy metoda? Wolny operator czy sładowa lasy? Metoda wirtualna czy niewirtualna? Metoda czysto wirtualna czy nie czysto wirtualna? Metoda statyczna czy niestatyczna? Metody stałe czy modyfiowalne? Metody publiczne, chronione czy prywatne Zwracanie wyniu przez wartość, referencję czy wsaźni? Zwracanie wartości typu const czy nie-const? Argument opcjonalny czy obowiązowy? Przeazywanie argumentów przez wartość, referencję lub wsaźni Przeazywanie argumentów jao const lub nie-const Funcja zaprzyjaźniona czy niezaprzyjaźniona? Funcja inline czy nie inline?

6 Spis treści Typy podstawowe użyte w interfejsie Użycie typu short w interfejsie Użycie walifiatora unsigned w interfejsie Zastosowanie typu long w interfejsie Zastosowanie typów float, double oraz long double w interfejsie Funcje specjalnego przeznaczenia Operatory onwersji Semantya wartości generowanych przez ompilator Destrutor Podsumowanie Pola Wyrównanie naturalne Użycie typów podstawowych w implementacji Użycie onstrucji typedef w implementacji Definicje funcji Samoontrola Unianie przypadów szczególnych Podział zamiast powielania Zbytnia przebiegłość nie popłaca Zarządzanie pamięcią Wartości stanu logicznego i fizycznego Parametry fizyczne Systemy przydziału pamięci Zarządzanie pamięcią na poziomie lasy Dodawanie własnych mechanizmów zarządzania pamięcią Zabloowana pamięć Zarządzanie pamięcią na poziomie obietu Użycie szablonów w dużych projetach Implementacje szablonów Zarządzanie pamięcią w szablonach Wzorce a szablony Podsumowanie Protocol Hierarchy strutury las Cel Znany też jao Motywacja Zares zastosowania Strutura Elementy sładowe Współpraca Konsewencje Implementacja Przyładowy od Znane zastosowania Porewne wzorce

7 10 C++. Projetowanie systemów informatycznych. Vademecum profesjonalisty B.1. Wyrywanie błędu aloacji pamięci B.2. Definiowanie procedury main (tylo ANSI C) C.1. Korzystanie z poleceń adep, cdep i ldep C.2. Doumentacja wiersza polecenia C.3. Architetura paietu idep C.4. Kod źródłowy D.1. Definicje D.2. Główne reguły projetowe D.3. Poboczne reguły projetowe D.4. Wsazówi D.5. Zasady

8 Rozdział 9. Celem projetowania funcji jest zapewnienie łatwego i wydajnego dostępu do operacji zdefiniowanych przez abstrację. Języ C++ zapewnia swobodę definiowania interfejsu na poziomie funcji. Czy funcja ma być operatorem, metodą lub wolnym operatorem, w jai sposób będą przeazywane argumenty oraz w jai sposób będą przeazywane wynii to elementy należące do tego etapu procesu projetowania. Styl programowania to tylo jeden z elementów, tóre odgrywają rolę w podejmowaniu tego typu decyzji projetowych. Wiele z nich zostanie omówionych w niniejszym rozdziale. W języu C++ mamy do dyspozycji wiele odmian podstawowych typów reprezentujących liczby całowite (ja np.,, itp.). Typy te zapewniają dodatową swobodę. Nierozważne ich wyorzystanie może sompliować lub nawet osłabić interfejs. Operator onwersji dla typów definiowanych przez użytownia umożliwia ompilatorowi wyonywanie niejawnej onwersji na lub z typu definiowanego przez użytownia. Uważne projetowanie wymaga przeanalizowania możliwych zalet niejawnej onwersji w zestawieniu z niejednoznacznościami oraz możliwością powstania błędów w związu z obniżeniem bezpieczeństwa typów. Nietóre inne funcje, w przypadu gdy nie zostaną oreślone jawnie, gdy zajdzie taa potrzeba mogą być zdefiniowane automatycznie przez ompilator. Podjęcie decyzji dotyczących dopuszczalności generowania definicji funcji przez ompilator wymaga uważnej analizy. W tym rozdziale opiszemy szielet projetowania interfejsu omponentu na poziomie pojedynczej funcji. Omówimy obszerną przestrzeń projetową dostępną dla autorów omponentów i wsażemy decyzje projetowe, tóre są orzystne lub nieorzystne. Przeonamy się, ile poziomów swobody w przestrzeni projetu interfejsu funcji można wyeliminować bez strat w suteczności. Uzysany szielet pomoże nam opracowywać interfejsy prostsze, bardziej jednolite i łatwiejsze do utrzymania.

9 462 Część III Zagadnienia dotyczące projetu logicznego Zgodnie z podstawowymi zasadami przedstawionymi w rozdziale 2., podczas oreślania interfejsu funcji w języu C++ należy zwrócić uwagę na ila aspetów: Czy funcja jest operatorem, czy nim nie jest? Czy jest wolnym operatorem, czy elementem sładowym lasy? Czy jest to metoda wirtualna, czy niewirtualna? Czy jest to metoda czysto wirtualna, czy też nie czysto wirtualna? Metoda stała czy modyfiowalna? Metoda typu czy nie-? Metoda publiczna (), chroniona () czy prywatna ()? Wyni zwracany przez wartość, referencję czy wsaźni? Zwracany wyni typu czy nie-? Argument opcjonalny czy obowiązowy? Argumenty przeazywane przez wartość, referencję czy wsaźni? Przeazywane argumenty typu czy nie-? Istnieją taże dwa aspety dotyczące organizacji, tóre należy wziąć pod uwagę, pomimo tego, że nie są one częścią logicznego interfejsu: Czy jest to funcja zaprzyjaźniona, czy też nie? Funcja typu inline, czy nie typu inline? Pomiędzy tymi aspetami istnieje wiele wzajemnych zależności. Zazwyczaj odpowiedź na jedno z pytań ma wpływ na odpowiedź na inne. W dalszej części niniejszego rozdziału omówimy wymienione zagadnienia osobno i podamy wsazówi umożliwiające podjęcie optymalnych decyzji projetowych 1. Oprócz operatorów generowanych przez ompilator (np. przypisania), jedynym powodem utworzenia z funcji operatora jest wygodna notacja wewnątrz lientów. Zwróćmy uwagę, że inaczej niż w przypadu notacji typowej dla funcji, notacja operatorowa nie zależy od ontestu wywołanie funcji w wyniu interpretacji operatora wywołanego przez metodę będzie taie samo ja w przypadu wywołania w zasięgu pliu 2. Rozważne wyorzystywanie przeciążania operatorów ma naturalną i oczywistą przewagę nad notacją funcyjną w szczególności w przypadu typów logicznych i arytmetycznych definiowanych przez użytownia. 1 Zobacz też meyers, pozycja 19, str ellis, punt , str. 332.

10 Rozdział 9. Projetowanie funcji 463 Przeanalizujmy dwa różne modele sładni poazane na listingu 9.1 odpowiadające dwóm różnym interfejsom dla omponentu zbioru liczb całowitych. Na listingu 9.1a poazano suteczny sposób zastosowania notacji operatorowej. Natura abstracji zbioru powoduje, że znaczenie tych operatorów staje się intuicyjne nawet dla tych programistów, tórzy nie znają poazywanego omponentu. Na listingu 9.1b poazano odpowiedni sładni z zastosowaniem bardziej nieporęcznej notacji funcyjnej 3. Dwa modele sładni dla abstracji zbioru liczb całowitych (a) z przeciążaniem operatorów (b) bez przeciążania operatorów Podstawowym powodem stosowania mechanizmu przeciążania operatorów powinna być czytelność (w więszym stopniu niż łatwość używania). 3 Nietóre metody zdefiniowano jao statyczne, aby umożliwić tę samą symetryczną niejawną onwersję argumentów, ja w przypadu odpowiadających im operatorów (patrz punt 9.1.5). Styl aapitów głęboo zagnieżdżonych wywołań funcji na rysunu 9.1b zapożyczono z taich języów, ja LISP i CLOS, gdzie taie onstrucje występują bardzo często.

11 464 Część III Zagadnienia dotyczące projetu logicznego W omawianej apliacji obsługi zbioru liczb całowitych notacja operatorowa w oczywisty sposób poprawia zarówno czytelność, ja też łatwość używania. Przez czytelność rozumiemy zdolność inżyniera oprogramowania do rozróżniania w szybi i precyzyjny sposób znanego odu treści funcji od nieznanego odu źródłowego. Łatwość używania dotyczy tego, ja łatwo programista może sutecznie wyorzystać obiet w celu utworzenia nowego oprogramowania. Zazwyczaj od źródłowy odczytuje się więcej razy, niż się go zapisuje ( w przypadu więszości dużych, wyorzystywanych przez długi ores czasu systemów oprogramowania, oszty utrzymania przeraczają oszty wytwarzania od 2 do 4 razy 4 ). Semantya przeciążonych operatorów powinna być naturalna, oczywista i intuicyjna dla lientów. Podczas projetowania często można otrzymać zgrabne i łatwe w użyciu apliacje operatorów, tóre nie mają intuicyjnego znaczenia dla programistów, nie znających naszego omponentu. Nierozsądne stare przyzwyczajenia, ja np. zdefiniowanie jednoargumentowego operatora jao sładowej lasy w celu odwrócenia olejności znaów w ciągu, jest nie na miejscu w środowisu projetowym dużej sali. Papieriem lamusowym odpowiadającym na pytanie czy zastosować notację operatorową powinno być stwierdzenie, czy istnieje naturalne i intuicyjne znaczenie natychmiast zrozumiałe dla nowych lientów, tóre poprawia poziom czytelności (lub przynajmniej go nie pogarsza) 5. Syntatyczne właściwości przeciążonych operatorów dla typów definiowanych przez użytownia powinny być lustrzaną opią właściwości zdefiniowanych dla typów podstawowych. Na poziomie semantycznym dość trudno dostarczyć szczegółowych wsazówe odnośnie tego co jest, a co nie jest intuicyjne. Jedna na poziomie syntatycznym, biorąc za podstawę implementację podstawowych typów języa, można sformułować ila zdecydowanych i dobrze zdefiniowanych stwierdzeń. Wzorowanie syntatycznych właściwości operatorów zdefiniowanych przez użytownia na predefiniowanych operatorach C++ pozwala na uninięcie niespodziane i sprawia, że sposób ich używania jest łatwiejszy do przewidzenia. W języu C++ ażde wyrażenie ma wartość. Istnieją dwa podstawowe typy wartości tzw. lwartości (ang. lvalue) oraz pwartości (ang. rvalue) 6. Lwartość to taa wartość, dla tórej można wyznaczyć adres. Jeżeli lwartość może się znaleźć po lewej stronie wyrażenia przypisania, mówi się o niej, że jest modyfiowalna, w innym przypadu oreśla się ją jao lwartość niemodyfiowalną 7. Do pwartości nie można przypisać wartości, ani 4 sommerville, punt 1.2.1, str Patrz też cargill, rozdział 5., str Pojęcia te pochodzą z lasycznego języa C: pojęcie lwartość oznacza, że wartość wyrażenia może się znaleźć po lewej stronie instrucji przypisania, natomiast pwartość może się znaleźć wyłącznie po jej prawej stronie. Wraz z pojawieniem się onstrucji w języu C++ i ANSI C, lwartości dzieli się teraz na dwie odmiany: modyfiowalne i niemodyfiowalne (patrz stroustrup, punt 2.1.2, str ). 7 ellis, podrozdział 3.7, str

12 Rozdział 9. Projetowanie funcji 465 nie można pobrać jej adresu 8. Najprostszą lwartością jest identyfiator zmiennej. Jeżeli zmienna nie jest zadelarowana jao, jest to lwartość modyfiowalna. Nietóre operatory, ja np. operator przypisania () i jego odmiany ( ), preinrementacji () i prederementacji () zastosowane do typów podstawowych, zwracają modyfiowalne lwartości. Operatory te zawsze zwracają zapisywalną referencję do modyfiowanego argumentu. Np. hipotetyczna definicja operatorów dla podstawowego typu (w przypadu jego implementacji jao lasy C++) może mieć postać taą, ja poazano na listingu 9.2. Hipotetyczna implementacja podstawowego typu double 8 Pola bitowe są wyjątiem w tym sensie, że mogą się znaleźć po lewej stronie wyrażenia przypisania, ale zgodnie z ARM (ellis, podrozdział 9.6, str. 184) nie można wyznaczyć ich adresu. Zasada ta dotyczy taże zmiennych tymczasowych typów zdefiniowanych przez użytownia, tóre nie posiadają nazwy (patrz punt 9.1.2).

13 466 Część III Zagadnienia dotyczące projetu logicznego Inne operatory poazane na listingu 9.2 zwracają pwartość, ponieważ nie ma możliwości zwrócenia odpowiedniej lwartości. W przypadu symetrycznych operatorów binarnych (ja np. oraz ) wartość do zwrócenia nie jest ani argumentem lewym, ani prawym, ale nową wartością uzysaną na podstawie obydwu, a zatem wyni musi być zwrócony przez wartość 9. Operatory równości (, ) oraz operatory relacyjne (,,, ) zawsze zwracają pwartość typu o wartości 0 lub 1, a zatem i w tym przypadu żaden z argumentów wejściowych nie jest odpowiednią wartością do zwrócenia. Operatory postinrementacji i postderementacji to interesujący przypade specjalny w tym sensie, że są to jedyne operatory, tóre modyfiują obiet, a zatem nie ma odpowiedniej lwartości do zwrócenia: Jao bardziej subtelny przyład przeanalizujmy dwa modele sładni odpowiadające abstracji ogólnej tabeli symboli, poazane na listingu 9.3. W obu przypadach na podstawie parametru typu tworzona jest tabela symboli, dodawane są dwa symbole, a następnie poszuuje się parametru foo według nazwy. Ponieważ możliwe jest, że w tabeli nie ma symbolu o oreślonej nazwie, zatem funcja wyszuująca nie powinna zwracać wyniu przez wartość, ani przez referencję ta więc wyni jest zwracany przez wsaźni (zwróćmy uwagę na to, w jai sposób i do jaiego stopnia wyorzystano zalety enapsulacji). Porównajmy tę sytuację z zastosowaniem operatora w odniesieniu do tablicy wartości. Spodziewamy się uzysać referencję do poindesowanej wartości, nie zaś wsaźni, tóry może mieć wartość. Ta różnica w sładni pomiędzy zastosowaniem operatora na listingu 9.3a oraz zastosowaniem operatora dla typów podstawowych powoduje, że notacja z wywołaniem funcji poazana na listingu 9.3b jest w tym przypadu lepsza. Zarezerwowanie notacji operatorowej dla tych przypadów, iedy sładnia stanowi lustrzane odbicie odpowiadającej jej sładni dla typów podstawowych, wzmacnia suteczność przeciążania operatorów. Dwa modele sładni dla abstracji ogólnej tabeli symboli (a) z przeciążaniem operatorów (b) bez przeciążania operatorów Na listingu 9.4. zestawiono delaracje więszości operatorów języa C++ w postaci, w jaiej użyto by ich w odniesieniu do podstawowych typów języa (podstawowe operatory nie dają zbyt wielu informacji). 9 Bardziej szczegółowe objaśnienie znajduje się w meyers, pozycja 23, str

14 Rozdział 9. Projetowanie funcji 467 Podsumowanie właściwości nietórych podstawowych operatorów Zwróćmy uwagę, że operatory jednoargumentowe, tóre nie modyfiują argumentów, nie muszą być sładowymi. Przyładowo, jednoargumentowy operator z powodzeniem działa dla typu zdefiniowanego przez użytownia, ja np., pomimo tego, że dla tego typu nie zdefiniowano operatora : Kod poazany powyżej działa dlatego, ponieważ typ wie, w jai sposób ma się przeształcić na podstawowy typ (), dla tórego zdefiniowano operator. Gdyby operator potratowano jao sładową hipotetycznej definicji lasy, nie można byłoby wyonać zdefiniowanej przez użytownia onwersji, a wyonanie poazanego powyżej odu zaończyłoby się błędem ompilacji. Aby wyłączyć możliwość niejawnej onwersji argumentów wolnego jednoargumentowego operatora, należy zdefiniować operację jao metodę np. zamiast operatora Patrz też murray, podrozdział 2.5, str. 44.

15 468 Część III Zagadnienia dotyczące projetu logicznego Decyzja dotycząca tego, czy funcja definiująca operator ma być sładową lasy, czy wolną funcją, zależy od tego, czy pożądana jest niejawna onwersja typu srajnego lewego operandu. Jeżeli operator modyfiuje ten operand, wówczas taa onwersja nie jest pożądana. Języ C++ sam w sobie jest obietywnym i właściwym standardem, według tórego należy modelować operatory definiowane przez użytownia. Efet implementacji operator+= jao wolnej funcji Zastanówmy się nad tym, co mogłoby się zdarzyć, gdybyśmy zdefiniowali operator onatenacji () dla lasy jao wolną funcję, zamiast emulacji podejścia zapożyczonego z typów podstawowych. Zgodnie z tym, co poazano na rysunu 9.1, utworzenie operatora jao wolnej funcji umożliwiło niejawną onwersję jego lewego operandu na tymczasowy obiet (oznaczony tu jao ) o wartości foo. Chociaż w przypadu typów podstawowych ta zmienna tymczasowa byłaby pwartością, to właśnie do tymczasowego obietu dołączono wartość bar (bez powstania błędu ompilacji) 11. Ponieważ taie działanie zasoczyłoby i zdenerwowało użytowniów, dobrze byłoby, aby je wyłączyć. 11 Obecnie w języu C++ dozwolone jest modyfiowanie nienazwanych tymczasowych zmiennych typu zdefiniowanego przez użytownia nieposiadających nazwy. Patrz murray, punt 2.7.3, str

16 Rozdział 9. Projetowanie funcji 469 Z drugiej strony spodziewamy się, że nietóre operatory (np. oraz ) będą działać bez względu na olejność ich argumentów. Przeanalizujmy operator, tóry służy do onatenacji dwóch ciągów znaów i zwraca wyni swojego działania przez wartość. Języ C++ pozwala na zdefiniowanie operatora jao sładowej lub niesładowej. To samo dotyczy operatora. Jeżeli zdecydujemy się na zdefiniowanie tych operatorów jao sładowych, wówczas narazimy się na możliwość następującego, nienormalnego działania naszych lientów: Problem polega na tym, że delaracje: oraz umożliwiają niejawną onwersję typu na po prawej stronie za pomocą onstrutora następującej postaci: natomiast taa onwersja dla argumentu po lewej stronie nie jest możliwa 12. Jeżeli operatory te będą wolne, problem symetrii dla lasy zostanie rozwiązany, do czasu dodania operatora onwersji: Na listingu 9.5 poazano problem powstały w wyniu dodania operatora onwersji (rzutowania) z typu na. Co jest dość dziwne, dwa niewątpliwie podobne operatory oraz nie są identyczne pod względem przeciążania, w co (niestety naiwnie) chcielibyśmy wierzyć. Różnica polega na tym, że teraz istnieją dwa sposoby interpretacji operatora : Jawna onwersja typu na i porównanie za pomocą. Niejawna onwersja typu na i porównanie za pomocą wbudowanego operatora dla typów wsaźniowych. Tai problem nie istnieje dla operatora, ponieważ w języu C++ nie ma sposobu dodania dwóch typów wsaźniowych i dlatego w tym przypadu nie ma niejednoznaczności. 12 ellis, punt , str. 333.

17 470 Część III Zagadnienia dotyczące projetu logicznego Niejednoznaczności wyniające z zastosowania dwóch operatorów onwersji W przypadu lasy wyorzystywanej w pratyce nie będziemy polegać na niejawnej onwersji w celu uzysania wartości znaowej, ze względu na obawę, że taa dodatowa onstrucja i destrucja spowoduje zbytni spade wydajności. Zamiast tego zdefiniujemy osobne przeciążone wersje operatora, tórych zadaniem będzie ja najbardziej wydajna obsługa ażdej z trzech możliwości, a tym samym rozwiązanie problemów niejednoznaczności. Niespójności powstałe w wyniu przeciążania operatorów mogą być oczywiste, denerwujące i osztowne dla użytowniów. Zgodnie z tym, co poazano na listingu 9.6, dla umożliwienia zaaceptowania wartości po lewej stronie operatora jesteśmy zmuszeni do zdefiniowania co najmniej jednej z funcji operatorów porównania jao wolnej funcji. Wyni zaimplementowania operatora == jao funcji sładowej

18 Rozdział 9. Projetowanie funcji 471 Na czym polega problem zdefiniowania jednej wersji funcji jao sładowej w przypadu, gdy zdefiniowano wszystie trzy wersje tego operatora? Otóż problem polega na tym, że bra symetrii mógłby zasoczyć użytowniów. W przypadu gdy jeden obiet może być niejawnie przeształcony na, a drugi na, spodziewamy się, że porząde porównania jest nieistotny. Jeżeli zatem onstrucja ompiluje się bez problemów, podobnie powinno być w przypadu zapisu (wynii wyonania obu onstrucji powinny być identyczne). Jedna jeżeli wersja: nie będzie dostępna jao wolna funcja, wówczas nie będzie sposobu przeprowadzenia następującej onwersji:

19 472 Część III Zagadnienia dotyczące projetu logicznego Wniose jest tai, że operator zawsze powinien być zdefiniowany jao wolna funcja niezależnie od zastosowania innych funcji. Te same powody dotyczą innych operatorów dwuargumentowych, tóre nie modyfiują żadnego z operandów i zwracają swój wyni przez wartość. Przyład, jai daje sam języ, jest bezstronnym i użytecznym modelem, tóry może służyć lientom do tworzenia podstawowych syntatycznych i asjomatycznych właściwości operatorów. Celem modelowania podstawowych operacji nie jest umożliwianie niejawnych onwersji samo w sobie, ale raczej zapewnienie symetrii po to, by uninąć niespodziane. W przypadu zastosowania przeciążania operatorów w szeroim zaresie należy się spodziewać, że abstracja może być wyorzystywana wielorotnie w wielu sytuacjach. Użytownicy omponentów wielorotnego użytu docenią spójny i profesjonalny interfejs niezależnie od syntatycznych niespodziane. Zwróćmy uwagę na to, że w języu C++ wymagane jest, aby zdefiniować jao sładowe następujące operatory 13 : przypisania, indesu, dostępu do sładowej lasy, wywołania funcji, onwersji, przydział pamięci (statyczny), zwolnienie pamięci (statyczne). Dynamiczne wiązanie umożliwia definiowanie metod, do tórych dostęp odbywa się za pomocą lasy podstawowej, przez rzeczywisty podtyp obietu, w odróżnieniu do typu wsaźnia lub referencji użytej w wywołaniu. W celu zapewnienia dynamicznego wiązania funcję należy zadelarować jao wirtualną (). W języu C++ wirtualne mogą być tylo metody. Jedna wniose, że polimorficzne działanie operatora wymaga, aby stał się funcją sładową, gdy w innym przypadu byłby wolną funcją, jest błędny. W celu osiągnięcia polimorficznego działania operatorów nie trzeba naruszać zagadnień syntatycznych, ja np. symetrycznej niejawnej onwersji operatorów dwuargumentowych. Na rysunu 9.2 poazano, w jai sposób operatory symetryczne mogą i powinny pozostać operatorami wolnymi pomimo zastosowania poliformizmu. Zamiast przeształcania ażdego z sześciu operatorów porównań i relacji na wirtualne metody lasy, opracowano jedną wirtualną metodę porównawczą. Te sześć operatorów w dalszym ciągu będzie działać symetrycznie bez względu na niejawną onwersję dowolnego typu. 13 ellis, podrozdział 12.3c, str. 306; stroustrup94, punt 3.6.2, str

20 Rozdział 9. Projetowanie funcji 473 Polimorficzne porównanie figur geometrycznych za pomocą wolnych operatorów Operatory porównań często mają sens nawet wtedy, gdy operatory relacji nie mają sensu (weźmy pod uwagę abstrację puntu). Czasami sortowanie heterogenicznych olecji pozwala na uzysanie wydajniejszego dostępu. W taich przypadach przydaje się wyorzystanie porządowania (dowolnego typu). Wirtualna metoda poazana na rysunu 9.2 pozwala na zdefiniowanie własnego identyfiatora typu fazy wyonania 14. Dzięi wyorzystaniu tego identyfiatora można sortować figury tego samego typu wyorzystując zdefiniowany dla nich indywidualny porząde, natomiast sortowanie innych typów można zdefiniować za pomocą innego (zupełnie dowolnego) porównania. Implementację lasy wyorzystywanej do porządowania figur poazano na listingu 9.7. Metody wirtualne implementują różnice w działaniu, natomiast pola różnice w wartościach. 14 Patrz ellis, podrozdział 10.2, str

MODYFIKACJA KOSZTOWA ALGORYTMU JOHNSONA DO SZEREGOWANIA ZADAŃ BUDOWLANYCH

MODYFIKACJA KOSZTOWA ALGORYTMU JOHNSONA DO SZEREGOWANIA ZADAŃ BUDOWLANYCH MODYFICJ OSZTOW LGORYTMU JOHNSON DO SZEREGOWNI ZDŃ UDOWLNYCH Michał RZEMIŃSI, Paweł NOW a a Wydział Inżynierii Lądowej, Załad Inżynierii Producji i Zarządzania w udownictwie, ul. rmii Ludowej 6, -67 Warszawa

Bardziej szczegółowo

A i A j lub A j A i. Operator γ : 2 X 2 X jest ciągły gdy

A i A j lub A j A i. Operator γ : 2 X 2 X jest ciągły gdy 3. Wyład 7: Inducja i reursja struturalna. Termy i podstawianie termów. Dla uninięcia nieporozumień notacyjnych wprowadzimy rozróżnienie między funcjami i operatorami. Operatorem γ w zbiorze X jest funcja

Bardziej szczegółowo

TEORIA OBWODÓW I SYGNAŁÓW LABORATORIUM

TEORIA OBWODÓW I SYGNAŁÓW LABORATORIUM EORI OBWODÓW I SYGNŁÓW LBORORIUM KDEMI MORSK Katedra eleomuniacji Morsiej Ćwiczenie nr 2: eoria obwodów i sygnałów laboratorium ĆWICZENIE 2 BDNIE WIDM SYGNŁÓW OKRESOWYCH. Cel ćwiczenia Celem ćwiczenia

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści kierunkowych, moduł kierunkowy ogólny Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU METODY

Bardziej szczegółowo

1. 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ść 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ółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

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ę

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Wpływ zamiany typów elektrowni wiatrowych o porównywalnych parametrach na współpracę z węzłem sieciowym

Wpływ zamiany typów elektrowni wiatrowych o porównywalnych parametrach na współpracę z węzłem sieciowym Wpływ zamiany typów eletrowni wiatrowych o porównywalnych parametrach na współpracę z węzłem sieciowym Grzegorz Barzy Paweł Szwed Instytut Eletrotechnii Politechnia Szczecińsa 1. Wstęp Ostatnie ila lat,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Szablony funkcji i szablony klas

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

Bardziej szczegółowo

Komputerowa reprezentacja oraz prezentacja i graficzna edycja krzywoliniowych obiektów 3d

Komputerowa reprezentacja oraz prezentacja i graficzna edycja krzywoliniowych obiektów 3d Komputerowa reprezentacja oraz prezentacja i graficzna edycja rzywoliniowych obietów 3d Jan Prusaowsi 1), Ryszard Winiarczy 1,2), Krzysztof Sabe 2) 1) Politechnia Śląsa w Gliwicach, 2) Instytut Informatyi

Bardziej szczegółowo

MySQL. Æwiczenia praktyczne

MySQL. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG MySQL. Æwiczenia praktyczne Autor: Marek Nowakowski ISBN: 83-7197-884-7 Format: B5, stron: 114 TWÓJ KOSZYK DODAJ

Bardziej szczegółowo

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykł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ółowo

Programowanie (C++) NI 5

Programowanie (C++) NI 5 Forma kształcenia i sposób weryfikacji efektów kształcenia Efekty kształcenia WYDZIAŁ FIZYKI UwB kierunek studiów: FIZYKA specjalność: FIZYKA KOD USOS: 0900 FS1 2 PRO Karta przedmiotu Przedmiot moduł ECTS

Bardziej szczegółowo

Część I Programowanie niskiego poziomu w języku C 19

Część I Programowanie niskiego poziomu w języku C 19 Spis treści Przedmowa 13 Wstęp 15 Część I Programowanie niskiego poziomu w języku C 19 Wprowadzenie 21 1 Typy 23 1.1 Fundamentalne typy danych...................... 23 1.2 Typy pochodne.............................

Bardziej szczegółowo

Dziedziczenie jednobazowe, poliformizm, tablice wskaźników na obiekty

Dziedziczenie jednobazowe, poliformizm, tablice wskaźników na obiekty Dziedziczenie jednobazowe, poliformizm, tablice wskaźników na obiekty 1. Polimorfizm (1) tablice wskaźników na obiekty 2. Polimorfizm (2) tablice wskaźników na obiekty 3. Polimorfizm (3) tablice wskaźników

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

HIERARCHICZNY SYSTEM ZARZĄDZANIA RUCHEM LOTNICZYM - ASPEKTY OCENY BEZPIECZEŃSTWA

HIERARCHICZNY SYSTEM ZARZĄDZANIA RUCHEM LOTNICZYM - ASPEKTY OCENY BEZPIECZEŃSTWA Jace Sorupsi Hierarchiczny system Zarządzania ruchem lotniczym aspety oceny bezpieczeństwa, Logistya (ISSN 1231-5478) No 6, Instytut Logistyi i HIERARCHICZNY SYSTEM ZARZĄDZANIA RUCHEM LOTNICZYM - ASPEKTY

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Język ludzki kod maszynowy

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

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

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

Bardziej szczegółowo

Metody komputerowe i obliczeniowe Metoda Elementów Skoczonych. Element jednowymiarowy i jednoparametrowy : spryna

Metody komputerowe i obliczeniowe Metoda Elementów Skoczonych. Element jednowymiarowy i jednoparametrowy : spryna Metody omputerowe i obliczeniowe Metoda Elementów Soczonych Element jednowymiarowy i jednoparametrowy : spryna Jest to najprostszy element: współrzdne loalne i globalne jego wzłów s taie same nie potrzeba

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Matematyka z komputerem dla gimnazjum

Matematyka z komputerem dla gimnazjum IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWO CIACH ZAMÓW CENNIK CZYTELNIA SPIS TRE CI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

Paradygmaty programowania

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

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Algorytmy i programowanie Algorithms and Programming Kierunek: Zarządzanie i Inżynieria Produkcji Rodzaj przedmiotu: kierunkowy Poziom studiów: studia I stopnia forma studiów: studia

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

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

Bardziej szczegółowo

Prognozowanie notowań pakietów akcji poprzez ortogonalizację szeregów czasowych 1

Prognozowanie notowań pakietów akcji poprzez ortogonalizację szeregów czasowych 1 Prognozowanie notowań paietów acji poprzez ortogonalizację szeregów czasowych Andrzej Kasprzyci. WSĘP Dynamię rynu finansowego opisuje się indesami agregatowymi: cen, ilości i wartości. Indes giełdowy

Bardziej szczegółowo

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Typy danych, zmienne i tablice. Tomasz Borzyszkowski Typy danych, zmienne i tablice Tomasz Borzyszkowski Silne typy Javy Java jest językiem wyposażonym w silny system typów. Wywodzi się stąd siła i bezpieczeństwo tego języka. Co to znaczy silny system typów?

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

C++ - [1-3] Debugowanie w Qt Creator

C++ - [1-3] Debugowanie w Qt Creator Slajd 1 z 10 C++ - [1-3] Debugowanie w Qt Creator Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 15 maja 2013 r. Slajd 2 z 10 Pojęcia związane z debugowaniem DEBUGOWANIE (z ang. debugging odrobaczanie)

Bardziej szczegółowo

Języki i paradygmaty programowania

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

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

C++. Leksykon kieszonkowy

C++. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK CZYTELNIA SPIS TRECI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Mariusz Jankowski autor strony internetowej poświęconej Excelowi i programowaniu w VBA; Bogdan Gilarski właściciel firmy szkoleniowej Perfect And Practical;

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

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

Bardziej szczegółowo

Abstrakcyjny typ danych

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ą

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 2 Podstawy programowania 2 Temat: Zmienne dynamiczne tablica wskaźników i stos dynamiczny Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Tablice wskaźników Tablice

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny semestr III, studia stacjonarne I stopnia Rok akademicki 2015/2016 Pracownia nr 1 (21/23.09.2015) Rok akademicki 2015/2016, Pracownia nr 1 2/22

Bardziej szczegółowo

10. Programowanie obiektowe w PHP5

10. Programowanie obiektowe w PHP5 Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE

Bardziej szczegółowo

Modelowanie procesów współbieżnych

Modelowanie procesów współbieżnych Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.

Bardziej szczegółowo

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę*

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę* WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW 33/01 KARTA PRZEDMIOTU Nazwa w języku polskim: Programowanie w języku C Nazwa w języku angielskim C language programming Kierunek studiów (jeśli

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Podstawy programowania.

Podstawy programowania. Kod przedmiotu: PPR Podstawy programowania. Rodzaj przedmiotu: kierunkowy; obowiązkowy Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): - Poziom studiów: pierwszego stopnia Profil

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

OpenOffice.ux.pl 2.0. Æwiczenia praktyczne

OpenOffice.ux.pl 2.0. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG OpenOffice.ux.pl 2.0. Æwiczenia praktyczne Autor: Maria Sokó³ ISBN: 83-246-0508-8 Format: A5, stron: 220 TWÓJ

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

WAHADŁO SPRĘŻYNOWE. POMIAR POLA ELIPSY ENERGII.

WAHADŁO SPRĘŻYNOWE. POMIAR POLA ELIPSY ENERGII. ĆWICZENIE 3. WAHADŁO SPRĘŻYNOWE. POMIAR POLA ELIPSY ENERGII. 1. Oscylator harmoniczny. Wprowadzenie Oscylatorem harmonicznym nazywamy punt materialny, na tóry,działa siła sierowana do pewnego centrum,

Bardziej szczegółowo

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu obowiązuje w roku akademickim 01/013 Kierunek studiów: Informatyka Forma studiów: Stacjonarne Profil:

Bardziej szczegółowo

ELEKTROTECHNIKA I ELEKTRONIKA

ELEKTROTECHNIKA I ELEKTRONIKA UNIWERSYTET TECHNOLOGICZNO-PRZYRODNICZY W BYDGOSZCZY WYDZIŁ INŻYNIERII MECHNICZNEJ INSTYTUT EKSPLOTCJI MSZYN I TRNSPORTU ZKŁD STEROWNI ELEKTROTECHNIK I ELEKTRONIK ĆWICZENIE: E2 POMIRY PRĄDÓW I NPIĘĆ W

Bardziej szczegółowo

AutoCAD 2005. Pierwsze kroki

AutoCAD 2005. Pierwsze kroki IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG AutoCAD 2005. Pierwsze kroki Autor: Andrzej Pikoñ ISBN: 83-7361-581-4 Format: B5, stron: 216 TWÓJ KOSZYK CENNIK

Bardziej szczegółowo

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

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++ Jednostka prowadząca: Wydział Techniczny Kierunek studiów: Elektronika i telekomunikacja Nazwa przedmiotu: Język programowania C++ Charakter przedmiotu: podstawowy, obowiązkowy Typ studiów: inŝynierskie

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,

Bardziej szczegółowo

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

Bardziej szczegółowo

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład I I Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Zaliczenie przedmiotu Na laboratorium można zdobyć 100 punktów. Do zaliczenia niezbędne jest

Bardziej szczegółowo

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się

Bardziej szczegółowo

Ćw. 5. Badanie ruchu wahadła sprężynowego sprawdzenie wzoru na okres drgań

Ćw. 5. Badanie ruchu wahadła sprężynowego sprawdzenie wzoru na okres drgań KAEDRA FIZYKI SOSOWANEJ PRACOWNIA 5 FIZYKI Ćw. 5. Badanie ruchu wahadła sprężynowego sprawdzenie wzoru na ores drgań Wprowadzenie Ruch drgający naeży do najbardziej rozpowszechnionych ruchów w przyrodzie.

Bardziej szczegółowo

Ochrona odgromowa obiektów budowlanych. Nowe wymagania wprowadzane przez normy

Ochrona odgromowa obiektów budowlanych. Nowe wymagania wprowadzane przez normy Ochrona odgromowa obietów budowlanych. Nowe wymagania wprowadzane przez normy serii PN-EN 62305 Andrzej Sowa Politechnia Białostoca Podstawowym zadaniem urządzenia piorunochronnego jest przejęcie i odprowadzenie

Bardziej szczegółowo

P³atnik. Przewodnik IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE

P³atnik. Przewodnik IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE IDZ DO PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG KSI EK KATALOG ONLINE P³atnik. Przewodnik Autor: Adam Józefiok ISBN: 83-246-0404-9 Format: A5, stron: 288 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO KOSZYKA

Bardziej szczegółowo

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013 Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu obowiązuje studentów rozpoczynających studia w roku akademickim 01/013 Wydział Fizyki, Matematyki i Informatyki Kierunek studiów: Informatyka

Bardziej szczegółowo

koszt kapitału D/S L dźwignia finansowa σ EBIT zysku operacyjnego EBIT firmy. Firmy Modele struktury kapitału Rys. 8.3. Krzywa kosztów kapitału.

koszt kapitału D/S L dźwignia finansowa σ EBIT zysku operacyjnego EBIT firmy. Firmy Modele struktury kapitału Rys. 8.3. Krzywa kosztów kapitału. Modele strutury apitału oszt apitału Optymalna strutura apitału dźwignia finansowa / Rys. 8.3. Krzywa osztów apitału. Założenia wspólne modeli MM Modigliani i Miller w swoich rozważaniach ograniczyli się

Bardziej szczegółowo

Spis treści JĘZYK C - INSTRUKCJA SWITCH, OPERATORY BITOWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05

Spis treści JĘZYK C - INSTRUKCJA SWITCH, OPERATORY BITOWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05 Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 1 Kod przedmiotu: ES1C200 009 (studia stacjonarne)

Bardziej szczegółowo

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH ZATWIERDZAM Prorektor ds. dydaktyki i wychowania S Y L A B U S 1 Tytuł (stopień) naukowy oraz imię i nazwisko wykładowcy: dr hab.,

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo