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

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

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

Transkrypt

1 Gdańsk, 2014

2 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 programy. Znajduje zastosowanie tam, gdzie nie ma znaczenia czas działania programu, a istotna jest możliwość szybkiego jego napisania. Możliwe jest napisanie fragmentów, które mają być szybkie, w C, i całej reszty w Pythonie.

3 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Cechy Pythona: jest językiem ogólnego przeznaczenia; jest w pełni obiektowy; umożliwia programowanie w różnych stylach (strukturalne, obiektowe, funkcyjne itd.); jest dostępny w różnych systemach operacyjnych (Windows, Linux itd.); jest językiem o wzorcowej dokumentacji, dostępnej w sieci oraz lokalnie (po instalacji); jest językiem o dynamicznym typowaniu; jest językiem interpretowanym.

4 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Po uruchomieniu interpretera można wydawać mu polecenia. Możliwe jest m.in.: obliczanie wyrażeń arytmetycznych, nawet na liczbach zespolonych; nadawanie wartości zmiennym i wykorzystanie ich w obliczeniach; przeglądanie zawartości obiektów (funkcja dir()); uruchamianie programów napisanych w Pythonie (instrukcja import).

5 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Programy napisane w Pythonie są zazwyczaj kilkukrotnie krótsze (i kilkukrotnie wolniejsze) niż ich odpowiedniki w C. Dla przykładu, funkcja napisana w C, obliczająca iloczyn skalarny float iloczyn( float u[], float v[], unsigned n ) { float il = 0; } while (n--) il += u[n] * v[n]; return il; w Pythonie przyjmie poniższą postać: def iloczyn( u,v ): return sum( [x * y for x,y in zip( u,v )] )

6 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Programy napisane w Pythonie składają się z: komentarzy; instrukcji; deklaracji. Python nie jest językiem o swobodnej składni wcięcia w kodzie są wykorzystywane do tworzenia bloków (instrukcji złożonych). Instrukcje jednakowo wcięte stanowią blok; nowy blok może pojawić się tylko w niektórych miejscach (zazwyczaj po dwukropku).

7 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Komentarze rozpoczynają się od znaku #, a kończą wraz z końcem wiersza. Wyrażenie składające się wyłącznie z napisu jest traktowane przez interpreter Pythona niemal tak samo jak komentarz. Instrukcje kończą się średnikiem lub znakiem nowej linii; jeżeli instrukcja ma być kontynuowana w następnej linii, należy na końcu bieżącej linii postawić \. Deklaracji wymagają wyłącznie funkcje oraz klasy.

8 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Python sam zarządza pamięcią programista nie musi przydzielać ani nie zwalnia pamięci. Aby utworzyć zmienną, należy nadać jej wartość. Zostanie ona usunięta automatycznie, gdy nie będzie już dłużej potrzebna. Można wymusić usunięcie zmiennej w konkretnym miejscu, pisząc del nazwa-zmiennej. Zmienne utworzone w trakcie wykonywania funkcji są lokalne; wszystkie pozostałe są domyślnie globalne. Aby uzyskać dostęp do zmiennej globalnej x, należy napisać global x.

9 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Poniższy program oblicza sumę dwóch liczb całkowitych: #!/usr/bin/env python3 # -*- coding: utf-8 -*- if name == " main ": a,b = input( "Podaj a: " ),input( "Podaj b: " ) suma = int( a ) + int( b ) print( "Suma =",suma )

10 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Wartości logiczne są przechowywane przez zmienne typu bool. Mogą one przyjmować wyłącznie wartości True lub False. Każde wyrażenie ma wartość logiczną wyrażenie jest fałszywe wtedy i tylko wtedy, gdy jego wartość jest równa: None lub False; 0, 0.0, 0j; "", (), [], {}. (Istnieją wyjątki od powyższej reguły, wrócimy do nich przy omawianiu programowania obiektowego.)

11 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Liczby całkowite są przechowywane przez zmienne typu int. Typ int umożliwia przechowywanie liczb dowolnej wielkości. W Pythonie serii 2 istnieją dwa typy całkowitoliczbowe: int, który jest odpowiednikiem typu long w C; long, który umożliwia przechowywanie liczb dowolnej wielkości. W Pythonie nie występuje zjawisko przekroczenia zakresu jeśli zmienna typu int zmienia wartość na nie mieszczącą się w zakresie typu int, automatycznie jej typem staje się long.

12 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Wartości rzeczywiste (zespolone) są przechowywane przez zmienne typu float (complex). Typ float jest odpowiednikiem typu double w C. Literały zespolone mają postać a + bj, gdzie a to część rzeczywista, a b część urojona liczby. Jeżeli z jest zmienną zespoloną, to z.real i z.imag to odpowiednio część rzeczywista i urojona tej liczby.

