JUnit. Pragmatyczne testy jednostkowe w Javie

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

Download "JUnit. Pragmatyczne testy jednostkowe w Javie"

Transkrypt

1 IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG Wydawnictwo Helion ul. Chopina Gliwice tel. (32) helion@helion.pl TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE ONOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE JUnit. Pragmatyczne testy jednostkowe w Javie Autorzy: Andy Hunt, Dave Thomas T³umaczenie: Jaromir Senczyk ISBN: Tytu³ orygina³u: Pragmatic Unit Testing in Java with JUnit Format: B5, stron: 192 Przetestuj swoje aplikacje podczas ich tworzenia Poznaj strukturê testów jednostkowych Stwórz poprawne testy jednostkowe Wykorzystaj modu³y testowe w projekcie Testy jednostkowe s¹ niezwykle wa nym narzêdziem programisty. Przeprowadzane podczas pisania aplikacji pozwalaj¹ na sprawdzenie poprawnoœci kodu, wy³apanie b³êdów i szybkie usuniêcie ich. W nowoczesnych metodykach wytwarzania oprogramowania testy jednostkowe s¹ jednymi z najwa niejszych elementów procesu. Tworzenie systemów bez korzystania z testów jednostkowych czêsto porównywane jest do pisania programów na kartce. Nowoczesne narzêdzia takie, jak JUnit bardzo u³atwiaj¹ przeprowadzanie testów jednostkowych, integruj¹c siê ze œrodowiskami programistycznymi. Ksi¹ ka JUnit. Pragmatyczne testy jednostkowe w Javie to wprowadzenie do tematyki testów jednostkowych. Czytaj¹c j¹ poznasz ich znaczenie i nauczysz siê stosowaæ JUnit do projektowania i wykorzystywania testów. Dowiesz siê, jak projektowaæ testy jednostkowe w oparciu JUnit, co testowaæ za ich pomoc¹ i gdzie umieszczaæ kod testowy. W ksi¹ ce przeczytasz te o zasadach projektowania ³atwego do testowania kodu oraz programowaniu sterowanym testami. Cele przeprowadzania testów jednostkowych Planowanie testów Implementacja testów z wykorzystaniem JUnit Zasady stosowania testów Automatyzowanie testów Okreœlanie czêstotliwoœci testowania Projektowanie kodu pod k¹tem testowania Przekonaj siê, jak bardzo testy jednostkowe u³atwi¹ Ci pracê

2 Przedmowa...7 Rozdział 1. Wprowadzenie...11 Zaufanie do tworzonego kodu Na czym polegają testy jednostkowe? Po co zajmować się testami jednostkowymi? Co chcemy osiągnąć? Jak testować? Wymówki od testowania Zawartość książki Rozdział 2. Najprostsze testy jednostkowe...25 Planowanie testów Testowanie prostej metody Więcej testów Rozdział 3. Implementacja testów JUnit...35 Struktura testów jednostkowych Asercje JUnit Szkielet JUnit... 40

3 4 JUnit. Pragmatyczne testy jednostkowe w Javie Kompozycja testów JUnit Niestandardowe asercje JUnit JUnit i wyjątki Jeszcze o nazwach Szkielet JUnit Rozdział 4. Co testować?...53 Czy wyniki są poprawne? Warunki brzegowe Sprawdzanie relacji zachodzących w odwrotnym kierunku Kontrola wyników na wiele sposobów Wymuszanie warunków powstawania błędów Charakterystyka efektywnościowa Rozdział 5. Warunki brzegowe...65 Zgodność Uporządkowanie Zakres Referencja Istnienie Liczność Czas Zrób to sam Rozdział 6. Stosowanie obiektów imitacji...85 Proste namiastki Obiekty imitacji Testowanie serwletu Easy Mock Rozdział 7. Właściwości poprawnych testów jednostkowych Automatyzacja Kompletność Powtarzalność

4 Spis treści 5 Niezależność Profesjonalizm Testowanie testów Rozdział 8. Projekt i testowanie Gdzie umieścić kod testowy Testowanie i kurtuazja Częstotliwość testów Testy i istniejący kod Testy i recenzje Rozdział 9. Zagadnienia projektowania Projektowanie łatwo testowalnego kodu Refaktoring i testowanie Testowanie niezmienników klas Projektowanie sterowane testami Testowanie poprawności parametrów Dodatek A Pułapki Dopóki kod działa Test ognia Działa na mojej maszynie Problemy arytmetyki zmiennoprzecinkowej Testy zajmują zbyt wiele czasu Testy ciągle zawodzą Testy zawodzą na niektórych maszynach Metoda main nie jest wykonywana Dodatek B Instalacja JUnit Instalacja z wiersza poleceń Czy JUnit działa? Dodatek C Szkielet testów JUnit Klasa pomocnicza Podstawowy szablon

5 6 JUnit. Pragmatyczne testy jednostkowe w Javie Dodatek D Zasoby W internecie Bibliografia Dodatek E Pragmatyczne testy jednostkowe podsumowanie Dodatek F Rozwiązania ćwiczeń Skorowidz...185

6 rudno przewidzieć wszystkie możliwe błędy w działaniu klasy lub metody. Jeśli mamy sporo doświadczenia w tym zakresie, to intuicyjnie rozpoznajemy miejsca, w których mogą pojawić się kłopoty, i dzięki temu koncentrujemy się najpierw na przetestowaniu właśnie tych miejsc. Jednak dla mniej doświadczonych programistów wykrywanie kłopotliwych obszarów często jest frustrującym zadaniem. Tym bardziej że szczególnie łatwo przychodzi ono użytkownikom końcowym, co jest nie tylko irytujące, ale może stanowić także gwóźdź do trumny niejednej kariery programisty. Dlatego niezwykle cenne są wszelkie wskazówki mogące nam wskazać lub choćby przypomnieć obszary, na które szczególnie należy zwrócić uwagę podczas testowania. Przyjrzyjmy się zatem sześciu różnym obszarom testowania, których wykorzystanie powinno zwiększyć naszą skuteczność w wykrywaniu błędów: Czy wyniki są poprawne? Czy warunki brzegowe zostały prawidłowo określone? Czy można sprawdzić relacje zachodzące w odwrotnym kierunku? Czy można sprawdzić wyniki, uzyskując je w alternatywny sposób?

7 54 JUnit. Pragmatyczne testy jednostkowe w Javie Czy można wymusić warunki zajścia błędu? Czy charakterystyka efektywnościowa jest poprawna? Czy wyniki są poprawne? Pierwszy, najbardziej oczywisty obszar testowania to sprawdzenie, czy wyniki działania testowanych metod są poprawne. Kontrolę wyników przedstawiliśmy w rozdziale 2. na przykładzie prostej metody zwracającej największy element listy. Testy te są zwykle najłatwiejsze do przeprowadzenia, a wiele spodziewanych wyników często określonych jest w specyfikacji wymagań. Jeśli nie, musisz odpowiedzieć sobie na pytanie: Skąd mam wiedzieć, czy kod działa poprawnie? Jeśli znalezienie satysfakcjonującej odpowiedzi na to pytanie nie jest możliwe, tworzenie kodu i jego testów może okazać się kompletnym marnotrawstwem czasu. A co w przypadku, gdy wymagania dopiero się krystalizują? Czy oznacza to, że nie możemy rozpocząć pisania kodu, dopóki wymagania nie zostaną dokładnie sprecyzowane? Nie, wcale nie. Jeśli ostateczne wymaganie nie są jeszcze znane lub kompletne, zawsze możesz wymyślić własne wymagania jako punkt odniesienia. Może okazać się, że nie są one poprawne z punktu widzenia użytkownika, ale dzięki nim wiesz, jak powinien według Ciebie działać kod, i potrafisz odpowiedzieć na postawione wcześniej pytanie. Oczywiście musisz potem, wspólnie z użytkownikami, zweryfikować swoje założenia. Definicja poprawności wyników może zmieniać się w trakcie powstawania kodu, ale na każdym etapie jego tworzenia powinieneś móc stwierdzić, czy kod działa tak, jak założyłeś.

