Common Lisp - funkcje i zmienne

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

Download "Common Lisp - funkcje i zmienne"

Transkrypt

1 Instytut Informatyki Uniwersytetu Wrocławskiego 27 października 2010

2 Plan prezentacji 1 Funkcje 2

3 Plan prezentacji Funkcje 1 Funkcje Ogólna postać Sposoby podawania parametrów 2

4 Krótkie przypomnienie Funkcje Przykładowa definicja ( defun s q u a r e ( x ) ( x x ) ) Przykładowe wywołanie ( s q u a r e 17) ; ; 243

5 Krótkie przypomnienie Funkcje Przykładowa definicja ( defun s q u a r e ( x ) ( x x ) ) Przykładowe wywołanie ( s q u a r e 17) ; ; 243

6 Krótkie przypomnienie Funkcje Przykładowa definicja ( defun s q u a r e ( x ) ( x x ) ) Przykładowe wywołanie ( s q u a r e 17) ; ; 243

7 Plan prezentacji Funkcje 1 Funkcje Ogólna postać Sposoby podawania parametrów 2

8 Ogólna postać funkcji Funkcje Składnia ( defun nazwa ( parametry ) doc str? ciag wyrazen?)

9 Przykłady Funkcje ; ; Pusta l i s t a wyrazen, f u n k c j a zawsze zwraca NIL ( defun p a s s ( ) ) ; ; Troche b a r d z i e j r e a l i s t y c z n y p r z y k l a d ( defun verbose id ( x ) This i s a doc s t r i n g ( format t I got D %. x ) ( save the world ( ) ) x )

10 Przykłady Funkcje ; ; Pusta l i s t a wyrazen, f u n k c j a zawsze zwraca NIL ( defun p a s s ( ) ) ; ; Troche b a r d z i e j r e a l i s t y c z n y p r z y k l a d ( defun verbose id ( x ) This i s a doc s t r i n g ( format t I got D %. x ) ( save the world ( ) ) x )

11 Sposoby podawania parametrów Rodzaje argumentów W Common Lisp mamy następujące opcje: Wymagane parametry pozycyjne Opcjonalne parametry pozycyjne Parametry jako lista Nazwane parametry (ang. keyword arguments)

12 Sposoby podawania parametrów Rodzaje argumentów W Common Lisp mamy następujące opcje: Wymagane parametry pozycyjne Opcjonalne parametry pozycyjne Parametry jako lista Nazwane parametry (ang. keyword arguments)

13 Sposoby podawania parametrów Rodzaje argumentów W Common Lisp mamy następujące opcje: Wymagane parametry pozycyjne Opcjonalne parametry pozycyjne Parametry jako lista Nazwane parametry (ang. keyword arguments)

14 Sposoby podawania parametrów Rodzaje argumentów W Common Lisp mamy następujące opcje: Wymagane parametry pozycyjne Opcjonalne parametry pozycyjne Parametry jako lista Nazwane parametry (ang. keyword arguments)

15 Sposoby podawania parametrów Rodzaje argumentów W Common Lisp mamy następujące opcje: Wymagane parametry pozycyjne Opcjonalne parametry pozycyjne Parametry jako lista Nazwane parametry (ang. keyword arguments)

16 Obowiązkowe parametry pozycyjne Podajemy listę zmiennych, pod które zostaną podstawione (związane) argumenty Przykłady ( defun no args ( ) ) ( defun foo ( a b c ) ) Podanie nieodpowiednej liczby zmiennych kończy się zgłoszeniem wyjątku! A jeśli nie chcemy zawsze wszystkiego podawać?

17 Obowiązkowe parametry pozycyjne Podajemy listę zmiennych, pod które zostaną podstawione (związane) argumenty Przykłady ( defun no args ( ) ) ( defun foo ( a b c ) ) Podanie nieodpowiednej liczby zmiennych kończy się zgłoszeniem wyjątku! A jeśli nie chcemy zawsze wszystkiego podawać?

18 Obowiązkowe parametry pozycyjne Podajemy listę zmiennych, pod które zostaną podstawione (związane) argumenty Przykłady ( defun no args ( ) ) ( defun foo ( a b c ) ) Podanie nieodpowiednej liczby zmiennych kończy się zgłoszeniem wyjątku! A jeśli nie chcemy zawsze wszystkiego podawać?