13 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Na typach liczbowych można wykonywać wszystkie podstawowe operacje arytmetyczne: dodawanie + i odejmowanie -; mnożenie * i dzielenie /; wyznaczanie reszty % i dzielenie całkowitoliczbowe //; potęgowanie **. Liczby całkowite i rzeczywiste można z sobą porównywać przy pomocy operatorów ==,!=, >, <, >= i <=. Dostępne są konwersje do typów int, float i complex: int( i ) przekształci i w liczbę typu int itd.

14 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Napisy w Pythonie należą do typu str. Literały tego typu można tworzyć na kilka sposobów: napisy mieszczące się w jednej linii można umieścić wewnątrz cudzysłowów lub apostrofów; napisy wielowierszowe umieszcza się wewnątrz potrójnych apostrofów lub cudzysłowów; poprzedzenie napisu literą r spowoduje, że znaki specjalne (takie jak \n) staną się zwykłymi znakami.

15 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Aby przekształcić wartość wyrażenia x w napis, piszemy str( x ) lub repr( x ). Tworzenie bardziej skomplikowanych napisów zbudowanych z wyrażeń umożliwia funkcja format(). Można podzielić napis na fragmenty rozdzielone podanym separatorem przy pomocy funkcji split(). Dostępna jest także funkcja join(), która łączy wiele napisów w jeden przy pomocy podanego łącznika. Napisy są tablicami, więc operacje wykonywalne na tablicach można wykonać także na napisach.

16 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Poniższy program drukuje wynik różnych operacji na podanych liczbach całkowitych. #!/usr/bin/env python3 # -*- coding: utf-8 -*- a = int( input( "Podaj a: " ) ) b = int( input( "Podaj b: " ) ) print( "{0} + {1} = {2}".format( a,b,a + b ) ) print( "{:d} - {:d} = {:f}".format( a,b,a - b ) ) print( "{2:d} * {0:d} = {1:d}".format( b,a * b,a ) )

17 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Tablice w Pythonie to struktury danych, które składają się z wielu elementów. Tablice mają typ list. W odróżnieniu od takich języków jak C, elementy tablicy w Pythonie nie muszą być tego samego typu. Tablice mają dynamiczny charakter interpreter dba o to, by zajmowały tyle miejsca w pamięci, ile jest niezbędne. Literały tablicowe tworzymy umieszczając elementy tablicy w nawiasach kwadratowych i rozdzielając je przecinkami.

18 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Na tablicach można wykonywać m.in. następujące operacje: przeszukiwanie x in t, x not in t, t.count( x ), t.index( x ); dostęp do elementów t[i] i podtablic t[i:j], t[i:j:k]; dodawanie oraz usuwanie elementów t.append( x ), t.insert( i,x ), t.pop(), t.remove( x ); dodawanie podtablic t.extend( x ), t += x; odwracanie t.reverse() i sortowanie t.sort(); wyznaczanie liczby elementów len( t ).

19 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Krotki (pary, trójki itd.) to tablice o stałym rozmiarze. Krotki należą do typu tuple. Krotki są obiektami niemodyfikowalnymi (podobnie jak napisy). Nie można zmienić wartości krotki! Krotki tworzymy umieszczając ich elementy wewnątrz nawiasów. Krotka 1-elementowa ma postać (x,). Na krotkach można wykonywać te same operacje co na tablicach, za wyjątkiem tych, które modyfikują zawartość tablicy.

20 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Słowniki to struktury danych, które przechowują pary klucz-wartość. Klucze muszą być obiektami niemodyfikowalnymi. Literały słownikowe umieszczamy wewnątrz nawiasów klamrowych. Klucze oddzielamy dwukropkiem od wartości; poszczególne pary klucz-wartość rozdzielamy przecinkami. Słowniki w Pythonie należą do typu dict.

21 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Na słownikach można wykonywać m.in. następujące operacje: przeszukiwanie k in d; dostęp do pojedynczych wartości d[k], listy kluczy d.keys(), wartości d.values() i par klucz-wartość d.items(); dodawanie oraz usuwanie elementów d[k] = w, del d[k]; wyznaczanie liczby elementów len( d ).

22 Wartości logiczne Liczby całkowite Liczby rzeczywiste i zespolone Napisy Listy (tablice) i krotki Słowniki Zbiory Zbiory reprezentuje w Pythonie typ set. Na zbiorach można wykonywać m.in. następujące operacje: przekształcenie listy w zbiór set( l ); dodawanie oraz usuwanie elementów s.add( e ), s.discard( e ); suma, część wspólna, różnica i różnica symetryczna zbiorów s.union( a ), s.intersection( a ), s.difference( a ), s.symmetric_difference( a ); sprawdzanie, czy zbiór jest podzbiorem/nadzbiorem innego s.issubset( a ), s.issuperset( a ); sprawdzanie, czy element należy do zbioru e in s.

