Java. Æwiczenia zaawansowane

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

Download "Java. Æwiczenia zaawansowane"

Transkrypt

1 IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE Java. Æwiczenia zaawansowane Autor: Marcin Lis ISBN: Format: B5, stron: 142 Æwiczenia zaawansowane s¹ kolejnym etapem na drodze doskonalenia informatycznych umiejêtnoœci. Czytelnicy, którzy poznali poprzedni¹ ksi¹ k¹ Marcina Lisa Java. Æwiczenia praktyczne, z ca³¹ pewnoœci¹ nie bêd¹ zawiedzeni. Z niniejszej publikacji dowiemy siê, jak pisaæ programy wielow¹tkowe i jak w Javie obs³ugiwaæ bazy danych. Napiszemy w³asny, gotowy do praktycznego u ycia czat oraz aplikacjê do wysy³ania SMS-ów. Nauczymy siê te tworzyæ aplikacje sieciowe z interfejsem graficznym! Wybrane zagadnienia: W¹tki i programowanie wspó³bie ne w Javie Synchronizacja w¹tków Programowanie sieciowe Czym s¹ gniazda? Serwer wielow¹tkowy ¹czenie z baz¹ danych Dodawanie rekordów Modyfikacja rekordów w bazie Obs³uga transakcji i wartoœci null Aplikacja z interfejsem graficznym Ksi¹ ka otwiera now¹ seriê wydawnicz¹, której g³ównym zadaniem bêdzie poszerzenie uzyskanych wiadomoœci. Wydawnictwo Helion ul. Chopina Gliwice tel. (32) helion@helion.pl

2 Wstęp...z...z Rozdział 1. Wątki i programowanie współbieżne w Javie...z... 7 Klasa Thread...d...d... 7 Interfejs Runnable...d...d. 11 Synchronizacja wątków...d Rozdział 2. Programowanie sieciowe...z Czym są gniazda?...d...d. 29 Gniazda w Javie...d...d Klient i serwer...d...d Transmisja danych...d...d 39 Serwer wielowątkowy...d Rozdział 3. Aplikacje sieciowe z interfejsem graficznym...z Prawdziwa aplikacja czat (chat) w Javie...d Chat Serwer...d...d Wyślij SMS...d...d Idea...d...d Rozdział 4. Bazy danych...z...z Łączenie z bazą danych...d Dodawanie rekordów...d Modyfikacja rekordów w bazie...d Obsługa transakcji i wartości null...d Aplikacja z interfejsem graficznym...d

3 Ćwiczenie 1.1. Wątki w Javie reprezentowane są przez klasę $6/+., znajdującą się w pakiecie +:++21. Program korzystający z więcej niż jednego wątku możemy utworzyć na dwa sposoby. Albo wyprowadzimy własną, nową klasę z klasy $6/+., albo też nasza klasa będzie musiała implementować interfejs "922+,/. Zajmijmy się na początku metodą pierwszą. Utworzymy dwie klasy: klasę główną np. +2 i klasę rozszerzającą klasę $6/+. np. $6/+.. W klasie $6/+. należy zdefiniować metodę 692, od której rozpocznie się działanie wątku; w klasie +2 trzeba utworzyć obiekt klasy $6/+. i wywołać jego metodę Najlepiej wykonać od razu odpowiedni przykład. Napisz kod klasy $6/+. dziedziczącej z klasy $6/+.. 49,- -+77$6/+./8/2.7$6/+. 49,-$6/+. 794/6 49,-:3.692 #78/ $6/+.$6/+.

4 8 Java. Ćwiczenia zaawansowane Ćwiczenie 1.2. Napisz kod klasy +2 tworzący wątek $6/+.. 49, ,-78+8-:3.+2# $6/+.$6/+.2/;$6/+. $6/ #78/ $6/+.+2 Rysunek 1.1. Wyraźnie widać, że oba wątki zostały wykonane Jeśli spojrzymy teraz na rysunek 1.1, przekonamy się, że oba wątki faktycznie zostały wykonane. Podobny efekt możemy osiągnąć również w nieco inny sposób. Nie trzeba tworzyć oddzielnie klasy uruchomieniowej dla wątku (w naszym przypadku była to klasa +2). Wystarczy w klasie wyprowadzonej z $6/+. zdefiniować metodę +2 i tam utworzyć obiekty wątków. Ćwiczenie 1.3. Napisz kod klasy $6/+. wyprowadzonej z klasy $6/+., uruchamiającej dwa przykładowe wątki. 49,- -+77$6/+./8/2.7$6/+. 49,-$6/+. 794/6 49,-:3.692 #78/ /8+/ 49,-78+8-:3.+2# /;$6/ /;$6/

5 Rozdział 1. L Wątki i programowanie współbieżne w Javie 9 Rysunek 1.2. Na ekranie wyświetlone zostały systemowe nazwy wątków Efekt działania kodu z ćwiczenia 1.3 widoczny jest na rysunku 1.2. Na ekranie wyświetlone są nazwy wątków nadane im przez system. Wykorzystaliśmy w tym celu metodę 1/8+/ klasy $6/+.. Warto zauważyć, że w tej chwili mamy inną sytuację niż w poprzednich przykładach. W ćwiczeniach 1.1 i 1.2 występowały dwa wątki, wątek główny i wątek klasy $6/+.. Teraz mamy trzy wątki wątek główny, którego wykonanie rozpoczyna się od metody +2, oraz dwa wątki tworzone przez nas w tej metodzie, których wykonywanie rozpoczyna się od metody 692. Ćwiczenie 1.4. Gdybyśmy chcieli samodzielnie nadać nazwy poszczególnym wątkom, możemy nazwy te przekazać jako parametr w konstruktorze klasy $6/+., a następnie skorzystać z metody 7/8+/. Zmodyfikuj kod z ćwiczenia 1.3 w taki sposób, aby istniała możliwość nadania własnych nazw wątkom. 49,- -+77$6/+./8/2.7$6/+. 49,-$6/+.#86212+/ 794/6 7/8+/2+/ 49,-:3.692 #78/ /8+/ 49,-78+8-:3.+2# /;$6/+.'8/ /;$6/+.'8/78+68 Spróbujmy jednak przekonać się, że rzeczywiście nasze wątki wykonują się niezależnie od siebie. Wystarczy, jeśli dopiszemy pętlę wyświetlającą kilkukrotnie nazwę każdego wątku.

6 10Java. Ćwiczenia zaawansowane Ćwiczenie 1.5. Napisz przykładowy kod ilustrujący niezależne działanvie wątków. 49,- -+77$6/+./8/2.7$6/+. 28./+ 49,-$6/+.#86212+/Г28./+ 794/6 7/8+/2+/ 87./+./+ 49,-: #78/ /8+/ 86 7//4./ /66948/.-/4832/ 49,-78+8-:3.+2# /;$6/+. /6;7Г /;$6/+.691Г78+68 Rysunek 1.3. Widać wyraźnie, że wątki wykonują się niezależnie od siebie Dodatkowo wyposażyliśmy nasze wątki w metodę 7//4, która usypia je na zadaną ilość milisekund. Dzięki temu możemy spowodować, że każdy z nich wypisuje dane na ekran z inną prędkością. Efekt różnych prędkości działania widać wyraźnie na rysunku 1.3.

