Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

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

Download "Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP"

Transkrypt

1 Spotkania z Pythonem Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. M. Alichniewicz (SKALP) Python vol / 40

2 Organizacja plików M. Alichniewicz (SKALP) Python vol / 40

3 Jak Python zapisuje pliki Jedn z zalet pythona jest wªa±nie fakt,»e posiada interaktywn konsol. Jednak - b d¹ co b d¹ - pisanie w niej jakiego± wi kszego programu raczej do najwygodniejszych nie nale»y, nie wspominaj c o fakcie,»e czasami chcemy program zapisa. Python zapisuje pliki w formacie *.py. S to zwykªe pliki tekstowe, posiadaj ce wewn trz kod który normalnie by±my zapisywali. Ogólnie przyj ªo si,»e plik powinien (chocia» nie musi) zaczyna si wielolinijkowym komentarzem - tzw. docstringiem - pomaga to w identykacji pliku, b d¹ te» tworzeniu dokumentacji. Taki plik zwyczajowo jest zwany moduªem (ang. module) M. Alichniewicz (SKALP) Python vol / 40

4 Jak Python zapisuje pliki Jak uruchomi taki plik? Najªatwiejszy sposób, to w konsoli systemu (nie Pythona!) wpisa polecenie typu $ python./moj_plik.py W trakcie pracy z Pythonem pewnie te» zauwa»ycie»e w folderze z Waszymi plikami *.py pojawi si tak»e takie pliki jak *.pyc i *.pyo - to s pliki skompilowane do kodu po±redniego - takie pliki równie» mo»emy uruchamia. M. Alichniewicz (SKALP) Python vol / 40

5 Šadowanie innych bibliotek Póki co, do tej pory korzystali±my z biblioteki wbudowanej, tzw. builtin. Jednak siª Pythona s biblioteki - istniej biblioteki do obsªugi poª cze«sieciowych, obróbki gracznej, oblicze«in»ynierskich i symulacji, baz danych, i wiele, wiele innych. Troch z teorii programowania: ka»dy kompilowany (w naszym przypadku, interpretowany), plik, operuje w tzw. przestrzeni nazw (ang. namespace). Owa przestrze«nazw to abstrakcyjny zbiór etykiet wszelkich elementów jakie mamy i jakich mo»emy u»y. W tej przestrzeni l duj wszystkie zmienne, funkcje i klasy jakie zdeniujemy. M. Alichniewicz (SKALP) Python vol / 40

6 Šadowanie innych bibliotek Poj cie przestrzeni nazw wyst puje generalnie w ka»dym j zyku programowania. Zasada jest prosta: etykieta jest w przestrzeni nazw, mo»emy j u»y. Dla przykªadu w C rozszerzali±my t przestrze«o nowe symbole doª czaj c plik nagªówkowy, np. #include <stdio.h> Jakby kto± zajrzaª do tego pliku, to tam s denicje typów i tzw. prototypy funkcji, które sªu» gªównie po to»eby kompilator wiedziaª co ma do dyspozycji - dyrektywa include wstawia tre± pliku w swoje miejsce. Doª czaniem pó¹niej wªa±ciwych kodów pod etykiety zajmuje si linker. M. Alichniewicz (SKALP) Python vol / 40

7 Šadowanie innych bibliotek W Pythonie, nie ma jako takiej funkcji doª czania plików. Jest za to funkcja importowania symboli. Python daje jednak nieco wi ksze mo»liwo±ci w importowaniu ni» include w C - bo mo»emy zaimportowa caªy moduª (i odwoªywa si do moduªu, a wewn trz moduªu do dalszych funkcji), albo zaimportowa wybrane symbole z moduªu (czyli mo»emy np. zaimportowa tylko jedn funkcj z dost pnych 30) Najprostszy import moduªu wygl da nast puj co: # Zaimportuj modul - od tej pory mozna # w kodzie sie odwolywac do modulu # nazwa_modulu. import nazwa_modulu Do elementów tak zaimportowanego moduªu, dostaniemy si przez operator kropki: # Wywolanie funkcji ``funkcja'' z modulu ``nazwa_modulu'' nazwa_modulu.funkcja() M. Alichniewicz (SKALP) Python vol / 40

8 Šadowanie innych bibliotek Przykªad praktyczny - wy±wietlanie czasu import time # Zaimportowanie modulu ``time'' print time.time() # Tzw. UNIX timestamp # czyli liczba sekund liczona od # 1 stycznia :00, # czyli ``ery unixa'' print time.ctime() # Aktualna data i czas w # formie ``human friendly'' M. Alichniewicz (SKALP) Python vol / 40

9 Šadowanie innych bibliotek Mo»emy równie» zaimportowa konkretne elementy z moduªu, za pomoc instrukcji from... import..., zwyczajowo umieszczanej na pocz tku pliku, chocia» teoretycznie mo»na j u»y w dowolnym momencie: # Z ``moj_modul'' zaimportuj ``funkcja1'', ``funkcja2'' from moj_modul import funkcja1, funkcja2 # Teraz mozemy sie odwolywac bezposrednio do funkcji # bez korzystania z ``modulu nadrzednego'': funkcja1() funkcja2() Istnieje równie» tzw. wild import, czyli import z danego moduªu wszystkich symboli: # Z ``moj_modul'' zaimportuj wszystko from moj_modul import * Jest to jednak konstrukcja skrajnie niezalecana. M. Alichniewicz (SKALP) Python vol / 40

10 Šadowanie innych bibliotek W stosunku do include z C, importowanie moduªów w Pythonie ró»ni si w jednej zasadniczej rzeczy. O ile include tylko doª cza tre±, która jest nast pnie kompilowana, o tyle polecenie import w Pythonie powoduje wykonanie moduªu! Trzeba o tym pami ta, zwªaszcza je»eli importujemy moduª, który oprócz denicji funkcji/klas ma jeszcze jak ± logik która to np. testuje (jakie± print nie obj te funkcj, etc.). Jak to zobrazowa? Na przykªad tak: import this M. Alichniewicz (SKALP) Python vol / 40

11 Šadowanie innych bibliotek Jak wi c zapobiec takiemu niechcianemu wykoniu? Mo»emy przenie± kod testuj cy do innego moduªu. Problem si pojawi, gdy np. do takiego kodu b dziemy chcieli wygenerowa dokumentacj - bo wi kszo± generatorów zwyczajnie doª cza te pliki przez import i wyci ga z nich docstringi. Chc testowa, co robi, jak»y? Wró my tutaj do poj cia przestrzeni nazw. Przestrzenie nie s anonimowe - maj swoj nazw. I tak, zazwyczaj nasz namespace nazywa si maªo wiele tak samo jak nasz moduª (je»eli jest importowany). Jest za to jeden wyj tek - w gªównym pliku - czyli tym, co jest bezpo±rednio podany na interpreter Pythona - ta przestrze«ma specjaln nazw main. M. Alichniewicz (SKALP) Python vol / 40

12 Šadowanie innych bibliotek Jak wi c na to zareagowa? I to twórcy (twórca) Pythona przewidzieli. Do naszej dyspozycji jest jedna specjalna zmienna która zawiera nazw naszej przestrzeni nazw: name. Wi c mo»emy sprawdzi jej nazw. W efekcie dochodzimy do tego jak wygl da szkielet wi kszo±ci moduªów Pythona: """ Docstring pliku / modulu """ import moj_modul # Importy from moj_modul_2 import funkcja # Kod funkcji / klas if name == " main ": # Kod wykonywany przy bezposrednim wywolaniu M. Alichniewicz (SKALP) Python vol / 40

13 Šadowanie innych bibliotek Dlaczego nie zaleca si u»ywa wild import'u? Odpowied¹ jest stosunkowo prosta. Wild import zaimportuje wszystkie symbole jakie s dost pne w danym pliku, a w zasadzie przestrzeni nazw. A wi c tak»e te» wszysktie symbole które tam zostaªy zaimportowane. Wi c je»eli dla przykªadu, w pliku moj_modul.py mamy konstrukcj import time a w innym pliku, np moj_modul2.py wpiszemy from moj_modul import * to oka»e si,»e w tym drugim pliku mamy dost p do moduªu time. A przecie» nigdzie go nie importowali±my! Korzystaj c z wild import nie mamy kontroli nad tym co importujemy, o czym nale»y pami ta! M. Alichniewicz (SKALP) Python vol / 40

14 Organizacja kodu w folderach Przy wi kszych projektach, bardzo szybko dojdziemy do wniosku,»e trzymanie kilkudziesi ciu plików w jednym folderze to nie najlepszy pomysª (to nie system dla PKW). Intuicja mówi,»e mo»na to podzieli na foldery. Mo»emy by jednak pewni,»e jak przeniesiemy moduª moj_modul.py do folderu moj_folder spowoduje ze zwykªe import moj_modul raczej nie zadziaªa. Musimy Pythona poinformowa,»e to gdzie± le»y. M. Alichniewicz (SKALP) Python vol / 40

15 Organizacja kodu w folderach Jak ju» wiemy, w Pythonie funkcje/klasy organizujemy w moduªy. Jak z kolei zorganizowa grup moduªów? Odpowied¹ brzmi: w paczk (ang. package). Paczka to nic innego jak folder zawieraj cy moduªy. Wrzucenie wszystkiego do folderu jednak nie wystarczy - Python musi zosta poinformowany»e dany folder to paczka. Robi si to w stosunkowo prosty sposób - w folderze nale»y umie±ci plik o nazwie init.py. Co wa»ne, mo»e to by plik pusty, ale musi istnie. Generalnie jest to plik który jest wykonywany przy importowaniu dowolnego moduªu z paczki - i jest wykonywany PRZED wykonaniem importowanego moduªu. Podobniej jak moduª, mo»e zawiera docstring - wtedy dotyczy on peªnej paczki. M. Alichniewicz (SKALP) Python vol / 40

16 Organizacja kodu w folderach No dobra, kod w paczkach jest - jak si do niego dobra? Sposób jest ju» znany - dyrektyw import (oraz from... import... ). Tu trzeba wspomnie o jednym - teoretycznie mo»emy zaimportowa paczk jako element (czyli import paczka), ale generalnie wiele z tego nie dostaniemy. Powinni±my deniowa wprost, co chcemy zaimportowa, np. import paczka.modul # albo from paczka import modul2 W 1 przypadku do elementów moduªu mo»emy si odwoªa przez paczka.modul.element, z kolei w drugim od razu przez modul2.element. M. Alichniewicz (SKALP) Python vol / 40

17 Obiektowo± w Pythonie M. Alichniewicz (SKALP) Python vol / 40

18 Denicja klasy Python, chyba jak ka»dy wzgl dnie nowoczesny j zyk programowania, wspiera obiektowo±. Jak obiektowo±, to i pojawia si poj cie klasy. W Pythonie denicja klasy do zaskakuj cych nie nale»y: class Klasa(): """ Docstring dla klasy """ # Kod klasy - jak pusta, to pass pass Instancj takiej klasy tworzymy w prosty sposób: instancja = Klasa() M. Alichniewicz (SKALP) Python vol / 40

19 Denicja klasy Typowe dla obiektowo±ci dziedziczenie, równie» istnieje: class Klasa2(Klasa_rodzic, Klasa_rodzic2,...): """ Docstring dla klasy """ # Kod klasy - jak pusta, to pass pass Jak wida - mo»emy dziedziczy z wielu klas na raz, co nie w ka»dym j zyku jest dost pne. Przez dziedziczenie mo»emy np. tworzy nowe typy wyj tków (wtedy dziedziczymy z klasy Exception) M. Alichniewicz (SKALP) Python vol / 40

20 Denicja klasy - denicja metod Niemal»e obowi zkowym elementem klasy s jej metody, czyli funkcje zawarte wewn trz klasy. Metody deniuje si w specyczny sposób: class Klasa(): def metoda(self, argument1, etc): """ Docstring metody """ # tutaj tresc metody - teraz pass pass To, na co musimy zwróci uwag, to pierwszy argument funkcji. Ten pierwszy argument to nic innego instancja klasy na jakiej dziaªamy, i ten argument ustawia za nas Python - to oznacza,»e wywoªuj c metod go r cznie nie podajemy! Odniesienie do metody odbywa si za pomoc kropki: instancja = Klasa() # Pomijamy self! instancja.metoda('argument1', 'etc') M. Alichniewicz (SKALP) Python vol / 40

21 Denicja klasy - denicja pól klasy Typowym elementem klas s równie» pola klasy, które mo»emy te» nazwa atrybutami klasy. W wi kszo±ci j zyków programowania, np. w Javie, deniujemy te pola wewn trz denicji klasy (czyli denicje s na tym samym poziomie co metody). Przykªad we wspomnianej Javie: public class Klasa { public int a = 1; public int b = 2; public int c = 3; } W Pythonie, inicjalizacji zmiennych (pól, atrybutów) klasy dokonujemy wewn trz konstruktora klasy (metoda inicjalizacji klasy), nie na poziomie denicji klasy! Jak to wi c wygl da, czyli jak deniujemy konstruktor? M. Alichniewicz (SKALP) Python vol / 40

22 Denicja klasy - denicja pól klasy (konstruktor) Klasa odpowiadaj ca tej w Javie wygl da tak: class Klasa(): def init (self): self.a = 1 self.b = 2 self.c = 3 Konstruktor jest niczym innym jak metod o nazwie init, i jest tym samym co plik init.py dla paczek. Warto zwóci uwag jak tworzone s te zmienne. Jak ju» to zostaªo wspomniane, self to nic innego jak instancja klasy. A wi c tworzymy pola klasy po prostu odwoªuj c si do konkretnej instancji i tworzymy w niej pola jakie chcemy. Z tego te» wynika,»e mo»emy tworzy nowe pola w locie, czyli w trakcie dziaªania aplikacji - nie musz by w konstruktorze. M. Alichniewicz (SKALP) Python vol / 40

23 Denicja klasy - konstruktor Jak przekaza parametry do klasy z zewn trz? Tworzymy je jako argumenty konstruktora, a nast pnie podajemy w trakcie tworzenia instancji: class Foo(): def init (self, *args, **kwargs): print repr(args) print repr(kwargs) bar = Foo(1,2,'trzy', cztery = 4) M. Alichniewicz (SKALP) Python vol / 40

24 Denicja klasy - denicja pól klasy A co by si staªo, je»eli by wpisa takie pola nie w konstruktorze, a wewn trz klasy na tym samym poziomie co metody? Zanim na to odpowiemy, trzeba wspomnie o jednej bardzo istotnej i charakterystycznej dla Pythona rzeczy. Otó» w Pythonie, absolutnie wszystko jest obiektem. Przez poj cie absolutnie wszystko mam na my±li to,»e nie tylko instancje klas s obiektami. Obiektem jest równie» moduª (caªy), paczka (caªa), ka»da funkcja, ka»dy typ (wliczaj c w to te najprostsze, jak liczba caªkowita, czy bardziej zªo»one, jak lista). Id c tym tropem, obiektem jest równie» denicja klasy. Czyli, je»eli by±my zdeniowali jakie± pola wewn trz tej klasy, to owszem, byªyby dost pne. Jednak jakakolwiek zmiana ich warto±ci powodowaªaby zmian WE WSZYSTKICH miejscach gdzie s wykorzystane, niezale»nie od instancji! M. Alichniewicz (SKALP) Python vol / 40

25 Denicja klasy - atrybuty publiczne, prywatne i chronione Wi kszo± obiektowych j zyków programowania pozwala na ograniczenie pól i metod widocznych na zewn trz - czyli co± co znamy jako elementy public, private i protected. Python troch tu upraszcza spraw, i nie posiada widoczno±ci elementów. Oznacza to tyle,»e do ka»dego z elementów mo»na doj± z zewn trz. Python pozwala jednak na tworzenie elementów które w pewnym sensie s prywatne - ich nazwa zaczyna si od podwójnego podkre±lenia, np. self. prywatna_zmienna = 5. Do tak zdeniowanej zmiennej nie dobierzemy si z zewn trz w sposób instancja. prywatna_zmienna. Ale dobra si mo»emy: przez instancja._nazwaklasy prywatna_zmienna. Zwyczajowo zmienne prywatne / chronione zaczynamy po prostu od podkre±lenia - to samo si dotyczy metod. M. Alichniewicz (SKALP) Python vol / 40

26 Denicja klasy - odwoªanie do pól rodzica Wraz z dziedziczeniem, pojawia si sytuacja gdzie musimy si dobra do jakiego± atrybutu (pola, tudzie» metody) klasy rodzica (superklasy). Zasada w dziedziczeniu jest prosta: jak czego± nie nadpiszemy w subklasie (klasie dziecku), to atrybuty s przepisane z superklasy. Musimy jednak pami ta,»e atrybuty nadajemy w konstruktorze klasy, a bardzo cz sto stworzenie klasy podrz dnej wi»e si wªa±nie z nadpisaniem konstruktora. Jak nadpiszemy konstruktor, to nie zostan zainicjalizowane pola klasy pierwotnej - wi c musimy r cznie ten nadrz dny konstruktor wywoªa. M. Alichniewicz (SKALP) Python vol / 40

27 Denicja klasy - odwoªanie do pól rodzica Python daje nam tutaj do dyspozycji 2 metody. Bezpo±rednie odwoªanie do metody rodzica. Robimy to w ten sposób: def nadpisana_metoda(self, *args, **kwargs): # Zrob cos z nowa metoda i wolaj rodzica KlasaNadrzedna.nadpisana_metoda(\ self, *args, **kwargs) Jak widzicie - odwoªujemy si bezpo±rednio do klasy (wa»ne - to nie jest jej instancja!). A co tam robi self? Otó» Python samemu podaje zmienn self, je»eli wykonujemy metod instancji - bo wtedy Python wie, na jakim konkretnym obiekcie chcemy t metod wywoªa. Je»eli wywoªujemy metod przez klas, interpreter nie mo»e tego stwierdzi - wi c musimy mu poda t informacj r cznie (wtedy klasa nadrz dna b dzie operowa na tym samym obiekcie, co i podrz dna - w ko«cu self si nie zmieni.) M. Alichniewicz (SKALP) Python vol / 40

28 Denicja klasy - odwoªanie do pól rodzica Wykorzystanie wbudowanej funkcji super. Ta metoda jednak wymaga, aby klasa najwy»sza w hierarchi (czyli ta od której si zacz ªa zabawa) sama dziedziczyªa z klasy Object (z tej klasy dziedzicz wszystkie klasy z biblioteki wbudowanej) def nadpisana_metoda(self, *args, **kwargs): # Zrob cos z nowa metoda i wolaj rodzica super(mojaklasa, self).nadpisana_metoda(\ *args, **kwargs) Jaka ró»nica? Przede wszystkim - nie podajemy self. Mo»na to okre±li tak,»e metoda super rzutuje obiekt podany w 2 argumencie klasy podanej w 1 argumencie na klas rodzica. Na tak zrzutowanym obiekcie mo»emy wywoªa pierwotn metod. Nie musimy równie» zna nazwy klasy rodzica (chocia» to akurat»aden problem ;)) M. Alichniewicz (SKALP) Python vol / 40

29 Denicja klasy - dziedziczenie z wielu klas Wracaj c na chwil do dziedziczenia z wielu klas, rozwa»my nast puj c sytuacj : Tworzymy klas nadrz dn - nazwijmy j A która ma metody metoda_1 i metoda_2 Tworzymy klas podrz dn do A - nazwijmy j B, która NADPISUJE metod metoda_1 Tworzymy klas podrz dn do A (kolejn ) - nazwijmy j C, która RÓWNIE NADPISUJE metod metoda_1 Tworzymy klas dziedzicz c z B i C - nazwijmy j D, która dla odmiany nadpisuje metod metoda_2 Tworzymu instancj klasy D i wywoªujemy metod metoda_1. M. Alichniewicz (SKALP) Python vol / 40

30 Denicja klasy - dziedziczenie z wielu klas Odpowiedni kod jest przedstawiony poni»ej: class A(object): def metoda_1(self): print 'metoda_1' def metoda_2(self): print 'metoda_2' class B(A): def metoda_1(self): print 'metoda_1_b' class C(A): def metoda_1(self): print 'metoda_1_c' # verte M. Alichniewicz (SKALP) Python vol / 40

31 Denicja klasy - dziedziczenie z wielu klas class D(B, C): def metoda_2(self): print 'metoda_2_d' # Utworzenie obiektu i wywolanie metody d = D() d.metoda_1() Ten kod si wykona, pomimo pozornego koniktu w implementacji metody metoda_1. W takim razie, co zostanie wy±wietlone na ekranie? M. Alichniewicz (SKALP) Python vol / 40

32 Denicja klasy - dziedziczenie z wielu klas Problem ten jest znany w literaturze jako multiple inheritance problem, albo krócej, diamond problem. Nazwa wywodzi si z diagramu jak dziedzicz klasy jaki mo»na tutaj narysowa (przypomina on znany z kart kolor karo, z angielskiego wªa±nie diamonds): M. Alichniewicz (SKALP) Python vol / 40

33 Denicja klasy - dziedziczenie z wielu klas Mamy konikt - jak wi c jest to rozwi zane w Pythonie? Otó», Python zwyczajnie w ±wiecie we¹mie sporn metod z klasy która jest podana jako pierwsza na li±cie z jakich klas dziedziczymy. Wi c wracaj c do naszego kodu: # Utworzenie obiektu i wywolanie metody d = D() d.metoda_1() Uzyskanym wynikiem b dzie w takim razie metoda 1B (czyliwywoaniemetodyzklasyb). M. Alichniewicz (SKALP) Python vol / 40

34 Odczyt dost pnych elementów obiektu Python udost pnia ciekaw funkcj, która zwraca list atrybutów (pól i metod) jakie posiada dany obiekt. Funkcja nazywa si dir i zwraca list dost pnych pól. W tej li±cie równie» widzimy nasze zmienne prywatne, opisane w sposób jak na poprzednich slajdach. Przykªad dziaªania: class Klasa(): pass instancja = Klasa() print dir(instancja) # Wyswietli [' doc ', ' module '] To samo mo»emy przeprowadzi np. na liczbie caªkowitej, li±cie, denicji funkcji czy module. Co wa»ne, nie wszystkie elementy danego obiektu s zwracane przez funkcj dir - dziaªanie tej funkcji mo»na zmodykowa! M. Alichniewicz (SKALP) Python vol / 40

35 Odczyt dost pnych elementów obiektu - modykacja listy Jak to zrobi? Python posiada dosy poka¹ny zbiór metod magicznych - jedn z nich ju» poznali±my, czyli init. Do oszukania funkcji dir sªu»y funkcja, która si powinna nazywa dir i zwraca list ci gów tekstowych. Dla przykªadu: class Klasa(): def dir (self): return ['Chcialbys!] foo = Klasa() print dir(foo) M. Alichniewicz (SKALP) Python vol / 40

36 Metody magiczne Oszukiwanie funkcji dir to nie jest jedyna ciekawa rzecz w Pythonie. Za pomoc szeregu metod magicznych mo»emy zdeniowa jak nasz obiekt b dzie konwertowany na tekst, liczb, co zwróci wykonanie na nim polecenia repr, co si stanie jak u»yjemy na nim jakiegokolwiek operatora, jak na przykªad dodawanie, negacja, i inne. Jednym sªowem - deniuj c odpowiednie metody magiczne, mo»emy dokªadnie zdeniowa jak zachowuje si nasz obiekt!. Dla przykªadu, deniuj c np. klas reprezentuj c macierz, mo»emy sprawi»e faktycznie tak si b dzie zachowywa - czyli b dzie mo»na przeprowadzi np. operacj mno»enia. A = Matrix() # Jakas tam macierz - kod abstrakcyjny B = A * 3 # Pomnozmy elementy razy 3 M. Alichniewicz (SKALP) Python vol / 40

37 Zadanie M. Alichniewicz (SKALP) Python vol / 40

38 Zadanie Doko«czy klas Matrix zaª czon do materiaªów. W razie wyst pienia bªedu, rzuca wyj tkiem MatrixError (trzeba go najpierw zdeniowa ) Przykªad rzucania wyj tkiem: raise TypWyjatku('Tresc bledu') M. Alichniewicz (SKALP) Python vol / 40

39 Materiaªy M. Alichniewicz (SKALP) Python vol / 40

40 Materiaªy Dokumentacja j zyka Python Forum StackOverow Why is Object-Oriented Programming Useful? why-is-object-oriented-programming-useful-with-an-role-pla A Guide to Python's Magic Methods M. Alichniewicz (SKALP) Python vol / 40

41 Spotkania z Pythonem Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. M. Alichniewicz (SKALP) Python vol / 40

1. Wprowadzenie do C/C++

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

Model obiektu w JavaScript

Model obiektu w JavaScript 16 marca 2009 E4X Paradygmat klasowy Klasa Deniuje wszystkie wªa±ciwo±ci charakterystyczne dla wybranego zbioru obiektów. Klasa jest poj ciem abstrakcyjnym odnosz cym si do zbioru, a nie do pojedynczego

Bardziej szczegółowo

1. Wprowadzenie do C/C++

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

Lekcja 12 - POMOCNICY

Lekcja 12 - POMOCNICY Lekcja 12 - POMOCNICY 1 Pomocnicy Pomocnicy, jak sama nazwa wskazuje, pomagaj Baltiemu w programach wykonuj c cz ± czynno±ci. S oni szczególnie pomocni, gdy chcemy ci g polece«wykona kilka razy w programie.

Bardziej szczegółowo

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP Spotkania z Pythonem Cz ± 1 - podstawy - rozwi zania zada«michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike

Bardziej szczegółowo

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Lekcja 9 - LICZBY LOSOWE, ZMIENNE Lekcja 9 - LICZBY LOSOWE, ZMIENNE I STAŠE 1 Liczby losowe Czasami spotkamy si z tak sytuacj,»e b dziemy potrzebowa by program za nas wylosowaª jak ± liczb. U»yjemy do tego polecenia: - liczba losowa Sprawd¹my

Bardziej szczegółowo

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

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

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz Lekcja 8 - ANIMACJA 1 Polecenia Za pomoc Baltiego mo»emy tworzy animacj, tzn. sprawia by obraz na ekranie wygl daª jakby si poruszaª. Do animowania przedmiotów i tworzenia animacji posªu» nam polecenia

Bardziej szczegółowo

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

19. Obiektowo± 1 Kacze typowanie. 2 Klasy 1 Kacze typowanie 19. Obiektowo± Sk d interpreter wie, jakiego typu s np. przekazywane do metody argumenty? Tak naprawd wcale nie musi wiedzie. Do poprawnego dziaªania programu istotne jest,»e przekazywany

Bardziej szczegółowo

Lekcja 3 Banki i nowe przedmioty

Lekcja 3 Banki i nowe przedmioty Lekcja 3 Banki i nowe przedmioty Akademia im. Jana Dªugosza w Cz stochowie Banki przedmiotów Co ju» wiemy? co to s banki przedmiotów w Baltie potramy korzysta z banków przedmiotów mo»emy tworzy nowe przedmioty

Bardziej szczegółowo

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

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

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy. Logika i teoria mnogo±ci, konspekt wykªad 12 Teoria mocy, cz ± II Def. 12.1 Ka»demu zbiorowi X przyporz dkowujemy oznaczany symbolem X obiekt zwany liczb kardynaln (lub moc zbioru X) w taki sposób,»e ta

Bardziej szczegółowo

Lekcja 6 Programowanie - Zaawansowane

Lekcja 6 Programowanie - Zaawansowane Lekcja 6 Programowanie - Zaawansowane Akademia im. Jana Dªugosza w Cz stochowie Wst p Wiemy ju»: co to jest program i programowanie, jak wygl da programowanie, jak tworzy programy za pomoc Baltiego. Na

Bardziej szczegółowo

PROGRAMOWANIE 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. 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ółowo

Programowanie obiektowe w C++ Wykªad 4

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

Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Optymalizacja R dlaczego warto przesi ± si na Linuxa? Optymalizacja R dlaczego warto przesi ± si na Linuxa? 19 listopada 2014 Wi cej informacji, wraz z dodatkowymi materiaªami mo»na znale¹ w repozytorium na GitHubie pod adresem https://github.com/zzawadz/

Bardziej szczegółowo

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki. Wydziaª Matematyki, Fizyki i Informatyki 10 marca 2008 Spis tre±ci Listy 1 Listy 2 3 Co to jest lista? Listy List w Mathematice jest wyra»enie oddzielone przecinkami i zamkni te w { klamrach }. Elementy

Bardziej szczegółowo

Lekcja 9 Liczby losowe, zmienne, staªe

Lekcja 9 Liczby losowe, zmienne, staªe Lekcja 9 Liczby losowe, zmienne, staªe Akademia im. Jana Dªugosza w Cz stochowie Liczby losowe Czasami potrzebujemy by program za nas wylosowaª liczb. U»yjemy do tego polecenia liczba losowa: Liczby losowe

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 8 Diagram pakietów I Diagram pakietów (ang. package diagram) jest diagramem strukturalnym,

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

Bardziej szczegółowo

Wzorce projektowe strukturalne cz. 1

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

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

Wstawianie gotowych rysunków w texu - informacje podstawowe.

Wstawianie gotowych rysunków w texu - informacje podstawowe. Wstawianie gotowych rysunków w texu - informacje podstawowe. By móc wstawi rysunek musimy w preambule pliku dopisa odpowiedni pakiet komend : \usepackage. W przypadku graki doª czamy pakiet:graphicx, (nieco

Bardziej szczegółowo

Programowanie wspóªbie»ne

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

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 16.03.2017 Interfejsy raz jeszcze "Interfejsy

Bardziej szczegółowo

Programowanie obiektowe w Perlu

Programowanie obiektowe w Perlu Programowanie obiektowe w Perlu Piotr Wydrych http://www.kt.agh.edu.pl/~wydrych/ Wydziaª Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Telekomunikacji 30 kwietnia 2009 1/26 Obiekty, klasy,

Bardziej szczegółowo

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

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

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, 20.09.2011. Instytut Matematyki Uniwersytetu Warszawskiego

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, 20.09.2011. Instytut Matematyki Uniwersytetu Warszawskiego Zdumiewaj cy ±wiat niesko«czono±ci Instytut Matematyki Uniwersytetu Warszawskiego Festiwal Nauki, 20.09.2011 Nasze do±wiadczenia hotelowe Fakt oczywisty Hotel nie przyjmie nowych go±ci, je»eli wszystkie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Metody statyczne i klasowe Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. VI Jesień 2013 1 / 23 W poprzednich odcinkach... Klasy kategorie obiektów Przynależność

Bardziej szczegółowo

Podstawy modelowania w j zyku UML

Podstawy modelowania w j zyku UML Podstawy modelowania w j zyku UML dr hab. Bo»ena Wo¹na-Szcze±niak Akademia im. Jan Dªugosza bwozna@gmail.com Wykªad 2 Zwi zki mi dzy klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie (ang.

Bardziej szczegółowo

Programowanie i struktury danych

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

Baza danych - Access. 2 Budowa bazy danych

Baza danych - Access. 2 Budowa bazy danych Baza danych - Access 1 Baza danych Jest to zbiór danych zapisanych zgodnie z okre±lonymi reguªami. W w»szym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyj tymi dla danego programu

Bardziej szczegółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo

API transakcyjne BitMarket.pl

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

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 13 Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2 MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA INSTRUKCJA ver 1.2 1 PRZEGLĄDARKA INTERNETOWA Do pracy na systemie MySource Matrix zalecane jest używanie przeglądarki internetowej Mozilla Firefox. Przeglądarkę

Bardziej szczegółowo

Listy i operacje pytania

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

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Rozliczenia z NFZ. Ogólne założenia. Spis treści Rozliczenia z NFZ Spis treści 1 Ogólne założenia 2 Generacja raportu statystycznego 3 Wczytywanie raportu zwrotnego 4 Szablony rachunków 4.1 Wczytanie szablonów 4.2 Wygenerowanie dokumentów rozliczenia

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

Metodydowodzenia twierdzeń

Metodydowodzenia twierdzeń 1 Metodydowodzenia twierdzeń Przez zdanie rozumiemy dowolne stwierdzenie, które jest albo prawdziwe, albo faªszywe (nie mo»e by ono jednocze±nie prawdziwe i faªszywe). Tradycyjnie b dziemy u»ywali maªych

Bardziej szczegółowo

Wykªad 4. Funkcje wielu zmiennych.

Wykªad 4. Funkcje wielu zmiennych. Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 4. Funkcje wielu zmiennych. Zbiory na pªaszczy¹nie i w przestrzeni.

Bardziej szczegółowo

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących

Bardziej szczegółowo

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X. Relacje 1 Relacj n-argumentow nazywamy podzbiór ϱ X 1 X 2... X n. Je±li ϱ X Y jest relacj dwuargumentow (binarn ), to zamiast (x, y) ϱ piszemy xϱy. Relacj binarn okre±lon w zbiorze X nazywamy podzbiór

Bardziej szczegółowo

EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego

EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego 1 czerwca 2010 Plan prezentacji Wprowadzenie Hello World Sinatra Historia Rubiego 1993 Japonia Yukihiro Matsumoto San Historia Rubiego 1993 Japonia Yukihiro

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

Programowanie wspóªbie»ne

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

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

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

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

x y x y x y x + y x y

x y x y x y x + y x y Algebra logiki 1 W zbiorze {0, 1} okre±lamy dziaªania dwuargumentowe,, +, oraz dziaªanie jednoargumentowe ( ). Dziaªanie x + y nazywamy dodawaniem modulo 2, a dziaªanie x y nazywamy kresk Sheera. x x 0

Bardziej szczegółowo

Programowanie i struktury danych 1 / 44

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

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

Plan. krótkie opisy modułów. 1 Uwagi na temat wydajności CPython a. 2 Podstawowe techniki poprawiające wydajność obliczeniową

Plan. krótkie opisy modułów. 1 Uwagi na temat wydajności CPython a. 2 Podstawowe techniki poprawiające wydajność obliczeniową Plan 1 Uwagi na temat wydajności CPython a 2 Podstawowe techniki poprawiające wydajność obliczeniową 3 Podstawowe techniki poprawiające zużycie pamięci krótkie opisy modułów 1 array - jak oszczędzić na

Bardziej szczegółowo

1. Odcienie szaro±ci. Materiaªy na wiczenia z Wprowadzenia do graki maszynowej dla kierunku Informatyka, rok III, sem. 5, rok akadem.

1. Odcienie szaro±ci. Materiaªy na wiczenia z Wprowadzenia do graki maszynowej dla kierunku Informatyka, rok III, sem. 5, rok akadem. Materiaªy na wiczenia z Wprowadzenia do graki maszynowej dla kierunku Informatyka, rok III, sem. 5, rok akadem. 2018/2019 1. Odcienie szaro±ci Model RGB jest modelem barw opartym na wªa±ciwo±ciach odbiorczych

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

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

Imi 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 Imi i nazwisko....................................................... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy 21.01.2017 Instrukcja:

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

J zyk C dla sterowników programowalnych GeFanuc

J zyk C dla sterowników programowalnych GeFanuc J zyk C dla sterowników programowalnych GeFanuc Na podstawie C Programmer's Toolkit for PACSystems Bartosz Puchalski Katedra In»ynierii Systemów Sterowania 17 grudnia 2013 Bartosz Puchalski KISS 1/48 Spis

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje

Bardziej szczegółowo

Wska¹niki, tablice dynamiczne wielowymiarowe

Wska¹niki, tablice dynamiczne wielowymiarowe Rozdziaª 11 Wska¹niki, tablice dynamiczne wielowymiarowe 11.1 Wst p Identycznie, jak w przypadku tablic statycznych, tablica dynamiczna mo»e by tablic jedno-, dwu-, trójitd. wymiarow. Tablica dynamiczna

Bardziej szczegółowo

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy modelowaniem, a pewien dobrze zdefiniowany sposób jego

Bardziej szczegółowo

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska MiASI Modelowanie systemów informatycznych Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Analiza systemu informatycznego Poziomy analizy 2

Bardziej szczegółowo

XVII Warmi«sko-Mazurskie Zawody Matematyczne

XVII Warmi«sko-Mazurskie Zawody Matematyczne 1 XVII Warmi«sko-Mazurskie Zawody Matematyczne Kategoria: klasa VIII szkoªy podstawowej i III gimnazjum Olsztyn, 16 maja 2019r. Zad. 1. Udowodnij,»e dla dowolnych liczb rzeczywistych x, y, z speªniaj cych

Bardziej szczegółowo

Konfiguracja historii plików

Konfiguracja historii plików Wielu producentów oprogramowania oferuje zaawansowane rozwiązania do wykonywania kopii zapasowych plików użytkownika czy to na dyskach lokalnych czy w chmurze. Warto jednak zastanowić się czy instalacja

Bardziej szczegółowo

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15 ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych

Bardziej szczegółowo

private - oznacza, że wszystkie elementy klasy bazowej zmieniają się w prywatne.

private - oznacza, że wszystkie elementy klasy bazowej zmieniają się w prywatne. C++/Dziedziczenie 1 C++/Dziedziczenie Wstęp - Co to jest dziedziczenie Często podczas tworzenia klasy napotykamy na sytuację, w której klasa ta powiększa możliwości innej klasy, nierzadko precyzując jednocześnie

Bardziej szczegółowo

Przewodnik u»ytkownika

Przewodnik u»ytkownika Opisywanie wygl du dokumentu 15 stycznia 2008 Akapity wystawione Skutkiem u»ycia otoczenia tworz cego akapit wystawiony jest zacz cie go od nowego wiersza, a tak»e zacz cie od nowego wiersza tekstu nast

Bardziej szczegółowo

przewidywania zapotrzebowania na moc elektryczn

przewidywania zapotrzebowania na moc elektryczn do Wykorzystanie do na moc elektryczn Instytut Techniki Cieplnej Politechnika Warszawska Slide 1 of 20 do Coraz bardziej popularne staj si zagadnienia zwi zane z prac ¹ródªa energii elektrycznej (i cieplnej)

Bardziej szczegółowo

Lekcja 3 - BANKI I NOWE PRZEDMIOTY

Lekcja 3 - BANKI I NOWE PRZEDMIOTY Lekcja 3 - BANKI I NOWE PRZEDMIOTY Wiemy ju» co to s banki przedmiotów i potramy z nich korzysta. Dowiedzieli±my si te»,»e mo»emy tworzy nowe przedmioty, a nawet caªe banki przedmiotów. Na tej lekcji zajmiemy

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Lekcja 5 Programowanie - Nowicjusz

Lekcja 5 Programowanie - Nowicjusz Lekcja 5 Programowanie - Nowicjusz Akademia im. Jana Dªugosza w Cz stochowie Programowanie i program wedªug Baltiego Programowanie Programowanie jest najwy»szym trybem Baltiego. Z pomoc Baltiego mo»esz

Bardziej szczegółowo

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika 2010. Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika 2010. Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska Wst p do informatyki Systemy liczbowe Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 21 pa¹dziernika 2010 Spis tre±ci 1 Liczby i ich systemy 2 Rodzaje systemów liczbowych

Bardziej szczegółowo

Wzorce projektowe kreacyjne

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

Podstawy Programowania semestr drugi. Wykład czternasty

Podstawy Programowania semestr drugi. Wykład czternasty Wykład czternasty 1. Polimorfizm Ostatni wykład zakończyliśmy stwierdzeniem, że możemy obiektowi dowolnej klasy przypisa ć obiekt klasy dziedziczącej po tej klasie. Przypisanie takie obejmuje jednak jedynie

Bardziej szczegółowo

Lab. 02: Algorytm Schrage

Lab. 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ółowo

Microsoft Management Console

Microsoft Management Console Microsoft Management Console Konsola zarządzania jest narzędziem pozwalającym w prosty sposób konfigurować i kontrolować pracę praktycznie wszystkich mechanizmów i usług dostępnych w sieci Microsoft. Co

Bardziej szczegółowo

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych. Denicja Mówimy,»e funkcja

Bardziej szczegółowo

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p Lekcja 1 Wst p Akademia im. Jana Dªugosza w Cz stochowie Baltie Baltie Baltie jest narz dziem, które sªu»y do nauki programowania dla dzieci od najmªodszych lat. Zostaª stworzony przez Bohumira Soukupa

Bardziej szczegółowo

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy Instrukcja obsługi programu 2.11. Przygotowanie programu do pracy - ECP Architektura inter/intranetowa System Informatyczny CELAB Przygotowanie programu do pracy - Ewidencja Czasu Pracy Spis treści 1.

Bardziej szczegółowo

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37 Aplikacje bazodanowe Laboratorium 1 Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, 2017 1 / 37 Plan 1 Informacje wst pne 2 Przygotowanie ±rodowiska do pracy 3 Poj cie bazy danych 4 Relacyjne

Bardziej szczegółowo

PROGRAMOWANIE 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. 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ółowo

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego Instrukcja instalacji oraz wykorzystania podpisu cyfrowego Poniższy dokument został stworzony w celu zaznajomienia użytkowników komputerów osobistych pracujących w systemie Windows XP z możliwościami wykorzystania

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Środowisko programisty

Środowisko programisty Środowisko programisty 1/35 Środowisko programisty Język Python cz. 3 dr inż. Grzegorz Michalski 7 kwietnia 2014 Środowisko programisty 2/35 Kod samotestujący Tworzenie def t e s t e r ( ) : p r i n t

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Wykład 2 Piotr Błaszyński Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego 2 marca 2017 - absolutne podstawy Klasa bazowa - klasa pochodna lepiej jeżeli przypuszczamy, że będą też

Bardziej szczegółowo

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska MiASI Modelowanie analityczne Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 18 stycznia 2010 Spis tre±ci 1 Czym jest modelowanie analityczne? 2 Podstawowe kategorie poj ciowe

Bardziej szczegółowo

Dekoratora używa się wstawiając linijkę zaczynającą się przed definicją dekorowanego obiektu (klasy czy funkcji).

Dekoratora używa się wstawiając linijkę zaczynającą się przed definicją dekorowanego obiektu (klasy czy funkcji). Dekoratory są w miarę ezoteryczną cechą Pythona w przeciwieństwie do funkcji, klas czy iteratorów nie są powszechną cechą języków programowania. Niemniej, warto je omówić mimo wszystko, gdyż są niezwykle

Bardziej szczegółowo

Wojewódzki Konkurs Matematyczny

Wojewódzki Konkurs Matematyczny Wojewódzki Konkurs Matematyczny dla uczniów gimnazjów ETAP SZKOLNY 16 listopada 2012 Czas 90 minut Instrukcja dla Ucznia 1. Otrzymujesz do rozwi zania 10 zada«zamkni tych oraz 5 zada«otwartych. 2. Obok

Bardziej szczegółowo

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

Lekcja 2 - BUDUJEMY I CZARUJEMY

Lekcja 2 - BUDUJEMY I CZARUJEMY Lekcja 2 - BUDUJEMY I CZARUJEMY Na tej lekcji dowiemy si, jak korzysta z trybów Budowania oraz Czarowania w programie Baltie. Troch ju» wiemy o tych dwóch trybach z poprzedniej lekcji, jednak przypomnijmy

Bardziej szczegółowo

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

Bardziej szczegółowo

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java J zyk programowania JAVA c 2011 Vincent Van GOGH: M»czyzna pij cy li»ank kawy Zadanie 6. Napisz program, który tworzy tablic 30 liczb wstawia do tej tablicy liczby od 0 do 29 sumuje te elementy tablicy,

Bardziej szczegółowo

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14 WST P DO TEORII INFORMACJI I KODOWANIA Grzegorz Szkibiel Wiosna 203/4 Spis tre±ci Kodowanie i dekodowanie 4. Kodowanie a szyfrowanie..................... 4.2 Podstawowe poj cia........................

Bardziej szczegółowo

Algorytmy zwiazane z gramatykami bezkontekstowymi

Algorytmy zwiazane z gramatykami bezkontekstowymi Algorytmy zwiazane z gramatykami bezkontekstowymi Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk

Bardziej szczegółowo

Słowa kluczowe jak góry lodowe

Słowa kluczowe jak góry lodowe Public Słowa kluczowe jak góry lodowe czyli rzecz o bibliotekach testowych Marcin Kowalczyk marcin.kowalczyk@tieto.com Spis treści Dlaczego słowa kluczowe są jak góry lodowe, po co tworzyć własne biblioteki

Bardziej szczegółowo

POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI PRACA DYPLOMOWA MAGISTERSKA

POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI PRACA DYPLOMOWA MAGISTERSKA POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI Kierunek: Specjalno± : Automatyka i Robotyka (AIR) Robotyka (ARR) PRACA DYPLOMOWA MAGISTERSKA Podatny manipulator planarny - budowa i sterowanie Vulnerable planar

Bardziej szczegółowo