23 Instrukcje warunkowe And, or i not Pętla while Pętla for Przetwarzanie tablic w pętli Instrukcja warunkowa w Pythonie ma jedną z poniższych postaci: if warunek: blok instrukcji elif warunek: blok instrukcji else: blok instrukcji wyrażenie1 if warunek else wyrażenie2 Zarówno else, jak i elif są opcjonalne. Klauzul elif może być dowolnie wiele.

24 Instrukcje warunkowe And, or i not Pętla while Pętla for Przetwarzanie tablic w pętli Operatory and, or i not umożliwiają tworzenie skomplikowanych wyrażeń warunkowych. x and y (x or y) jest równe x, jeśli x jest fałszywe (prawdziwe), lub y, w przeciwnym przypadku. Zatem z = w and x or y jest (prawie) równoważne z z = x if w else y.

25 Instrukcje warunkowe And, or i not Pętla while Pętla for Przetwarzanie tablic w pętli Pętla while (odpowiednik pętli while z C) ma w Pythonie następującą postać: while warunek: blok instrukcji (1) else: blok instrukcji (2) Pierwszy blok instrukcji jest wykonywany tak długo, jak długo warunek jest prawdziwy; kiedy warunek staje się fałszywy, wykonany zostaje drugi blok instrukcji i pętla się kończy.

26 Instrukcje warunkowe And, or i not Pętla while Pętla for Przetwarzanie tablic w pętli Instrukcja break przerywa wykonywanie pętli; blok następujący po else nie jest wtedy wykonywany. Instrukcja continue powoduje przeskok do kolejnej iteracji pętli. Klauzula else jest opcjonalna.

27 Instrukcje warunkowe And, or i not Pętla while Pętla for Przetwarzanie tablic w pętli Pętla for (odpowiednik pętli for z C) ma w Pythonie następującą postać: for zmienna in lista: blok instrukcji (1) else: blok instrukcji (2) Pierwszy blok instrukcji jest wykonywany dla kolejnych elementów listy; po przejrzeniu listy wykonuje się drugi blok instrukcji.

