Python podstawy programowania

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

Download "Python podstawy programowania"

Transkrypt

1 Python podstawy programowania Kurs w ramach przedmiotu: Symulacja komputerowa systemów dr inż. Krzysztof Czarnecki Politechnika Gdańska Katedra Systemów Elektroniki Morskiej 2014

2 Plan Słowo wstępu Ogólnie o typowaniu Instrukcje sterujące Programowanie obiektowe interfejs do obiektu Moduły zewnętrzne Wybrane operacje na plikach Obsługa wyjątków Wykres dyskretnej funkcji jednej zmiennej Przetwarzanie wektorów, macierzy Analiza widmowa sygnału Generacja addytywnego szumu białego (AWGN) Generacja sygnału świergotowego Symulacja transmisji danych w paśmie podstawowym Programowanie obiektowe w służbie SKS

3 Zakres kursu, popularność Pythona Niniejszy kurs obejmuje wybrane zagadnienia języka Python. Wspólnym mianownikiem wszystkich prezentowanych tu zagadnień jest implementacja komputerowej symulacji systemów, zwłaszcza analizy i przetwarzania sygnałów, oraz graficzna prezentacja zobrazowań. Elastyczność, wieloplatformowość, dość prosta składnia, ogromna liczba dodatkowych modułów oraz fakt, iż język Python jest udostępniany na wolnej licencji sprawia, że język ten jest jednym z najpopularniejszych języków programowania. spectrum.ieee.org

4 Instalacja interpretera języka Python Instalacja w systemie Linux należy wydać następujące polecenie w terminalu: apt-get install python3 (Ubuntu, Mint) yum install python3 (Fedora)... (inne Linuksy) Instalacja w systemie Windows należy ściągnąć najnowszą wersję ( 3.3.0) instalatora ze strony projektu: i postępować zgodnie z instrukcjami.

5 Wybór zintegrowanego środowiska programistycznego IDE: ang. Integrated Development Environment Do oddzielenia bloków kodu stosuje się wcięcia tabulatora. Dlatego zaleca się stosowanie zaawansowanych edytorów, które będą zapewniały, aby komunikat IndentationError: unexpected indent pojawiał się jak najrzadziej. Często stosowane IDE / edytory: PyCharm IDLE Python Emacs, Vim Notepad++ Eclipse skrypt-1.py 1 # blok 1 x = 1 3 print ("x =", x) if True : # po dwukropku nast ę puje blok,, podrz ę dny 5 # blok 2 7 y, z = 2, 3 print (" x + y + z =", x+y+z)

6 Uruchomienie skryptu Skrypt napisany w języku Python powinien rozpoczynać się od wskazania położenia interpretera w systemie plików oraz wyboru kodowania tekstu. Informacje te przekazuje się w dwóch pierwszych liniach skryptu jako komentarze: skrypt-2.py 1 #!/ usr / bin / python # -*- coding : utf -8 -*- Skrypt można uruchomić za pośrednictwem powłoki (Linux, Unix): bash python skrypt -2. py lub po nadaniu praw do wykonywania, bezpośrednio (Linux, Unix): 1 chmod a+x skrypt -2. py./ skrypt -2. py bash IDE m.in. udostępniają intuicyjne interfejsy do uruchamiania skryptów. (Linux, Windows,...)

7 Hello world! W języku Python deklaracja zmiennej odbywa się automatycznie przy jej inicjacji. Co więcej nie trzeba troszczyć się o usuwanie niepotrzebnych zmiennych i obiektów, gdyż interpreter Pythona jest wyposażony w tzw. garbage collector. Wybrane popularne typy danych to int, float i string. skrypt-3.py x = " Hello world!" # inicjacja zmiennej typu string 2 y = 2014 # inicjacja zmiennej typu int z = # inicjacja zmiennej typu float 4 print ( x, type (x)) 6 print ( y, type (y)) print ( z, type (z)) 8 # konwersja typu, rzutowanie 10 a = str (2014) b = float (" ") 12 c = int (z) 14 print ( a, type (a)) print ( b, type (b)) 16 print ( c, type (c))

8 Instrukcja warunkowa Instrukcja warunkowa: musi składać się z jednej klauzuli if, po której następuje test logiczny może zawierać dowolną liczbę klauzul elif, po których następują testy logiczne może zawierać klauzulę else skrypt-4.py 1 # instrukcja warunkowa,, wbudowana print (" x exists " if " x" in vars () else " x doesnt exist ") 3 # rozbudowana instrukcja warunkowa 5 if not " x" in vars (): pass elif type (x)== type ( float ()): print ("x is float ") 7 elif type (x)== type ( int ()): print ("x is int ") else : 9 print (" unexpected type ") del (x) Jeżeli blok kodu pod klauzulą zawiera tylko jedną instrukcję to może ona być umieszczona bezpośrednio po dwukropku. wbudowana funkcja vars() zwraca zbiór istniejących zmiennych. in służy do testowania czy obiekt znajduje się w zbiorze. Instrukcja pusta może być wywołana poleceniem pass. Można wymusić usunięcie obiektu poleceniem del. not to zaprzeczenie logiczne.

