Programowanie w językach skryptowych

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

Download "Programowanie w językach skryptowych"

Transkrypt

1 Programowanie w językach skryptowych Wykład 1: Wprowadzenie do języków skryptowych 1

2 Plan wykładu Wykłady są po 2 godziny tygodniowo przez pierwszą połowę semestru. Wykład1 Przypomnienie z Pythona, Przykładowe skrypty systemowe w Python. Wykład 2 OOP Wykład 3 Wątki Wykład 4 Wstęp o Ruby, typy danych, instrukcje sterujące, pętle Wykład 5 stringi, OOP, Refleksje Wykład 6 wyrażenia regularne, wyjątki, wątki Wykład 7 Kolokwium 2

3 Typy języków skryptowych Języki kontroli zadań i powłoki (ang. job control languages and shells) Najstarsze języki skryptowe: Unix shelll, MS DOS COMMAND.COM Języki specyficzne dla aplikacji Tworzone dla jednej aplikacji. Emacs Lisp, VisualBasic for application Języki przetwarzania tekstu Narzędzia Unixa: AWK, sed, grep, pierwsze wersje Perl Dynamiczne języki ogólnego przeznaczenia dynamiczne typy, zarządzanie pamięcią, używane do budowy dowolnych programów Języki GUI Operują na graficznych elementach systemu operacyjnego, symulują działanie użytkownika.

4 Język skryptowy Język skryptowy język programowania służący do kontrolowania danej aplikacji lub służący do pisania kodu, który jest analizowany przez interpretator Skrypty programy napisane w językach skryptowych, których kod źródłowy, lub kod pośredni są analizowane przez interpretator lub program główny i uruchamiane. Programy nieskryptowe są najpierw kompilowane to kodu maszynowego i później wykonywane niezależnie od innych aplikacji. Wczesne języki skryptowe były zwykle zwane językami plików wsadowych (ang. batch languages) tworzono w celu skrócenia tradycyjnego procesu edytowanie kompilacja linkowanie wykonanie.

5 Przykłady języków skryptowych Python; ASP; AutoIt; AviSynth; Awk; bash; Brain; C Script; CobolScript; Dylan; E; Euphoria; Guile; Game Maker Language; ICI;JavaScript;JCL;Lua;MUMPS;ObjectRexx;Perl;PHP;Pike; Pliant; AngelCode; QuakeC; REBOL; Rexx; Ruby; Groovy; sh; Simkin; Tcl; UnrealScript; VBScript; Visual DialogScript; Miva.

6 Czym jest Python Python to popularny (gdyż prosty, o dużych możliwościach, darmowy i powszechnie dostępny) język skryptowy, opracowany we wczesnych latach 90. przez Guido van Rossuma Język nie wymusza jednego stylu programowania, pozwalając na stosowanie różnych. W Pythonie możliwe jest programowanie obiektowe, programowanie strukturalne i programowanie funkcyjne. Typy sprawdzane są dynamicznie, a do zarządzania pamięcią stosuje się garbage collection. Zastosowanie Pythona NASA aplikacje do zarządzania kontrolą startową wahadłowców. Projekt Nebula to rozproszone środowisko obliczeniowe przystosowane do wykonywania obliczeń w "chmurze" łączące wiele modułów i aplikacji Pythonowych. 6

7 Darmowość i swobodny dostęp Powszechnie dostępny: Oprogramowanie o otwartych źródłach Licencja Pythona zezwala na kopiowanie, modyfikację, rozszerzanie, rozpowszechnianie, wbudowywanie i odsprzedaż bez konieczności wnoszenia opłat lub podpisywania umów licencyjnych. Ograniczenia: Należy umieścić informacje oprawach autorskich.

8 Pewność działania i dobre wspomaganie Powstał 20 lat temu stąd obecnie jest to dojrzały produkt, którego kod źródłowy był tworzony, modyfikowany, testowany i poprawiany przez wiele osób. Python jest rozpowszechniany wraz z kompletem dokumentacji, samouczek, opis języka oraz opis bibliotek

9 Przenośność Python został napisany w ANSI C. Można go skompilować iuruchamiać na każdej popularnej współczesnejplatformiesystemowej. Rdzeń języka oraz biblioteki działają w ten sam sposób na wszystkich platformach, stądprogramymożna tworzyć wmieszanychśrodowiskach. Ograniczenia: niektóre rozszerzenia Pythona są zależne od systemu operacyjnego. Nie można zatem wywoływać modułu COM z Windows w systemie Linux.

10 Zgodność z innymi językami Python pozwala się łatwo sklejać z istniejącymi bibliotekami napisanymi w C, C++, Fortran, Java lub Visual Basic (za pomocą pakietu COM) O integracji Pythona z C można przeczytać w podręcznikach Python/C API refence Manual i Extending and embeding the Python Interpreter dołączonych do dystrybucji Pythona Jython implementacja Pythona dla JVM. Jython umożliwia wykorzystanie składni Pythona w programach java. Pozwala to na bezproblemową integrację z wykorzystaniem bibliotek Java i innych aplikacji opartych na Java. Projekt Jython dąży dotego,abywszystkiemoduły Pythona można byłouruchamiać na JVM IronPython implementacja Pythona dla platformy.net Framework. IronPython posiada również wsparcie we flagowym środowisku programistycznym firmy Microsoft,czyliVisual Studio

11 Przejrzystość kodu KodPythonamożna łato odczytać dziękinastępującym cechom: Struktura wierszowa wymuszająca jednolite stosowanie wcięć do wydzielania bloków kodu. Jest to cecha unikatowa wśród powszechnie stosowanych języków programowania Składnia i semantyka ułatwiająca stosowanie go zarówno w prostychskryptachjak i w dużych programach Elastyczne struktury danych i dynamiczne typy umożliwiające zaprogramowanie wielu czynności w kilku wierszach.

12 Obiektowość Klasy Obiekty Dziedziczenie Przeciążanie Wyjątki Refleksja

13 Gdzie działa Python YouTube popularny serwis z klipami wideo jest w większości napisany w Pythonie. Twórcy serwisu podkreślali wydajność jaką oferuje Python, a także szybkie implementowanie nowych funkcjonalności poprzez czytelny kod, który łatwo rozszerzać i aktualizować. Google używa Pythona w wielu swoich aplikacjach i usługach takich jak Google App Engine, czy Google Wave. Zatrudnia nawet twórcę tego języka Guido van Rossuma. Aplikacje napisane w Pythonie działają pod wieloma systemami takimi jak Windows, Linux/Unix, Mac OS X, OS/2, Amiga, czy smarphony Palma i Nokia. Dostępne są także implementacje Pythona w Javie (Jython) i.net (IronPython) działające wszędzie tam, gdzie dostępne są te platformy. 13

14 Typy projektów Tworzenie dynamicznych stron internetowych Frameworki Django, Pylons, serwer aplikacji Zope/Plone. Efektywne i szybkie tworzeniu nowoczesnych stron internetowych bogatych w funkcjonalności. Język ma wiele zalet w porównaniu do PHP Platforma Google App Engine dla rozproszonego hostingu aplikacji internetowych. Oparta została o Pythona i oferuje serwisom www taką samą skalowalność, jaką posiadają wszystkie aplikacje i usługi tej firmy. GAE jest darmowe. Usługi i serwisy społecznościowe to obecnie podstawa dla wielu serwisów www. Za pomocą Pythona można wykorzystać API/usługi serwisów takich jak Twitter, Blip.pl, Facebook, aplikacji Google (Maps, Docs i innych przez GData), czy Google Wave. Przykładowo biblioteka PyFacebook pozwala tworzyć aplikacje dla tego serwisu, a API Google Wave umożliwia tworzenie aplikacji dla tej platformy, czy integrowanie własnych stron i aplikacji z Wave 14

15 Typy projektów Programowanie sieciowe różne usługi, biblioteki, aplikacje, serwery i klienty wykorzystujące sieci. Moduły: socket, select, HTTPServer, SimpleHTTPRequestHandler Aplikacje desktopowe (MS Windows, OS X, Linux) można pisać w Pythonie za pomocą bibliotek takich jak PyQt4, PyGTK, wxpython, czy wbudowanej biblioteki tk. Za pomocą aplikacji py2exe można stworzyć gotowe aplikacje (exe) dla systemów MS Windows, a za pomocą py2app gotowe aplikacje dla OS X. 15

16 Typy projektów Zastosowania naukowe, finansowe, przetwarzanie danych. Generowanie wykresów, zestawień, plików PDF, arkuszy Excela, czy ODT/ODS. Reportlab generujeplikipdfiformatujeraporty Matplotlib generowanie wykresów. Scipy oferuje implementacje różnych algorytmów do metod numerycznych. PIL biblioteka przetwarzania i analizy obrazów xlwt i xlrt zapis i odczyt arkuszy Excela. Gry i aplikacje wykorzystujące 3D też można stworzyć z wykorzystaniem Pythona. Bazy danych możliwość zarządzania bazami danych różnych typów. Instalacje Python i Python 3.2. Wersje 32 bitowe i 64 bitowe na Windows oraz na inne systemy: Linux, MacOS 16

17 Dystrybucja Pythona interpreter, standardowe moduły, pliki pomocnicze wymagane do uruchomienia programów. Python działa na większości systemów operacyjnych w tym: Windows, Linux, MacOS

18 Dokumentacja Pythona Python Tutorial wprowadzenie do programowania w Pythonie napisane przez Guido van Rossuma zawiera dużo przykładów. Python library Reference opisuje standardową bibliotekę Pythona dołączoną do pakietu dystrybucyjnego, a także wbudowane typy danych, funkcje i metody. Python language Refence zawieradokładny opis składni i znaczenia elementów języka.

19 Python 2 i Python 3 Python 3 = Python 3000 lub Py3K Wyrażenie print zastąpiono przez funkcję print() Metody dict.keys(), dict.items() i dict.values() zwracają widoki zamiast list map() i filter() zwracają iteratory Użycie typów text i binarnego zamiast stringów unikodowych i 8 bitowych Niezgodność wielu przydatnych bibliotek 19

20 Zastosowanie IDLE Zintegrowane środowisko programowania) jest aplikacją, która opakowuje interpreter Pythona w interfejs graficzny (GUI) i dołącza wiele funkcji do podstawowego interpretera wiersza poleceń. Charakteryzuje się ona obecnością menu, automatycznym dodawaniem wcięć, wskazówkami na temat składni, debuggerem oraz narzędziami do edycji plików. IDLE jest dostępna w wersjach przeznaczonych dla systemów Windows i Unix (dla systemu MacOS istnieje podobne narzędzie o nazwie Python IDE). Pełna dokumentacja IDLE jest dostępna pod adresem: Aplikacja IDLE jest dołączana do dystrybucji Pythona.

21 Przetwarzanie stringów Podmiana fragmentu napis.replace('ala', 'Ola').replace('.', ' i psa.') Zmiana na tytuł (lower, upper, swapcase) napis.title() # 'Ala Ma Kota.' Konkatencja stringów 'Ala' "Ma" ""Kota"" # 'AlaMaKota' Konwersja na string str(cokolwiek) Operator konkatencji 'Ala ma ' + str(2) + koty. # 'Ala ma 2 koty' Operator powielania 'la'*7 # 'lalalalalalala' 21

22 Przetwarzanie stringów Podawanie kolejnych parametrów: "Podajemy {0} paramet{1}".format('kolejne', 'ry') Parametry nazwane "Nazwa {param}".format(param='parametru.') Pojedynczy znak (liczymy od 0) napis[4] Zakres (liczymy od 0) napis[4:6] Pojedynczy znak od końca napis[ 5] Zakres licząc od końca napis[ 5: 1] napis[ 5:] UWAGA! String jest obiektem niemutowalnym. Przy modyfikacji stringu zwracana jest kopia obiektu. Oryginalna zmienna nie ulega modyfikacji! 22

23 Praca z listą Tworzenie pustej listy lista = [] Modyfikacja list lista = ['a', 'b', 'c'] Dodawanie nowych elementów lista.append('d') Rozszerzanie listy o listę nowych elementów lista.extend(['e', 'f', 'g']) Dodanie elementu na zdefiniowanej pozycji lista.insert(0, '0') 23

24 Praca z listą Usunięcie pierwszego wystąpienia elementu lista.remove('0') Usunięcie elementu z pozycji lista.pop (3) Usunięcie elementu z pozycji lista.del (3) Odwrócenie kolejności lista.reverse() Sortowanie listy lista.sort() Pobranie indeksu zadanego elementu lista.index('d') Liczba elementów listy lista.count() Liczba konkretnych elementów listy lista.count('c') 24

25 Szybkie przetwarzanie list W Pythonie w większości przypadków nie ma konieczności używania pętli w czasie przetwarzania list Szybkie tworzenie listy Lista = [0] * 20 Lista2 = [3,5,2] * 6 Lista3 = range(1,21,2) Filozofia Pythona: Jak możesz nie używaj pętli 25

26 Listy składane (List comprehensions) Postać prosta [wyrażenie for zmienna in sekwencja] Lista3 = [1,2,3, 5, 11] Lista4 = [2*x for xinlista3] Lista_krotek = [(x, x*x) for x in range(1,5)] Kody_ASCII = [(x, ord(x)) for x in "ABCDEFGHIJKLMNOPQRSTUVWXYZ"] Postać prosta warunkowa [wyrażenie for zmienna in sekwencja if warunek] Lista5 = [x for x in Lista3 if x>10] Podzielne = [x for x in range(1,20) if not (x%3) or not (x%5)] Samogloski = [(x, ord(x)) for x in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" if x in "AEIOUY"] 26

27 Listy składane (List comprehensions) Postać rozszerzona [wyrażenie for zmienna1 in sekwencja1 for zmienna2 in sekwencja2... ] Iloczyn kartezjański sekwencji Pary = [(x,y) for x in range(1,5) for y in range(4,0, 1)] Roznice = [x y for x in range(1,5) for y in range(4,0, 1)] Sklejka = [str(x)+y+str(z) for x in [1,2] for y in ['A','B'] for z in [0,3] ] Postać rozszerzona z jednym warunkiem [wyr for zm1 in sekwencja1 for zm2 in sekwencja2... if warunek ] Pary każdy element z każdym, tylko jeżeli pierwszy element jest mniejszy od drugiego: [(x,y) for x in range(1,5) for y in range (6,3, 1) if x<y] Postać rozszerzona z wieloma warunkami [wyrażenie for zmienna1 in sekwencja1 if warunek1 for zmienna2 in sekwencja2 if warunek2... ] 27

28 Zagnieżdżone listy składane >>> matrix = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], ] Poniższa lista składana dokonuje transpozycji macierzy: >>> [[row[i] for row in matrix] for i in (4)] [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] 28

29 Wykonywanie funkcji na listach Wyrażenie lambda służy do definiowania anonimowych funkcji w postaci wyrażenia: lambda argument : wyrażenie a = lambda : 'a' print a() # wywołanie funkcji lambda o nazwie a b = lambda x,y : x+y print b(1,2) # wywołanie funkcji lambda o nazwie b apply wywołanie funkcji z parametrami uzyskanymi z rozpakowania sekwencji dziel=lambda x,y,z: (x+y)/z #zamiast pisać dziel(3,5,2) xyz=(3,5,2) apply(dziel,xyz) 29

30 Wykonywanie funkcji na listach Funkcja map() wykonuje podaną funkcję dla każdego elementu listy, krotki lub słownika. Często łączy się z funkcją anonimową. Wynikiem operacji jest lista map(lambda x: x*x, range(5)) map(dziel, range(5), range(5), [2]*5) Funkcja zip() służy do konsolidacji danych. Przyjmuje jako swoje parametry jedną lub więcej sekwencji, po czym zwraca listę krotek, których poszczególne elementy pochodzą z poszczególnych sekwencji. Krotki = zip("abcdef",[1,2,3,4,5,6]) gdy długości sekwencji są różne, wynikowa sekwencja jest skracana do najkrótszej 30

31 Wykonywanie funkcji na listach Funkcja filter() filtruje elementy sekwencji przy użyciu podanej funkcji, która musi zwracać wartość Prawdę lub Fałsz S="Ala ma kota i konto na chomiku." Samogloski=filter(lambda x:x in 'aeiouy', S) Pozostale = filter(lambda x:x not in in 'aeiouy', S) Funkcja reduce() pobiera dane z sekwencji i zwraca na ich podstawie pojedynczą wartość np. sumę liczb. Funkcja ta wykonuje podaną jako pierwszy argument funkcję dla pierwszych dwóch elementów sekwencji, a następnie wykonuje tą funkcję dla wyniku i trzeciego elementu i tak do wyczerpania elementów sekwencji. #suma elementów: reduce(lambda x,y: x+y, [1,2,3]) #iloczyn elementów: reduce(lambda x,y: x*y, [1,2,3,4]) #suma kwadratów elementów: reduce(lambda x,y: x+y, map(lambda x: x*x, range(1,10))) 31

32 Praca ze słownikiem Tworzenie pustego słownika dict={} Inicjalizacja nowego słownika dict={'a': 'A', 'b': 'B', 'c': 'C'} Aktualizacja słownika dict.update({'d':'d'}) Wyświetlenie listy kluczy (iterkeys) dict.keys() Wyświetlenie listy wartości (itervalues) dict.values() Wyświelenie listy elementów (iteritems) dict.items() Usunięcie wartości o zadanym kluczu dict.pop('d') Usunięcie pierwszego elementu dict.popitem() Wyczyszczenie słownika dict.clear() 32

33 Praca z krotkami Krotka (ang. tuple) jest niezmienną listą. Zawartość krotki określamy tylko podczas jej tworzenia. Potem nie możemy już jej zmienić. Tworzenie nowej krotki t = ("a", "b", "ala", "z", "element") Przeszukiwanie krotki t.index("z") "z" in t Wybór elementów krotki t[0] t[ 1] t[1:3] Krotki można konwertować na listy. Wbudowana funkcja tuple, której argumentem jest lista, zwraca krotkę z takimi samymi elementami, natomiast funkcja list, której argumentem jest krotka, zwraca listę. W rezultacie tuple zamraża listę, a list odmraża krotkę. 33

34 Generatory Generatory są w Pythonie mechanizmem leniwej ewaluacji funkcji, która w przeciwnym razie musiałaby zwracać obciążającą pamięć lub kosztowną w obliczaniu listę. def generuj_calkowite(n): for i in xrange(n): yield i Można teraz użyć tego generatora: for i in generuj_calkowite(n): print i Przed wykonaniem drugiego fragmentu kodu należy oczywiście zdefiniować zmienną N. Definicja generatora przypomina definicję funkcji, ale zamiast słowa kluczowego return używa się yield. Generator jest obiektem przechowującym stan, mogącym wielokrotnie wchodzić do i opuszczać ten sam dynamiczny zakres. Wywołanie generatora może być użyte zamiast listy lub innej struktury, po której elementach będziemy iterować. Za każdym razem, gdy pętla for w powyższym przykładzie potrzebuje następnego elementu, wywoływany jest generator, który daje następny element.

35 Praca ze zbiorami Zbiory to nieuporządkowane zestawy obiektów. Używamy ich, gdy istotny jest tylko fakt występowania elementu, a nie jego położenie albo liczba powtórzeń. Zbiory można testować pod kątem występowania danego elementu, sprawdzać czy to jest podzbiór innego zbioru, szukać części wspólnej zbiorów. Tworzenie zbioru A = set() kraje = set(['brazylia', 'Rosja', 'Indie']) Modyfikacja zbioru kraje2 = kraje.copy() kraje2.add('chiny' ) lub szybciej kraje2 = kraje set(['chiny']) kraje.remove('rosja') 35

36 Praca ze zbiorami Czy element występuje w zbiorze? >>> 'Indie' in kraje True >>> 'USA' in kraje False Zawieranie się zbiorów kraje2.issuperset(kraje) kraje2 > kraje kraje.issubset(kraje2) kraje < kraje2 Część wspólna zbiorów kraje.intersection(kraje2) kraje & kraje2 36

37 Przykładowe skrypty systemowe Funkcja wypisuje na konsoli nazwę katalogu oraz jego zawartość. import os def get_directory_info(dir): os.chdir(dir) current_dir = os.getcwd() dir_contents = os.listdir(dir) print "" print "Bieżący katalog = ", current_dir print "Zawartość katalogu = ", dir_contents print"" get_directory_info('c:\\python25') Oto przykład wyniku wywołania tej funkcji: Bieżący katalog = C:\python25 Zawartość katalogu = ['DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'pywin32 wininst.log', 'README.txt', 'Removepywin32.exe', 'Scripts', 'tcl', 'Tools', 'w9xpopen.exe'] 37

38 Funkcja os.urandom(25) os.urandom() służy do generowania losowych ciągów bajtów o długości przekazanej jako parametr jej wywołania. W systemach Linux funkcja ta odczytuje dane z urządzenia /dev/urandom, w Windowsie wykorzystuje mechanizm CryptGenRandom. Jest to przydatna funkcja w zadaniach kryptograficznych oraz przy generowaniu unikalnych sygnatur wykorzystywanych w uwierzytelnianiu komunikacji między programami. import os x = os.urandom(25) y = x z = os.urandom(25) print "Does x = y? ", x==y print "Does x == z? ", x==z print "x = ", x Oto przykładowy wynik wywołania programu: Czy x == y? True Czy x == z? False x = öij?? RV?iW Tő Ô,öâ?ŚŇĐ 38

39 Moduł time Moduł time oferuje funkcje służące do manipulowania i formatowania danych związanych z czasem. Moduł jest dostępny dla wszystkich systemów operacyjnych, ale nie wszystkie funkcje są dostępne dla każdego systemu operacyjnego. Implementacja niektórych funkcji jest specyficzna dla systemu operacyjnego, zatem przed użyciem modułuwartozapoznać się z jego dokumentacją. Czas w module time jest reprezentowany za pomocą listy dziewięciu liczb całkowitych. Funkcje gmtime(), localtime() oraz strptime() zwracają wyniki z możliwością dostępu do poszczególnych z tych wartości za pośrednictwem atrybutów. 0 tm_year rok czterocyfrowo, np tm_mon zakres od 1 do 12 2 tm_mday zakres od 1 do 31 3 tm_hour zakres od 0 do 23 4 tm_min zakres od 0 do 59 5 tm_sec zakres od 0 do 61 6 tm_wday zakres od 0 do 6, poniedziałek to 0 7 tm_yday zakres od 1 do tm_isdst 0, 1, 1 39

40 Przykład time() time() zwraca liczbę zmiennoprzecinkową reprezentującą w sekundach czas, jaki upłynął od 1 stycznia 1970 roku (tradycyjny punkt odniesienia czasu w systemach Unix). import time raw_input("naciśnij [Enter]: ") time1 = time.time() raw_input("zaczekaj kilka sekund i naciśnij [Enter] ponownie: ") time2 = time.time() difference = int(time2 - time1) print "Pomiędzy naciśnięciami minęło ", difference, "sekund" Wynik wywołania tego skryptu będzie miał następującą postać: Naciśnij [Enter]: Zaczekaj kilka sekund i naciśnij [Enter] ponownie: Pomiędzy naciśnięciami minęło 5 sekund 40

41 Przykład formatowania czasu Czas może być wyświetlony jako krotka lub jako ciąg znaków sformatowany na wiele sposobów. Dodatkowo obsługiwane są strefy czasowe (jak czas lokalny czy Greenwich Mean Time [GMT]): import time print "Czas GMT jako krotka: ", time.gmtime() print "Czas GMT jako ciąg znaków: ", time.asctime(time.gmtime()) print "Czas lokalny jako krotka: ", time.localtime() print "Czas lokalny jako ciąg znaków: ", time.asctime(time.localtime()) print "Czas lokalny sformatowany jako <miesiąc dzień, rok>: ", \ time.strftime("%b %d, %Y") Wynik wywołania tego skryptu ma następującą postać: Czas GMT jako krotka: (2009, 2, 5, 22, 31, 15, 3, 36, 0) Czas GMT jako ciąg znaków: Thu Feb 05 22:31: Czas lokalny jako krotka: (2009, 2, 5, 23, 31, 15, 3, 36, 0) Czas lokalny jako ciąg znaków: Thu Feb 05 23:31: Czas lokalny sformatowany jako <miesiąc dzień, rok>: February 05,

42 Obsługa parametrów wywołania programu Moduł optparse oferuje wygodne mechanizmy obsługi opcji wywołania z wiersza poleceń. Automatycznie obsługiwany jest też tekst pomocy w przypadku zastosowania opcji h lub help. from optparse import OptionParser parser = OptionParser() parser.add_option("-n", "--name", dest="name", help="wyświetlenie nazwiska") (options, args) = parser.parse_args() print "Nazywasz się ", options.name Przykład wywołania programu wraz z jego wynikiem: C:\Python> python optparse-example1.py --name Adam Nowak" Nazywasz się Adam Nowak Jeśliprogramzostaniewywołany zopcją h, zostanie wyświetlony automatyczniewygenerowanytekst pomocy (w języku angielskim): C:\Python> python optparse-example1.py h Usage: optparse-example1.py [options] Options: -h, --help show this help message and exit -n NAME, --name=name wyświetlenie nazwiska 42

43 Moduł platform Funkcje modułu platform pozwalają uzyskać informacje zarówno na temat platformy sprzętowej, jak i programowej. Program może przeanalizować uzyskane w ten sposób informacje i dostosować odpowiednio swoje działanie. import platform if platform.platform().find("windows")!= -1: print "Bieżący system to Windows" # w tym miejscu umieść kod specyficzny dla Windowsa elif platform.platform().find("linux")!= -1: print "Bieżący system to Linux" # w tym miejscu umieść kod specyficzny dla Linuksa Jeśli skrypt wywołamy w systemie Windows, zobaczymy następujący wynik: Bieżący system to Windows W przypadku Linuksa zobaczymy następujący wynik: Bieżący system to Linux 43

44 Moduł getpass Moduł getpass udostępnia funkcje obsługujące odczyt haseł od użytkownika, pozwalając skryptom uwierzytelniać użytkowników na podstawie poprawności podanego hasła. Inną użyteczną funkcją modułu jest zwracanie nazwy systemowej zalogowanego użytkownika. import getpass password = getpass.getpass() if password == "letmein": print("nazwa zalogowanego użytkownika " + getpass.getuser()) 44

45 Moduł winreg dostęp do Rejestru Windows Poniższy przykład wyszukuje w rejestrze określony klucz i wyświetla wartości wszystkich jego podkluczy: import _winreg explorer = _winreg.openkey(_winreg.hkey_current_user, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer") # lista wartości zapisanych w danym kluczu rejestru i = 0 try: while 1: name, value, type = _winreg.enumvalue(explorer, i) print repr(name) i += 1 except: print Oto przykładowy wynik działania tego programu: C:\Python> python winreg-example1.py 'WebFindBandHook' 'FileFindBandHook' 'Logon User Name' 'ShellState' 'CleanShutdown' 'Browse For Folder Width' 'Browse For Folder Height' 'FaultCount' 'FaultTime' 'IconUnderline' 'EnableAutoTray' 'link' 45

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Python. Skąd taka nazwa? Kurs systemu UNIX 1 Python Skąd taka nazwa? Kurs systemu UNIX 1 Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do

Bardziej szczegółowo

Przegląd języka Python. Łukasz Anwajler

Przegląd języka Python. Łukasz Anwajler Przegląd języka Python Łukasz Anwajler lukasz.anwajler@pjwstk.edu.pl Nie wierzcie mi na słowo Zaraz zobaczymy: czym jest Python dlaczego warto go używać jakie ma zastosowania gdzie z niego korzystają jakzacząć

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 1. 6 października 2017 Plan wykładu 1 2 3 4 Plan wykładu 1 2 3 4 Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/ marcinm/dyd/python Materiały

Bardziej szczegółowo

Python wstęp do programowania dla użytkowników WCSS

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 1. 4 października 2013 Plan wykładu 1 2 3 4 Typy proste Kolekcje Instrukcje w języku (przypomnienie) Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

Bardziej szczegółowo

Wykresy i interfejsy użytkownika

Wykresy i interfejsy użytkownika Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Redis, skrypty w języku Lua

Redis, skrypty w języku Lua edis, skrypty w języku Lua 1/15 Redis, skrypty w języku Lua Technologie Zarządzania Treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej

Bardziej szczegółowo

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Python dla początkujących Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Wstęp Stworzony w latach 90 przez Guido van Rossum Nazwa pochodzi od

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

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

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Wprowadzenie do programowania

Wprowadzenie do programowania do programowania ITA-104 Wersja 1 Warszawa, Wrzesień 2009 ITA-104 do programowania Informacje o kursie Zakres tematyczny kursu Opis kursu Kurs przeznaczony jest do prowadzenia przedmiotu do programowania

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie. TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE 1. Po uruchomieni programu Greenfoot początkowa scena ma następujące składniki: a. obiekty scenerii i jeden obiekt ruchomy, b. obraz tła, jeden lub więcej

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

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 7 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Praca z repozytorium kodu Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

Programowanie w C. dr inż. Stanisław Wszelak

Programowanie w C. dr inż. Stanisław Wszelak Programowanie w C dr inż. Stanisław Wszelak Przeszłość i przyszłość składni programowania w C Ken Thompson Denis Ritchie Bjarne Stoustrup Zespoły programistów B C C++ C# 1969 rok Do SO UNIX 1972 rok C++

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

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW http://metodycy.torun.pl/ m.informatyka@metodycy.torun.pl 1. Wprowadzenie do Pythona podstawowe informacje Python to język programowania wysokiego poziomu,

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Podstawy języka skryptowego Lua

Podstawy języka skryptowego Lua Podstawy języka skryptowego Lua Wykorzystanie Lua w C++ Krzysztof Rossa - digiboy rbox_usuń_@o2.pl 2007-07-29 Kontakt z autorem: rbox_usun_@o2.pl Zawartość Wstęp... 3 Po co używamy skryptów?... 3 Przygotowanie

Bardziej szczegółowo

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język PYTHON Podstawowe informacje Python to język skryptowy, interpretowany - co oznacza, że piszemy skrypt, a następnie wykonujemy go za

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Bazy danych i strony WWW

Bazy danych i strony WWW Bazy danych i strony WWW Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy

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

Metody numeryczne. Artur Wymysłowski, prof. PWr. Wrocław

Metody numeryczne. Artur Wymysłowski, prof. PWr. Wrocław Metody numeryczne Artur Wymysłowski, prof. PWr. Wrocław Informacje ogólne Prowadzący: dr hab. inż. Artur Wymysłowski, prof. PWr. tel. 71 320 3327 email: artur.wymyslowski@pwr.edu.pl Materiały do wykładów

Bardziej szczegółowo

PyPy's Approach to Virtual Machine Construction

PyPy's Approach to Virtual Machine Construction PyPy's Approach to Virtual Machine Construction Armin Rigo, Samuele Pedroni Prezentacja: Michał Bendowski Czym jest PyPy? Implementacja Pythona w Pythonie - wydajniejsza niż oryginalna implementacja w

Bardziej szczegółowo

Koło Studentów Informatyki Uniwersytetu Wrocławskiego

Koło Studentów Informatyki Uniwersytetu Wrocławskiego Koło Studentów Informatyki Uniwersytetu Wrocławskiego Python programming is fun again! Piotr Wasilewski wasilewski.piotrek (at) gmail.com Akademickie Stowarzyszenie Informatyczne Plan wykładu Wstęp Język

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy

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

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright 2018 Spis treści Część I. Wprowadzenie do programowania 13 Rozdział 1. Wprowadzenie 15 Struktura

Bardziej szczegółowo

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika) IBM SPSS Statistics Wersja 22 Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika) Spis treści Instrukcja instalacji.......... 1 Wymagania systemowe........... 1 Kod autoryzacji.............

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne

Bardziej szczegółowo

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

Bardziej szczegółowo

Python wstęp. Michał Bereta www.michalbereta.pl

Python wstęp. Michał Bereta www.michalbereta.pl Python wstęp Michał Bereta www.michalbereta.pl Wprowadzenie... 1 Źródła wiedzy... 1 Uruchomienie interpretera Pythona... 2 Python jako kalkulator użycie interaktyne... 2 Uruchamianie skryptów z plików...

Bardziej szczegółowo

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Deduplikacja danych. Zarządzanie jakością danych podstawowych Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012 Skrypty BASH a Systemy Operacyjne 2 Mateusz Hołenko 4 października 2012 Plan zajęć O skryptach słów kilka... Powłoka, wiersz poleceń Obsługa powłoki bash Składnia języka skryptowego bash a Zadania Mateusz

Bardziej szczegółowo

Wstęp do Informatyki dla bioinformatyków

Wstęp do Informatyki dla bioinformatyków Wstęp do Informatyki dla bioinformatyków Wykład 1. Wstęp do Wstępu Bartek Wilczyński bartek@mimuw.edu.pl Po pierwsze - Formalności 2 kolokwia (po 15 pkt) początek XI i koniec XII Dwa programy zaliczeniowe:

Bardziej szczegółowo

Wprowadzenie do biblioteki klas C++