19 Obowiązkowe parametry pozycyjne Podajemy listę zmiennych, pod które zostaną podstawione (związane) argumenty Przykłady ( defun no args ( ) ) ( defun foo ( a b c ) ) Podanie nieodpowiednej liczby zmiennych kończy się zgłoszeniem wyjątku! A jeśli nie chcemy zawsze wszystkiego podawać?

20 Opcjonalne parametry pozycyjne Przed pierwszym parametrem który ma być opcjonalny umieszczamy frazę &optional Możemy podać wartość domyślną, a także sprawdzić, czy dany argument został podany przy wywołaniu Przykład ( defun t e s t (& o p t i o n a l a ( b 1) ( c 6 c p ) ) ( l i s t a b ( l i s t c c p ) ) ) CL USER> ( t e s t ) ( NIL 1 (6 NIL ) ) CL USER> ( t e s t 1 2 3) (1 2 (3 T) )

21 Opcjonalne parametry pozycyjne Przed pierwszym parametrem który ma być opcjonalny umieszczamy frazę &optional Możemy podać wartość domyślną, a także sprawdzić, czy dany argument został podany przy wywołaniu Przykład ( defun t e s t (& o p t i o n a l a ( b 1) ( c 6 c p ) ) ( l i s t a b ( l i s t c c p ) ) ) CL USER> ( t e s t ) ( NIL 1 (6 NIL ) ) CL USER> ( t e s t 1 2 3) (1 2 (3 T) )

22 Parametry w postaci listy Funkcje Po ostatnim parametrze, który ma być nazwanym argumentem umieszczamy frazę &args i nazwę zmiennej z którą ma zostać związana lista pozostałych argumentów Przykład ( defun t e s t ( a b &r e s t params ) ( l i s t a b params ) ) CL USER> ( t e s t 1 2) (1 2 NIL ) CL USER> ( t e s t ) (1 6 (7 8 9 ) )

23 Parametry w postaci listy Funkcje Po ostatnim parametrze, który ma być nazwanym argumentem umieszczamy frazę &args i nazwę zmiennej z którą ma zostać związana lista pozostałych argumentów Przykład ( defun t e s t ( a b &r e s t params ) ( l i s t a b params ) ) CL USER> ( t e s t 1 2) (1 2 NIL ) CL USER> ( t e s t ) (1 6 (7 8 9 ) )

24 Nazwane parametry Funkcje Przed pierwszym parametrem który ma być (opcjonalnym) nazwanym parametrem umieszczamy frazę &key Możemy podać wartość domyślną, a także sprawdzić, czy dany argument został podany przy wywołaniu Przykład ( defun t e s t (&key a ( b 2) ( c 3 c p) d ) ( l i s t a b ( l i s t c c p) d ) ) CL USER> ( t e s t ) ( NIL 2 (3 NIL ) NIL ) CL USER> ( t e s t : a 1 : c 6) (1 2 (6 T) NIL )

25 Nazwane parametry Funkcje Przed pierwszym parametrem który ma być (opcjonalnym) nazwanym parametrem umieszczamy frazę &key Możemy podać wartość domyślną, a także sprawdzić, czy dany argument został podany przy wywołaniu Przykład ( defun t e s t (&key a ( b 2) ( c 3 c p) d ) ( l i s t a b ( l i s t c c p) d ) ) CL USER> ( t e s t ) ( NIL 2 (3 NIL ) NIL ) CL USER> ( t e s t : a 1 : c 6) (1 2 (6 T) NIL )

26 Używanie wielu wariantów jednocześnie Łączenie w ramach jednej definicji argumentów opcjonalnych i nazwanych bądź listowych i nazwanych prowadzi w niektórych przypadkach do dziwnych zachowań.

27 Używanie wielu wariantów jednocześnie cd. ( defun o p t i o n a l k e y (& o p t i o n a l a b &key c ) ( l i s t a b c ) ) ( defun rest key (& r e s t params &key a b c ) ( l i s t a b c r e s t ) ) Jak należy wywołać te funkcje, żeby doszło do czegoś dziwnego?

28 Plan prezentacji Funkcje 1 Funkcje Ogólna postać Sposoby podawania parametrów 2