9 Wybrane tablicowe typy danych Tablicowe typy danych collections są szczególnie istotne dla niniejszego kursu, z racji możliwości wyrażania sygnałów dyskretnych za ich pomocą. Trzy często spotykane to napisy (string), listy i krotki (tuple). Odwołania do poszczególnych elementów takich zmiennych można dokonać przy pomocy nawiasów kwadratowych. skrypt-5.py A = " 1234 " # inicjacja napisu 2 B = (1, 2, 3, 4) # inicjacja krotki C = [1, 2, 3, 4] # inicjacja listy 4 print (A, B, type (B), C, type (C)) 6 print (A[2], B [1:3], C [ -2]) Krotki i listy mogą przechowywać obiekty dowolnego typu. Ponadto, z wymienionych, tylko listy mają możliwość przypisania wartości do poszczególnych elementów niezależnie, czym różnią się od krotek i napisów. skrypt-6.py 1 L = [" Adam ", (" Ewa ", 2014), ] print (L [0][0:3], "i " + L [1][0]) # " Ada i Ewa " 3 L [2] = " Ola " 5 L [1][1] = " Ela " # tu interpreter zgł osi błąd TypeError: tuple object does not support item assignment

10 Pętla for Pętla for przeznaczona jest do iterowania po danych typu tablicowego. Instrukcje continue oraz break można stosować podobnie jak w języku C. skrypt-7.py Vips = [" Asia ", " Ania ", " Helena ", " Ela ", " Ola ", " Ala "] 2 for imie in Vips : if imie == " Ania ": continue # pomini ę cie iteracji 4 if imie == " Ela ": break # przerwanie pę tli for litera in imie : print ( litera ) # pę tla zagnie żdż ona 6 print () Przykład wykorzystania pętli generującej listę (inline) do utworzenia osi czasu: skrypt-8.py 1 rate = # pró bki na sekund ę interval = 0.8 # interwa ł w sekundach 3 number = int ( rate * interval ) 5 # Lista przechowuj ąca dyskretne warto ści czasu Timeline = [ float ( n) / rate for n in range ( number )] 7 print ( Timeline ) Wbudowana funkcja range() zwraca listę kolejnych liczb naturalnych.

11 Licznik pętli Co jeżeli potrzebny jest licznik w pętli? skrypt-9.py Vips = [" Asia ", " Ania ", " Helena ", " Ela ", " Ola ", " Ala "] 2 # tu pę tle for da się zmie ścić w 1 czytelnej linii kodu 4 for nr, imie in enumerate ( Vips ): print (" element %d to vip %s" % (nr, imie )) 6 nr = 0 # tu niezb ę dne są 4 linie 8 while (nr < len ( Vips )): print (" element %d to vip %s" % (nr, Vips [nr ])) 10 nr += 1 Wbudowana funkcja enumerate() zwraca listę (dokładniej generator) krotek, których pierwszy element to indeks, a drugi przyjmuje zawartość oryginalnego elementu listy. Wbudowana funkcja len() zwraca długość kolekcji. Przy pierwszej pętli mamy niejawnie do czynienia z wielokrotnym przypisaniem. skrypt-9.py 1 nr, imie = 0, " Asia " # wielokrotne przypisanie nr, imie = (1, " Ania ") # rozpakowanie krotki 3 nr, imie = [2, " Helena "] # rozpakowanie listy Uwaga na ValueError: too many values to unpack ValueError: need more than 2 values to unpack

12 True i False W Pythone dostępne są typy binarne określone słowami kluczowymi True i False. Są wykorzystywane m.in. w testach logicznych przez instrukcje warunkowe oraz pętle. Fałsz logiczny poza zmienną False wyrażają także m.in.: Zaprzeczenie logiczne prawdy: not True Wyrażenie None, reprezentujące brak wartości. Zmienna typu float przyjmująca wartość 0.0. Zmienna typu int przyjmująca wartość 0. Puste krotka, lista lub napis: ( ), [], skrypt-10.py 1 Vips = [" Asia ", " Ania ", " Helena ", " Ela ", " Ola "] print ( Vips ) 3 while ( Vips ): 5 print ( Vips [0]) del ( Vips [0]) 7 print ( Vips ) Do konstruowania testów logicznych służą m.in. następujące operatory: and, or, not, in. Uwaga na IndexError: list assignment index out of range

13 Obiekty Język Python wspiera wszystkie najważniejsze paradygmaty programowania, w tym również paradygmat programowania obiektowego, w którym do opisu programu stosuje się abstrakcyjne obiekty wyposażone w specjalny interfejs. Do poszczególnych atrybutów obiektu (pól, metod, innych zagregowanych obiektów) można odwołać się za pomocą operatora kropki. skrypt-11.py Vips = [" Asia ", " Ania ", " Helena ", " Ela ", " Ola "] 2 print ( Vips ) 4 # metoda append () powoduje dołą czenie # do końca listy kolejnego elementu ( napisu ) 6 Vips. append (" Ala ") print ( Vips ) Do wylistowania wszystkich atrybutów obiektu służy wbudowana funkcja dir(). skrypt-11.py print ( dir ( Vips )) Również zmienne typu int, float oraz string są obiektami w rozumieniu paradygmatu programowania obiektowego.

14 Lista jako obiekt skrypt-12.py Vips = [" Asia ", " Ania ", " Helena ", " Ela ", " Ola "] 2 More_Vips = [" Ala ", " Ula "] 4 # Metoda extend () powoduje rozszerzenie listy o inn ą list ę. Vips. extend ( More_Vips ) 6 print ( Vips ) 8 # Metoda pop ( n) powoduje pobranie i zwr ó cenie elementu # o numerze n z listy. Element jest usuwany z listy! 10 imie = Vips. pop (2) print (imie, Vips ) 12 # Bez podawania jawnie argumentu metody pop () 14 # domy ś lnie zostanie pobrany ostatni element listy. imie = Vips. pop () 16 print (imie, Vips ) 18 # Metoda index zwraca numer pierwszego elementu, # któ rego warto ść jest ró wna argumentowi. 20 print ( Vips. index (" Ela "))