8 Rozdział 4. Co testować? 55 Stosowanie plików zawierających dane testowe W przypadku zestawów testów wymagających dużej ilości danych wejściowych można rozważyć ich umieszczenie (być może wraz z oczekiwanymi wynikami) w osobnych plikach wczytywanych przez testy jednostkowe. Implementacja takiego rozwiązania nie jest skomplikowana i niekoniecznie musi od razu wymagać zastosowania języka XML 1. Poniżej przedstawiona została wersja testu TestLargest, która wczytuje wszystkie testy z pliku. import junit.framework.*; import java.io.*; import java.util.arraylist; import java.util.stringtokenizer; public class TestLargestDataFile extends TestCase { public TestLargestDataFile(String name) { super(name); /* Wykonuje testy zapisane w pliku testdata.txt (nie testuje * przypadku wyjątku). Wyrzuca wyjątek w przypadku, * gdy któraś operacja wejścia i wyjścia zakończy się błędem. */ public void testfromfile() throws Exception { String line; BufferedReader rdr = new BufferedReader( new FileReader( "testdata.txt")); while ((line = rdr.readline())!= null) { if (line.startswith("#")) { // Ignoruje komentarz continue; StringTokenizer st = new StringTokenizer(line); if (!st.hasmoretokens()) { continue; // Pusty wiersz // Pobiera spodziewany wynik String val = st.nexttoken(); int expected = Integer.valueOf(val).intValue(); 1 To jest oczywiście żart, przecież zastosowanie języka XML jest obligatoryjne we wszystkich współczesnych projektach?

9 56 JUnit. Pragmatyczne testy jednostkowe w Javie TestLargestDataFile.java // Oraz argumenty dla testowanej metody ArrayList argument_list = new ArrayList(); while (st.hasmoretokens()) { argument_list.add(integer.valueof( st.nexttoken())); // Zamienia listę obiektów w tablicę typu podstawowego int[] arguments = new int[argument_list.size()]; for (int i=0; i < argument_list.size(); i++) { arguments[i] = ((Integer)argument_list. get(i)).intvalue(); // Wykonuje asercję assertequals(expected, Largest.largest(arguments)); Plik danych testowych ma bardzo prosty format każdy wiersz zawiera zbiór wartości. Pierwsza z nich jest oczekiwanym wynikiem, a pozostałe argumentami testowanej metody. Dodatkowo zastosowanie znaku # na początku wiersza umożliwia wprowadzanie komentarzy. A oto przykład zawartości takiego pliku: testdata.txt # # Proste testy: # # # Testy z użyciem wartości ujemnych: # # # Testy mieszane: # # # Warunki brzegowe: #

10 Rozdział 4. Co testować? 57 W przypadku kilku testów jak choćby w powyższym przykładzie wysiłek włożony w opracowanie odpowiedniego rozwiązania nie zwróci się. Jednak w przypadku zaawansowanej aplikacji wymagającej przeprowadzenia setek takich testów rozwiązanie wykorzystujące pliki danych na pewno warte jest zainteresowania. Należy przy tym pamiętać, że dane testowe obojętnie, czy umieszczone bezpośrednio w kodzie, czy w pliku danych testowych same mogą być niepoprawne. Doświadczenie podpowiada nawet, że prawdopodobieństwo tego, iż dane testowe są nieprawidłowe, jest większe niż tego, że testowany kod jest niepoprawny. Zwłaszcza jeśli dane testowe zostały przygotowane drogą ręcznych obliczeń lub uzyskane z systemu, który zastępujemy naszym oprogramowaniem (ponieważ jego nowe możliwości mogą mieć wpływ na uzyskiwane wyniki). Jeśli wyniki testów są niepomyślne, warto najpierw sprawdzić kilka razy poprawność danych testowych, zanim zabierzemy się do poszukiwania błędu w kodzie. Przedstawiony powyżej kod nie umożliwia testowania wyjątków. Zastanów się, w jaki sposób zaimplementować taką możliwość. Wybierz taki sposób testowania, który pozwoli najłatwiej sprawdzić, czy metoda działa poprawnie. Warunki brzegowe W przykładzie z wyszukiwaniem największego elementu listy udało nam się zidentyfikować szereg warunków brzegowych: gdy największy element znajdował się na końcu listy, gdy lista zawierała wartość ujemną, gdy lista była pusta i tak dalej. Identyfikacja warunków brzegowych jest jednym z najwartościowszych aspektów testowania, ponieważ pozwala wykryć i przetestować obszary, w których prawdopodobieństwo niepoprawnego działania kodu jest największe. Typowe warunki brzegowe powstają na skutek:

11 58 JUnit. Pragmatyczne testy jednostkowe w Javie wprowadzenia całkowicie błędnych lub niespójnych danych wejściowych, na przykład łańcucha "!*W:X\&Gi/w~>g/h#WQ@" jako nazwy pliku; nieprawidłowo sformatowanych danych, takich jak adres , który nie zawiera głównej domeny ("fred@foobar."); niewprowadzenia odpowiednich wartości (wtedy pojawiają się wartości 0, 0.0, "" lub null); pojawienia się wartości znacznie przekraczających oczekiwania (na przykład wiek osoby równy lat); pojawienia się duplikatów na listach, które nie powinny ich zawierać; wystąpienia list nieuporządkowanych zamiast uporządkowanych i na odwrót; spróbuj na przykład przekazać algorytmowi sortowania listę, która jest już posortowana, albo nawet posortuj ją w odwrotnym porządku; zakłócenia przewidywanego porządku zdarzeń, na przykład próby wydrukowania dokumentu przed zalogowaniem się. Warunków brzegowych można poszukiwać w przedstawionych poniżej obszarach. W przypadku każdego z podanych niżej warunków należy zastanowić się, czy dotyczy on testowanej metody, a jeśli tak, to co się stanie, gdy zostanie naruszony: Zgodność czy wartość jest zgodna z oczekiwanym formatem? Uporządkowanie czy zbiór wartości jest odpowiednio uporządkowany? Zakres czy wartość należy do przedziału oczekiwanych wartości? Odwołanie czy kod odwołuje się do zewnętrznych obiektów, które są poza jego kontrolą? Istnienie czy wartość istnieje (czyli jest różna od null, zera, obecna w zbiorze itd.)?

12 Rozdział 4. Co testować? 59 Liczność czy występuje dokładnie tyle wartości, ile jest oczekiwanych? Czas (absolutny i względny) czy wszystkie zdarzenia zachodzą w oczekiwanej kolejności i we właściwym czasie? Wymienione obszary warunków brzegowych omówimy w następnym rozdziale. Sprawdzanie relacji zachodzących w odwrotnym kierunku Działanie niektórych metod można przetestować, używając logiki ich działania w odwrotnym kierunku. Na przykład działanie metody wyznaczającej pierwiastek kwadratowy możemy sprawdzić, podnosząc wynik do kwadratu i porównując go z wartością wejściową: public void testsquarerootusinginverse() { double x = mysquareroot(4.0); assertequals(4.0, x * x, ); Na podobnej zasadzie, wyszukując rekord w bazie danych, możesz sprawdzić działanie metody, która go tam wstawiła. Jednak implementując odwrotną logikę działania metody, należy zachować szczególną ostrożność, ponieważ niepoprawne działanie metody może nie zostać wykryte z powodu tych samych błędów w implementacjach obu metod. Dlatego też tam, gdzie jest to tylko możliwe, najlepiej użyć innego kodu źródłowego do implementacji metody działającej w kierunku odwrotnym. W naszym przykładzie testu metody pierwiastkowania wykorzystaliśmy w tym celu zwykły operator mnożenia. W przypadku testowania metody wstawiającej rekord do bazy danych najlepiej użyć metody wyszukiwania dostarczonej przez producenta systemu zarządzania bazą danych.

13 60 JUnit. Pragmatyczne testy jednostkowe w Javie Kontrola wyników na wiele sposobów Wyniki działania testowanych metod możemy sprawdzać na wiele sposobów. Zwykle bowiem istnieje więcej niż jeden sposób wyznaczenia interesującej nas wartości. Podczas implementacji kodu produkcyjnego wybieramy ten algorytm, który jest najefektywniejszy lub ma charakterystykę interesującą pod innym względem. Natomiast pozostałe możemy wykorzystać w celu sprawdzenia wyników podczas testowania. Technika ta jest szczególnie pomocna, gdy istnieje ogólnie znany, sprawdzony sposób uzyskania wyników, który jednak jest zbyt mało efektywny lub elastyczny, by mógł zostać użyty w kodzie produkcyjnym. Mniej efektywnego algorytmu możemy użyć do sprawdzenia, czy algorytm zastosowany w wersji produkcyjnej daje takie same wyniki 2 : public void testsquarerootusingstd() { double number = ; double root1 = mysquareroot(number); double root2 = Math.sqrt(number); assertequals(root2, root1, ); Inny sposób zastosowania tej techniki polega na sprawdzeniu, czy różne dane sumują się we właściwy sposób. Załóżmy na przykład, że pracujemy nad systemem obsługi biblioteki. W takim systemie liczba egzemplarzy danej książki powinna zawsze zgadzać się z sumą egzemplarzy znajdujących się na półkach biblioteki i egzemplarzy wypożyczonych. Liczba poszczególnych egzemplarzy stanowi osobne dane, które mogą nawet być raportowane przez obiekty różnych klas, ale muszą być ze sobą zgodne i wobec tego mogą być używane podczas testowania. 2 Niektóre arkusze kalkulacyjne (na przykład Microsoft Excel) stosują podobną technikę w celu sprawdzenia, czy do rozwiązania danego problemu użyte zostały odpowiednie modele i metody i czy wyniki działania różnych metod są ze sobą zgodne.

14 Rozdział 4. Co testować? 61 Wymuszanie warunków powstawania błędów Gdy kod produkcyjny pracuje już w rzeczywistym systemie, narażony jest na sytuacje związane z różnego rodzaju błędami, takimi jak brak miejsca na dysku, awarie sieci czy niepoprawna praca innych aplikacji. Aby przetestować zachowanie kodu w takich sytuacjach, musimy umieć je wywołać. Nie jest to trudne, gdy dotyczy na przykład przekazania kodowi niepoprawnych parametrów, ale już symulacja błędów sieci wymaga zastosowania odpowiednich technik. Jedną z nich polegającą na użyciu obiektów imitujących omówimy w rozdziale 6. Zanim tam dotrzesz, spróbuj zastanowić się, jakie rodzaje błędów lub ograniczeń wprowadzanych przez środowisko wykonywania kodu należy przetestować? Sporządź krótką ich listę, zanim przejdziesz do dalszej lektury. Zastanów się nad tym, zanim przejdziesz do dalszej lektury... A oto kilka typowych problemów, które udało nam się wymyślić. Brak wolnej pamięci. Brak wolnego miejsca na dysku. Nieprawidłowy czas systemu. Brak dostępu do sieci i błędy transmisji. Przeciążenie systemu. Ograniczona paleta kolorów. Zbyt duża lub zbyt mała rozdzielczość obrazu. Charakterystyka efektywnościowa Kolejnym obszarem wartym przetestowania jest charakterystyka efektywnościowa. Nie chodzi tutaj o samą efektywność działania kodu, lecz o sposób jej zmiany w odpowiedzi na zwiększającą się ilość danych wejściowych, rosnący poziom komplikacji rozwiązywanego problemu i tym podobne.

15 62 JUnit. Pragmatyczne testy jednostkowe w Javie W tym przypadku zależy nam przede wszystkim na przeprowadzeniu testu regresji charakterystyki efektywnościowej. Często bowiem zdarza się, że pewna wersja systemu pracuje poprawnie, ale już następna okazuje się zaskakująco wolna. Zwykle nie wiemy wtedy, jaka jest tego przyczyna, kto, kiedy i dlaczego wprowadził modyfikacje, które pogorszyły efektywność kodu. A użytkownicy zniecierpliwieni czekają na rozwiązanie problemu. Aby uniknąć takiego scenariusza, możemy wykonać kilka podstawowych testów, które upewnią nas, że krzywa efektywności jest stabilna w nowej wersji kodu. Załóżmy na przykład, że napisaliśmy filtr pozwalający identyfikować witryny internetowe, do których dostęp chcemy zablokować. Stworzony kod działa poprawnie w przypadku kilkudziesięciu witryn, ale czy równie efektywnie będzie się zachowywać w przypadku lub nawet witryn? Aby się o tym przekonać, musimy napisać odpowiedni test jednostkowy. public void testurlfilter() { Timer timer = new Timer(); String naughty_url = " // Najpierw wyszukaj niedozwolony URL na małej liście URLFilter filter = new URLFilter(small_list); timer.start(); filter.check(naughty_url); timer.end(); asserttrue(timer.elapsedtime() < 1.0); // Następnie wyszukaj niedozwolony URL na większej liście filter = new URLFilter(big_list); timer.start(); filter.check(naughty_url); timer.end(); asserttrue(timer.elapsedtime() < 2.0); // Na koniec wyszukaj niedozwolony URL na liście o jak największym rozmiarze filter = new URLFilter(huge_list); timer.start(); filter.check(naughty_url); timer.end(); asserttrue(timer.elapsedtime() < 3.0);

16 Rozdział 4. Co testować? 63 Przeprowadzenie takiego testu daje nam gwarancję, że kod spełnia wymagania odnośnie do jego efektywności. Ponieważ jego wykonanie zajmuje kilka sekund, nie musimy uruchamiać go za każdym razem. Wystarczy, że będziemy go wykonywać wraz z innymi testami w nocy lub co kilka dni, a zostaniemy zaalarmowani o pojawiających się problemach z efektywnością kodu wystarczająco wcześnie, aby poprawić je na czas. Istnieje wiele dekoratorów umożliwiających dokładniejsze pomiary efektywności poszczególnych metod, symulację warunków silnego obciążenia i tym podobne. Jednym z takich produktów jest dostępny bezpłatnie JUnitPerf

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

Programowanie poprzez testy z wykorzystaniem JUnit

Programowanie poprzez testy z wykorzystaniem JUnit Programowanie poprzez testy z wykorzystaniem JUnit Programowanie ekstremalne (XP) XP zaproponowano w 1999 (K. Beck: Extreme Programming Explained ) XP dedykowane jest do projektów: O małym lub średnim

Bardziej szczegółowo

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36 Automatyzacja testowania oprogramowania Automatyzacja testowania oprogramowania 1/36 Automatyzacja testowania oprogramowania 2/36 Potrzeba szybkich rozwiązań Testowanie oprogramowania powinno być: efektywne

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

METODY PROGRAMOWANIA

METODY PROGRAMOWANIA METODY PROGRAMOWANIA Testy jednostkowe 8 grudnia 2017 Krzysztof Pawłowski kpawlowski@pjwstk.edu.pl PO CO NAM TESTY? weryfikacja poprawności sprawdzanie regresji specyfikacja dokumentacja wymuszanie dobrego

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

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

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie

Bardziej szczegółowo

Wyjątki (exceptions)

Wyjątki (exceptions) Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

Programowanie zespołowe

Programowanie zespołowe Programowanie zespołowe Laboratorium 3 - podstawy testów jednostkowych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 7 marca 2017 1 / 22 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

Bardziej szczegółowo

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie I Cel zajęć Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie oprogramowania Testowanie to proces słyżący do oceny

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy

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

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

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

Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych

Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych Artykuł przeznaczony jest dla osób związanych z testowaniem, programowaniem, jakością oraz wytwarzaniem oprogramowania, wymaga jednak

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

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS www.informatyka.edu.pl

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS www.informatyka.edu.pl To jeden z ostatnich odcinków naszego kursu. Mam nadzieję, że pisanie własnego programu było ciekawym doświadczeniem. Zaproponowana w tym odcinku funkcja uatrakcyjni twój program. Stworzymy tak zwane okno

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Optimizing Programs with Intended Semantics

Optimizing Programs with Intended Semantics Interaktywna optymalizacja programów 26 kwietnia 2010 Spis treści Spis treści Wstęp Omówienie zaproponowanego algorytmu na przykładzie Wewnętrzna reprezentacja reguł dotyczących optymalizacji Wybrane szczegóły

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

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

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

Bardziej szczegółowo

Testowanie II. Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage).

Testowanie II. Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage). Testowanie II Cel zajęć Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage). Pokrycie kodu testami Jak już była mowa na poprzednich

Bardziej szczegółowo

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Języki i metody programowania Java INF302W Wykład 3 (część 1) Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,

Bardziej szczegółowo

Testy automatyczne. Korzystające z junit

Testy automatyczne. Korzystające z junit Testy automatyczne Korzystające z junit Cytaty Kiedy zawiesza się program konkurencji, to jest awaria. Kiedy zawiesza się własny program, to jest drobiazg. Często po awarii pojawia się komunikat typu ID

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

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

Testowanie II. Cel zajęć. Pokrycie kodu

Testowanie II. Cel zajęć. Pokrycie kodu Cel zajęć Celem zajęć jest zapoznanie studentów z uzupełniającymi zagadnieniami dotyczącymi testowania wytwarzanego oprogramowania. W pierwszej części zajęć przedstawiona zostanie metoda oceny kompletności

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Zadanie 2: Arytmetyka symboli

Zadanie 2: Arytmetyka symboli 1 Cel ćwiczenia Zadanie 2: Arytmetyka symboli Wykształcenie umiejętności abstrahowania operacji arytmetycznych. Zapoznanie się i przećwiczenie mechanizmu tworzenia przeciążeń funkcji operatorowych. Utrwalenie

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

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja

Bardziej szczegółowo

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1) W odcinku III tworzyliśmy paski narzędzi. Umieszczaliśmy na panelach ikony, reprezentujące czynności (charakterystyczne dla edytorów tekstu). Musimy teraz przypisać każdemu przyciskowi jego czynność (wycinanie,

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Podstawy Informatyki. Algorytmy i ich poprawność

Podstawy Informatyki. Algorytmy i ich poprawność Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8 Inżynieria Oprogramowania 2013/14 LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8 Hierarchia klas: TestCase klasa testująca, będąca klasą bazową dla wszystkich przypadków testowych. Zawiera przypadki testowe

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska JUnit TESTY JEDNOSTKOWE Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Testy aplikacji 2 Ręczne testowanie Czasochłonne Powtarzalność trudna do uzyskania Nudne Testowanie automatyczne

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

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

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

QualitySpy moduł reports

QualitySpy moduł reports QualitySpy moduł reports Testy akceptacyjne dla przypadku użycia: Pobranie metryk produktu w wybranym formacie dla wybranch wersji przez interfejs REST Nazwa pliku: /QualitySpy/modules/qualityspyreports/src/test/java/pl/wroc/pwr/qualityspy/reports

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na

Bardziej szczegółowo

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: JFM-1-508-s Punkty ECTS: 3 Wydział: Fizyki i Informatyki Stosowanej Kierunek: Fizyka Medyczna Specjalność: Poziom studiów: Studia I

Bardziej szczegółowo

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych 2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:

Bardziej szczegółowo

Zadanie nr 3: Sprawdzanie testu z arytmetyki

Zadanie nr 3: Sprawdzanie testu z arytmetyki Zadanie nr 3: Sprawdzanie testu z arytmetyki 1 Cel zadania Zadanie wymusza praktyczne przećwiczenia dostosowania formatu i formy wyświetlania informacji dla własnych typów danych. Ma ono pokazać potencjalne

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

BAZY DANYCH Panel sterujący

BAZY DANYCH Panel sterujący BAZY DANYCH Panel sterujący Panel sterujący pełni z reguły rolę centrum, z którego wydajemy polecenia i uruchamiamy różnorodne, wcześniej zdefiniowane zadania, np. wyświetlamy formularze lub drukujemy

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

Żurek INFOBroker. Szkolenia warsztaty konsultacje MS Excel. www.excel.jzurek.com. tel. 601 517 216

Żurek INFOBroker. Szkolenia warsztaty konsultacje MS Excel. www.excel.jzurek.com. tel. 601 517 216 Żurek INFOBroker Szkolenia warsztaty konsultacje MS Excel www.excel.jzurek.com tel. 601 517 216 MS Excel szkolenie dla początkujących i laików (program ramowy): o zastosowanie i budowa programu - do czego

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa : Kierunek: Informatyka Rodzaj : obowiązkowy w ramach specjalności: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium PROGRAMOWANIE APLIKACJI INTERNETOWYCH Internet Application Development

Bardziej szczegółowo

Szablony funkcji i klas (templates)

Szablony funkcji i klas (templates) Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp

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

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

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1 Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Testowanie oprogramowania

Testowanie oprogramowania Testowanie oprogramowania 1/17 Testowanie oprogramowania Wykład 01 dr inż. Grzegorz Michalski 13 października 2015 Testowanie oprogramowania 2/17 Dane kontaktowe: Kontakt dr inż. Grzegorz Michalski pokój

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Git, Bitbucket, IntelliJ IDEA

Git, Bitbucket, IntelliJ IDEA Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 3 Git, Bitbucket, IntelliJ IDEA Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy

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

3.1. Na dobry początek

3.1. Na dobry początek Klasa I 3.1. Na dobry początek Regulamin pracowni i przepisy BHP podczas pracy przy komputerze Wykorzystanie komputera we współczesnym świecie Zna regulamin pracowni i przestrzega go. Potrafi poprawnie

Bardziej szczegółowo

Strona tytułowa, zgodnie z wymaganiami zamieszczonymi na stronie www uczelni. Wzór strony dostępny jest w dzienniku wirtualnym - 1 -

Strona tytułowa, zgodnie z wymaganiami zamieszczonymi na stronie www uczelni. Wzór strony dostępny jest w dzienniku wirtualnym - 1 - Strona tytułowa, zgodnie z wymaganiami zamieszczonymi na stronie www uczelni. Wzór strony dostępny jest w dzienniku wirtualnym - 1 - Spis treści 1 Wstęp... 3 1.1 Cel pracy... 3 1.2 Układ pracy... 4 2 Podstawy

Bardziej szczegółowo

Język programowania C C Programming Language. ogólnoakademicki

Język programowania C C Programming Language. ogólnoakademicki Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2013/2014

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

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2 Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 1 Wprowadzenie Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 O Sobie Od 2014

Bardziej szczegółowo

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty

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

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Czym są właściwości. Poprawne projektowanie klas

Czym są właściwości. Poprawne projektowanie klas Z akcesorów get i set korzysta każdy kto programuje w C#. Stanowią one duże udogodnienie w programowaniu obiektowym. Zapewniają wygodę, bezpieczeństwo i znacząco skracają kod. Akcesory są ściśle związane

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Spis treści. 1 Java T M

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

Bardziej szczegółowo

Pierwszy projekt. Na początku warto wspomnieć, że program WebSite X5 dostępy jest w 3 wariantach: Start, Evolution oraz Professional

Pierwszy projekt. Na początku warto wspomnieć, że program WebSite X5 dostępy jest w 3 wariantach: Start, Evolution oraz Professional Projektowanie stron może być proste? Sprawdzamy. {reklama-artykul} Tworzenie stron internetowych to w teorii zagadnienie skomplikowane, często wymagające zaawansowanej wiedzy z dziedziny programowania.

Bardziej szczegółowo

Praktyka Programowania

Praktyka Programowania Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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 - instrukcje sterujące

Programowanie - instrukcje sterujące Instytut Informatyki Uniwersytetu Śląskiego Laborki środowisko NetBeans, tworzenie nowego projektu; okno projekty; główne okno programu; package - budowanie paczek z klas; public class JavaApplication

Bardziej szczegółowo

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy 1 Podstawowym przeznaczeniem arkusza kalkulacyjnego jest najczęściej opracowanie danych liczbowych i prezentowanie ich formie graficznej. Ale formuła arkusza kalkulacyjnego jest na tyle elastyczna, że

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna Strona 1 z 9 «Przykładowe zadania do cz. III ćwiczeń z genetyki Java pierwsze kroki w programowaniu (01)» Kategoria: java, Tagi: eclipse - java - programowanie. Autor: Grzegorz, napisał dnia: February

Bardziej szczegółowo

Programowanie w VB Proste algorytmy sortowania

Programowanie w VB Proste algorytmy sortowania Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

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

Wykład 2: Podstawy Języka

Wykład 2: Podstawy Języka Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście

Bardziej szczegółowo