<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5790332872166558665</id><updated>2012-02-04T11:01:08.061+01:00</updated><category term='Swing'/><category term='Książki'/><category term='Struktury Danych'/><category term='Podstawy'/><category term='Tutoriale'/><category term='Blogger'/><category term='Java'/><category term='Gadżety'/><category term='Algorytmy'/><category term='Wątki'/><category term='Projekt Euler'/><title type='text'>Kodatnik</title><subtitle type='html'>Kody mniej lub bardziej przydatne...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-8929202319653922097</id><published>2011-06-07T00:59:00.000+02:00</published><updated>2011-06-07T00:59:47.521+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podstawy'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Wątki'/><title type='text'>Wątki w Javie - podstawy</title><summary type='text'>Pisząc program dość często zachodzi konieczność wykonywania kilku czynności na raz (np. ściąganie plików, wyświetlanie obrazków, animacja, obsługa użytkownika). W Javie wszystkie te elementy mogą wykonywać się "jednocześnie" poprzez zastosowanie wątków.

Pierwszą czynnością przy tworzeniu wątków jest  stworzenie obiektu klasy implementującej interfejs Runnable, interfejs ten ma tylko jedną metodę</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/8929202319653922097/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2011/06/watki-w-javie-podstawy.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8929202319653922097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8929202319653922097'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2011/06/watki-w-javie-podstawy.html' title='Wątki w Javie - podstawy'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-9077011185548982620</id><published>2011-06-06T02:24:00.001+02:00</published><updated>2011-06-07T00:49:49.034+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriale'/><category scheme='http://www.blogger.com/atom/ns#' term='Książki'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java - darmowe książki i tutoriale</title><summary type='text'>W sieci dostępnych jest kilka darmowych pozycji książkowych dla chcących nauczyć się podstaw programowania w języku Java. Znajdziemy zarówno całe książki jak i przykładowe rozdziały (po polsku i po angielsku). Dobrze jest również znać strony z sensownymi tutorialami.

Zacznijmy od książek. Thinking in Java to to najbardziej znana i popularna książka dotycząca podstaw jak i zaawansowanych </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/9077011185548982620/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2011/06/java-darmowe-ksiazki-i-tutoriale.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/9077011185548982620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/9077011185548982620'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2011/06/java-darmowe-ksiazki-i-tutoriale.html' title='Java - darmowe książki i tutoriale'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-5yeDJiPEVpg/TewbLhUBRtI/AAAAAAAAACw/tKZ-RU6t_RM/s72-c/thinkinginjava.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-5596271667449651779</id><published>2011-06-05T02:29:00.000+02:00</published><updated>2011-06-05T02:29:33.566+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Swing'/><title type='text'>Zegar w Swingu</title><summary type='text'>Chcemy napisać aplikację wyświetlającą prosty zegar. Wykorzystamy do tego celu interfejs graficzny GUI czyli bibliotekę Swing oraz wątki. Całość ma być na tyle uniwersalna, aby możliwe było wykorzystanie zegara w dowolnej aplikacji.

Do naszych celów wykorzystamy klasę JLabel (standardowa etykieta tekstowa). Rozszerzymy jej możliwości wyposażając ją w obsługę wątków (zaimplementujemy interfejs </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/5596271667449651779/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2011/06/zegar-w-swingu.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5596271667449651779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5596271667449651779'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2011/06/zegar-w-swingu.html' title='Zegar w Swingu'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-EJXKJcyd-h4/TerNMNTIwmI/AAAAAAAAACs/cGfSErhuMUo/s72-c/zegar.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3710674182594652539</id><published>2011-06-05T01:40:00.000+02:00</published><updated>2011-06-05T01:40:58.518+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><title type='text'>Dodajemy przycisk +1 do Bloggera</title><summary type='text'>Odpowiedzią Google na Facebookowe  "Lubię to" jest przycisk "+1". Możemy obdarzyć plusem strony, które nam się podobają i zwiększyć ich popularność w sieci. Oczywiście musimy być zalogowani na konto w dowolnej usłudze Google. Standardowo Blogger obsługuje nowy przycisk w domyślnych szablonach (wystarczy włączyć odpowiednią opcję). Sytuacja wygląda gorzej jeśli korzystamy z własnych szablonów.

</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3710674182594652539/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2011/06/dodajemy-przycisk-1-do-bloggera.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3710674182594652539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3710674182594652539'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2011/06/dodajemy-przycisk-1-do-bloggera.html' title='Dodajemy przycisk +1 do Bloggera'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-yhvKuaaS9tU/TerBNitaOmI/AAAAAAAAACo/YJ1K1QCBc38/s72-c/przyciski.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-8456346793186926923</id><published>2010-10-22T23:21:00.000+02:00</published><updated>2010-10-22T23:21:09.752+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Gra w życie</title><summary type='text'>Gra w życie to przykład automatu komórkowego wymyślonego przez matematyka Johna Conwaya. Gra jest prowadzona w macierzy elementów, komórek. Każda z komórek może być żywa lub martwa. O stanie komórki w kolejnym etapie gry decyduje kilka zasad.

jeśli komórka jest martwa i ma dokładnie trzech sąsiadów żywych, staje się żywą
jeśli komórka jest żywa i ma dwóch lub trzech sąsiadów żywych, żyje dalej
</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/8456346793186926923/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/10/gra-w-zycie.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8456346793186926923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8456346793186926923'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/10/gra-w-zycie.html' title='Gra w życie'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-7429673093066552274</id><published>2010-09-15T23:38:00.001+02:00</published><updated>2010-09-15T23:39:10.125+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Projekt Euler'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Projekt Euler - Problem numer 1</title><summary type='text'>Projekt Euler (http://projecteuler.net) to strona internetowa zawierająca pokaźny zbiór (ponad 300) problemów obliczeniowych, do rozwiązania których potrzebny jest (w większości przypadków) komputer oraz dowolny język programowania. Rozwiązaniem każdego zadania jest wynik, który podajemy, aby sprawdzić czy nasz sposób obliczeń jest poprawny. Oczywiście sednem zabawy jest opracowanie odpowiedniego</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/7429673093066552274/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/09/projekt-euler-problem-numer-1.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7429673093066552274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7429673093066552274'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/09/projekt-euler-problem-numer-1.html' title='Projekt Euler - Problem numer 1'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-7916643643889000150</id><published>2010-06-17T00:22:00.001+02:00</published><updated>2010-06-17T00:24:04.596+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Odległość Levenshteina - podobieństwo łańcuchów</title><summary type='text'>Do obliczania podobieństwa łańcuchów tekstowych wykorzystuje się algorytm Levenshteina (Vladimir Levenshtein - rosyjski uczony), znany również jako odległość edycyjna, albo odległość Levenshteina. Otrzymana w wyniku działania algorytmu liczba symbolizuje ile działań prostych musimy wykonać, aby dokonać konwersji/zamiany jednego łańcucha na drugi. Działania proste to wstawienie znaku, usunięcie </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/7916643643889000150/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/06/odlegosc-levenshteina-podobienstwo.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7916643643889000150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7916643643889000150'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/06/odlegosc-levenshteina-podobienstwo.html' title='Odległość Levenshteina - podobieństwo łańcuchów'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3162203762671259086</id><published>2010-04-17T00:37:00.001+02:00</published><updated>2010-04-17T00:39:32.297+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Algorytm Luhna</title><summary type='text'>Algorytm Luhna (autor: Hans Peter Luhn - naukowiec z IBM) jest najczęściej wykorzystywanym sposobem sprawdzenia poprawności ciągu liczb. Jego zastosowanie to sprawdzanie numerów kart kredytowych i innych np. lojalnościowych, numerów IMEI, numerów ubezpieczeń itd. Algorytm działa na pojedynczych cyfrach od prawej do lewej strony sprawdzanej liczby. Sam schemat jest bardzo prosty i sprowadza się do</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3162203762671259086/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/04/algorytm-luhna.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3162203762671259086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3162203762671259086'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/04/algorytm-luhna.html' title='Algorytm Luhna'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-8698515816070746401</id><published>2010-04-16T20:49:00.000+02:00</published><updated>2010-04-16T20:49:35.748+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Wyświetlanie drzewa na konsoli</title><summary type='text'>W poprzednich postach utworzyliśmy strukturę drzewa (Ogólna implementacja) oraz poznaliśmy metody umożliwiające przejście przez wszystkie jego węzły w określonej kolejności (Trawersowanie drzewa). Kolejnym krokiem będzie przedstawienie struktury drzewa w jakiejś czytelnej formie na ekranie komputera. Wykorzystamy do tego celu konsolę. Jest kilka sposobów prezentacji drzewa, najczęściej </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/8698515816070746401/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/04/wyswietlanie-drzewa-na-konsoli.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8698515816070746401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8698515816070746401'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/04/wyswietlanie-drzewa-na-konsoli.html' title='Wyświetlanie drzewa na konsoli'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_he0B0MExDQQ/S7J6tw-2ldI/AAAAAAAAACM/nsIrigziIeQ/s72-c/Drzewo1%20(1).jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-5249529466562646405</id><published>2010-04-01T00:55:00.005+02:00</published><updated>2010-04-01T01:18:41.931+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podstawy'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Klasa Arrays - przykłady zastosowań</title><summary type='text'>Dość często korzystamy z tablic jedno i wielowymiarowych. Klasa java.util.Arrays dostarcza wielu ciekawych metod ułatwiających pracę z tymi strukturami danych. Większość z nich jest przeciążona obsługując wiele typów danych (metoda przeciążona - metoda o takiej samej nazwie, ale różnej ilości lub rodzaju argumentów). Poniżej kilka przykładów wykorzystania tych metod (pamietaj o imporcie </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/5249529466562646405/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/04/klasa-arrays-przykady-zastosowan.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5249529466562646405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5249529466562646405'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/04/klasa-arrays-przykady-zastosowan.html' title='Klasa Arrays - przykłady zastosowań'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-7493435889401494679</id><published>2010-03-31T00:35:00.002+02:00</published><updated>2010-03-31T00:37:37.330+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Trawersowanie drzewa - metody preorder, postoder i inorder</title><summary type='text'>W poprzednim poście (Drzewo ogólna implementacja) przedstawiłem podstawy tworzenia struktury drzewa. Dziś zajmiemy się sposobami trawersowanie drzewa czyli odwiedzenia wszystkich jego węzłów w ściśle określonej kolejności. Dla drzew ogólnych mamy dwie metody odwiedzania preorder oraz postorder, w przypadku drzew binarnych (gdzie węzeł może posiadać maksymalnie dwóch potomków) istnieje jeszcze </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/7493435889401494679/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/03/trawersowanie-drzewa-metody-preorder.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7493435889401494679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7493435889401494679'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/03/trawersowanie-drzewa-metody-preorder.html' title='Trawersowanie drzewa - metody preorder, postoder i inorder'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_he0B0MExDQQ/S7J6tw-2ldI/AAAAAAAAACM/nsIrigziIeQ/s72-c/Drzewo1+(1).jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-350001536505682937</id><published>2010-03-17T02:37:00.000+01:00</published><updated>2010-03-17T02:37:05.632+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Zamiana liczb rzymskich na arabskie i na odwrót</title><summary type='text'>Konwersja między różnymi formatami zapisu liczb zawsze jest dobrą wprawką programistyczną. Przyjrzyjmy się dwóm systemom zapisu. System arabski wykorzystuje cyfry od 0 do 9 i jest stosowany powszechnie na całym świecie. System rzymski opiera się na 7 znakach literowych (I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000). Poszczególne wartości są tworzone za pomocą odpowiednich zestawień </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/350001536505682937/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/03/zamiana-liczb-rzymskich-na-arabskie-i.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/350001536505682937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/350001536505682937'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/03/zamiana-liczb-rzymskich-na-arabskie-i.html' title='Zamiana liczb rzymskich na arabskie i na odwrót'/><author><name>Devon</name><uri>http://www.blogger.com/profile/04678973948963129159</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_he0B0MExDQQ/S4XBK3tmPnI/AAAAAAAAABg/PPALO6yvrJQ/S220/test1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-1905589028846799823</id><published>2010-02-24T21:09:00.004+01:00</published><updated>2010-02-27T17:40:02.203+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><title type='text'>Drzewo - ogólna implementacja</title><summary type='text'>Struktury drzewiaste są dość często wykorzystywane w informatyce. Java nie posiada żadnej gotowej klasy do obsługi drzew. Dzisiaj prosta implementacja dowolnego drzewa ogólnego (każdy element drzewa może posiadać nieograniczoną liczbę potomków). Samo drzewo to struktura elementów, węzłów (ang. node) pozostających w zależności hierarchicznej tak jak na poniższym diagramie.



Szczególnym elementem</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/1905589028846799823/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/02/drzewo-ogolna-implementacja.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1905589028846799823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1905589028846799823'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/02/drzewo-ogolna-implementacja.html' title='Drzewo - ogólna implementacja'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Yl_Z9XuD9ww/S4V27xc54TI/AAAAAAAABwU/IC0gJ6hhYjo/s72-c/Drzewo1%20%281%29.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-4973059801281116572</id><published>2010-01-22T14:20:00.000+01:00</published><updated>2010-01-22T14:20:55.099+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podstawy'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Metody o zmiennej liczbie argumentów</title><summary type='text'>Po poprzednich wpisach dzisiaj coś lekkiego :) Poznamy metody, które mogą mieć zmienną liczbę argumentów (ang. varargs). Przed Javą 1.5 (inaczej zwaną 5.0) jedyną możliwością przesłania do metody zmiennej liczby argumentów było wykorzystanie tablic, w Javie 5.0 wprowadzono nowy sposób zapisu argumentu: Typ... Przykładowy nagłówek metody o zmiennej liczbie argumentów:
public static void metoda(</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/4973059801281116572/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/01/metody-o-zmiennej-liczbie-argumentow.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4973059801281116572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4973059801281116572'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/01/metody-o-zmiennej-liczbie-argumentow.html' title='Metody o zmiennej liczbie argumentów'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3593139380417847243</id><published>2010-01-21T02:33:00.002+01:00</published><updated>2010-01-21T02:35:07.013+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><title type='text'>Przeglądamy kolekcję - interfejs Iterable&lt;T&gt;</title><summary type='text'>Od Javy 5.0 wprowadzono pętlę iteracyjną (znaną w innych językach programowania jako pętla foreach) umożliwiającą przeglądnięcie wszystkich elementów należących do danej kolekcji. Pętla ta może być stosowana z tablicami oraz wszystkim klasami, które implementują interfejs Iterable&lt;T&gt;.
Ogólny format pętli iteracyjnej:
for (T wartosc : kolekcja) {
 // dla każdego elementu z kolekcji dostępnego 
 //</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3593139380417847243/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/01/przegladamy-kolekcje-interfejs-iterable.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3593139380417847243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3593139380417847243'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/01/przegladamy-kolekcje-interfejs-iterable.html' title='Przeglądamy kolekcję - interfejs Iterable&amp;lt;T&amp;gt;'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-4399722215806986151</id><published>2010-01-18T14:13:00.004+01:00</published><updated>2010-01-18T15:29:08.390+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Porównujemy obiekty - interfejs Comparable&lt;T&gt;</title><summary type='text'>Często chcemy porównać ze sobą dwa obiekty jakiejś klasy. Oczywiście możemy porównać odpowiednie pola klasy i zwrócić wynik, ale.... rozwiązanie idealne polega na zaimplementowaniu w naszej klasie interfejsu Comparable&lt;T&gt;. Dzięki implementacji interfejsu, obiekty powstałe na bazie naszej klasy będą mogły być porównywane ze sobą. Taki sposób porównywania (mówiąc inaczej uporządkowania obiektów) </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/4399722215806986151/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2010/01/porownujemy-obiekty-interfejs.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4399722215806986151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4399722215806986151'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2010/01/porownujemy-obiekty-interfejs.html' title='Porównujemy obiekty - interfejs Comparable&amp;lt;T&amp;gt;'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-1585077809029805361</id><published>2009-12-12T23:28:00.003+01:00</published><updated>2009-12-12T23:35:24.316+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Odwrotna Notacja Polska - część 2</title><summary type='text'>W poprzedniej części (Odwrotna Notacja Polska - część 1) dokonaliśmy zamiany wyrażenia w formie infiksowej na postać postfiksową (czyli formę w Odwrotnej Notacji Polskiej). W tym wpisie spróbujemy dokonać sprawdzenia poprawności nawiasów występujących w wyrażeniu infiksowym oraz obliczymy wartość wyrażenia postfiksowego. Do sprawdzenia poprawności nawiasów w wyrażeniu infiksowym użyjemy stosu (</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/1585077809029805361/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/12/odwrotna-notacja-polska-czesc-2.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1585077809029805361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1585077809029805361'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/12/odwrotna-notacja-polska-czesc-2.html' title='Odwrotna Notacja Polska - część 2'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-5588735892100401510</id><published>2009-12-06T14:49:00.014+01:00</published><updated>2009-12-06T16:12:20.361+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadżety'/><title type='text'>Piszemy gadżet do Bloggera - część 2</title><summary type='text'>W poprzedniej części (Piszemy gadżet do Bloggera - część 1) poznaliśmy podstawy pisania gadżetu oraz jego strukturę. Dzisiaj poznamy sposoby jego konfigurowania przez użytkownika. Pozwolimy użytkownikowi na podanie dodatkowych informacji podczas dodawania gadżetu do bloga. Dzięki temu użytkownik będzie mógł zdecydować np. o kolorach, napisach czy innych opcjach związanych z konkretnym gadżetem. </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/5588735892100401510/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/12/piszemy-gadzet-do-bloggera-czesc-2.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5588735892100401510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5588735892100401510'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/12/piszemy-gadzet-do-bloggera-czesc-2.html' title='Piszemy gadżet do Bloggera - część 2'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Yl_Z9XuD9ww/SxuysfD4aZI/AAAAAAAABvg/_2eWCNuHbtY/s72-c/konfiguracja1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-8486867021920595809</id><published>2009-12-05T00:05:00.003+01:00</published><updated>2009-12-05T00:38:31.514+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Odwrotna Notacja Polska - część 1</title><summary type='text'>Odwrotna Notacja Polska to sposób zapisu wyrażeń arytmetycznych za pomocą notacji postfiksowej. Standardowa notacja, z której korzystamy na codzień to notacja infiksowa, argument operator argument (np. 3 + 4). Notacja postfiksowa nie zmienia kolejności argumentów, natomiast zmienia  położenie operatorów (występują one po argumentach, których dotyczą). Przykładowy zapis w notacji postfiksowej </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/8486867021920595809/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/12/odwrotna-notacja-polska-czesc-1.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8486867021920595809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8486867021920595809'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/12/odwrotna-notacja-polska-czesc-1.html' title='Odwrotna Notacja Polska - część 1'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-2040437446753242125</id><published>2009-12-04T19:06:00.001+01:00</published><updated>2009-12-05T01:06:44.003+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><title type='text'>Klasa LinkedList - przykład zastosowania</title><summary type='text'>Klasa LinkedList jest jedną z klas bibliotecznych dostępnych w standardowej Javie. Jest to prosta implementacja listy powiązanej z wykorzystaniem typów generycznych (pisałem o nich tutaj Typy generyczne). Na jej bazie możemy napisać implementację w pełni dynamicznego stosu (inne sposoby tworzenia stosu to Stos - implementacja tablicowa oraz Lista powiązana - własna implementacja). Nasze </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/2040437446753242125/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/12/klasa-linkedlist-przykad-zastosowania.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/2040437446753242125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/2040437446753242125'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/12/klasa-linkedlist-przykad-zastosowania.html' title='Klasa LinkedList - przykład zastosowania'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-8343102674251706440</id><published>2009-12-04T18:13:00.007+01:00</published><updated>2011-06-21T00:30:18.588+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Typy generyczne</title><summary type='text'>Java od wersji 1.5 obsługuje typy generyczne. Pozwalają one sparametryzować klasę, przez co nie ma konieczności dokonywania później kłopotliwego rzutowania. Sam zapis typu generycznego to duża litera/litery ujęta w nawiasy ostre. Utwórzmy prostą klasę Pudelko przechowującą elementy dowolnego typu.
/**
 * Wykorzystanie typów generycznych 
 * @author kodatnik.blogspot.com
 */
class Pudelko &lt;T&gt; {
 /</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/8343102674251706440/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/12/typy-generyczne.html#comment-form' title='Komentarze (5)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8343102674251706440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8343102674251706440'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/12/typy-generyczne.html' title='Typy generyczne'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-1186795635339824870</id><published>2009-11-26T16:38:00.003+01:00</published><updated>2009-11-26T16:55:58.493+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadżety'/><title type='text'>Piszemy gadżet do Bloggera - część 1</title><summary type='text'>Gadżety rozszerzają funkcjonalność naszych blogów. Dla platformy Blogger istnieje już kilkaset gotowych rozwiązań. Nic nie stoi na przeszkodzie, aby napisać samodzielnie taki gadżet. W kilku postach postaram się przybliżyć tematykę pisania gadżetów. Co będzie nam potrzebne:
edytor tekstu (z możliwością zapisu w formacie UTF-8, np. Windowsowy notatnik, Notepad++, czy PSPad),
serwer na którym </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/1186795635339824870/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/piszemy-gadzet-do-bloggera-czesc-1.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1186795635339824870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1186795635339824870'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/piszemy-gadzet-do-bloggera-czesc-1.html' title='Piszemy gadżet do Bloggera - część 1'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Yl_Z9XuD9ww/Sw6Zgg5MMyI/AAAAAAAABvU/WHHJdT_EDxg/s72-c/dodajemy.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-9112982009325709164</id><published>2009-11-26T01:02:00.001+01:00</published><updated>2009-12-05T01:05:42.280+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><title type='text'>Lista powiązana - własna implementacja</title><summary type='text'>Lista powiązana (ang. linked list) to struktura dynamiczna, której każdy element tak zwany węzeł (ang. node) posiada określoną wartość (lub wartości) oraz referencję do kolejnego węzła. Chcemy napisać prostą listę przechowującą wartości typu String (łańcuchy tekstowe). Pierwszą czynnością jest napisanie odpowiedniej klasy, na podstawie której będziemy tworzyć węzły. 

/**
 * Węzeł - element listy</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/9112982009325709164/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/lista-powiazana-wasna-implementacja.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/9112982009325709164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/9112982009325709164'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/lista-powiazana-wasna-implementacja.html' title='Lista powiązana - własna implementacja'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-7118856916260596956</id><published>2009-11-25T23:30:00.000+01:00</published><updated>2009-11-25T23:30:13.199+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Wieże Hanoi</title><summary type='text'>Wieże Hanoi to problem polegający na przełożeniu z jednego słupka, na drugi, dysków o różnej średnicy. Przy przekładaniu można posługiwać się dodatkowym słupkiem stanowiącym bufor. Nie można kłaść dysku o większej średnicy na dysk o mniejszej średnicy, ani przekładać więcej niż jednego dysku jednocześnie. Chcemy napisać aplikację, która zasymuluje nam kolejne kroki potrzebne do przełożenia dysków</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/7118856916260596956/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/wieze-hanoi.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7118856916260596956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7118856916260596956'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/wieze-hanoi.html' title='Wieże Hanoi'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-1415412264830415912</id><published>2009-11-20T23:13:00.004+01:00</published><updated>2009-11-20T23:24:26.566+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Problem Józefa Flawiusza</title><summary type='text'>Józef Flawiusz podczas wojny żydowsko-rzymskiej wraz 40 towarzyszami został otoczony przez Rzymian. Nie chcąc się poddać postanowili popełnić samobójstwo. Ustawili się w kręgu i co trzecia osoba odbierała sobie życie. Na końcu pozostał przy życiu przyjaciel Flawiusza oraz on sam. Oddali się w ręce wroga. Chcemy napisać aplikację, która zasymuluje nam, w jakiej kolejności ginęli żołnierze oraz, na</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/1415412264830415912/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/problem-jozefa-flawiusza.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1415412264830415912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1415412264830415912'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/problem-jozefa-flawiusza.html' title='Problem Józefa Flawiusza'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-8734471921912776420</id><published>2009-11-20T22:54:00.000+01:00</published><updated>2009-11-20T22:54:15.343+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><title type='text'>Kolejka - implementacja tablicowa</title><summary type='text'>Kolejka to struktura danych działająca w oparciu o zasadę FIFO (ang. First In First Out), pierwszy wchodzi, pierwszy wychodzi. Dostęp do kolejki jest możliwy z dwóch stron (początek i koniec). Podstawowe metody związane z kolejką to dodanie elementu do kolejki, na jej koniec (ang. enqueue), usunięcie elementu z kolejki, z jej początku (ang. dequeue), podgląd elementu znajdujacego się na początku </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/8734471921912776420/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/kolejka-implementacja-tablicowa.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8734471921912776420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8734471921912776420'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/kolejka-implementacja-tablicowa.html' title='Kolejka - implementacja tablicowa'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3940305034752314632</id><published>2009-11-13T18:40:00.000+01:00</published><updated>2009-11-13T18:40:37.546+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Sprawdzanie poprawności nawiasów</title><summary type='text'>Do sprawdzenia poprawności umiejscowienia nawiasów w wyrażeniu posłużymy się przedstawioną wcześniej klasą Stos (Stos - implementacja tablicowa). Sam algorytm jest stosunkowo prosty. Bierzemy element wyrażenia, jeśli jest to nawias otwierający odkładamy go na stos, jeśli nawias zamykający ściągamy ze stosu element i porównujemy czy razem stanowią parę, jeśli tak idziemy dalej, jeśli nie kończymy </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3940305034752314632/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/sprawdzanie-poprawnosci-nawiasow.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3940305034752314632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3940305034752314632'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/sprawdzanie-poprawnosci-nawiasow.html' title='Sprawdzanie poprawności nawiasów'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-6027887404369776670</id><published>2009-11-08T20:06:00.001+01:00</published><updated>2009-11-08T20:09:41.052+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podstawy'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Podział łańcucha na części</title><summary type='text'>Pisząc aplikacje spotykamy się z problemem podziału łańcucha tekstowego na części (np. import danych w formacie CSV, rozbicie zdania na wyrazy itd.). Idealną klasą, która pomoże nam podzielić łańcuch tekstowy jest klasa StringTokenizer z pakietu java.util. Jej zadaniem jest podział tekstu na części (tak zwane tokeny) na podstawie znaków rozdzielających (ang. delimiter). Klasa posiada trzy </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/6027887404369776670/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/podzia-ancucha-na-czesci.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/6027887404369776670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/6027887404369776670'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/podzia-ancucha-na-czesci.html' title='Podział łańcucha na części'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-1135939869475842032</id><published>2009-11-08T00:14:00.002+01:00</published><updated>2009-11-20T22:41:43.880+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Struktury Danych'/><title type='text'>Stos - implementacja tablicowa</title><summary type='text'>Stos to struktura danych działająca w oparciu o zasadę LIFO (ang. Last In First Out), ostatni wchodzi pierwszy wychodzi. Dostęp do stosu możliwy jest tylko z jednego miejsca tzw. wierzchołka (ang. top). Podstawowe metody związane ze stosem to odłożenie elementu na stos (ang. push), ściągnięcie elementu ze stosu (ang. pop), podgląd elementu znajdującego się na szczycie stosu (ang. peek). Dodatkowo</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/1135939869475842032/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/stos-implementacja-tablicowa.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1135939869475842032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1135939869475842032'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/stos-implementacja-tablicowa.html' title='Stos - implementacja tablicowa'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-2959045676382058183</id><published>2009-11-07T00:51:00.005+01:00</published><updated>2009-11-08T00:18:30.160+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Podstawy'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Liczby pseudolosowe</title><summary type='text'>Pisząc programy w Javie często potrzebujemy wylosować  jakąś wartość. Standardowo mamy dwie możliwości wygenerowania liczby pseudolosowej. Pierwsza, to skorzystanie z klasy Random dostępnej w pakiecie java.util. Klasa ta zawiera szereg przydatnych metod generujących liczby losowe. Wadą tego rozwiązania jest konieczność utworzenia nowego obiektu.
// wykorzystujemy klasę Random z pakietu java.util
</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/2959045676382058183/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/liczby-pseudolosowe.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/2959045676382058183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/2959045676382058183'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/liczby-pseudolosowe.html' title='Liczby pseudolosowe'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-873183110778412255</id><published>2009-11-01T22:09:00.002+01:00</published><updated>2009-11-08T00:18:53.064+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Wyszukiwanie maksymalnego elementu tablicy</title><summary type='text'>Znalezienie maksymalnego elementu tablicy polega na przypisaniu do zmiennej wartości pierwszego elementu i przejściu przez pozostałe elementy tablicy. W przypadku gdy znajdziemy większy element, staje się on elementem największym. Poniżej prosta metoda znajdzMax(), która dla przekazanej jako parametr tablicy liczb całkowitych zwraca wartość maksymalną.
/**
 * Wyszukiwanie maksymalnego elementu w </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/873183110778412255/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/11/wyszukiwanie-maksymalnego-elementu.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/873183110778412255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/873183110778412255'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/11/wyszukiwanie-maksymalnego-elementu.html' title='Wyszukiwanie maksymalnego elementu tablicy'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-5777898937567358593</id><published>2009-10-31T14:33:00.003+01:00</published><updated>2009-11-08T00:19:08.605+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Odwracanie elementów w tablicy</title><summary type='text'>Odwrócenie elementów w tablicy to zamiana ich miejscami. Ostatni element staje się pierwszym, pierwszy ostatnim, przedostatni drugim, drugi przedostatnim itd. Chcemy napisać metodę, która odwróci nam wszystkie elementy w przekazanej jako parametr tablicy liczb całkowitych.
/**
 * Odwracanie elementów w tablicy
 * @author kodatnik.blogspot.com 
 */ 
public class OdwracanieElementow {
 
 // metoda </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/5777898937567358593/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/odwracanie-elementow-w-tablicy.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5777898937567358593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5777898937567358593'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/odwracanie-elementow-w-tablicy.html' title='Odwracanie elementów w tablicy'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-4763702276077073409</id><published>2009-10-30T17:43:00.004+01:00</published><updated>2010-10-31T21:49:45.303+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Wyszukiwanie binarne</title><summary type='text'>Wyszukiwanie binarne optymalizuje algorytm poszukiwań do kilku kroków. Opiera się ono na podziale tablicy na dwie części i sprawdzeniu czy szukana wartość znajduje się na środku czy też jest mniejsza lub też większa od elementu środkowego. W zależności od wyniku szukamy dalej w lewej bądź też prawej części tablicy. Taki sposób jest analogiczny do wyszukiwania danych w książce telefonicznej czy </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/4763702276077073409/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/wyszukiwanie-binarne.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4763702276077073409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4763702276077073409'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/wyszukiwanie-binarne.html' title='Wyszukiwanie binarne'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3115246220702524182</id><published>2009-10-30T17:29:00.003+01:00</published><updated>2009-11-08T00:19:51.372+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Wyszukiwanie liniowe - sekwencyjne</title><summary type='text'>Wyszukiwanie liniowe polega na sprawdzaniu kolejnych elementów tablicy i porównywaniu ich z szukaną wartością. Liczba porównań w najgorszym przypadku może osiągnąć rozmiar tablicy. Chcemy napisać metodę, która w podanej jako parametr tablicy znajdzie określoną wartość. W przypadku sukcesu metoda ma zwrócić indeks znalezionego elementu, a w przypadku nie znalezienia wartość -1.
// wykorzystujemy </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3115246220702524182/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/wyszukiwanie-liniiowe-sekwencyjne.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3115246220702524182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3115246220702524182'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/wyszukiwanie-liniiowe-sekwencyjne.html' title='Wyszukiwanie liniowe - sekwencyjne'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3285029068496300080</id><published>2009-10-25T23:50:00.002+01:00</published><updated>2009-11-08T00:20:11.596+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Paradoks dnia urodzin</title><summary type='text'>Paradoks dnia urodzin związany jest z odpowiedzią na pytanie ile osób jest potrzebnych do tego, żeby prawdopodobieństwo, iż przynajmniej dwie z nich mają urodziny tego samego dnia było większe od 0,5. Odpowiedź jest zaskakująca, wystarczy 23 osoby. Chcemy napisać metodę która wykona n prób i zwróci nam średnią liczbę osób, dla których spełniony jest nasz warunek (dwie z nich mają urodziny tego </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3285029068496300080/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/paradoks-dnia-urodzin.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3285029068496300080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3285029068496300080'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/paradoks-dnia-urodzin.html' title='Paradoks dnia urodzin'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-6897074126687111278</id><published>2009-10-23T23:34:00.002+02:00</published><updated>2009-11-08T00:20:37.042+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Sprawdzamy poprawność numeru PESEL</title><summary type='text'>PESEL to Powszechny Elektroniczny System Ewidencji Ludności. Za pomocą sumy kontrolnej możemy sprawdzić czy numer PESEL jest poprawny. Budowa numeru PESEL jest następująca: 1-2 cyfra - ostatnie dwie cyfry roku urodzenia, 3-4 cyfra - dwie cyfry miesiąca urodzenia, 5-6 cyfra - dwie cyfry dnia urodzenia, 7-10 cyfra - liczba porządkowa z oznaczeniem płci (parzysta - kobieta, nieparzysta - mężczyzna),</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/6897074126687111278/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/sprawdzamy-poprawnosc-pesel.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/6897074126687111278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/6897074126687111278'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/sprawdzamy-poprawnosc-pesel.html' title='Sprawdzamy poprawność numeru PESEL'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-2125830298899645414</id><published>2009-10-22T16:56:00.004+02:00</published><updated>2011-10-25T00:01:05.727+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Sortowanie szybkie - QuickSort</title><summary type='text'>Sortowanie szybkie działa na zasadzie podziału tablicy na dwie części. Jedna z nich zawiera elementy o wartościach mniejszych, a druga elementy o wartościach większych od wartości elementu dzielącego (ang. pivot). Jako element dzielący można wybrać element środkowy, element pierwszy lub element ostatni. Każda z części tak podzielonej tablicy jest poddawana od nowa algorytmowi sortowania szybkiego</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/2125830298899645414/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/sortowanie-szybkie-quicksort.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/2125830298899645414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/2125830298899645414'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/sortowanie-szybkie-quicksort.html' title='Sortowanie szybkie - QuickSort'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3494343661809433588</id><published>2009-10-22T16:47:00.003+02:00</published><updated>2009-11-08T00:21:15.666+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Suma cyfr w liczbie rekurencyjnie</title><summary type='text'>W jednym z wcześniejszych postów liczyliśmy sumę cyfr w liczbie za pomocą iteracji. Poniżej rozwiązanie tego zadania z wykorzystaniem rekurencji.
// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;

/**
 * Suma cyfr w liczbie rekurencyjnie
 * @author kodatnik.blogspot.com 
 */ 
public class SumaCyfr {
 
 // metoda sumaCyfr zwraca sumę cyfr liczby 
 // przekazanej jako parametr</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3494343661809433588/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/suma-cyfr-w-liczbie-rekurencyjnie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3494343661809433588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3494343661809433588'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/suma-cyfr-w-liczbie-rekurencyjnie.html' title='Suma cyfr w liczbie rekurencyjnie'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3782419360507260790</id><published>2009-10-18T19:33:00.003+02:00</published><updated>2009-10-19T17:05:59.063+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Ciąg Fibonacciego rekurencyjnie i iteracyjnie</title><summary type='text'>Ciąg Fibonacciego to ciąg liczb naturalnych określony wzorem f(n)=f(n-1)+f(n-2) dla danych f(0)=0 i f(1)=1. Chcemy napisać metodę obliczającą n-ty wyraz tego ciągu. Zastosujemy rozwiązanie rekurencyjne (metoda fibR()) oraz iteracyjne (metoda fibI()).
// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;

/**
 * N-ty element ciągu Fibonacciego rekurencyjnie i iteracyjnie
 * @</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3782419360507260790/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/ciag-fibonacciego-rekurencyjnie-i.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3782419360507260790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3782419360507260790'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/ciag-fibonacciego-rekurencyjnie-i.html' title='Ciąg Fibonacciego rekurencyjnie i iteracyjnie'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-7614173557387901299</id><published>2009-10-09T23:18:00.004+02:00</published><updated>2009-11-26T16:56:45.202+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><title type='text'>Dodajemy Wykop do Bloggera</title><summary type='text'>Wykop to serwis do którego możemy dodawać ciekawe strony. Każda dodana informacja jest oceniana i dyskutowana przez społeczność internautów. Od niej zależy czy dany wpis będzie popularny czy też nie. Jednym ze sposobów wzbogacenia Bloggera o możliwość dodawania wpisów do wykopu jest mój gadżet Podziel się. W tym poście przedstawię drugą możliwość. Na stronie wykopywarki mamy dostępne kilka kodów,</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/7614173557387901299/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/dodajemy-wykop-do-bloggera.html#comment-form' title='Komentarze (4)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7614173557387901299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7614173557387901299'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/dodajemy-wykop-do-bloggera.html' title='Dodajemy Wykop do Bloggera'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-4728489482509873497</id><published>2009-10-07T00:32:00.009+02:00</published><updated>2010-04-01T01:20:10.192+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadżety'/><title type='text'>Podziel się - gadżet do Bloggera</title><summary type='text'>Często na blogach mamy możliwość dodania czytanego posta do serwisów społecznościowych takich jak Wykop czy Twitter. W Bloggerze jedyną normalną możliwością skorzystanie z tej formy promocji bloga jest pasek nawigacyjny (Navbar). Niestety nie jest on lubiany przez twórców blogów jak i również jego oferta serwisów jest minimalna (brak jakiegokolwiek rodzimego serwisu). Gdy nie ma tego czego </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/4728489482509873497/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/podziel-sie-gadzet-do-bloggera.html#comment-form' title='Komentarze (37)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4728489482509873497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4728489482509873497'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/podziel-sie-gadzet-do-bloggera.html' title='Podziel się - gadżet do Bloggera'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Yl_Z9XuD9ww/SsvGA0dwySI/AAAAAAAABsE/Qg5NSjJAdPU/s72-c/dodaj.png' height='72' width='72'/><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-4014020648677648222</id><published>2009-10-05T23:39:00.002+02:00</published><updated>2009-10-05T23:42:05.377+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><title type='text'>Dodajemy Favicon do Bloggera</title><summary type='text'>Standardowo Blogger udostępnia dla blogów pomarańczową ikonkę  pojawiającą się przy pasku adresu naszej przeglądarki, Nic nie stoi na przeszkodzie, aby ją zmienić na własną bardziej oddającą treść naszego bloga. Plik ikony powinien mieć rozmiary 16x16 pikseli. Domyślny format to ICO (większość przeglądarek obsługuje również poprawnie pliki PNG i GIF). Do skonwertowania pliku graficznego do pliku </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/4014020648677648222/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/dodajemy-favicon-do-bloggera.html#comment-form' title='Komentarze (22)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4014020648677648222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/4014020648677648222'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/dodajemy-favicon-do-bloggera.html' title='Dodajemy Favicon do Bloggera'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Yl_Z9XuD9ww/SspklXgJ6pI/AAAAAAAABrs/EFGk2b0LBkU/s72-c/favicon.png' height='72' width='72'/><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-8844100635283230049</id><published>2009-10-04T22:24:00.006+02:00</published><updated>2009-10-04T22:52:13.528+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><title type='text'>Zmieniamy tytuł strony w Bloggerze</title><summary type='text'>Standardowo tytuł pojedynczego postu w Bloggerze jest umieszczany w kolejności (tytuł bloga + tytuł postu). Większość wyszukiwarek internetowych opiera swoje wyniki między innymi na tytule strony. Spróbujmy zatem zmienić kolejność elementów (najpierw tytuł posta, potem tytuł bloga).  Logujemy się do Bloggera, wybieramy Układ/Edytuj kod HTML. W podglądzie źródła naszego szablonu szukamy (Ctrl+F) </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/8844100635283230049/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/10/zmieniamy-tytu-strony-w-bloggerze.html#comment-form' title='Komentarze (6)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8844100635283230049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8844100635283230049'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/10/zmieniamy-tytu-strony-w-bloggerze.html' title='Zmieniamy tytuł strony w Bloggerze'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-328892239701080543</id><published>2009-09-20T20:48:00.003+02:00</published><updated>2009-11-08T00:21:43.765+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Populacja królików rekurencyjnie</title><summary type='text'>Mamy takie zadanie: Każdego roku pewna populacja królików podwaja się. Jeżeli początkowo było m królików to ile ich będzie po n latach? Rozwiązanie rekurencyjne poniżej.
// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;

/**
 * Populacja królików rekurencyjnie
 * @author kodatnik.blogspot.com 
 */ 
public class Kroliki {
 
 // metoda zwraca liczebność królików po określonej </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/328892239701080543/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/populacja-krolikow-rekurencyjnie.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/328892239701080543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/328892239701080543'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/populacja-krolikow-rekurencyjnie.html' title='Populacja królików rekurencyjnie'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3480639027628330913</id><published>2009-09-20T20:05:00.020+02:00</published><updated>2009-11-08T00:22:21.139+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Silnia rekurencyjnie</title><summary type='text'>Rekurencja to wywołanie z poziomu metody jej samej. Chcemy napisać metodę, która policzy wartość silni dla liczby przekazanej jako parametr. Wykorzystamy wywołania rekurencyjne.
// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;

/**
 * Rekurencyjne liczenie silni
 * @author kodatnik.blogspot.com 
 */ 
public class Silnia {
 
 // metoda silnia zwraca silnię z liczby </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3480639027628330913/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/silnia-rekurencyjnie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3480639027628330913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3480639027628330913'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/silnia-rekurencyjnie.html' title='Silnia rekurencyjnie'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-1706640103432122102</id><published>2009-09-20T18:09:00.001+02:00</published><updated>2009-09-20T18:11:49.786+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Przydatna klasa Stoper</title><summary type='text'>Czasami pisząc aplikację chcielibyśmy wiedzieć ile czasu wykonują się pewne jej fragmenty (pętle, zaawansowane obliczenia itp). Stwórzmy prostą klasę, która umożliwi nam włączenie i wyłączenie stopera oraz poda uzyskane czasy.
/**
 * Prosty stoper
 * @author kodatnik.blogspot.com 
 */
class Stoper {
 // pola prywatne klasy 
 // czas startu stopera
 private long start;
 // czas stopu stopera
 </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/1706640103432122102/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/przydatna-klasa-stoper.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1706640103432122102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/1706640103432122102'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/przydatna-klasa-stoper.html' title='Przydatna klasa Stoper'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-7695914396795979109</id><published>2009-09-18T21:32:00.004+02:00</published><updated>2009-11-08T00:22:40.091+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Sortowanie bąbelkowe</title><summary type='text'>Chcemy napisać metodę, która posortuje nam przekazany jako parametr wektor liczb całkowitych metodą sortowania bąbelkowego. Sortowanie bąbelkowe polega na porównywaniu dwóch kolejnych elementów oraz ich zamianie jeśli nie są ułożone w odpowiedniej kolejności.
/**
 * Sortowanie bąbelkowe
 * @author kodatnik.blogspot.com 
 */ 
public class SortowanieBabelkowe {

 // metoda sortuje elementy tablicy </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/7695914396795979109/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/sortowanie-babelkowe.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7695914396795979109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7695914396795979109'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/sortowanie-babelkowe.html' title='Sortowanie bąbelkowe'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-8349275499812911349</id><published>2009-09-18T21:20:00.004+02:00</published><updated>2009-11-08T00:23:00.193+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Sortowanie przez wstawianie</title><summary type='text'>Chcemy napisać metodę, która posortuje nam przekazany jako parametr wektor liczb całkowitych metodą sortowania przez wstawianie. Sortowanie przez wstawianie polega na podziale wektora na dwie części, część posortowaną i część nieposortowaną. Bierzemy element z części nieposortowanej i wstawiamy na odpowiednie miejsce w części posortowanej (analogia z układaniem kart w dłoni).
/**
 * Sortowanie </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/8349275499812911349/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/sortowanie-przez-wstawianie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8349275499812911349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/8349275499812911349'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/sortowanie-przez-wstawianie.html' title='Sortowanie przez wstawianie'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-7002919151452795384</id><published>2009-09-18T21:14:00.003+02:00</published><updated>2009-11-08T00:23:16.059+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Sortowanie przez wybieranie</title><summary type='text'>Chcemy napisać metodę, która posortuje nam przekazany jako parametr wektor liczb całkowitych metodą sortowania przez wybieranie. Sortowanie przez wybieranie polega na wyszukaniu elementu mającego znaleźć się na zadanym indeksie i zamianie miejscami z tym, który jest tam obecnie.
/**
 * Sortowanie przez wybieranie
 * @author kodatnik.blogspot.com 
 */ 
public class SortowaniePrzezWybieranie {
 
 /</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/7002919151452795384/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/sortowanie-przez-wybieranie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7002919151452795384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7002919151452795384'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/sortowanie-przez-wybieranie.html' title='Sortowanie przez wybieranie'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-5389636697954400293</id><published>2009-09-16T18:05:00.003+02:00</published><updated>2009-11-08T00:23:34.249+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Palindrom</title><summary type='text'>Palindrom to łańcuch tekstowy, który czytany normalnie jak i wspak daj taki sam ciąg. Chcemy napisać metodę, która zwróci nam prawdę jeśli przekazany jako argument łańcuch znaków jest palindromem, a fałsz jeśli nie jest.
// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;

/**
 * Palindrom
 * @author kodatnik.blogspot.com 
 */ 
public class Palindrom {
 
 // metoda palindrom </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/5389636697954400293/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/palindrom.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5389636697954400293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/5389636697954400293'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/palindrom.html' title='Palindrom'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-2562431073061227551</id><published>2009-09-16T16:05:00.003+02:00</published><updated>2009-11-08T00:23:50.804+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Sito Eratostenesa</title><summary type='text'>Sito Eratostenesa to algorytm wyznaczania liczb pierwszych z zakresu od 2 do n. Istotą algorytmu jest wykreślanie z danego zbioru 2..n wszystkich wielokrotności kolejnych liczb (zaczynając od dwójki), które nie zostały jeszcze wykreślone. Wystarczy uwzględnić tylko liczby z przedziału od 2 do wartości całkowitej pierwiastka z n. Niewykreślone liczby będą liczbami pierwszymi z podanego zakresu.
//</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/2562431073061227551/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/sito-eratostenesa.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/2562431073061227551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/2562431073061227551'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/sito-eratostenesa.html' title='Sito Eratostenesa'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-3116161952370831465</id><published>2009-09-13T02:28:00.003+02:00</published><updated>2009-11-08T00:24:08.251+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Liczby doskonałe</title><summary type='text'>Liczba doskonała to liczba naturalna, która jest sumą wszystkich swych dzielników właściwych (np. liczba 6, gdyż 6=1+2+3). Chcemy napisać program, który znajdzie nam trzy pierwsze liczby doskonałe. 
/**
 * Liczby doskonałe
 * @author kodatnik.blogspot.com 
 */
public class LiczbyDoskonale {
 
 public static void main(String[] args) {
  
  // deklaracja i inicjalizacja zmiennych
  // ile liczb </summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/3116161952370831465/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/liczby-doskonae.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3116161952370831465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/3116161952370831465'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/liczby-doskonae.html' title='Liczby doskonałe'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-213187358231621007</id><published>2009-09-12T19:00:00.004+02:00</published><updated>2009-11-08T00:24:24.490+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorytmy'/><title type='text'>Suma cyfr w liczbie</title><summary type='text'>Zaczynamy. Prosta metoda obliczająca sumę cyfr w liczbie przekazanej jako parametr. Całość objaśniona mam nadzieję klarownie w komentarzach.
// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;

/**
 * Suma cyfr w liczbie
 * @author kodatnik.blogspot.com 
 */
public class Test {
 
 // metoda sumaCyfr zwraca sumę cyfr liczby 
 // przekazanej jako parametr jej wywołania
 
 public</summary><link rel='replies' type='application/atom+xml' href='http://kodatnik.blogspot.com/feeds/213187358231621007/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://kodatnik.blogspot.com/2009/09/suma-cyfr-w-liczbie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/213187358231621007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/213187358231621007'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2009/09/suma-cyfr-w-liczbie.html' title='Suma cyfr w liczbie'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-7071024468254747421</id><published>2008-08-08T20:14:00.003+02:00</published><updated>2009-09-13T00:02:03.163+02:00</updated><title type='text'>Kontakt</title><summary type='text'>Wszelkie uwagi mile widziane.

Jeśli masz własne kody, które chcesz opublikować, lub też chcesz współpracować w tworzeniu tego bloga to gorąco zapraszam.

E-mail: kodatnik@gmail.com</summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7071024468254747421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/7071024468254747421'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2008/08/kontakt.html' title='Kontakt'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5790332872166558665.post-6528915157047428278</id><published>2008-08-08T20:11:00.004+02:00</published><updated>2009-09-23T18:48:58.430+02:00</updated><title type='text'>O Kodatniku</title><summary type='text'>Jestem freelancerem, ciągle coś piszę to do szkoły, to na studia, to do pracy. Chciałbym zebrać w jednym miejscu wycinki kodu ułatwiające życie jak i również przydatne mniej lub bardziej w walce z oporną materią ;) 

Większość wpisów, które tu znajdziesz będzie dotyczyć programowania w Javie, PHP, MySQL, HTML, CSS, Linuksie. Pojawią się również informacje związane w ciekawymi programami, </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/6528915157047428278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5790332872166558665/posts/default/6528915157047428278'/><link rel='alternate' type='text/html' href='http://kodatnik.blogspot.com/2008/08/o-kodatniku.html' title='O Kodatniku'/><author><name>Devon</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