29 jako dane Funkcje Chcielibyśmy traktować funkcje na równi z danymi, tj przekazywać je jako parametry, zwracać jako wyniki itp. Mamy jednak problem: umiemy wywołać konkretną funkcję, ale nie umiemy tego zrobić dla zmiennej (ani nawet utworzyć takiej zmiennej). [Podejście z Haskella/MLa nie działa] Na ratunek przybywają function, funcall i apply

30 jako dane Funkcje Chcielibyśmy traktować funkcje na równi z danymi, tj przekazywać je jako parametry, zwracać jako wyniki itp. Mamy jednak problem: umiemy wywołać konkretną funkcję, ale nie umiemy tego zrobić dla zmiennej (ani nawet utworzyć takiej zmiennej). [Podejście z Haskella/MLa nie działa] Na ratunek przybywają function, funcall i apply

31 jako dane Funkcje Chcielibyśmy traktować funkcje na równi z danymi, tj przekazywać je jako parametry, zwracać jako wyniki itp. Mamy jednak problem: umiemy wywołać konkretną funkcję, ale nie umiemy tego zrobić dla zmiennej (ani nawet utworzyć takiej zmiennej). [Podejście z Haskella/MLa nie działa] Na ratunek przybywają function, funcall i apply

32 Tworzenie obiektów funkcyjnych przez function function jest operatorem specjalnym, który zwraca obiekt funkcyjny na podstawie nazwy funkcji Zamiast (function foo) możemy użyć skrótu # foo CL USER> ( defun p a s s ( ) ) PASS CL USER> p a s s EVAL : v a r i a b l e PASS has no v a l u e CL USER> ( f u n c t i o n p a s s ) #<FUNCTION PASS NIL (DECLARE (SYSTEM : : IN DEFUN...

33 Tworzenie obiektów funkcyjnych przez function function jest operatorem specjalnym, który zwraca obiekt funkcyjny na podstawie nazwy funkcji Zamiast (function foo) możemy użyć skrótu # foo CL USER> ( defun p a s s ( ) ) PASS CL USER> p a s s EVAL : v a r i a b l e PASS has no v a l u e CL USER> ( f u n c t i o n p a s s ) #<FUNCTION PASS NIL (DECLARE (SYSTEM : : IN DEFUN...

34 Tworzenie obiektów funkcyjnych przez function function jest operatorem specjalnym, który zwraca obiekt funkcyjny na podstawie nazwy funkcji Zamiast (function foo) możemy użyć skrótu # foo CL USER> ( defun p a s s ( ) ) PASS CL USER> p a s s EVAL : v a r i a b l e PASS has no v a l u e CL USER> ( f u n c t i o n p a s s ) #<FUNCTION PASS NIL (DECLARE (SYSTEM : : IN DEFUN...

35 wyższego rzędu Funkcje Przekazanie funkcji jako argumentu ( defun succ ( x ) (+ x 1 ) ) ( mapcar # succ ( ) )

36 funcall oraz apply Funkcje funcall i apply służą do wywoływania funkcji zadanych poprzez obiekt funkcyjny funcall używamy, gdy znamy arność funkcji apply przydaje się, gdy argumenty mamy w postaci listy Przykłady CL USER> ( f u n c a l l # ) 6 CL USER> ( apply # + ( ) ) 15

37 funcall oraz apply Funkcje funcall i apply służą do wywoływania funkcji zadanych poprzez obiekt funkcyjny funcall używamy, gdy znamy arność funkcji apply przydaje się, gdy argumenty mamy w postaci listy Przykłady CL USER> ( f u n c a l l # ) 6 CL USER> ( apply # + ( ) ) 15

38 Plan prezentacji Funkcje 1 Funkcje Ogólna postać Sposoby podawania parametrów 2

39 i operator lambda czasami potrzebujemy jednorazowej funkcji, którą np. podamy jako parametr do funkcjonału typu mapcar lambda wyrażenie może użyte wszędzie tam, gdzie można użyć zwykłej nazwanej funkcji Przykłady ( ( lambda ( x ) (+ x 1 ) ) 1) ( mapcar # ( lambda ( x ) ( x x ) ) ( ) )

40 i operator lambda czasami potrzebujemy jednorazowej funkcji, którą np. podamy jako parametr do funkcjonału typu mapcar lambda wyrażenie może użyte wszędzie tam, gdzie można użyć zwykłej nazwanej funkcji Przykłady ( ( lambda ( x ) (+ x 1 ) ) 1) ( mapcar # ( lambda ( x ) ( x x ) ) ( ) )

41 i operator lambda czasami potrzebujemy jednorazowej funkcji, którą np. podamy jako parametr do funkcjonału typu mapcar lambda wyrażenie może użyte wszędzie tam, gdzie można użyć zwykłej nazwanej funkcji Przykłady ( ( lambda ( x ) (+ x 1 ) ) 1) ( mapcar # ( lambda ( x ) ( x x ) ) ( ) )

42 leksykalne i domknięcia dynamiczne Plan prezentacji 1 Funkcje 2 leksykalne i domknięcia dynamiczne

43 leksykalne i domknięcia dynamiczne Tworzenie zmiennych leksykalnych Mamy dwa sposoby tworzenia zmiennych leksykalnych (lokalnych): możemy użyć setf jako jednego z wyrażeń możemy też wprowadzić nowe zmienne (bądź zasłonić stare) poprzez let (bądź let*) Przykłady ( defun sum ( n ) ( s e t f count 0) ( dotimes ( x n ) ( i n c f count x ) ) count )

44 leksykalne i domknięcia dynamiczne Tworzenie zmiennych leksykalnych Mamy dwa sposoby tworzenia zmiennych leksykalnych (lokalnych): możemy użyć setf jako jednego z wyrażeń możemy też wprowadzić nowe zmienne (bądź zasłonić stare) poprzez let (bądź let*) Przykłady ( defun sum ( n ) ( s e t f count 0) ( dotimes ( x n ) ( i n c f count x ) ) count )

45 leksykalne i domknięcia dynamiczne Tworzenie zmiennych leksykalnych Mamy dwa sposoby tworzenia zmiennych leksykalnych (lokalnych): możemy użyć setf jako jednego z wyrażeń możemy też wprowadzić nowe zmienne (bądź zasłonić stare) poprzez let (bądź let*) Przykłady ( defun sum ( n ) ( s e t f count 0) ( dotimes ( x n ) ( i n c f count x ) ) count )

46 leksykalne i domknięcia dynamiczne Tworzenie zmiennych leksykalnych Mamy dwa sposoby tworzenia zmiennych leksykalnych (lokalnych): możemy użyć setf jako jednego z wyrażeń możemy też wprowadzić nowe zmienne (bądź zasłonić stare) poprzez let (bądź let*) Przykłady ( defun sum ( n ) ( s e t f count 0) ( dotimes ( x n ) ( i n c f count x ) ) count )

47 leksykalne i domknięcia dynamiczne Domknięcia A co jeśli zwrócimy funkcję, która odwołuje się do zmiennej lokalnej? Przykład ( s e t f i n c r ( l e t ( ( count 0 ) ) # ( lambda ( ) ( i n c f count ) ) ) )

48 leksykalne i domknięcia dynamiczne Domknięcia A co jeśli zwrócimy funkcję, która odwołuje się do zmiennej lokalnej? Przykład ( s e t f i n c r ( l e t ( ( count 0 ) ) # ( lambda ( ) ( i n c f count ) ) ) )

49 leksykalne i domknięcia dynamiczne Plan prezentacji 1 Funkcje 2 leksykalne i domknięcia dynamiczne

50 leksykalne i domknięcia dynamiczne dynamiczne w działaniu ( defvar x 10) ( defun foo ( ) ( format t X : d % x ) ) ( defun bar ( ) ( foo ) ( l e t ( ( x 20)) ( foo ) ) ( foo ) ) CL USER> ( bar ) X : 10 X : 20 X : 10

51 leksykalne i domknięcia dynamiczne dynamiczne Wszystkie zmienne na poziomie globalnym (najwyższym) są zmiennymi dynamicznymi Zmiana wartości zmiennej dynamicznej ma efekt na wszystkie wywołania funkcji w zasięgu tej zmiany - nawet jeśli tamte funkcji były zadeklarowane przed zmianą No to czemu nie mówimy na to zmienne globalne? Bo to coś lepszego!

52 leksykalne i domknięcia dynamiczne dynamiczne Wszystkie zmienne na poziomie globalnym (najwyższym) są zmiennymi dynamicznymi Zmiana wartości zmiennej dynamicznej ma efekt na wszystkie wywołania funkcji w zasięgu tej zmiany - nawet jeśli tamte funkcji były zadeklarowane przed zmianą No to czemu nie mówimy na to zmienne globalne? Bo to coś lepszego!

53 leksykalne i domknięcia dynamiczne dynamiczne Wszystkie zmienne na poziomie globalnym (najwyższym) są zmiennymi dynamicznymi Zmiana wartości zmiennej dynamicznej ma efekt na wszystkie wywołania funkcji w zasięgu tej zmiany - nawet jeśli tamte funkcji były zadeklarowane przed zmianą No to czemu nie mówimy na to zmienne globalne? Bo to coś lepszego!

54 leksykalne i domknięcia dynamiczne dynamiczne Wszystkie zmienne na poziomie globalnym (najwyższym) są zmiennymi dynamicznymi Zmiana wartości zmiennej dynamicznej ma efekt na wszystkie wywołania funkcji w zasięgu tej zmiany - nawet jeśli tamte funkcji były zadeklarowane przed zmianą No to czemu nie mówimy na to zmienne globalne? Bo to coś lepszego!

55 leksykalne i domknięcia dynamiczne dynamiczne globalne są wygodne, ale łatwo nabałaganić (i zapomnieć posprzątać) W Common Lisp możemy powiedzieć zmień tę wartość dla następnego wywołania (i podwywołań będących jego konsekwencją) i *tylko* dla niego

56 leksykalne i domknięcia dynamiczne dynamiczne globalne są wygodne, ale łatwo nabałaganić (i zapomnieć posprzątać) W Common Lisp możemy powiedzieć zmień tę wartość dla następnego wywołania (i podwywołań będących jego konsekwencją) i *tylko* dla niego

57 leksykalne i domknięcia dynamiczne dynamiczne w działaniu ( defvar y 10) ( defun foo ( ) ( format t Y : d % y ) ( i n c f y ) ( format t Y : d % y ) ) ( defun bar ( ) ( foo ) ( l e t ( ( y 20)) ( foo ) ) ( foo ) ) CL USER> ( bar ) Y : 10 Y : 11 Y : 20 Y : 21 Y : 11 Y : 12

58 leksykalne i domknięcia dynamiczne dynamiczne Jak utworzyć zmienną dynamiczną? defvar lub defparameter Jak zmienić wartość zmiennej dynamicznej? setf lub let Jak odróżnić w kodzie zmienne dynamiczne od lokalnych? Konwencja nazewnicza - zmienne dynamiczne otaczamy gwiazdkami

59 leksykalne i domknięcia dynamiczne dynamiczne Jak utworzyć zmienną dynamiczną? defvar lub defparameter Jak zmienić wartość zmiennej dynamicznej? setf lub let Jak odróżnić w kodzie zmienne dynamiczne od lokalnych? Konwencja nazewnicza - zmienne dynamiczne otaczamy gwiazdkami

60 leksykalne i domknięcia dynamiczne dynamiczne Jak utworzyć zmienną dynamiczną? defvar lub defparameter Jak zmienić wartość zmiennej dynamicznej? setf lub let Jak odróżnić w kodzie zmienne dynamiczne od lokalnych? Konwencja nazewnicza - zmienne dynamiczne otaczamy gwiazdkami

61 leksykalne i domknięcia dynamiczne Podsumowanie (the end)

Common LISP Instrukcje Sterujące

Common LISP Instrukcje Sterujące Common LISP Instrukcje Sterujące Instytut Informatyki, Uniwersytet Wrocławski 27 października 2010 Reguły obliczania programu ( l i s t ( format t A 1) ( format t A 2) ( format t A 3 ) ) Reguły obliczania

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1 Rachunek Prawdopodobieństwa i Statystyka lab 3. Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) 1. Funkcje: - Funkcje nie powinny korzystać ze zmiennych globalnych. - Funkcje powinny być możliwie krótkie.

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Wprowadzenie do języka Common Lisp

Wprowadzenie do języka Common Lisp Artykuł pobrano ze strony eioba.pl Wprowadzenie do języka Common Lisp Common Lisp jest najpopularniejszym dialektem Lispa, języka stworzonego w 1958 roku przez Johna McCarthy ego. Spis treści 1 Historia

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

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

Wstęp do programowania

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

Bardziej szczegółowo

Wykład 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

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Systemy operacyjne Laboratorium 9 Perl wyrażenia regularne Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Temat obejmuje wykorzystanie wyrażeń regularnych w perlu. Wyrażenia same w sobie są w zasadzie

Bardziej szczegółowo

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem. Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna

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

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

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

JavaScript funkcyjność

JavaScript funkcyjność JavaScript funkcyjność WWW 9 kwietnia 2014 Możliwości tworzenia dynamicznych stron WWW HTML i CSS. Skrypty CGI (Perl, PHP). Serwery (django, java). Plug-iny. Ksiażka Większość przykładów pochodzi z ksiażki:

Bardziej szczegółowo

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

Ada-95. Dariusz Wawrzyniak

Ada-95. Dariusz Wawrzyniak Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki

Bardziej szczegółowo

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 6. autor: Grzegorz Smyk

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 6. autor: Grzegorz Smyk Podstawy informatyki Informatyka Stosowana Zajęcia nr 6 autor: Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Informacje

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

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 3 Marcin Młotkowski 22 października 2018 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie w Ruby 70 / 432 Z poprzedniego wykładu String to ciąg bajtów zwykle reprezentujących

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

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

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

Bardziej szczegółowo

OBIEKTY PHP. G. Panuś

OBIEKTY PHP. G. Panuś OBIEKTY PHP G. Panuś Podstawowym elementem programowania obiektowego jest klasa Klasa zawiera Zmienne właściwości Klasa Funkcje metody Definiowanie klasy Do definiowania klasy służy polecenie class class

Bardziej szczegółowo

Metaprogramowanie w Ruby

Metaprogramowanie w Ruby 24 marca 2011 Cechy języka Wieloparadygmatowy Imperatywny Typowanie Silne Dynamiczne Otwarte klasy Interpretowany Wszystko jest obiektem Moduły i mixiny Moduły Moduły pozwalają na łatwe włączanie ich kodu

Bardziej szczegółowo

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Metaprogramowanie (w Pythonie) Paweł Daniluk Wydział Fizyki Jesień 2016 P. Daniluk(Wydział Fizyki) PO w. XI Jesień 2016 1 / 32 Wstęp ideologiczny Języki programowania

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

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Obiekty i klasy w Pythonie Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. III Jesień 2013 1 / 23 Klasy i obiekty Klasy w implementacji

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 5. autor: Grzegorz Smyk

Podstawy informatyki. Informatyka Stosowana Zajęcia nr 5. autor: Grzegorz Smyk Podstawy informatyki Informatyka Stosowana Zajęcia nr 5 autor: Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Rok akademicki:

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA PRZEDMIOT : : LABORATORIUM PODSTAW AUTOMATYKI 1. WSTĘP DO

Bardziej szczegółowo

API transakcyjne BitMarket.pl

API transakcyjne BitMarket.pl API transakcyjne BitMarket.pl Wersja 20140402 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Limity zapytań... 3 1.5. Odpowiedzi

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

Bardziej szczegółowo

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Teoria sterowania MATLAB funkcje zewnętrzne (m-pliki, funkcje) Materiały pomocnicze do ćwiczeń laboratoryjnych

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

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka Sesje, ciasteczka, wyjątki Nie sposób wyobrazić sobie bez nich takich podstawowych zastosowań, jak logowanie użytkowników czy funkcjonowanie koszyka na zakupy. Oprócz tego dowiesz się, czym są wyjątki,

Bardziej szczegółowo

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe

Bardziej szczegółowo

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Procedury i funkcje Programowanie komputerowe Procedury i funkcje Wprowadzenie Budowa procedur i funkcji Przekazywanie parametrów Funkcje wbudowane

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

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;

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

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia Język ANSI C część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia najbardziej podstawowe operacje na wskaźnikach int x = 1, y = 2, Tab[10]; int *ip; // czy

Bardziej szczegółowo

PHP 5 język obiektowy

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

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji

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

Zmienne i stałe w PHP

Zmienne i stałe w PHP Zmienne i stałe w PHP Zmienne Zmienne to konstrukcje programistyczne, które pozwalają na przechowywanie danych. Każda zmienna posiada swoją nazwę oraz typ. Nazwa to jednoznaczny identyfikator, dzięki któremu

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Funkcje w języku C Zasięg zmiennych Przekazywanie

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

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

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Elementy języka Scheme

Elementy języka Scheme Elementy języka Scheme Historia języka Lisp Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje

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

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

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

BACKUP BAZ DANYCH FIREBIRD

BACKUP BAZ DANYCH FIREBIRD BACKUP BAZ DANYCH FIREBIRD SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje podstawowe... 2 Krok 2: Dane... 3 Backup bazy umieszczonej na serwerze... 3 Bezpośredni backup pliku

Bardziej szczegółowo

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 5 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

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

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 SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 > C++ wskaźniki Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 >??? Co to jest WSKAŹNIK? ++ wskaźniki 2 / 20 >??? Co to jest WSKAŹNIK? To po prostu ADRES

Bardziej szczegółowo

Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:

Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski: Temat 6: Tekst w przestrzeni trójwymiarowej. Podstawy tworzenia animacji. Instrukcja warunkowa if. Program pozwala umieszczać na scenie nie tylko bryły, czy figury płaskie, ale też tekst. Polecenie tworzące

Bardziej szczegółowo

Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1

Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1 Elementy rachunku lambda λ 1 Notacja λ x 3x + 7 3x + 7 jest różniczkowalna 3x + 7 jest mniejsze od 2 (2,3) 5 f(2, 3) = 2 + 3 g(2) = 2 + 3 λx(3x + 7) 3x + 7 λx λy(x + y) = λxy(x + y) λx(x + 3) 2 Rachunek

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

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

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

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37 Programowanie w C++ Wykład 4 Katarzyna Grzelak 19 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37 Funkcje cd K.Grzelak (Wykład 1) Programowanie w C++ 2 / 37 Funkcja powtórzenie Funkcje == podprogramy

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

Programowanie obiektowe - 1.

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

Bardziej szczegółowo

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

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

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia

Bardziej szczegółowo

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ; Do wyświetlania tekstu służy instrukcja echo echo Hello world ; PHP język ze słabą kontrolą typów. W języku php w przeciwieństwie do c++ nie musimy podawać typu zmiennej podczas jej deklaracji. Tworzenie

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 obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++ Programowanie obiektowo zorientowane Mirosław Głowacki Wykład w języku C++ Literatura B. Meyer, Programowanie zorientowane obiektowo, Helion Gliwice, 2005 J. Grębosz, Symfonia C++ Standard, Oficyna Kallimach,

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

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

Deklaracja struktury w C++

Deklaracja struktury w C++ Struktury to złożone typy danych pozwalające przechowywać różne informacje. Za pomocą struktur możliwe jest grupowanie wielu zmiennych o różnych typach w jeden obiekt. Strukturę można nazywać obiektem

Bardziej szczegółowo

Przydatne sztuczki - sql. Na przykładzie postgres a.

Przydatne sztuczki - sql. Na przykładzie postgres a. Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 4 Wsady Procedury składowane Procedury składowane tymczasowe, startowe Zmienne tabelowe Funkcje

Bardziej szczegółowo

Definicje klas i obiektów. Tomasz Borzyszkowski

Definicje klas i obiektów. Tomasz Borzyszkowski Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy

Bardziej szczegółowo

dbamy o Twoją wygodę i bezpieczeństwo operacji dokonywanych za pośrednictwem Internetu bezpłatne i nie ulegają wyczerpaniu

dbamy o Twoją wygodę i bezpieczeństwo operacji dokonywanych za pośrednictwem Internetu bezpłatne i nie ulegają wyczerpaniu W Aviva Investors Poland TFI dbamy o Twoją wygodę i bezpieczeństwo operacji dokonywanych za pośrednictwem Internetu, dlatego proponujemy Ci możliwość autoryzacji operacji i transakcji dotyczących funduszy

Bardziej szczegółowo

Test przykładowy 2 PAI WSB Wrocław /06/2018

Test przykładowy 2 PAI WSB Wrocław /06/2018 Imię i Nazwisko: Student ID: Part 1: (Prawda lub Fałsz (T lub F)) 15. Która z poniższych deklaracji funkcji jest nieprawidłowa: A. function Sum(a, b, c){; B. function Sum(var a, var b); C. function Sum(a){;

Bardziej szczegółowo