15 Metoda, funkcja, procedura... Funkcje definiowane jako wewnętrzne procedury obiektów nazywa się metodami. Metody wywołuje się na obiektach, tak jak pokazano to na poprzednim slajdzie. Funkcje, w tym także metody, definiuje się zwykle za pomocą słowa kluczowego def. skrypt-13.py 1 def my_cmx (x, y): return x+1j* y 3 print ( my_cmx (1.5, 3.5) ) Funkcje można definiować z domyślnymi wartościami argumentów. Należy przy tym pamiętać, aby argumenty z przypisanymi domyślnymi wartościami były umieszczane na końcu sygnatury (poniżej y=0 występuje po x). skrypt-13.py 1 def my_cmx (x, y =0) : if not isinstance (x, ( int, float )): return None 3 if not isinstance (y, ( int, float )): return None z = complex (x, y) 5 return z 7 print ( my_cmx (1.5) ) print ( my_cmx (y=2, x =1) ) Wbudowaną funkcję isinstance() użyto, aby sprawdzić czy przekazane argumenty mają charakter numeryczny.

16 Moduły rozszerzeniowe Język Python jest językiem ogólnego przeznaczenia, którego funkcjonalność można rozszerzać przy pomocy dodatkowych modułów. Dodatkowe moduły można dołączać za pomocą słowa kluczowego import. Interfejs do zaimportowanego modułu jest spójny z interfejsem klasycznego obiektu. skrypt-14.py 1 import sys # importowanie cał ego modu łu sys 3 print ( dir ( sys )) # lista wszystkich element ów modu łu sys print ( sys. argv ) # linia wywo łująca ten skrypt Moduły wspierające obliczenia, takie jak math, są szczególnie istotne dla tego kursu. skrypt-15.py rate, interval, freq = , 1.2, # Sa/s, s, Hz 2 number = int ( rate * interval ) Timeline = [ float ( n) / rate for n in range ( number )] 4 # import alternatywny za pomoc ą struktury,, from import 6 from math import pi, sin, cos def my_cmx (t, f, a =1) : 8 arg = 2.0* pi*t*f return complex (a* cos ( arg ), a* sin ( arg )) 10 # Wygenerowanie zespolonej sinusoidy : 12 Complexoida = [ my_cmx (t, freq ) for t in Timeline ]

17 Wybrane operacje na plikach Obsługa plików może przebiegać standardowo: otwarcie pliku, zapis lub odczyt oraz zamknięcie pliku. skrypt-16.py 1 Vector = range (16) # wygenerowanie danych fds = open (" data. txt ", "w") # otwarcie pliku do zapisu 3 for e in Vector : fds. write ("%d\t %f\n" % (e, float (e))) # zapis do pliku 5 fds. close () # zamkni ę cie pliku Język python oferuje wygodną w użyciu strukturę with as, którą można wykorzystać m.in. do obsługi plików. skrypt-16.py # otwarcie pliku do odczytu : 2 with open (" data. txt ", "r") as fds : # wczytanie danych do listy : 4 Lines = fds. readlines () 6 # wyś wietlenie danych z pliku : for line in Lines : print (line, end ="",flush = True ) Plik został zamknięty automatycznie po opuszczeniu bloku kodu w strukturze with as.

18 Wygenerowanie i zapisanie sygnału do pliku Moduł cmath jest dedykowany do wsparcia obliczeń z liczbami zespolonymi. Wbudowana funkcja zip() łączy ze sobą dwa obiekty typu tablicowego na zasadzie zamka błyskawicznego, w ten sposób powstaje nowa lista, której elementami są krotki przechowujące odpowiadające sobie elementy z łączonych tablic. Jeżeli tablice mają różne rozmiary, to nieprzystające elementy z dłuższej tablicy są ignorowane. Taki mechanizm wykorzystano w listingu poniżej: skrypt-17.py rate, interval, freq = , 1.2, # Sa/s, s, Hz 2 number = int ( rate * interval ) Timeline = [ float ( n) / rate for n in range ( number )] 4 # Wygenerowanie zespolonej sinusoidy : 6 from cmath import pi, rect Complexoida = [ rect (1.0, 2* pi* t* freq ) for t in Timeline ] 8 # Zapis sygna łu do pliku wraz z osi ą czasu : 10 with open (" signal. txt ", "w") as fds : for t, s in zip ( Timeline, Complexoida ): 12 fds. write ("%f\t%f\t%f\n" % (t,s.real,s. imag ))

19 Obsługa wyjątków skrypt-18.py 1 try : # w pythonie 3 interpreter powinien zgł osi ć błąd 3 eval (" print napis ") except SyntaxError : 5 print ("błąd skł adni... ") 7 # nie zaleca się takiego sposobu programowania, # gdy ż właś ciwie uniemo ż liwia on debugowanie. 9 except : pass 11 def fun (): 13 try : return x **2 15 except NameError : print (" brak x... ") 17 return finally : 19 print (" finally... ") 21 fun ()

20 Wykres y = f (x) - Pylab Modułem przeznaczonym do wizualizacji jest m.in. mathplotlib. bash apt - get install python - matplotlib skrypt-19.py rate, interval, freq = , 0.05, 50.0 # Sa/s, s, Hz 2 number = int ( rate * interval ) Timeline = [ float ( n) / rate for n in range ( number )] 4 # Wygenerowanie zespolonej sinusoidy : 6 from cmath import pi, rect Complexoida = [ rect (1.0, 2* pi* t* freq ) for t in Timeline ] 8 # listy nie wspieraj ą operacji macierzowych 10 def get_real ( Tab ): return [ s. real for s in Tab ] def get_imag ( Tab ): return [ s. imag for s in Tab ] 12 import pylab as pl # kolejny alternatywny spos ób importu 14 pl. plot ( Timeline, get_real ( Complexoida )) pl. plot ( Timeline, get_imag ( Complexoida )) 16 pl. show ()

21 Wykres y = f (x) - Pylab

22 Operacje wektorowe Numpy Moduł numpy wspiera m.in. obliczenia numeryczne, w tym oparte na przetwarzaniu liczb zespolonych i całych macierzy. bash 1 apt - get install python - numpy skrypt-20.py from cmath import pi, rect 2 import pylab as pl, numpy as np 4 rate, interval, freq = , 0.05, 50.0 # Sa/s, s, Hz number = int ( rate * interval ) 6 Timeline = [ float ( n) / rate for n in range ( number )] Complexoida = [ rect (1.0, 2* pi* t* freq ) for t in Timeline ] 8 # konwersja listy do typu numpy. array 10 Complexoida = np. array ( Complexoida ) 12 # numpy. array wspiera operacje na cał ych macierzach pl. plot ( Timeline, Complexoida. real ) 14 pl. plot ( Timeline, Complexoida. imag ) pl. show ()

23 Operacje wektorowe Numpy Wbudowana funkcja map() może być szczególnie przydatna w przetwarzaniu list. Pierwszym argumentem tej metody jest referencja do procedury przetwarzającej poszczególne elementy listy, natomiast drugim obiekt typu tablicowego. Moduł numpy ma wbudowane mechanizmy przetwarzania całych macierzy, więc w wielu sytuacjach nie ma potrzeby stosowania funkcji map() lub pętli. skrypt-21.py import numpy as np, pylab as pl 2 rate, interval, freq = , 0.05, 50.0 # Sa/s, s, Hz 4 Timeline = np. arange (0.0, interval, 1.0/ rate ) 6 # mno ż enie macierzy przez wielko ść skalarn ą: j 2 pi freq # i mapowanie jej warto ści na funkcj ę numpy. exp (): 8 Complexoida = map (np.exp, 2j*np.pi* freq * Timeline ) Complexoida = np. array ( Complexoida ) 10 # ekwiwalentny zapis mógłby wygl ądać nast ę puj ąco: 12 Complexoida = np. exp (2j* np. pi* freq * Timeline ) # numpy. exp () zwraca tu obiekt typu numpy. array 14 pl. plot ( Timeline, Complexoida. real ) 16 pl. plot ( Timeline, Complexoida. imag ) pl. show ()

24 Operacje wektorowe Numpy Wbudowana funkcja abs() może działać różnie, przyjmując argumenty różnych typów 1. Gdy jako argument zostanie podany obiekt typu numpy.array, w wyniku otrzymamy obiekt również tego typu. skrypt-22.py import numpy as np, pylab as pl 2 rate, interval, freq = , 0.05, 50.0 # Sa/s, s, Hz 4 Timeline = np. arange (0.0, interval, 1.0/ rate ) Complexoida = np. exp (2j* np. pi* freq * Timeline ) 6 # przyk ł adowe przetwarzanie macierzy 8 Complexoida. real = abs ( Complexoida. real /( Timeline +0.01) ) Complexoida. imag = Complexoida. imag *( Timeline *2000.0) 10 pl. plot ( Timeline, Complexoida.real, "g") 12 pl. plot ( Timeline, Complexoida.imag, "b") pl. plot ( Timeline, abs ( Complexoida ), "r") 14 pl. grid () pl. show () Z klasycznej listy nie można obliczyć wartości bezwzględnej: TypeError: bad operand type for abs(): list 1 Funkcja abs wykorzystuje mechanizm metod specjalnych, które będą zaprezentowane w dalszej części.

25 Wykres y = f (x) - Pylab

26 Operacje macierzowe Numpy Poniżej przedstawiono wybrane operacje na macierzach reprezentowanych obiektami typu numpy.array. skrypt-23.py import numpy as np 2 A = np. array ([ range (3**2) ]) 4 B = np. array ([ range (3*3) ]) C = A. reshape (9,1) 6 D = A. reshape (3,3) +1j print ("A =", A, "\nb =", B, "\nc =", C, "\nd =\n", D) 8 # Mno ż enie macierzy. Uwaga na ValueError! 10 print ("\na*b =\n", A*B) # Mno ż enie macie ży ement - element print (" dot (A,C) =\n", np.dot (A,C)) # Mno ż enie macierzy 12 print (" dot (C,A) =\n", np.dot (C,A)) # Mno ż enie macierzy 14 # Odwracanie macierzy print ("np. linalg. inv (D) =\n", np. linalg. inv (D)) 16 # Transpozycja, sprz ęż enie i zmiana wymiar ów macierzy 18 print ("A. transpose () =\n", A. transpose ()) print ("A. reshape (3,3) =\n", A. reshape (3,3) ) 20 print ("D. conj (). transpose () =\n", D. conj (). transpose ())

27 Analiza widmowa sygnału skrypt-24.py from numpy import pi, exp, arange 2 rate, interval = , 0.1 # Sa/s, s Timeline = arange (0.0, interval, 1.0/ rate ) 4 # generacja sygna łu 6 f1, f2, a1, a2 = 100.0, 200.0, 1.0, 0.1 w1, w2 = 2.0* pi*f1, 2.0* pi*f2 # rad /s 8 Signal = a1*exp (1j*w1* Timeline )+a2*exp (1j*w2* Timeline ) 10 # analiza widmowa from numpy import log10, blackman 12 from numpy. fft import fft, fftshift Spectrum = fftshift ( fft ( Signal * blackman ( len ( Signal )))) 14 Spectrum = Spectrum / max ( abs ( Spectrum )) # normalizacja Freqline = arange (- rate /2, rate /2, rate / len ( Spectrum )) 16 # ekspozycja w skali logarytmicznej 18 import pylab as pl pl. plot ( Freqline, 20* log10 ( abs ( Spectrum )),".-") 20 pl. xlabel ("F (Hz)") pl. ylabel ("E ( dbc )") 22 pl. grid () pl. show ()

28 Widmo amplitudowe w skali logarytmicznej

29 Generacja addytywnego szumu białego symulacja kanału AWGN skrypt-25.py # obliczenie parametru sigma 2 from numpy import log10, sqrt, mean snr = 20 # Założ ony SNR w db 4 length = len ( Signal ) average = mean ( Signal ) 6 var = sum ( abs ( Signal - average ) **2) / length sigma = sqrt ( var /2) *10**( - snr /20) 8 # losowanie pró bek szumu 10 from numpy. random import normal Noise = normal ( loc =0.0, scale = sigma, size =( length,2) ) 12 NSignal = [s+ complex (*n) for s,n in zip ( Signal, Noise )] 14 print (" Assumed SNR :", snr ) signal_enery = sum ( abs ( Signal ) **2) 16 noise_enery = sum ( k **2 for n in Noise for k in n) print (" Obtained SNR :", 10* log10 ( signal_enery / noise_enery )) Assumed SNR: 20 Obtained SNR:

30 Widmo amplitudowe w skali logarytmicznej analiza fragmentu sygnału długości 0.1 sekundy

31 Widmo amplitudowe w skali logarytmicznej analiza fragmentu sygnału długości 2.2 sekundy

32 Generacja sygnału świergotowego (chirp) skrypt-26.py 1 from numpy import pi, exp, arange rate, interval = , 1.1 # Sa/s, s 3 Timeline = arange (0.0, interval, 1.0/ rate ) 5 # generacja sygna łu chirp f, a, c = 10.0, 2.0, w = 2.0* pi*f # rad /s Signal = Timeline * exp (1j*( w* Timeline + pi* c* Timeline **2) ) skrypt-26.py import pylab as pl 2 pl. figure (" Sygna ł Ś wiergotowy ") pl. subplot (211) 4 pl. plot ( Timeline, Signal.real,"b-") pl. xlabel ("T (s)") 6 pl. ylabel (" Real (V)") pl. grid () 8 #...

33 Sygnał świergotowy

34 Widmo amplitudowe sygnału świergotowego

35 Spektrogram sygnału świergotowego (chirp) skrypt-26.py 1 #... pl. figure (" Widmo Amplitudowe ") 3 pl. plot ( Freqline, 20* log10 ( abs ( Spectrum )),"b.-") pl. xlabel ("F (Hz)") 5 pl. ylabel ("E ( dbc )") pl. grid () skrypt-26.py pl. figure (" Spectrogram ") 2 pl. specgram ( Signal, NFFT =128, Fs=rate, noverlap =127) pl. ylim ([0, 150]) 4 pl. xlim ([0, 1]) pl. xlabel ("T (s)") 6 pl. ylabel ("F (Hz)") pl. grid () 8 pl. show ()

36 Spektrogram sygnału świergotowego

37 Symulacja transmisji danych w paśmie podstawowym skrypt-28.py 1 # Wiadomo ść do przes ł ania. Data = " To jest przesy ł ana informacja w kodzie ASCII." 3 # Ignorowanie wszystkich znak ów nie nale żą cych do kodu ASCII. 5 Data = Data. encode (" ascii ", ignore ) 7 # Przetwarzanie litera po literze. for letter in Data : 9 # Zapewnienie jednakowej dł ugo ści ramek (8 bit ów). 11 Tab = list ( bin ( letter )) # konwersja char to bin as list Frame = (10 - len ( Tab )) *[0] 13 for b in Tab [2:]: Frame. append ( int ( b)) # pierwsze dwie # pozycje reprezentacji binarnej np. 0 b10011 są ignorowane 15 # Formowanie strumienia danych binarnych 17 try : Stream += Frame # unipolarnych (0,1) except NameError : Stream = Frame 19 print (" Nadano : ", Data ) Dalej następuje mapowanie symboli w tej konkretnej sytuacji konwersja kodu unipolarnego (0,1) do bipolarnego (1, -1)

38 Symulacja transmisji danych w paśmie podstawowym - dekodowanie 1 # Dekodowanie. RecStream = Stream 3 # analiza bit po bicie 5 while RecStream : skrypt-28.py 7 frame = "" while len ( frame ) <8: # wydzielanie 8- bitowych ramek 9 frame += str ( RecStream. pop (0) ) 11 char = chr ( int ( frame, 2)) # konwersja bin to int to char 13 # utworzenie łań cucha znak ów: try : RecData += char 15 except NameError : RecData = char 17 print (" Odebrano : ", RecData )

39 Symulacja transmisji danych w paśmie podstawowym - filtr formujący czas, t wstawianie zerowych próbek czas, t odpowiedź impulsowa filtru opóźnienie, τ splot = filtracja czas, t

40 Symulacja transmisji danych w paśmie podstawowym - filtr formujący

41 Symulacja transmisji danych w paśmie podstawowym - symulacja kanału AWGN

42 Symulacja transmisji danych w paśmie podstawowym - filtr dopasowany czas, t opóźnienie, τ odpowiedź impulsowa filtru splot = filtracja czas, t

43 Symulacja transmisji danych w paśmie podstawowym - filtracja i synchronizacja po stronie odbiorczej

44 Symulacja transmisji danych w paśmie podstawowym - analiza widmowa nadawanego sygnału

45 Symulacja transmisji danych w paśmie podstawowym - analiza widmowa dłuższej wiadomości

46 Symulacja transmisji danych w paśmie podstawowym - charakterystyka amplitudowa filtru

47 Symulacja transmisji danych w paśmie podstawowym Nadano: b informacja Uzyskany SNR: db Odebrano (bez filtracji): hntovmqgha Odebrano (po filtracji): informacja SNR Po filtracji: db

48 Klasa jako definicja typu obiektu skrypt-31.py 1 class Box : # instrukcja class rozpoczyna definicj ę klasy 3 def init ( self ): # metoda implementuj ąca konstruktor # argument self jest obowi ą zkowy 5 # oznacza odwo ł anie do instancji tej klasy print (" New box ") 7 self. content = [] # zmienna wewn ą trz klasy, pole self. name = " box " 9 def print_name ( self ): # metoda wyś wietla imi ę 11 print ( self. name ) 13 box1 = Box () # utworzenie obiektu wed ług opisu klasy 15 print ( type ( box1 )) print ( type ( Box )) 17 print ( dir ( box1 )) 19 box1. print_name () print ( box1. name ) 21 print_box1_name = box1. print_name 23 print_box1_name ()

49 Dziedziczenie skrypt-32.py class Box : # konstruktor z dodatkowym argumentem : 2 def init (self, name ): print (" New box : %s" % name ) 4 self. name = name self. content = [] 6 def print_name ( self ): print ( self. name ) 8 class BetterBox ( Box ): # nowa klasa dziedziczy po klasie Box 10 def add (self, item ): self. content. append ( item ) 12 def print_content ( self ): print ( self. content ) 14 box2 = BetterBox (" czarna ") 16 box3 = BetterBox (" czerwona ") box3. print_name () # print_name z klasy Box 18 box2. print_content () 20 box2. add ( box3 ) # content zdefniowano jako lista więc można box2. add (" czapka ") # tu doda ć, w zasadzie, dowolny obiekt 22 box2. print_content ()

50 Dziedziczenie po wielu klasach skrypt-33.py 1 class Contener : # pierwsza klasa nadrz ę dna def init ( self ): 3 self. content = [] def add (self, item ): 5 self. content. append ( item ) def print_content ( self ): 7 print ( self. content ) 9 class Caller : # druga klasa nadrz ę dna def init (self, name ): 11 self. name = name def print_name ( self ): 13 print ( self. name ) 15 class Box ( Contener, Caller ): def init (self, name ): 17 Contener. init ( self ) Caller. init (self, name ) 19 print (" New box : ", end =""); self. print_name () 21 box = Box (" szary ") box. add (" szalik ") 23 box. print_content () print ( type ( box ), isinstance (box, Caller ), isinstance (box, int ))

51 Diagram klas add() Contener print content() = content Box Caller print name() - name

52 Dziedziczenie po wielu klasach - rozwiązywanie kolizji skrypt-34.py 1 class Box_A : # pierwsza klasa nadrz ę dna def add (self, item ): 3 print (" Add A") self. content. append ( item ) 5 class Box_B : # druga klasa nadrz ę dna 7 def add (self, item ): print (" Add B") 9 self. content. append ( item ) 11 class Box ( Box_A, Box_B ): def init ( self ): 13 self. content = [] 15 box = Box () box. add (" item ") # jeżeli nast ę puje kolizja spowodowana wykorzystaniem takich samych nazw, to dziedziczenie pól lub metod nast ę puje z tej klasy przekazanej jako argument bardziej po lewej stronie

53 Dziedziczenie - funkcja super skrypt-35.py class Box ( object ): # dziedziczenie po object nie jest 2 # wymagane w pythonie3, aby kod był # zgodny z nowym stylem pythona 4 def init ( self ): 6 self. content = [] 8 def add (self, item ): print (" Add in Box ") 10 self. content. append ( item ) 12 class BetterBox ( Box ): def add (self, item ): 14 print (" Add in BetterBox ") super ().add ( item ) 16 bbox = BetterBox () 18 bbox. add ("rę kawiczki ") print ( bbox. content )

54 Złe (??) użycie pola skrypt-36.py class Contener : 2 def add (self, item ): self. content. append ( item ) def print_content ( self ): 4 print ( self.name, ":", self. content ) 6 class BadBox ( Contener ): content = [] # pole bę dzie wsp ó lne dla wszystkich 8 # instancji BadBox ( objekt ów klasy BadBox ) def init ( self, name ): self. name = name 10 bbox1, bbox2 = BadBox (" czerwony "),BadBox (" niebieski ") 12 bbox1. add (" czerwone rę kawiczki ") 14 bbox1. add (" czerwona czapka ") bbox2. add (" niebieski szalik ") 16 bbox1. print_content () 18 bbox2. print_content () 20 class GoodBox ( Contener ): # deklaracja klasy może wyst ąpić def init ( self, name ): # właś ciwie w dowolnej części 22 self. content = [] # skryptu self. name = name

55 Polimorfizm na przykładzie skrzynek skrypt-37.py class Box : 2 def init ( self ): self. content = [] def add (self, item ): self. content. append ( item ) 4 def print_content ( self ): print ( self. content ) 6 class DoubleBox : def init ( self ): 8 self. content_1, self. content_2 = [],[] def print_content ( self ): 10 print ( self. content_1 + self. content_2 ) def add (self, item, nr =1) : 12 if nr ==1: self. content_1. append ( item ) elif nr ==2: self. content_2. append ( item ) 14 # lista róż nych typ ów skrzynek : 16 Boxes = [ Box (), DoubleBox (), Box ()] Items = [" szalik ", " czapka ", " mazak ", " klawiatura ", " kubek "] 18 from random import randint 20 for item in Items : # polimorfizm, gdy dodajemy do skrzynki Boxes [ randint (0,2) ]. add ( item ) 22 for box in Boxes : box. print_content () # oraz przy wyś wietlaniu

56 Funkcje specjalne w Pythonie - len() class Box : 2 def init ( self ): self. content = [] skrypt-38.py 4 def add (self, item ): 6 self. content. append ( item ) 8 # ta metoda zostanie wywo łana, gdy # interpreter wykona funkcj ę len (): 10 def len ( self ): print (" Checking len... ") 12 return len ( self. content ) 14 box = Box () print ( len ( box )) 16 box. add (" Asia ") 18 box. add (" Ula ") box. add (" Ola ") 20 print ( len ( box ))

57 Funkcje specjalne w Pythonie - konstruktor i dekonstruktor 1 class Box : skrypt-39.py 3 # konstruktor to ró wnie ż metoda specjalna : def init ( self ): 5 self. content = [] print (" Nowa skrzynka... ") 7 # dekonstruktor jest wywo ł ywany zawsze, 9 # gdy obiekt jest usuwany z pami ęci def del ( self ): 11 print (" Niszczenie skrzynki... ") 13 box1 = Box () del ( box1 ) 15 box2 = Box () print (" Komunikat... ")

58 Porównywanie obiektów Do implementacji sposobu porównywania dwóch obiektów służy następująca grupa funkcji specjalnych: cmp (self, inny), lt (self, inny), le (self, inny), eq (self, inny), ne (self, inny), gt (self, inny), ge (self, inny). Można zdefiniować sposoby konwersji obiektu do znanego typu przy pomocy takich funkcji specjalnych: int (self), str (self), float (self), complex (self)... Słowo kluczowe is służy do sprawdzenia czy dwie referencje odwołują się do tego samego obiektu. skrypt-40.py 1 class Box : 3 def init ( self ): self. content = [] 5 def add (self, item ): 7 self. content. append ( item ) 9 def eq (self, obj ): if not hasattr (obj, " content "): 11 return False elif len ( self. content ) == len ( obj. content ): 13 return True else : 15 return False

59 Porównywanie obiektów box1, box2 = Box (), Box () 2 box3 = box2 skrypt-40.py 4 box1. add (" telefon ") 6 if box1 is box3 : print (" box1 i box3 to ten sam box ") else : print (" box1 i box3 to inne boxy ") 8 if box2 is box3 : print (" box2 i box3 to ten sam box ") 10 else : print (" box2 i box3 to inne boxy ") 12 if box1 == box3 : print (" box1 i box2 maj ą po tyle samo przedmiot ów") else : print (" box1 i box2 nie maj ą po tyle samo przedmiot ów") 14 box3. add (" plakat ") 16 if box1 == box3 : print (" box1 i box2 maj ą po tyle samo przedmiot ów") 18 else : print (" box1 i box2 nie maj ą po tyle samo przedmiot ów")

60 Symulacja wielomodułowego urządzenia skrypt-41.py 1 class Dev : # klasa bazowa wszystkich modu łów def init (self, name ): 3 self. _name = str ( name ) print (" New dev, called ", self. _name ) 5 self. _output = None 7 self. _input = None self. _buffer = [] 9 def len ( self ): 11 return len ( self. _buffer ) 13 def connect (self, dev ): if not isinstance (dev, Dev ): 15 print ( self. _name, " Wrong type, cannot connect... ") else : 17 self. _output = dev dev. _input = self 19 print ( self. _name, " ->", dev. _name, " conected... ") 21 def run ( self ): pass

61 Symulacja wielomodułowego urządzenia skrypt-41.py 1 from random import random class Generator ( Dev ): # przyk ład klasy generatora 3 def run ( self ): self. _buffer. append ( random () -0.5) 5 class Converter ( Dev ): # przyk ład klasy konwertera def run ( self ): 7 while len ( self. _input ) >1: x = self. _input. _buffer. pop () 9 y = self. _input. _buffer. pop () self. _buffer. append ( complex (x,y)) 11 gen = Generator (" gen ") 13 conv = Converter (" conv ") gen. connect ( conv ) 15 # symulacja pracy modu łów 17 for n in range (5) : gen. run () conv. run () 19 print ( gen. _buffer ) 21 print ( conv. _buffer )

62 Dodatkowe informacje Strona domowa autora tej prezentacji: krzysztof.czarnecki Dodatkowe skrypty wykorzystane w tej prezentacji: Zachęcam do zapoznania się z innymi materiałami dydaktycznymi: Data utworzenia tej prezentacji: 21 października 2014

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

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

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ęzyk Python. Język Python 1/35

Język Python. Język Python 1/35 Język Python Język Python 1/35 Język Python 2/35 Wstęp Uruchamianie interpretera python Skrypty wykonywalne #!/usr/bin/python #!/usr/bin/env python lub #!/usr/bin/python3 #!/usr/bin/env python3 chmod +x

Bardziej szczegółowo

Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36

Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36 Wstęp do Pythona Janusz Szwabiński szwabin@ift.uni.wroc.pl Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36 Wstęp do Pythona Zasoby w sieci Python jako zaawansowany kalkulator Pierwszy

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 2. 13 października 2017 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Deklaracja klasy Klasy i obiekty Przykłady class Figura: Pierwsza

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

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

Środowisko programisty

Środowisko programisty Środowisko programisty 1/34 Środowisko programisty Język Python cz. 1 dr inż. Grzegorz Michalski 24 marca 2014 Środowisko programisty 2/34 Wstęp Uruchamianie interpretera python Wykonywalne skrypty #!/usr/bin/python

Bardziej szczegółowo

Python. Wprowadzenie. Jolanta Bachan

Python. Wprowadzenie. Jolanta Bachan Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=

Bardziej szczegółowo

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:

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

Podstawy. Jan Koprowski <jan.koprowski@gmail.com> 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

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

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

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

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

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

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

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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

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

KOTLIN. Język programowania dla Androida

KOTLIN. Język programowania dla Androida KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Język C++ wykład VIII

Język C++ wykład VIII Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegół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

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

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

Ćwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie

Ćwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie Wizualizacja danych Ćwiczenie 5 Python 3: Programowanie obiektowe i dziedziczenie Dziedziczenie Mając klasę bazową możemy utworzyć klasę pochodną, która będzie dziedziczyć po klasie bazowej czyli będzie

Bardziej szczegółowo

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Jacek Cichoń Przemysław Kobylański Instytut Matematyki i Informatyki Politechnika Wrocławska Na podstawie: M.Summerfield.Python 3. Kompletne

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

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

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

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

Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/

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

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 6 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 21 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Programowanie I C / C++ laboratorium 01 Organizacja zajęć Programowanie I C / C++ laboratorium 01 Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-12 Program zajęć Zasady zaliczenia Program operacje wejścia i wyjścia instrukcje

Bardziej szczegółowo

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja

Bardziej szczegółowo

Python podstawy programowania

Python podstawy programowania Python podstawy programowania Krzysztof Katarzyński Centrum Astronomii UMK W roku 1945 rozpętał się pokój. Latajacy Cyrk Monty Pythona Program w Pythonie jako plik tekstowy Konsola tekstowa Pythona umożliwia

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

Programowanie RAD Delphi

Programowanie RAD Delphi Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Technologie cyfrowe semestr letni 2018/2019

Technologie cyfrowe semestr letni 2018/2019 Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów

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

Szablony klas, zastosowanie szablonów w programach

Szablony klas, zastosowanie szablonów w programach Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do

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

Środowisko programisty

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

Bardziej szczegółowo

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

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura Programowanie komputerów Programowanie obiektowe. Typy zmiennych proste i złożone Typy zmiennych "wbudowane", tj. identyfikowane przez słowa kluczowe, są określane jako proste: int short long float double

Bardziej szczegółowo

Programowanie robota mobilnego E-puck w języku Python

Programowanie robota mobilnego E-puck w języku Python Programowanie robota mobilnego E-puck w języku Python Joanna Ratajczak Mirela Kaczmarek 1 Zasady bezpieczeństwa W trakcie pracy z robotem E-puck, rys. 1, należy zachować ostrożność. Pod żadnym pozorem

Bardziej szczegółowo

2. Składnia Pythona. Robert Janczewski. Gdańsk, 2014

2. Składnia Pythona. Robert Janczewski. Gdańsk, 2014 Gdańsk, 2014 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Python to język programowania, który został zaprojektowany tak, by można było szybko tworzyć czytelne

Bardziej szczegółowo

Języki i metody programowania

Języki i metody programowania Języki i metody programowania Wykład 3 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Wartości boolowskie

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

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

Technologie cyfrowe semestr letni 2018/2019

Technologie cyfrowe semestr letni 2018/2019 Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 8 (15.04.2019) Kompilacja Kompilacja programu (kodu): proces tłumaczenia kodu napisanego w wybranym języku na kod maszynowy, zrozumiały

Bardziej szczegółowo

Wprowadzenie do Scilab: podstawy języka Scilab

Wprowadzenie do Scilab: podstawy języka Scilab Wprowadzenie do Scilab: podstawy języka Scilab Magdalena Deckert, Izabela Szczęch, Barbara Wołyńska, Bartłomiej Prędki Politechnika Poznańska, Instytut Informatyki Narzędzia Informatyki Narzędzia Informatyki

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 2

Języki i techniki programowania Ćwiczenia 2 Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁY DO ZAJĘĆ II MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych

Bardziej szczegółowo

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7 Spis treści 1 Funkcje 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 1.5 Zadanie 5 1.6 Zadanie 6 1.7 Zadanie 7 Funkcje Przy programowaniu często zdarza się, że pewne czynności chcemy wykonywać

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

Przeciążanie operatorów

Przeciążanie operatorów Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

SWIFT. Zaawansowane Programowanie Obiektowe

SWIFT. Zaawansowane Programowanie Obiektowe SWIFT Zaawansowane Programowanie Obiektowe 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

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

TEI. Dr Wojciech Palubicki

TEI. Dr Wojciech Palubicki TEI Dr Wojciech Palubicki Tree growth (PhD) Prof. Przemyslaw Prusinkiewicz Lab PhD 2012 Modeling Scale Moss branching Dr. Yoan Coudert, Dr. Jill Harrison and Prof. Ottoline Leyser Tree growth (PhD) Prof.

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Wprowadzenie do Python

Wprowadzenie do Python Wprowadzenie do Python Marcin Orchel 1 Środowisko Python Zalecane korzystanie z dystrybucji Anaconda. W systemie linux może być już dostępny Python. Sprawdzenie wersji Pythona, python -V. Uruchomienie

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

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 5 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 7 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

Listy, krotki, słowniki, funkcje

Listy, krotki, słowniki, funkcje Listy, krotki, słowniki, funkcje Listy Lista jest najbardziej elastycznym typem obiektu uporządkowanej kolekcji. Może zawierać różne typy danych - liczby, łańcuchy znaków, a nawet inne listy. Tworzy się

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

Bardziej szczegółowo

G PROGRAMMING. Part #4

G PROGRAMMING. Part #4 G PROGRAMMING Part #4 Tablice, wykresy, klastry Tablice Zbiór elementów danych tego samego typu Zastosowanie gromadzenie danych z powtarzalnych operacji odczytu, obliczeń (magazynowanie danych przebiegów

Bardziej szczegółowo