28 Instrukcje warunkowe And, or i not Pętla while Pętla for Przetwarzanie tablic w pętli Instrukcje break i continue działają tak samo jak w przypadku pętli while; klauzula else jest opcjonalna. Funkcja range() umożliwia iterowanie po podanym zakresie. Poniższy fragment programu sprawdza, czy n jest liczbą pierwszą. for x in range( 2,n ): if n % x == 0: print( n,"=",x,"*",n//x ) break else: print( n,"jest liczbą pierwszą" )

29 Instrukcje warunkowe And, or i not Pętla while Pętla for Przetwarzanie tablic w pętli Instrukcja [f( x ) for x in t] tworzy tablicę elementów postaci f( x ), gdzie x to kolejne elementy tablicy t. Instrukcja [f( x ) for x in t if g( x )] tworzy tablicę elementów postaci f( x ), gdzie x to kolejne elementy tablicy t spełniające warunek g.

30 Czym są wyjątki? Obsługa wyjątków Przegląd wbudowanych wyjątków to jeden ze sposobów na zgłaszanie i obsługę błędów pojawiających się w trakcie działania programu. Podstawową zaletą wyjątków jest możliwość rozdzielenia kodu odpowiedzialnego za obsługę błędów od kodu odpowiedzialnego za prawidłowe wykonanie programu. Każdy wyjątek posiada pole args, które przechowuje komunikat o błędzie (i ewentualnie inne, dodatkowe informacje związane z błędem). Komunikat o błędzie przechowywany przez wyjątek e można uzyskać przy pomocy polecenia str( e ).

31 Czym są wyjątki? Obsługa wyjątków Przegląd wbudowanych wyjątków Kod, w którym mogą wystąpić wyjątki, wygląda następująco: try: blok, wewnątrz którego może pojawić się wyjątek except: obsługa wyjątków else: kod wykonywany gdy wyjątek nie nastąpił finally: kod wykonywany zawsze

32 Czym są wyjątki? Obsługa wyjątków Przegląd wbudowanych wyjątków Klauzule else i finally są opcjonalne. Klauzul except może wystąpić dowolnie wiele. Klauzula except może mieć jedną z poniższych postaci: except: przechwytuje wszystkie wyjątki; except T: przechwytuje wyjątki typu T (i klas pochodnych); except ( T1,T2 ): przechwytuje wyjątki typu T1 i T2 (typów może być więcej); except T as v: przechwytuje wyjątki typu T i umieszcza je w zmiennej v. Można zgłaszać wyjątki przy pomocy instrukcji raise.

33 Czym są wyjątki? Obsługa wyjątków Przegląd wbudowanych wyjątków AssertionError pojawia się w wyniku użycia instrukcji assert z podanym fałszywym warunkiem (assert z warunkiem prawdziwym nie robi nic). EOFError pojawia się w momencie napotkania końca pliku przez funkcje wczytujące dane, takie jak input() czy read(). IOError oznacza błąd wejścia/wyjścia; może wystąpić w trakcie użycia dowolnej z funkcji operujących na plikach (omówionych dalej). SyntaxError to błąd składni. Występuje w wyniku próby załadowania niepoprawnego modułu lub użycia funkcji eval() i exec().

34 Czym są wyjątki? Obsługa wyjątków Przegląd wbudowanych wyjątków ImportError występuje w przypadku nieudanej próby załadowania modułu (podstawowy powód: nie udało się znaleźć modułu na dysku). KeyError oznacza, że nastąpiła próba odczytania w słowniku wartości związanej z kluczem, którego ten słownik nie zawiera. FloatingPointError to błąd w operacjach zmiennoprzecinkowych. IndexError oznacza indeks tablicy poza zakresem.

35 Czym są wyjątki? Obsługa wyjątków Przegląd wbudowanych wyjątków TypeError to niewłaściwy typ argumentu (występuje przy wywoływaniu funkcji). ValueError to niewłaściwa wartość argumentu; pojawia się m.in. jako efekt nieudanej konwersji napisu do liczby lub liczby do liczby innego typu. ZeroDivisionError to błąd dzielenia przez zero.

36 Standardowe wejście Standardowe wyjście Obsługa plików Dane z wejścia można pobierać na kilka sposobów: przy pomocy funkcji input(); przy pomocy obiektu sys.stdin. Obiekt sys.stdin umożliwia traktowanie standardowego wejścia jak pliku. W Pythonie serii 2 funkcja input() działa inaczej; do pobierania danych służy tam funkcja raw_input().

37 Standardowe wejście Standardowe wyjście Obsługa plików Poniższy program sumuje liczby pojawiające się na wejściu do momentu, aż się skończą. Następnie drukuje ich sumę. #!/usr/bin/env python3 # -*- coding: utf-8 -*- suma = 0 try: while True: suma += int( input() ) except EOFError: print( "Suma =",suma )

38 Standardowe wejście Standardowe wyjście Obsługa plików Poniższy program sumuje liczby pojawiające się na wejściu do momentu, aż się skończą. Następnie drukuje ich sumę. #!/usr/bin/env python3 # -*- coding: utf-8 -*- from sys import stdin suma = 0 for ln in stdin: suma += int( ln ) print( "Suma =",suma )

39 Standardowe wejście Standardowe wyjście Obsługa plików Dane można wypisywać na standardowym wyjściu na kilka sposobów: przy pomocy funkcji print(); przy pomocy obiektu sys.stdout. Obiekt sys.stdout umożliwia traktowanie standardowego wyjścia jak pliku. W Pythonie serii 2 print jest słowem kluczowym, a nie funkcją; piszemy tam print x zamiast print( x ).

40 Standardowe wejście Standardowe wyjście Obsługa plików Funkcja print() drukuje argumenty jeden za drugim, rozdzielając je znakiem zawartym w zmiennej sep (domyślnie jest to spacja). Następnie drukuje znak zawarty w zmiennej end (domyślnie: znak nowej linii). Wydruk następuje do pliku zawartego w zmiennej file (domyślnie: sys.stdout).

41 Standardowe wejście Standardowe wyjście Obsługa plików Schemat pracy z plikiem jest w Pythonie następujący: otwieramy plik funkcją open(); czytamy dane (read()), zapisujemy dane (write()); zamykamy plik funkcją close(). Po otwarciu, na pliku można wykonywać także inne operacje: przeszukiwanie, ustalanie pozycji itd.

42 Standardowe wejście Standardowe wyjście Obsługa plików Przy otwieraniu pliku trzeba podać nazwę oraz tryb; można określić także sposób kodowania znaków w pliku. Dane można czytać funkcją read(), readline() lub readlines(). Funkcja read() wczytuje podaną liczbę bajtów (cały plik jeśli nie podamy ilości) i zwraca je jako napis (dla plików tekstowych) lub tablicę bajtów (dla plików binarnych). W Pythonie serii 2 nie było różnicy między plikami tekstowymi a binarnymi funkcja read() zawsze zwracała napis. Dane do zapisania w pliku mają postać napisu lub tablicy bajtów.

43 Standardowe wejście Standardowe wyjście Obsługa plików Poniższy fragment programu zlicza liczbę linii znajdujących się w pliku dane.txt. try: f = open( "dane.txt","r" ) ln = f.readline() linie = 0 while ln: linie += 1 ln = f.readline() print( "Liczba linii =",linie ) f.close() except: pass

44 Standardowe wejście Standardowe wyjście Obsługa plików Poniższy fragment programu zlicza liczbę linii znajdujących się w pliku dane.txt. with open( "dane.txt","r" ) as f: ln,linie = f.readline(),0 while ln: linie += 1 ln = f.readline() print( "Liczba linii =",linie )

45 Deklaracja Argumenty Zwracane wyniki Wbudowane funkcje Przed użyciem funkcje muszą zostać zadeklarowane. Deklaracja funkcji ma w Pythonie następującą postać: def nazwa_funkcji( lista argumentów ): ciało funkcji Nazwa musi być unikatowa funkcji w Pythonie nie wolno przeciążać (dokładniej: nowa deklaracja funkcji o tej samej nazwie zastępuje starą). Jeżeli pierwszą instrukcją w funkcji jest napis, to staje się on jej opisem. Opis funkcji f jest dostępny w polu f. doc.

46 Deklaracja Argumenty Zwracane wyniki Wbudowane funkcje Określając argumenty, podajemy wyłącznie ich nazwy. Python nie sprawdza typów przekazywanych danych! Poszczególne argumenty rozdzielamy przecinkami. Można określić wartość domyślną argumentu, pisząc nazwa = wartość. Postawienie przed ostatnim argumentem znaku * spowoduje, że stanie się on tablicą, do której trafią wartości wszystkich argumentów (poza tymi, które trafią do wcześniejszych argumentów). Postawienie przed ostatnim argumentem znaku ** spowoduje, że stanie się on słownikiem, do którego trafią wartości wszystkich argumentów nazwanych.

47 Deklaracja Argumenty Zwracane wyniki Wbudowane funkcje Każda funkcja zwraca jakiś wynik. Jeżeli nie określimy go jawnie, to wartością zwracaną przez funkcję jest None. Instrukcja return x (return) kończy działanie funkcji i zwraca x (None) jako wynik. Można definiować funkcje anonimowe, które jako wynik zwracają wyrażenie będące ich ciałem. Definicja takiej funkcji ma postać lambda argumenty: wynik.

48 Deklaracja Argumenty Zwracane wyniki Wbudowane funkcje Niektóre z wbudowanych w Pythona funkcji pojawiły się już wcześniej (były to: dir(), input(), print(), sum(), bool(), int(), float() i complex()). abs() zwraca wartość bezwzględną podanej liczby. all() (any()) zwraca wartość prawdziwą wtedy i tylko wtedy, gdy wszystkie (co najmniej jeden) z argumentów są prawdziwe. chr() (ord()) zwraca znak o podanym kodzie (kod podanego znaku).

49 Deklaracja Argumenty Zwracane wyniki Wbudowane funkcje enumerate() użyte na liście l zwraca listę par postaci ( i,l[i] ). zip() łączy podane listy l1, l2,..., ln w listę, której elementami są n-tki ( l1[i],l2[i],...,ln[i] ). reversed() (sorted()) zwraca iterator umożliwiający przeglądanie listy w odwróconym (posortowanym) porządku.

50 Moduł to inaczej program w Pythonie. Aby załadować moduł znajdujący się w pliku m.py, należy skorzystać z jednej z poniższych konstrukcji: import m; elementy modułu m są dostępne w postaci m.nazwa; from m import *; elementy modułu są dostępne bez przedrostka m.. Aby załadować tylko wybrane elementy modułu, np. funkcję f, piszemy from m import f lub from m import f as g. W drugim przypadku funkcja f będzie dostępna pod nazwą g.

51 Niezależnie od tego, jaką metodę załadowania modułu wybierzemy, w trakcie pierwszego jego importowania wykonywana jest jego część główna. Funkcję modułu może pełnić także katalog. Musi on zawierać plik init.py, który jest wówczas traktowany jako część główna modułu. Aby załadować moduł m znajdujący się w katalogu d piszemy import d.m.

52 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Klasa musi zostać zadeklarowana zanim zostanie użyta. Definicja klasy w Pythonie ma postać: class nazwa_klasy: ciało klasy Ciało klasy może zawierać instrukcje inicjalizacyjne (wykonywane w momencie, w którym interpreter analizuje ciało klasy) oraz definicje metod klasy. Pustą klasę o definicji class nazwa: pass można wykorzystać do zasymulowania rekordu.

53 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Jeżeli pierwsza instrukcja w ciele klasy X jest napisem, to napis ten staje się opisem klasy X i jest dostępny w czasie działania programu w zmiennej X. doc. Instrukcje inicjalizacyjne można wykorzystać do stworzenia pól klasy (nazywanych w innych językach obiektowych statycznymi). Dla przykładu, poniższa klasa X class X: a = 1 b = 2 ma dwa takie pola: X.a i X.b.

54 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Definicja metod jest niemal taka sama jak definicja zwykłych funkcji. Jedyna różnica polega na tym, że metody zawsze mają co najmniej jeden argument i pierwszy z argumentów (nazywany zwyczajowo self) jest referencją do obiektu, dla którego ta metoda została wywołana. Dla przykładu, poniższa klasa X class X: def a( self ): pass def b( self,x ): pass ma dwie nic nie robiące metody a() i b().

55 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Jak tworzymy i korzystamy z instancji klas? nową instancję klasy X tworzymy pisząc zmienna = X( argumenty ), gdzie argumenty to lista argumentów inicjalizatora klasy X; jeżeli x jest instancją klasy X, to x.m( a ) wywoła dla niej metodę m i przekaże jej listę argumentów a; jeżeli x jest instancją klasy X, to x.p (x.p = w) zwróci (zmieni) wartość przechowywaną w polu p (na w). Typ zmiennej x przechowywany jest w polu x. class. Listę pól i metod zmiennej x zwraca instrukcja dir( x ).

56 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Uwaga! W Pythonie pola i metody są domyślnie publiczne. Nie istnieją pola/metody w pełni prywatne. Jedyne pola/metody, które mają charakter zbliżony do prywatnego, mają nazwy zaczynające się od dwóch znaków podkreślenia i kończące maksymalnie jednym znakiem podkreślenia. Tego typu pola/metody nie są widoczne poza klasą, ale można się do nich dostać stosując specjalną składnię pole p obiektu klasy X jest widoczne poza klasą pod nazwą _X p.

57 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Konstruktor to funkcja, która jest wywoływana w momencie tworzenia nowego obiektu. Jej zadanie polega na jego utworzeniu. Definicja konstruktora ma postać: def new ( cls,argumenty ): ciało konstruktora Pierwszym argumentem konstruktora jest klasa, której instancja ma zostać utworzona. Wartością zwracaną przez konstruktor powinien być nowo utworzony obiekt. Klasa, w której nie zadeklarujemy konstruktora, otrzymuje konstruktor domyślny, tworzący pusty obiekt. Takie zachowanie konstruktora jest pożądane niemal w 100% przypadków.

58 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Inicjalizator to funkcja, która jest wywoływana w momencie, gdy obiekt został już utworzony (bezpośrednio po konstruktorze). Jej celem jest zainicjalizowanie obiektu. Definicja inicjalizatora ma postać: def init ( self,argumenty ): ciało inicjalizatora Aby zainicjalizować obiekt, należy nadać wartości jego polom. Dobrym zwyczajem jest utworzenie wszystkich pól obiektu w inicjalizatorze, ale składnia języka umożliwia tworzenie ich gdziekolwiek (!).

59 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Uwaga! Inicjalizator nie może zwracać żadnego wyniku! Destruktor to funkcja, która jest wywoływana bezpośrednio przed usunięciem obiektu. Jej celem jest zwolnienie zasobów zajętych przez usuwany obiekt. Definicja destruktora ma postać: def del ( self ): ciało destruktora Ponieważ Python sam zarządza pamięcią, destruktory rzadko kiedy są potrzebne.

60 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Metody specjalne umożliwiają osiąganie rozmaitych specjalnych efektów dla klas, m.in. definiowanie operatorów działających na klasach. Metody specjalne mają nazwy rozpoczynające się od dwóch znaków podkreślenia i kończące się dwoma znakami podkreślenia. Konstruktor, inicjalizator i destruktor to przykłady metod specjalnych.

61 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Jakie metody specjalne są dostępne? x. repr () (x. str ()); zwraca napisową reprezentację x; jest równoważne repr( x ) (str( x )); x. lt ( y ) (x. le ( y ), x eq ( y ), x. ne ( y ), x. gt ( y ) i x. ge ( y )); operatory porównania równoważne z x < y (x <= y, x == y, x!= y, x > y, x >= y); x. bool (); sprawdza, czy x jest prawdziwe; jest równoważne bool( x ); x. call ( a ); równoważne z x( a ); x. len (); zwraca rozmiar x; jest równoważne len( x );

62 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie x. getitem ( k ) (x. setitem ( k,w ), x. delitem ( k )); odpowiednik operacji x[k] (x[k] = w, del x[k]); x. contains ( y ); operator przynależności; równoważne z y in x; x. add ( y ); operator sumy równoważny z x + y; niemal każdy operator arytmetyczny ma swój odpowiednik w postaci odpowiedniej funkcji; x. int () (x. float (), x. complex ()); funkcja konwertujące do typu int (float, complex); odpowiednik int( x ) (float( x ), complex( x )). (I inne powyższa lista nie jest kompletna).

63 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie specjalne bool () i len (), o ile zostały zdefiniowane, są wykorzystywane w trakcie ustalania, czy obiekt jest prawdziwy, czy fałszywy. Obiekt jest prawdziwy wtedy i tylko wtedy, gdy bool () ( len ()) zwróci wartość prawdziwą (niezerową).

64 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Klasy mogą po sobie dziedziczyć klasa pochodna dziedziczy wszystkie metody klas bazowych. Pola nie są dziedziczone. Jeżeli chcemy, by odziedziczone zostały także pola klas bazowych, to musimy w inicjalizatorze wywołać metody klas bazowych, które te pola tworzą (będą to zapewne inicjalizatory tych klas). Aby stworzyć klasę X, która dziedziczy po klasach Y, Z,... piszemy: class X( Y,Z,... ): ciało klasy

65 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Można sprawdzić, czy klasa X dziedziczy po Y issubclass( X,Y ) zwraca informację o tym, czy Y jest klasą bazową dla X. Można wywoływać metody z klas bazowych przy pomocy konstrukcji Klasa.Metoda( obiekt,argumenty ) albo funkcji super(). Jeżeli w kilku klasach bazowych występuje ta sama metoda, to odziedziczona zostanie wyłącznie ta, która występuje w pierwszej od lewej klasie (kolejność klas bazowych ma znaczenie!).

66 Definicja klasy Konstruktor, destruktor i inicjalizator Metody specjalne Dziedziczenie Jeżeli nie podamy jawnie klasy bazowej, to staje się nią object. Klasą bazową dla wyjątków jest BaseException, a wszystkie wyjątki, które nie są wbudowane w Pythona powinny dziedziczyć po klasie Exception.

67 Po co łączyć Pythona z C? Przygotowania Przykłady Są dwa ważne powody, dla których warto łączyć kod napisany w C z kodem napisanym w Pythonie: kod w C jest szybszy, więc fragmenty napisane w C będą szybsze niż robiące to samo fragmenty napisane w Pythonie; można wzbogacić Pythona o nowe typy danych, których nie można (lub jest bardzo trudno) napisać w Pythonie. Można zarówno napisać kod w C, który będzie potem używany przez program napisany w Pythonie, jak i napisać program w Pythonie, który zostanie wywołany z poziomu języka C.

68 Po co łączyć Pythona z C? Przygotowania Przykłady Program napisany w C może zostać zaimportowany przez Pythona jako moduł. Aby było to możliwe, program w C musi zostać odpowiednio przygotowany. Ujmując rzecz schematycznie, program ten musi wyglądać następująco: #include <Python.h> /* tu wstaw ciało modułu */ PyMODINIT_FUNC PyInit_nazwa_modułu( void ) { /* tu wstaw kod inicjalizujący moduł */ }

69 Po co łączyć Pythona z C? Przygotowania Przykłady Po przygotowaniu programu, następnym krokiem jest jego kompilacja i instalacja, najlepiej przy pomocy modułu distutils. Moduł distutils umożliwia stworzenie skryptu, którego zadaniem jest kompilacja i instalacja programu napisanego w C. Skrypt ten (w minimalnej postaci) wygląda następująco: #!/usr/bin/env python3 # -*- coding: utf-8 -*- from distutils.core import setup,extension setup( name = "nazwa modułu", \ ext_modules = [Extension( "nazwa", \ sources = ["plik źródłowy"] )] )

70 Po co łączyć Pythona z C? Przygotowania Przykłady Po zapisaniu powyższego skryptu pod nazwą make.py, uruchamiamy go następująco: python3 make.py build by skompilować program; python3 make.py install by zainstalować program. O ile kompilacja i instalacja się udały (instalacja może wymagać uprawnień administratora), program napisany w C będzie dostępny z poziomu Pythona jako moduł.

71 Po co łączyć Pythona z C? Przygotowania Przykłady Poniższy program zawiera implementację 2-wymiarowych wektorów. #include <Python.h> #include <math.h> // Obiekty typu Vector -- 2-wymiarowe wektory. typedef struct { PyObject_HEAD // część inicjalizacyjna double x, y; // współrzędne } Vector;

72 Po co łączyć Pythona z C? Przygotowania Przykłady // Konstruktor typu Vector. static PyObject *Vector new ( PyTypeObject *type, PyObject *args ) { return type->tp_alloc( type,0 ); } // Destruktor typu Vector. static void Vector del ( Vector *self ) { Py_TYPE( self )->tp_free( (PyObject *)self ); }

73 Po co łączyć Pythona z C? Przygotowania Przykłady // Inicjalizator typu Vector. static int Vector init ( Vector *self, PyObject *args ) { double x = 0.0, y = 0.0; } if (PyArg_ParseTuple( args," dd",&x,&y )) { self->x = x; self->y = y; return 0; } return -1;

74 Po co łączyć Pythona z C? Przygotowania Przykłady // Norma wektora. static PyObject *VectorNorm( Vector *self ) { return PyFloat_FromDouble( sqrt( self->x * self->x + self->y * self->y ) ); } // Współrzędne x i y wektora. static PyObject *VectorX( Vector *self ) { return PyFloat_FromDouble( self->x ); } static PyObject *VectorY( Vector *self ) { return PyFloat_FromDouble( self->y ); }

75 Po co łączyć Pythona z C? Przygotowania Przykłady // Konwersja Vector -> napis. static PyObject *Vector str ( Vector *self ) { PyObject *x = PyFloat_FromDouble( self->x ); PyObject *y = PyFloat_FromDouble( self->y ); PyObject *r = PyUnicode_FromFormat( "(%S,%S)",x,y ); Py_XDECREF( x ); Py_XDECREF( y ); return r; }

76 Po co łączyć Pythona z C? Przygotowania Przykłady // Lista metod klasy Vector, wraz z opisem. static PyMethodDef VectorMethods[] = { { "norm",(pycfunction)vectornorm,meth_noargs, "Return the norm." }, { "x",(pycfunction)vectorx,meth_noargs, "Return the first coordinate." }, { "y",(pycfunction)vectory,meth_noargs, "Return the second coordinate." }, { NULL } } ;

77 Po co łączyć Pythona z C? Przygotowania Przykłady // Opis typu Vector. static PyTypeObject VectorType = { PyVarObject_HEAD_INIT( NULL,0 ) // inicjalizacja "vector.vector", // nazwa sizeof( Vector ), // rozmiar 0, // (destructor)vector del, // destruktor 0,0,0,0,0,0,0,0,0,0, // (reprfunc)vector str, // obiekt -> napis 0,0,0, // Py_TPFLAGS_DEFAULT, // "2-dimensional vectors.", // opis

78 Po co łączyć Pythona z C? Przygotowania Przykłady 0,0,0,0,0,0, // VectorMethods, // metody 0,0,0,0,0,0,0, // (initproc)vector init, // inicjalizator 0, // (newfunc)vector new // konstruktor } ;

79 Po co łączyć Pythona z C? Przygotowania Przykłady // Opis modułu. static PyModuleDef vector_module = { PyModuleDef_HEAD_INIT, "vector", "Implementation of 2-dimensional vectors.", -1, NULL, NULL, NULL, NULL, NULL } ;

80 Po co łączyć Pythona z C? Przygotowania Przykłady // Inicjalizacja modułu PyMODINIT_FUNC PyInit_vector( void ) { if (PyType_Ready( &VectorType ) < 0) return NULL; PyObject* m = PyModule_Create( &vector_module ); if (m == NULL) return NULL; } Py_INCREF( &VectorType ); PyModule_AddObject( m,"vector", (PyObject *)&VectorType ); return m;

81 Po co łączyć Pythona z C? Przygotowania Przykłady Poniższy program pokazuje, jak z poziomu C wywołać interpreter Pythona. #include <Python.h> int main() { Py_Initialize(); PyRun_SimpleString( "from time import time,ctime\n" "print( Data:,ctime( time() ) )\n" ); Py_Finalize(); return 0; }

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

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

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

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

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

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

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

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 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

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

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

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

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

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

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

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

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

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

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale

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

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

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

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

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

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

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

Podstawy programowania. Podstawy C# Tablice

Podstawy programowania. Podstawy C# Tablice Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej

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

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

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

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty

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

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

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

Bardziej szczegółowo

Java EE produkcja oprogramowania

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

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

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

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

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

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

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

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

Podstawy i języki programowania

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

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

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

Liczby losowe i pętla while w języku Python

Liczby losowe i pętla while w języku Python Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak

Bardziej szczegółowo

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

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

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

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

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

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

Podstawy programowania w Pythonie

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

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

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

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

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne

Bardziej szczegółowo

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

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

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

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

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

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

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

Bardziej szczegółowo

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

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

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

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

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

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

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

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

Delphi Laboratorium 3

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

Bardziej szczegółowo

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

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

do instrukcja while (wyrażenie);

do instrukcja while (wyrażenie); Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

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

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 4

Programowanie komputerowe. Zajęcia 4 Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości

Bardziej szczegółowo

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

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

Bardziej szczegółowo

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo