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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bardziej szczegółowo

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

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

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

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

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty

Bardziej szczegółowo

Funkcje i instrukcje języka JavaScript

Funkcje i instrukcje języka JavaScript Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje

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

Python i programowanie funkcyjne. Python i programowanie funkcyjne czyli nie tylko obiektowość rządzi. OSEC Funkcyjnie w języku Python 1 z 40

Python i programowanie funkcyjne. Python i programowanie funkcyjne czyli nie tylko obiektowość rządzi. OSEC Funkcyjnie w języku Python 1 z 40 czyli nie tylko obiektowość rządzi 1 z 40 O czym będę mówił... Jak najmniej teorii bo nie czas i miejsce... Próba odpowiedzi na pythanie: Czy warto programować nie tylko obiektowo? Jak język Python wspiera

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 1 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 3 października 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

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

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

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

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

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

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna) IBM SPSS Statistics Wersja 22 Linux - Instrukcja instalacji (licencja wielokrotna) Spis treści Instrukcja instalacji.......... 1 Wymagania systemowe........... 1 Instalowanie produktu............ 1 Praca

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Spis treści. 1 Java T M

Spis treści. 1 Java T M Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste

Bardziej szczegółowo

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Co to jest NODE.JS? Nowoczesne środowisko programistyczne Node.js Co to jest NODE.JS? Nowoczesne środowisko programistyczne Środowisko programistyczne w sensie zestawu gotowych klas i metod których można używać do przygotowania własnych skalowalnych i wydajnych

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Uwierzytelnianie użytkowników, Obiekt session, Silniki

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

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 4. 23 października 2015 Plan wykładu 1 2 Pliki tekstowe Trwałość obiektów CSV Strumienie Plan wykładu 1 2 Pliki tekstowe Trwałość obiektów CSV Strumienie Protokół iteracyjny Producent Umiem dostarczać

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

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego

Bardziej szczegółowo

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Specyfikacja techniczna. mprofi Interfejs API

Specyfikacja techniczna. mprofi Interfejs API Warszawa 09.04.2015. Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 1 Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 WERSJA DATA STATUTS AUTOR 1.0.0 10.03.2015 UTWORZENIE DOKUMENTU

Bardziej szczegółowo

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany

Bardziej szczegółowo

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych) I. WSTĘP Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych) Algorytm - sposób na osiągnięcie celu w pewnych ograniczonych krokach. Program komputerowy realizuje zawsze algorytm.

Bardziej szczegółowo

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows IBM SPSS Statistics - ssentials for Python: Instrukcje instalacji dla Windows Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics - ssentials for Python w systemach operacyjnych Windows.

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

Dokumentacja końcowa projektu z ZPR

Dokumentacja końcowa projektu z ZPR Dokumentacja końcowa projektu z ZPR Temat projektu: Prowadzący projekt: Zespół projektowy: Losowe przeszukiwanie stanów dr inż. Robert Nowak Piotr Krysik Kamil Zabielski 1. Opis projektu Projekt ma za

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

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

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

Oracle11g: Programowanie w PL/SQL

Oracle11g: Programowanie w PL/SQL Oracle11g: Programowanie w PL/SQL OPIS: Kurs pozwala zrozumieć zalety programowania w języku PL/SQL. Studenci uczą się tworzyć bloki kodu wykonywanego po stronie serwera, który może być współużytkowany

Bardziej szczegółowo

Przypisywanie bibliotek w architekturze SAS

Przypisywanie bibliotek w architekturze SAS SAS Institute TECHNICAL SUPPORT Przypisywanie bibliotek w architekturze SAS Platforma SAS pozwala na zdefiniowanie wspólnych zasobów w metadanych oraz ustalanie praw dostępu dla użytkowników i grup. Ze

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 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 w klasie! 2 Język

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

Bardziej szczegółowo

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 21 maja 2012 Historia dokumentu

Bardziej szczegółowo

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS

DOS COMMAND.COM. Rys. 2. Główne moduły programowe systemu operacyjnego DOS. Interpreter poleceń. Rys. 3. Warstwowa struktura systemu DOS System Operacyjny DOS DOS (ang. Disc Operating System) jest to 16-bitowy jednozadaniowy system operacyjny. Głównym zadaniem systemu jest obsługa plików w systemie FAT (ang. File Allocation Table) i wsparcie

Bardziej szczegółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy

Bardziej szczegółowo

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i

Bardziej szczegółowo

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ Systemy baz danych 1. 2 Wstęp do baz danych 2. 2 Relacyjny model baz danych. 3. 2 Normalizacja baz danych. 4. 2 Cechy

Bardziej szczegółowo

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Spis treści Wprowadzenie...n...n... 5 Jak korzystać z tej książki?...t... 6 Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Podsumowanie...t...t...15 Rozdział 2. Rozdział

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

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

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

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

Bardziej szczegółowo

Podstawy. Jan Koprowski Politechnika Gdańska, FTiMS Informatyka Stosowana

Podstawy. Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS Informatyka Stosowana Podstawy 1 Plan prezentacji Garść informacji Komentarze Stringi Wbudowane typy liczbowe Konstrukcja print Pobieranie danych Konstrukcja if Konstrukcja if else Konstrukcja if elif else Pętla while Pętla

Bardziej szczegółowo

SPIS TREŚCI Funkcje systemu operacyjnego Zapewnia obsługę dialogu między użytkownikiem a komputerem Nadzoruje wymianę informacji między poszczególnymi urządzeniami systemu komputerowego Organizuje zapis

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008) NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI asix (na przykładzie systemu operacyjnego Windows 2008) Pomoc techniczna Dok. Nr PLP0018 Wersja: 2011-08-26 ASKOM i asix to zastrzeżony znak firmy ASKOM Sp. z

Bardziej szczegółowo

NARZĘDZIA WIZUALIZACJI

NARZĘDZIA WIZUALIZACJI NARZĘDZIA WIZUALIZACJI Kurs interaktywnej komunikacji wizualnej ANDRZEJ ŁACHWA andrzej.lachwa@uj.edu.pl Kraków, marzec 2014 3 4/8 Zwykłe działanie programu z danymi przechowywanymi w bazie danych polega

Bardziej szczegółowo

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

Wstęp do informatyki. Python 1

Wstęp do informatyki. Python 1 Wstęp do informatyki Python 1 Python - wprowadzenie Wysokopoziomowy język programowania obiektowego stworzony na początku lat dziewięćdziesiątych XXw. Cechy Pythona: - wszechstronne zastosowania (GUI,

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski -

SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - S t r o n a 2 SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - Copyright by Artur Niewiarowski 2013 ISBN: 978-83-937802-0-4 - Artur Niewiarowski Self-Publishing - All rights reserved. Wszelkie prawa

Bardziej szczegółowo

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak Systemy operacyjne System operacyjny Linux - wstęp Anna Wojak 1 1 Wstęp Linux jest systemem z rodziny Unix. Pierwsza wersja systemu została opracowana w 1969 roku przez K.Thompsona i D.Ritchie Jest to

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Podstawy programowania wykład

Podstawy programowania wykład Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1 Materiały do wykładu

Bardziej szczegółowo