7 Rozdział 1. L Wątki i programowanie współbieżne w Javie 11 Wyprowadzanie własnej klasy z klasy $6/+. jest wygodne, ale nie zawsze możliwe. Z sytuacją taką będziemy mieli do czynienia, gdy nasza klasa już dziedziczy z innej, a musimy uzupełnić ją o możliwość działania wielowątkowego. Na szczęście istnieje interfejs "922+,/, który pomoże nam w rozwiązaniu tego problemu. W interfejsie "922+,/ zdefiniowana jest jedna metoda: 692, od której, podobnie jak w przypadku klasy $6/+., rozpoczyna się wykonywanie kodu wątku. W celu uruchomienia nowego wątku tworzymy nowy obiekt naszej klasy, a następnie używamy go jako parametru konstruktora klasy $6/+.. Schematycznie wygląda to następująco (zakładając, że +77 implementuje "922+,/): $6/+.2/;+77 2/;$6/+.+77$6/+. Dostępne konstruktory klasy $6/+. przedstawione są w tabeli 1.1. Tabela 1.1. Konstruktory klasy Thread Konstruktor $6/+. $6/+."922+,/8+61/8 $6/+."922+,/8+61/8Г #86212+/ $6/+.#86212+/ $6/+.$6/ Г "922+,/8+61/8 $6/+.$6/ Г "922+,/8+61/8Г#86212+/ $6/+.$6/ Г #86212+/ Opis Konstruktor bezparametrowy. Tworzy nowy obiekt klasby $6/+. Tworzy nowy obiekt klasy $6/+. związany z obiektem docelowym 8+61/8 Tworzy nowy obiekt klasy $6/+. związany z obiektem docelowym 8+61/8, o nazwie 2+/ Tworzy nowy obiekt klasy $6/+. o nazwie 2+/ Tworzy nowy obiekt klasy $6/+. związany z obiektem docelowym 8+61/8, przypisany do grupy Tworzy nowy obiekt klasy $6/+. o nazwie 2+/, związany z obiektem docelowym 8+61/8, przypisany do grupy Tworzy nowy obiekt klasy $6/+. o nazwie 2+/, przypisany do grupy Ćwiczenie 1.6. Napisz przykładowy kod ilustrujący niezależne działanie wątków. Skorzystaj z interfejsu "922+,/. 49, //287"922+,/ 28./+ #8621;36. 49,-+2#8621;36.Г28./+ 87./+./+ 87;36.;36.

8 12 Java. Ćwiczenia zaawansowane 49,-: #78/ ; $6/+.7//4./ /66948/.-/4832/ 49,-78+8-:3.+2# "922+,/86/+.2/;+286/+.Г "922+,/86/+.2/;+286/+.Г 2/;$6/+.86/ /;$6/+.86/ Ćwiczenie 1.7. Dobrym przykładem wykorzystania interfejsu "922+,/ jest klasa posiadająca interfejs graficzny. Nie możemy w takim przypadku dziedziczyć bezpośrednio z klasy $6/+., gdyż np. utworzenie okna wymaga dziedziczenia z klasy 6+/, a wielodziedziczenia w Javie nie ma. Stosujemy więc interfejs "922+,/, który rozwiązuje nasz problem. Postarajmy się zatem napisać prostą aplikację z interfejsem graficznym, która będzie wykonywała przykładowe obliczenia w osobnym wątku. Napisz aplikację z interfejsem graficznym, wykonującą w osobnym wątku przykładowe obliczenia. Stan obliczeń powinien być sygnalizowany uvżytkownikowi :++; :++;8/:/28 49, /8/2.76+/4//287"922+,/Г-83278/2/6Г'2.3;78/2/6 46:+8/#8621;-$6/ /-8/ ,# /-8/ ,# /-8/ ,/ 6316/ /-8/.78+8-,33/ /. 49,-+2#8621;-$6/+. 794/6 87;-$6/+.;-$6/+. 0+2/59+7;-$6/+. 6/ '2.3;78/2/687 7/ /8#/Г,#8+682/;98832#8+68,#8+687/8392.7ГГГ

9 Rozdział 1. L Wątki i programowanie współbieżne w Javie 13,# /2/ ,#8+68,#8342/;98832#834,#8347/8392.7ГГГ,# /2/ ,# /772/;+,/ 6316/777/8392.7ГГГ /77,#8+687/82+,/.869/,#8347/82+,/.0+7/ 7/8&7,/869/ 49,-: /.0+7/ $6/+.7// /66948/.-/4832/ /.,6/+ 6316/777/8$/828/1/683#8621,#8+687/82+,/.869/,#8347/82+,/.0+7/ 49,-78+8-:3.+2# /; ,-: /6036/.-832:/28/:8 #862184/:81/ /59+7#8+68,#8+687/82+,/.0+7/ +2+22/; / 2/;$6/ ,#8347/82+,/.869/ /7/084/59+7# /.869/ 49,-:3.;2.3;/-320/.'2.3;:/28/:8 49,-:3.;2.3;37/.'2.3;:/28/:8 49,-:3.;2.3;/+-8:+8/.'2.3;:/28/:8

10 14 Java. Ćwiczenia zaawansowane 49,-:3.;2.3;3721'2.3;:/28/:8 #78//8 49,-:3.;2.3;-8:+8/.'2.3;:/28/:8 49,-:3.;2.3;-320/.'2.3;:/28/:8 49,-:3.;2.3;4/2/.'2.3;:/28/:8 Rysunek 1.4. Po kliknięciu przycisku Start rozpoczęły się obliczenia Ćwiczenie 1.8. W metodzie 692 napisaliśmy zwykłą pętlę 036 symulującą wykonywanie jakichś obliczeń. Co 250 milisekund uaktualnia ona tekst etykiety 6316/77. Wykonywanie tej operacji rozpoczyna się po naciśnięciu przycisku Start. Działanie pętli możemy przerwać poprzez wciśnięcie przycisku Stop, następuje wtedy przypisanie zmiennej 78344/. wartości 869/. Wartość tej zmiennej sprawdzana jest cyklicznie, zatem po takim przypisaniu nastąpi przerwanie działania. Musimy tutaj zdawać sobie jednak sprawę, że mamy dwa obiekty klasy +2. Jeden z nich tworzony jest w metodzie +2, drugi po naciśnięciu przycisku Start. Zatem jeśli mają one ze sobą współpracować na takiej zasadzie jak przedstawiona powyżej, zmienne,#8+68,,#834, 6316/77 i 78344/. muszą być zadeklarowane jako statyczne. Inaczej każdy wątek będzie operował na własnej, lokalnej kopii tych zmiennych i całość oczywiście nie będzie działać. Nic nie stoi jednak na przveszkodzie, aby aplikację tę skonstruować w taki sposób, aby wątek był tworzony znanym nam już sposobem, przez oddzielną klasę, pochodną od $6/+.. Napisz kod klasy $6/+. symulującej wykonywanie obliczeń i współpracującej z klasą +2 realizującą interfejs graficzny. 49,- -+77$6/+./8/2.7$6/+. 28./ /28,33/ /. 49,-$6/ /28Г28./+

11 Rozdział 1. L Wątki i programowanie współbieżne w Javie /6 87./+./ /284+6/28 49,-: /.0+7/ //4./ /66948/.-/4832/ /.,6/+ 4+6/ /777/8$/828/1/683#8621 Ćwiczenie 1.9. Metoda 692 wygląda tu bardzo podobnie, jak w poprzednim ćwiczeniu. Różnice są takie, że opóźnienie jest teraz sparametryzowane, możemy je regulować wartością zmiennej./+ (jest ona przekazywana w konstruktorze klasy) oraz że wprowadziliśmy zmienną 4+6/28, która jest referencją do obiektu klasy +2 i umożliwia nam komunikację z nim. Dzięki temu możemy modyfikować tekst pojawiający się na ekranie. Musimy w tej chwili tylko przystosować klasę +2 do współpracy z naszym nowym wątkiem. Napisz kod klasy +2 wykorzystującej przygotowaną w ćwiczeniu 1.8 klasę vwątku :++; :++;8/:/28 49, /8/2.76+/4// /2/6Г'2.3;78/2/6 4638/-8/.98832,# /-8/.98832,# /-8/.+,/ 6316/ /-8/.$6/+.86/+. 49, /6 +..'2.3;78/2/687 7/ /8#/Г,#8+682/;98832#8+68,#8+687/8392.7ГГГ,# /2/ ,#8+68

12 16 Java. Ćwiczenia zaawansowane,#8342/;98832#834,#8347/8392.7ггг,# /2/ ,# /772/;+,/ 6316/777/8392.7ГГГ /77,#8+687/82+,/.869/,#8347/82+,/.0+7/ 7/8&7,/869/ 49,-78+8-:3.+2# /;+2 49,-: /6036/.-832:/28/:8 #862184/:81/ /59+7#8+68,#8+687/82+,/.0+7/ 86/+.2/;$6/+.87Г 86/ ,#8347/82+,/.869/ /7/084/59+7#834 86/ /.869/,#8+687/82+,/.869/,#8347/82+,/.0+7/ 49,-:3.;2.3;/-320/.'2.3;:/28/:8 49,-:3.;2.3;37/.'2.3;:/28/:8 49,-:3.;2.3;/+-8:+8/.'2.3;:/28/:8 49,-:3.;2.3;3721'2.3;:/28/:8 #78//8 49,-:3.;2.3;-8:+8/.'2.3;:/28/:8 49,-:3.;2.3;-320/.'2.3;:/28/:8 49,-:3.;2.3;4/2/.'2.3;:/28/:8

13 Rozdział 1. L Wątki i programowanie współbieżne w Javie 17 Ćwiczenie Rozważmy w tej chwili następującą sytuację: mamy zmienną typu całkowitego i dwa wątki modyfikujące jej wartość. Załóżmy, że będzie to dodawanie w pętli w każdym przebiegu wartości 1, a sama pętla będzie miała tych przebiegów 10. Jaka będzie ostateczna wartość naszej zmiennej? Jeśli pierwszy wątek 10 razy zwiększył wartość o 1 i drugi wątek zrobił to samo, to w sumie powinno dać 20. Napiszmy taki program. Napisz program, w którym dwa wątki będą niezależnie od siebie modyfikowały wartość jednej zmiennej typu ,- -+77$6/+./8/2.7$6/+. 46:+8/28;-$6/+. 46:+8/28./+ 46:+8/ ,-$6/+.28;-$6/+.Г28./+ 794/6 87./+./+ 87;-$6/+.;-$6/+. 49,-: ;8-;-$6/+. -+7/86/+.,6/+ -+7/86/+.,6/+ -+7/86/+.,6/+ 49,-78+8-:3.+2# /;$6/+.Г /;$6/+.Г /;$6/+.Г ,-:3.86/ //4./ /66948/.-/4832/ ,-:3.86/ //4./+

14 18 Java. Ćwiczenia zaawansowane /66948/.-/4832/ , /.:3.86/+. 86 ; /66948/.-/4832/ #78/ / #78/ /8+/ Ćwiczenie Wątki 86/+. i 86/+. zajmują się zwiększaniem wartości zmiennej Jedynym zadaniem wątku 86/+. jest odczekanie milisekund i wyświetlenie wartości zmiennej Uruchomienie powyższego kodu wykaże, że faktycznie otrzymamy wartość 20, tak jak przewidzieliśmy wcześniej. Czy zatem wszystko jest w porządku? Jak najbardziej. Co się jednak stanie, jeśli instrukcja modyfikująca będzie w postaci ? Napiszmy taki program. Zmodyfikuj kod z ćwiczenia 1.10 w taki sposób, aby modyfikacja zmiennej była w postaci: ,- -+77$6/+./8/2.7$6/+. 46:+8/28;-$6/+. 46:+8/28./+ 46:+8/ ,-$6/+.28;-$6/+.Г28./+ 794/6 87./+./+ 87;-$6/+.;-$6/+. 49,-: ;8-;-$6/+. -+7/86/+.,6/+ -+7/86/+.,6/+ -+7/86/+.,6/+ 49,-78+8-:3.+2# /;$6/+.Г /;$6/+.Г /;$6/+.Г78+68

15 Rozdział 1. L Wątki i programowanie współbieżne w Javie 19 49,-:3.86/ //4./ /66948/.-/4832/ ,-:3.86/ //4./ /66948/.-/4832/ , /.:3.86/+. 86 ; /66948/.-/4832/ #78/ / #78/ /8+/ Modyfikacje nie były duże, a po uruchomieniu ujrzymy prawdopodobnie również wynik 20. Czy zatem wszystko znowu jest w porządku? Otóż absolutnie nie! Wszystko zależy teraz od kompilatora. Jeśli jest on inteligentny, prawdopodobnie potraktuje instrukcję jako W takim wypadku faktycznie program będzie prawidłowy, gdyż jest instrukcją atomową, tzn. nie może być ona przerwana przez inny wątek. Niestety nie należy przyjmować takiego założenia, natomiast trzeba traktować taki kod jako złożenie następujących operacji: L pobranie wartości , L dodanie do tej wartości 1, L zapisanie otrzymanej wartości do zmiennej Skoro tak, operacje te mogą zostać przerwane przez inny wątek. Co się wtedy stanie? Otóż otrzymany wynik na pewno nie będzie prawidłowy. Żeby się o tym przekonać, zasymulujemy przerywanie tych operacji. Zrobimy to w sposób następujący: L wartość zmiennej będziemy modyfikować w dwóch krokach, L pomiędzy poszczególnymi operacjami dodamy instrukcjvę 7//4, usypiającą dany wątek.

16 20Java. Ćwiczenia zaawansowane Ćwiczenie Kod w każdym wątku powinien zatem wyglądać następujvąco: 288/ / //4./ /66948/.-/4832/ /4 #78/ /8+/ Napisz program wymuszający wzajemne przerywanie pracy wątków przy modyfikacji wspólnej zmiennej typu ,- -+77$6/+./8/2.7$6/+. 46:+8/28;-$6/+. 46:+8/28./+ 46:+8/ ,-$6/+.28;-$6/+.Г28./+ 794/6 87./+./+ 87;-$6/+.;-$6/+. 49,-: ;8-;-$6/+. -+7/86/+.,6/+ -+7/86/+.,6/+ -+7/86/+.,6/+ 49,-78+8-:3.+2# /;$6/+.Г /;$6/+.Г /;$6/+.Г ,-:3.86/+. 288/ / //4./ /66948/.-/4832/ /4 #78/ /8+/

17 Rozdział 1. L Wątki i programowanie współbieżne w Javie 21 49,-:3.86/+. 288/ / //4./ /66948/.-/4832/ /4 #78/ /8+/ , /.:3.86/+. 86 ; /66948/.-/4832/ #78/ / #78/ /8+/ Rysunek 1.5. Widać wyraźnie, że wątki sobie wzajemnie przeszkadzają Instrukcje #78/ dokładnie pokazują nam, co się dzieje. Wynik oczywiście nie jest prawidłowy, gdyż pomiędzy pobraniem wartości a jej modyfikacją i ponownym zapisaniem w każdym wątku występuje przerwa, umożliwiająca wykonanie operacji przez inny wątek. Skutek jest taki, że mówiąc potocznie nie wie lewica, co robi prawica i wynik jest zafałszowany. Jest to typowy przykład dostępu do zasobu współdzielonego przez pracujące współbieżnie wątki. Aby zatem nasz przykład był poprawny, musimy dokonać ich synchronizacji. W Javie służy do tego instrukcja /.. Możemy ją stosować zarówno w przypadku metod (ang. synchronized methods), jak i obiektów. Jeżeli zadeklarujemy metodę jako /., np.:

18 22 Java. Ćwiczenia zaawansowane Ćwiczenie , /.:3.73; / to wywołanie takiej metody powoduje zablokowanie obiektu, na rzecz którego jest ona wywoływana. Obiekt ten będzie zablokowany, aż do zakończenia wykonywania tejże instrukcji i inne wątki nie będą miały do niego dostępu. Druga metoda to zablokowanie obiektu w postaci: #2-632/.3,/ / przy czym obiekt użyty do synchronizacji nie musi być użyty w bloku instrukcji. Spróbujmy zatem zsynchronizować dostęp do zmiennej z poprzedniego ćwiczenia. Dokonaj synchronizacji dostępu do zmiennej z ćwiczenia ,- -+77$6/+./8/2.7$6/+. 46:+8/28;-$6/+. 46:+8/28./+ 46:+8/ :+8/78+8-,/-87/+436/ 49,-$6/+.28;-$6/+.Г28./+ 794/6 87./+./+ 87;-$6/+.;-$6/+. 49,-: ;8-;-$6/+. -+7/86/+.,6/+ -+7/86/+.,6/+ -+7/86/+.,6/+ 49,-78+8-:3.+2# /+436/2/;,/-8 2/;$6/+.Г /;$6/+.Г /;$6/+.Г ,-:3.86/+. 288/ /.7/+436/ 8/

19 Rozdział 1. L Wątki i programowanie współbieżne w Javie //4./ /66948/.-/4832/ /4 #78/ /8+/ ,-:3.86/+. 288/ /.7/+436/ 8/ //4./ /66948/.-/4832/ /4 #78/ /8+/ , /.:3.86/+. 86 ; /66948/.-/4832/ #78/ / #78/ /8+/ Na rysunku 1.6 widać, że synchronizacja zakończyła się pełnym powodzeniem. Użyliśmy dodatkowego obiektu 7/+436/, który pełni rolę strażnika dostępu do zmiennej Jest to jego jedyna rola, do niczego innego nam w tym przykładzie nie służy. Oczywiście nic nie stoi na przeszkodzie, aby użyć obiektu, który jest wykorzystywany w kodzie programu, np. tablicy, jednakże w powyższym ćwiczeniu po prostu nie mieliśmy takiego pod ręką. Nie możemy natomiast użyć w tym celu zmiennej (wszak to byłoby najwygodniejsze), gdyż jest ona typu 28, a instrukcji /. możemy użyć tylko w stosunku do typów wyprowadzonych z klasy,/-8. Pokażmy jednak, że do synchronizacji można użyć obiektu, który będzie modyfikowany. Nie musimy wtedy wprowadzać dodatkowej zmiennej synchronizacyjnej. Aby tego dokonać, musimy napisać własną klasę enkapsulującą zmienną typu 28. To zadanie powinno być zupełnie banalne.

20 24 Java. Ćwiczenia zaawansowane Rysunek 1.6. Synchronizacja powiodła się i otrzymany wynik jest teraz prawidłowy Ćwiczenie Napisz kod klasy enkapsulującej zmienną typu , ,-28:+9/ Ćwiczenie Dokonaj synchronizacji dostępu do zmiennej z ćwiczenia Nie używaj dodatkowego obiektu klasy,/-8. Zamiast tego zmień typ z 28 na i użyj tego obiektu do synchronizacji. 49,- -+77$6/+./8/2.7$6/+. 46:+8/28;-$6/+. 46:+8/28./+ 46:+8/ ,-$6/+.28;-$6/+.Г28./+ 794/6 87./+./+ 87;-$6/+.;-$6/+. 49,-: ;8-;-$6/+. -+7/86/+.,6/+ -+7/86/+.,6/+ -+7/86/+.,6/+ 49,-78+8-:3.+2# /; /;$6/+.Г78+68

21 Rozdział 1. L Wątki i programowanie współbieżne w Javie 25 2/;$6/+.Г /;$6/+.Г ,-:3.86/+. 288/ / / :+9/ 86 7//4./ /66948/.-/4832/ :+9/8/4 #78/ /8+/ :+9/ 49,-:3.86/+. 288/ / / :+9/ 86 7//4./ /66948/.-/4832/ :+9/8/4 #78/ /8+/ :+9/ 49, /.:3.86/+. 86 ; /66948/.-/4832/ #78/ / #78/ /8+/ :+9/ Jak widać, obiektem służącym do synchronizacji jest tu i jednocześnie jest to obiekt, który modyfikujemy w bloku /.. Jest to bardzo wygodna metoda, gdyż nie musimy tworzyć dodatkowych zmiennych zaśmiecającyvch system. Skorzystajmy teraz z drugiego sposobu synchronizacji, czyli z metod synchronizowanych. Zgodnie z tym, co napisaliśmy powyżej, musimy utworzyć metodę, która będzie modyfikowała obiekt i zadeklarować ją jako /.. Może ona wyglądać w sposób następujący:

22 26 Java. Ćwiczenia zaawansowane Ćwiczenie , /.: / / :+9/ :+9/8/4 Pozostaje teraz wykorzystać ten kod w aplikacji. Dokonaj synchronizacji dostępu do zmiennej typu Wykorzystaj synchronizowaną metodę 94.+8/ ,- -+77$6/+./8/2.7$6/+. 46:+8/28;-$6/+. 46:+8/28./+ 46:+8/ ,-$6/+.28;-$6/+.Г28./+ 794/6 87./+./+ 87;-$6/+.;-$6/+. 49,-: ;8-;-$6/+. -+7/86/+.,6/+ -+7/86/+.,6/+ -+7/86/+.,6/+ 49,-78+8-:3.+2# /; /;$6/+.Г /;$6/+.Г /;$6/+.Г , /.: / / :+9/ :+9/8/4 49,-:3.86/ / #78/ /8+/ :+9/ 86 7//4./ /66948/.-/4832/

23 Rozdział 1. L Wątki i programowanie współbieżne w Javie 27 49,-:3.86/ / #78/ /8+/ :+9/ 86 7//4./ /66948/.-/4832/ 49, /.:3.86/+. 86 ; /66948/.-/4832/ #78/ / #78/ /8+/ :+9/

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku. Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

MySQL. Æwiczenia praktyczne

MySQL. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG MySQL. Æwiczenia praktyczne Autor: Marek Nowakowski ISBN: 83-7197-884-7 Format: B5, stron: 114 TWÓJ KOSZYK DODAJ

Bardziej szczegółowo

C++. Æwiczenia zaawansowane

C++. Æwiczenia zaawansowane IDZ DO PRZYK ADOWY ROZDZIA SPIS TRECI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG C++. Æwiczenia zaawansowane Autor: Andrzej Stasiewicz ISBN: 83-7361-766-3 Format: B5, stron: 120 TWÓJ KOSZYK

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Java. Æwiczenia praktyczne

Java. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG KSI EK KATALOG ONLINE Java. Æwiczenia praktyczne Autor: Marcin Lis ISBN: 83-7197-723-9 Format: B5, stron: 166 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO

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. Æwiczenia praktyczne

JavaScript. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

P³atnik. Przewodnik IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE

P³atnik. Przewodnik IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE IDZ DO PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG KSI EK KATALOG ONLINE P³atnik. Przewodnik Autor: Adam Józefiok ISBN: 83-246-0404-9 Format: A5, stron: 288 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO KOSZYKA

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 1 dr inż. Literatura ogólna Ben-Ari, M.: Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa, 2009. Czech, Z.J:

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

AutoCAD 2005. Pierwsze kroki

AutoCAD 2005. Pierwsze kroki IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG AutoCAD 2005. Pierwsze kroki Autor: Andrzej Pikoñ ISBN: 83-7361-581-4 Format: B5, stron: 216 TWÓJ KOSZYK CENNIK

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

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

Bardziej szczegółowo

Lekcja : Tablice + pętle

Lekcja : Tablice + pętle Lekcja : Tablice + pętle Wprowadzenie Oczywiście wiesz już jak dużo można osiągnąć za pomocą tablic oraz jak dużo można osiągnąć za pomocą pętli, jednak tak naprawdę prawdziwe możliwości daje połączenie

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego

Bardziej szczegółowo

Laboratorium 9 (Więcej Aktywności, w Androidzie)

Laboratorium 9 (Więcej Aktywności, w Androidzie) Dr Mirosław Łątka Informatyka dla medycyny Jesień 2012 Laboratorium 9 (Więcej Aktywności, w Androidzie) Aplikacje systemu Android składają się z luźnego zbioru aktywności (ang. activities), z których każda

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Aplikacje w Javie- wykład 11 Wątki-podstawy

Aplikacje w Javie- wykład 11 Wątki-podstawy 1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Dziedziczenie. Zadanie 1

Dziedziczenie. Zadanie 1 Dziedziczenie Zadanie 1 Napisz klasę KolorowyPunkt, która dziedziczy po klasie Punkt a dodatkowo przechowuje informacje o kolorze. Uzupełnij ją o metody umożliwiające pobieranie i ustawianie koloru. Pamiętaj

Bardziej szczegółowo

The Bat! Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE

The Bat! Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE The Bat! Æwiczenia Autor: Piotr Czarny ISBN: 83-7361-744-2 Format: B5, stron: 124 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO KOSZYKA

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

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

Języki i techniki programowania Ćwiczenia 2

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

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

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

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

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

Informatyka II. Laboratorium Aplikacja okienkowa

Informatyka II. Laboratorium Aplikacja okienkowa Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.

Bardziej szczegółowo

OpenOffice.ux.pl 2.0. Æwiczenia praktyczne

OpenOffice.ux.pl 2.0. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG OpenOffice.ux.pl 2.0. Æwiczenia praktyczne Autor: Maria Sokó³ ISBN: 83-246-0508-8 Format: A5, stron: 220 TWÓJ

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

C#. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG

C#. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG IDZ DO PRZYK ADOWY ROZDZIA SPIS TRECI KATALOG KSI EK KATALOG ONLINE C#. Æwiczenia Autor: Marcin Lis ISBN: 83-7361-128-2 Format: B5, stron: 166 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO KOSZYKA CENNIK

Bardziej szczegółowo

Matematyka z komputerem dla gimnazjum

Matematyka z komputerem dla gimnazjum IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWO CIACH ZAMÓW CENNIK CZYTELNIA SPIS TRE CI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Rozdział 5. Administracja kontami użytkowników

Rozdział 5. Administracja kontami użytkowników Rozdział 5. Administracja kontami użytkowników Ćwiczenia zawarte w tym rozdziale pozwolą przygotować oddzielne środowisko pracy dla każdego użytkownika komputera. Windows XP, w porównaniu do systemów Windows

Bardziej szczegółowo

Wybierz polecenie z menu: Narzędzia Listy i dokumenty

Wybierz polecenie z menu: Narzędzia Listy i dokumenty Listy seryjne - część pierwsza Przygotowanie korespondencji seryjnej zawsze składa się z trzech etapów. Przygotowanie treści dokumentu głównego. Stworzenie źródła danych (lub skorzystanie z gotowej bazy

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

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

Misja#3. Robimy film animowany.

Misja#3. Robimy film animowany. Po dzisiejszej lekcji będziesz: tworzyć programy animujące obiekty na ekranie komputera określać położenie i orientację obiektu w kartezjańskim układzie współrzędnych Zauważ że... Ludzkie oko charakteryzuje

Bardziej szczegółowo

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

Nowy sposób autoryzacji przelewów w Usłudze Bankowości Elektronicznej

Nowy sposób autoryzacji przelewów w Usłudze Bankowości Elektronicznej Nowy sposób autoryzacji przelewów w Usłudze Bankowości Elektronicznej mtoken Asseco MAA to nowoczesna aplikacja do bezpiecznej autoryzacji bankowych transakcji online. Działa ona na urządzeniach mobilnych

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

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

timetrack Przewodnik Użytkownika timetrack Najważniejsze Funkcje

timetrack Przewodnik Użytkownika timetrack Najważniejsze Funkcje timetrack Przewodnik Użytkownika timetrack jest łatwą w obsłudze aplikacją, stworzoną do rejestracji czasu. Pozwala ona na zapisywanie czasu spędzonego z klientami oraz podczas pracy nad projektami i zadaniami

Bardziej szczegółowo

Korespondencja seryjna

Korespondencja seryjna Korespondencja seryjna Listy seryjne - część pierwsza Przygotowanie korespondencji seryjnej zawsze składa się z trzech etapów. Przygotowanie treści dokumentu głównego. Stworzenie źródła danych (lub skorzystanie

Bardziej szczegółowo

Łączenie liczb i tekstu.

Łączenie liczb i tekstu. Łączenie liczb i tekstu. 1 (Pobrane z slow7.pl) Rozpoczynamy od sposobu pierwszego. Mamy arkusz przedstawiony na rysunku poniżej w którym zostały zawarte wypłaty pracowników z wykonanym podsumowaniem.

Bardziej szczegółowo

W dowolnym momencie można zmienić typ wskaźnika.

W dowolnym momencie można zmienić typ wskaźnika. c++ Wskaźniki mają jeszcze jedną przydatną cechę. W dowolnym momencie można zmienić typ wskaźnika. Robi się to za pomocą operatora rzutowania. Najpierw zdefiniujemy sobie wsk_uniwersalny mogący pokazywać

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

po wykonaniu instrukcji wartość zmiennej x zostanie zwiększona o 50,a

po wykonaniu instrukcji wartość zmiennej x zostanie zwiększona o 50,a Część XIV C++ Złożone wyrażenia w pętli for W wypadku zagnieżdżenia dwóch pętli druga pętla wykonywana jest w całości w każdym przebiegu pętli pierwszej. Jednak niekiedy zachodzi potrzeba równoczesnego

Bardziej szczegółowo

Utworzenie pliku. Dowiesz się:

Utworzenie pliku. Dowiesz się: Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

UNIFON podręcznik użytkownika

UNIFON podręcznik użytkownika UNIFON podręcznik użytkownika Spis treści: Instrukcja obsługi programu Unifon...2 Instalacja aplikacji Unifon...3 Korzystanie z aplikacji Unifon...6 Test zakończony sukcesem...9 Test zakończony niepowodzeniem...14

Bardziej szczegółowo

Podstawy i języki programowania

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

Bardziej szczegółowo

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Uruchomienie programu powoduje stworzenie nowego procesu przez system operacyjny. Proces wykonywany program wraz

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

epuap Archiwizacja w Osobistym Składzie Dokumentów

epuap Archiwizacja w Osobistym Składzie Dokumentów epuap Archiwizacja w Osobistym Składzie Dokumentów Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka SPIS TREŚCI SPIS

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

Informatyka Europejczyka. Zeszyt æwiczeñ dla szko³y podstawowej. Czêœæ II

Informatyka Europejczyka. Zeszyt æwiczeñ dla szko³y podstawowej. Czêœæ II IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Informatyka Europejczyka. Zeszyt æwiczeñ dla szko³y podstawowej. Czêœæ II Autorzy: Danuta Kia³ka, Katarzyna

Bardziej szczegółowo

Kopiowanie, przenoszenie plików i folderów

Kopiowanie, przenoszenie plików i folderów Kopiowanie, przenoszenie plików i folderów Pliki i foldery znajdujące się na dysku można kopiować lub przenosić zarówno w ramach jednego dysku jak i między różnymi nośnikami (np. pendrive, karta pamięci,

Bardziej szczegółowo

Internet. Æwiczenia praktyczne. Wydanie II

Internet. Æwiczenia praktyczne. Wydanie II IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE ONOWOœCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREœCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Mandrake Linux. Æwiczenia zaawansowane IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE

Mandrake Linux. Æwiczenia zaawansowane IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWO CIACH ZAMÓW CENNIK CZYTELNIA SPIS TRE CI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

Mandriva. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA. SPIS TREœCI KATALOG ONLINE

Mandriva. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA. SPIS TREœCI KATALOG ONLINE IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE Mandriva. Æwiczenia Autor: Maciej Groszek ISBN: 83-246-0666-1 Format: A5, stron: 112 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO KOSZYKA

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

Bardziej szczegółowo

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu.

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu. Maple i wykresy 1 Program Maple 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu. 1.2 Uruchomienie programu Maple Uruchamiamy go, wpisując w konsoli maple, potwierdzając

Bardziej szczegółowo

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst. Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:

Bardziej szczegółowo

Zdarzenia Zdarzenia onload i onunload

Zdarzenia Zdarzenia onload i onunload Zdarzenia Zdarzenia onload i onunload Ćwiczenie 1. Rysunek 1. Okno powitalne wykorzystujące zdarzenie onload Na stronie mogą zachodzić różne zdarzenia, np. użytkownik kliknie myszą lub zacznie wprowadzać

Bardziej szczegółowo

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

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

Bardziej szczegółowo

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S FAX SYSTEM

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S FAX SYSTEM \ 3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S FAX SYSTEM SPIS TREŚCI 1. LOGOWANIE DO APLIKACJI... 3 2. WYGLĄD OKNA... 4 3. SKRZYNKA ODBIORCZA... 5 3.1. SKRZYNKA ODBIORCZA - Objaśnienie kolumn:...

Bardziej szczegółowo

MATLAB. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE

MATLAB. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE MATLAB. Æwiczenia Autor: Marek Czajka ISBN: 83-7361-711-6 Format: B5, stron: 96 Przyk³ady na ftp: 2 kb ZAMÓW DRUKOWANY KATALOG TWÓJ

Bardziej szczegółowo

5. Bazy danych Base Okno bazy danych

5. Bazy danych Base Okno bazy danych 5. Bazy danych Base 5.1. Okno bazy danych Podobnie jak inne aplikacje środowiska OpenOffice, program do tworzenia baz danych uruchamia się po wybraniu polecenia Start/Programy/OpenOffice.org 2.4/OpenOffice.org

Bardziej szczegółowo

MS Project 2000. Æwiczenia praktyczne

MS Project 2000. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG MS Project 2000. Æwiczenia praktyczne Autor: Sebastian Wilczewski ISBN: 83-7197-975-4 Format: B5, stron: 114

Bardziej szczegółowo

Instrukcja obsługi aplikacji MobileRaks 1.0

Instrukcja obsługi aplikacji MobileRaks 1.0 Instrukcja obsługi aplikacji MobileRaks 1.0 str. 1 Pierwsze uruchomienie aplikacji. Podczas pierwszego uruchomienia aplikacji należy skonfigurować połączenie z serwerem synchronizacji. Należy podać numer

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

Bardziej szczegółowo

5.2. Pierwsze kroki z bazami danych

5.2. Pierwsze kroki z bazami danych 5.2. Pierwsze kroki z bazami danych Uruchamianie programu Podobnie jak inne programy, OO Base uruchamiamy z Menu Start, poprzez zakładkę Wszystkie programy, gdzie znajduje się folder OpenOffice.org 2.2,

Bardziej szczegółowo

UML 2.1. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA. SPIS TREœCI KATALOG ONLINE

UML 2.1. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA. SPIS TREœCI KATALOG ONLINE IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE UML 2.1. Æwiczenia Autorzy: Stanis³aw Wrycza i inni ISBN: 978-83-246-0612-2 Format: A5, stron: 248 ZAMÓW DRUKOWANY KATALOG Wydawnictwo

Bardziej szczegółowo

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

Bardziej szczegółowo

1. Pobieranie i instalacja FotoSendera

1. Pobieranie i instalacja FotoSendera Jak zamówić zdjęcia przez FotoSender? Spis treści: 1. Pobieranie i instalacja FotoSendera 2. Logowanie 3. Opis okna programu 4. Tworzenie i wysyłanie zlecenia Krok 1: Wybór zdjęć Krok 2: Podsumowanie zlecenia

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

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy Pojęcie klasy Program napisany w języku Java składa się ze zbioru klas. Każda klasa zawiera

Bardziej szczegółowo

JPK VAT wysyłka za pośrednictwem profilu zaufanego z systemu epuap

JPK VAT wysyłka za pośrednictwem profilu zaufanego z systemu epuap JPK VAT wysyłka za pośrednictwem profilu zaufanego z systemu epuap Uwaga: Jeżeli Użytkownik chce podpisać plik za pomocą Profilu Zaufanego epuap, w pierwszej kolejności zobowiązany jest do założenia konta

Bardziej szczegółowo