Wprowadzenie do biblioteki klas C++ Instrukcja laboratoryjna nr 7 Programowanie w języku C 2 (C++ poziom zaawansowany) Wprowadzenie do biblioteki klas C++ WxWidgets mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz dr inż. Wilk-Jakubowski

Bardziej szczegółowo

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Bash - wprowadzenie. Bash - wprowadzenie 1/39 Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:

Bardziej szczegółowo

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza

Bardziej szczegółowo

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego. Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego. Czas realizacji zajęć: 135 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Zmienne śrowiskowe oraz ich eksportowanie, argumenty

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Programowanie funkcyjne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XIV Jesień 2013 1 / 25 Paradygmaty programowania Programowanie imperatywne Program

Bardziej szczegółowo

Wykład nr 1 Język Ruby i framework Rails

Wykład nr 1 Język Ruby i framework Rails Wykład nr 1 Język Ruby i framework Rails Elektroniczne Przetwarzanie Informacji Konsultacje: czw. 14.00-15.30, pokój 3.211 Historia Rubiego i Railsów 1993 Yukihiro Matsumoto San, Japonia 1995 pierwsze

Bardziej szczegółowo

Pracownia internetowa w szkole ZASTOSOWANIA

Pracownia internetowa w szkole ZASTOSOWANIA NR ART/SBS/07/01 Pracownia internetowa w szkole ZASTOSOWANIA Artykuły - serwery SBS i ich wykorzystanie Instalacja i Konfiguracja oprogramowania MOL Optiva na szkolnym serwerze (SBS2000) Artykuł opisuje

Bardziej szczegółowo

Struktury systemów operacyjnych

Struktury systemów operacyjnych Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS

Bardziej szczegółowo

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności

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

KARTA KURSU. Języki skryptowe

KARTA KURSU. Języki skryptowe KARTA KURSU Nazwa Nazwa w j. ang. Języki skryptowe Script languages Kod Punktacja ECTS* 3 Koordynator mgr Alfred Budziak Zespół dydaktyczny: dr Olaf Bar mgr Alfred Budziak Opis kursu (cele kształcenia)

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

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

Umieszczanie kodu. kod skryptu

Umieszczanie kodu. kod skryptu PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona

Bardziej szczegółowo

Język Python (2) Język Python (2) 1/36

Język Python (2) Język Python (2) 1/36 Język Python (2) Język Python (2) 1/36 Język Python (2) 2/36 Podstawy funkcji Pojęcia podstawowe Instrukcja def tworzy obiekt funkcji i przypisuje go do nazwy Instrukcja return przekazuje obiekt wynikowy

Bardziej szczegółowo

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE Budowa i oprogramowanie komputerowych systemów sterowania Laboratorium 4 Metody wymiany danych w systemach automatyki DDE 1 Wprowadzenie do DDE DDE (ang. Dynamic Data Exchange) - protokół wprowadzony w

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

NARZĘDZIA WIZUALIZACJI

NARZĘDZIA WIZUALIZACJI Kurs interaktywnej komunikacji wizualnej NARZĘDZIA WIZUALIZACJI Andrzej Łachwa andrzej.lachwa@uj.edu.pl 3 4/8 Zobacz film: http://www.ted.com/talks/david_mccandless_the_beauty_of_dat a_visualization.html

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu MacOS

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu MacOS Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu MacOS Kontakt: e-mail: kontakt@mforex.pl infolinia: 22 697 4774 www.mforex.pl 1 1 O platformie Platforma mforex Trader to część systemu

Bardziej szczegółowo

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Szczegółowy opis zamówienia:

Szczegółowy opis zamówienia: Szczegółowy opis zamówienia: Rok 2016 budowa stron w html5 (8h v + 4h ćw) 8 szt. html5 - zaawans. (7h v + 5h ćw) 8 szt. programowania w java script (9h v + 7h ćw) 8 szt. java script zaawans (8h v + 4h

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

MentorGraphics ModelSim

MentorGraphics ModelSim MentorGraphics ModelSim 1. Konfiguracja programu Wszelkie zmiany parametrów systemu symulacji dokonywane są w menu Tools -> Edit Preferences... Wyniki ustawień należy zapisać w skrypcie startowym systemu

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

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

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+ Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu

Bardziej szczegółowo

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PODSTAWY PROGRAMOWANIA. Kod przedmiotu: Ovi1 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechatronika 5. Specjalność: Eksploatacja Systemów

Bardziej szczegółowo

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń: W pierwszym kroku nauczymy się uruchamiać w Pythonie tradycyjny* program ". Dzięki temu nauczysz się pisać w języku Python, a także zapisywać i uruchamiać swoje pythonowe programy. *Jest taka tradycja,

Bardziej szczegółowo

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane. MATLAB Co to jest? program komputerowy będący interaktywnym środowiskiem do wykonywania obliczeń naukowych i inżynierskich oraz do tworzenia symulacji komputerowych. Nazwa Nazwa programu pochodzi od angielskich

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo