Algorytmika stanowi gałąź wiedzy, która w ciągu ostatnich kilkudziesięciu lat dostarczyła wielu efektywnych narzędzi wspomagających rozwiązywanie różnorodnych problemów za pomocą komputera. Teoria algorytmów i struktur danych jest jednym z podstawowych przedmiotów wykładanych na studiach informatycznych i pokrewnych.
To już trzecie, poprawione wydanie książki, która od wielu lat stanowi podstawowy podręcznik z dziedziny algorytmiki. Różni się od klasycznych podręczników akademickich: skierowana jest nie tylko do adeptów informatyki. Dzięki naciskowi na praktyczną stronę prezentowanych zagadnień powinna zainteresować także osoby programujące hobbystycznie, jak również tych wszystkich, dla których programowanie jest działalnością ważną, lecz nie podstawową w pracy zawodowej. Jest to nowoczesny podręcznik dla wszystkich, którzy w codziennej pracy programistycznej odczuwają potrzebę szybkiego odszukania pewnych informacji z dziedziny algorytmiki w celu zastosowania ich w swoich programach.
W książce opisano m.in.:
* Techniki rekurencyjne: co to jest rekurencja i jak ją stosować w praktyce?
* Sortowanie danych: najpopularniejsze procedury sortujące.
* Struktury danych: listy, kolejki, zbiory i drzewa w ujęciu praktycznym.
* Derekursywacja: jak zmienić program rekurencyjny (czasami bardzo czasochłonny) na wersję iteracyjną?
* Algorytmy przeszukiwania: przeszukiwanie liniowe, binarne i transformacja liniowa (ang. hashing).
* Przeszukiwanie tekstów: opis najbardziej znanych metod przeszukiwania tekstów (Boyera i Moore"a, Rabina i Karpa, brute-force, K-M-P).
* Zaawansowane techniki programowania: dziel i rządź, programowanie dynamiczne, algorytmy żarłoczne (ang. greedy).
* Algorytmika grafów: opis jednej z najciekawszych struktur danych występujących w informatyce.
* Sztuczna inteligencja: czy komputery mogą myśleć?
* Kodowanie i kompresja danych: opis najpopularniejszych metod kodowania i kompresji danych -- systemu kryptograficznego z kluczem publicznym i metody Huffmana
W książce znajdziesz również liczne przykłady i zadania, które pomogą Ci sprawdzić swoją wiedzę. Kod źródłowy znajdziesz na dołączonej dyskietce.
Badanie algorytmów leży w samym sercu nauk komputerowych. W ostatnich latach dokonano znaczących postępów w tej dziedzinie. Opracowano m.in. wiele efektywniejszych algorytmów (szybkie przekształcenie Fouriera), odkryto także istnienie pewnych naturalnych zadań, dla których wszystkie algorytmy są nieefektywne. Wyniki te powodują wzrost zainteresowania badaniami algorytmów, co przyczynia się do intensywnego rozwoju tej dziedziny wiedzy.
Książka jest podręcznikiem wstępnego kursu projektowania i analizy algorytmów. Autorzy położyli nacisk raczej na prezentacji najważniejszych idei i przystępności wykładu, niż na szczegółach realizacji i sztuczkach programistycznych. Autorzy przedstawiają na ogół nieformalne, intuicyjne objaśnienia zamiast długich i pracochłonnych dowodów. Książka nie wymaga żadnego szczególnego przygotowania z zakresu matematyki, czy języków programowania. Pożądana jest jednak pewna dojrzałość w stosowaniu pojęć matematycznych, ogólne obycie w językach programowania wysokiego poziomu, takich jak FORTRAN lub ALGOL, a także podstawowa znajomość algebry liniowej.
W książce omówiono m.in.:
* Podstawowe pojęcia i modele (w tym maszynę Turniga)
* Najważniejsze struktury danych, rekurencję, programowanie dynamiczne
* Algorytmy sortowania, operacje na zbiorach, drzewach i grafach
* Szybkie przekształcenie Fouriera z zastosowaniami
* Algorytmy arytmetyczne, operacje na wielomianach
* Algorytmy dopasowania wzorców
* Problemy NP-zupełne
* Dolne ograniczenia złożoności obliczeniowej
Ważnym uzupełnieniem treści książki są ćwiczenia o zróżnicowanych poziomach trudności. "Projektowanie i analiza algorytmów" to doskonały podręcznik dla studentów informatyki i kierunków pokrewnych, a także wspaniała pomoc dla osób prowadzących wykłady i ćwiczenia na tych kierunkach.
Struktura organizacyjna i architektura systemów komputerowychWydawnictwo Helion
Komputery już dawno stały się zjawiskiem powszechnym i nie są już traktowane jak magiczne skrzynki. Praktycznie wszyscy znają już możliwości ich praktycznego wykorzystania. W dobie intuicyjnych systemów operacyjnych, technologii plug-and-play i postępującego uproszczenia wszelkich operacji związanych z komputerami wiedza o architekturze i organizacji systemów komputerowych może wydawać się potrzebna jedynie wąskiej grupie specjalistów-sprzętowców. Jest jednak inaczej. Ogólna znajomość tego, co kryje się pod "maską" komputera potrzebna jest każdemu użytkownikowi komputera. Dzięki niej programista zrozumie, z czego wynikają błędy w działaniu programu, twórca systemów czasu rzeczywistego zoptymalizuje wykorzystanie procesora przez system, a osoba decydująca się na zakup nowego sprzętu we właściwy sposób zinterpretuje "obiektywne" testy przytaczane przez producentów w materiałach reklamowych.
Struktura organizacyjna i architektura systemów komputerowych to przystępne omówienie organizacji i architektury współczesnych komputerów. Książka, stworzona zgodnie z założeniami komitetu ACM-IEEE Computing Curricula 2001, nadaje się idealnie jako podręcznik dla kursu wprowadzającego w tą tematykę. Zawarte w niej zagadnienia zilustrowane są licznymi przykładami zaczerpniętymi z rzeczywistego świata, co dodatkowo ułatwia ich zrozumienie.
* Historia rozwoju komputerów.
* Sposoby przedstawiania danych, notacje i kody.
* Logika binarna i algebra Boole’a.
* Organizacja pracy systemu komputerowego, cykle maszynowe, magistrala, lista rozkazów, asembler.
* Tryby adresowania.
* Przechowywanie danych w pamięci komputera.
* Narzędzia programistyczne i systemy operacyjne.
* Alternatywne architektury komputerów.
* Analiza wydajności systemów komputerowych.
* Sieci komputerowe.
Doskonale dobrane proporcje pomiędzy objętością tekstu i poziomem szczegółowości oraz opisywanie wyłącznie istotnych aspektów zagadnienia powodują, że książka stanowi doskonałe źródło naprawdę przydatnej wiedzy.
Profesjonalne programowanie. Część 1. Zrozumieć komputerWydawnictwo Helion
Chcesz zostać programistą doskonałym?
Zacznij od poznania szczegółów działania komputera
* Zapis wartości liczbowych oraz arytmetyka zmiennoprzecinkowa i binarna
* Organizacja dostępu do pamięci komputera
* Proces wykonywania programu oraz operacje wejścia i wyjścia
Kod napisany przez profesjonalnego programistę jest wydajny i efektywny. Aby tworzyć wydajny kod, należy poznać architekturę komputera i sposób, w jaki program jest wykonywany. Zrozumienie tego, w jaki sposób komputer realizuje kolejne instrukcje programu i jak słowa kluczowe języków wysokiego poziomu są przenoszone na rozkazy procesora, jest kluczem do napisania kodu, który po skompilowaniu da szybko i bezbłędnie działający program.
"Profesjonalne programowanie. Część 1. Zrozumieć komputer" to pierwszy tom serii książek przeznaczonych dla tych programistów, którzy chcą podnieść swoje kwalifikacje. Przedstawia wewnętrzną architekturę komputera od strony, której znajomość jest niezbędna programiście. Opisuje sposoby zapisu wartości liczbowych i tekstów, działania na liczbach binarnych i zmiennoprzecinkowych oraz logikę Boole’a. Czytając tę książkę, dowiesz się, w jaki sposób procesor przetwarza rozkazy asemblera, jak odbywa się dostęp do danych zapisanych w pamięci oraz jak przesyłane są dane do i z urządzeń zewnętrznych.
* Zapis liczb w systemie binarnym, ósemkowym i szesnastkowym
* Działania na liczbach binarnych i zmiennoprzecinkowych
* Sposoby reprezentacji danych znakowych
* Organizacja pamięci i tryby adresowania
* Złożone typy danych
* Projektowanie układów cyfrowych i logika Boole’a
* Architektura procesora i rozkazy asemblera
* Operacje wejścia i wyjścia
Jeśli chcesz, aby napisane przez Ciebie oprogramowanie budziło podziw, koniecznie przeczytaj tę książkę.
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWydawnictwo Helion
Poznaj skuteczne rozwiązania problemów, jakie napotkasz podczas codziennej pracy programisty
* Prawidłowo zoptymalizuj kod źródłowy
* Zaprojektuj efektywną obsługę wyjątków
* Naucz się odpowiednio korzystać z przestrzeni nazw
Nauka każdego nowego zagadnienia przebiega zdecydowanie szybciej i efektywniej pod kierunkiem osoby znającej temat. Nie inaczej jest w przypadku nauki programowania w języku C++. Programowanie w tym języku wymaga dogłębnego opanowania możliwości biblioteki standardowej, inżynierii oprogramowania i wielu innych tematów. Rozwiązując samodzielnie zagadki, jakie często pojawiają się podczas poznawania języka C++ lepiej zapamiętujemy ich rozwiązania, dzięki czemu łatwiej możemy zastosować je w codziennej pracy.
Książka "Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań" to zbiór zagadnień związanych z niemal wszystkimi aspektami programowania w C++, przedstawionych w formie zagadek z rozwiązaniami. Opisuje zarówno podstawy stosowania szablonów, biblioteki standardowej i projektowanie klas, jak i tematy zaawansowane -- przestrzenie nazw, wyjątki, dziedziczenie i zarządzanie zasobami. Czytając ją, przekonasz się, w jaki sposób można użyć pozornie niezwiązanych ze sobą elementów do opracowania nowych i oryginalnych rozwiązań częstych problemów.
* Poprawne stosowanie predykatów
* Kontenery i wskaźniki
* Korzystanie z szablonów
* Optymalizacja kodu
* Bezpieczna obsługa wyjątków
* Mechanizmy dziedziczenia i polimorfizmu
* Zarządzanie zasobami i pamięcią
* Makrodefinicje
* Przestrzenie nazw
Gdy zrozumiesz zagadnienia opisywane w tej książce, nie będziesz musiał podczas programowania zastanawiać się nad szczegółami -- będziesz mógł skoncentrować się na problemach, które naprawdę chcesz rozwiązać.
O autorze:
Herb Sutter to ekspert od programowania w języku C++. Jest regularnie zapraszany do wygłaszania wykładów na konferencjach dla programistów.
[więcej...]
Książka "PHP i MySQL. Aplikacje bazodanowe" jest przeznaczona dla tych, którzy tworzą lub zamierzają tworzyć witryny WWW oparte na technologii PHP i MySQL. Opisano w niej reguły i techniki wykorzystywane przy tworzeniu małych i średnich aplikacji bazodanowych wykorzystywanych do przechowywania danych, odczytywania ich i zarządzania nimi. Przedstawia zasady pracy z bazami danych. Pokazuje, jak śledzić poczynania użytkowników za pomocą sesji, pisać bezpieczny kod, oddzielać go od warstwy prezentacyjnej i uniezależniać go od wyboru bazy danych. Opisuje również techniki generowania raportów i obsługi błędów oraz zaawansowane zagadnienia związane z bazami danych i programowaniem zorientowanym obiektowo.
* Typowe modele architektury aplikacji bazodanowych
* Język PHP -- podstawowe wiadomości
* Programowanie zorientowane obiektowo w PHP5
* Język SQL i baza danych MySQL
* Biblioteka PEAR
* Kontrola poprawności wprowadzanych danych z wykorzystaniem PHP i JavaScript
* Mechanizmy bezpieczeństwa w aplikacjach bazodanowych
* Wdrażanie aplikacji
* Generowanie raportów
* Przykład praktyczny -- internetowy sklep z winami
Wiadomości zawarte w tej książce pomogą każdemu programiście stworzyć sklep internetowy, portal lub system zarządzania treścią.
Metody numeryczne są to sposoby rozwiązywania złożonych problemów matematycznych za pomocą narzędzi obliczeniowych udostępnianych przez popularne języki programowania. Jeden z najpopularniejszych języków -- Pascal, będący podstawą języka ObjectPascal wykorzystywanego w Delphi, pozwala na bardzo łatwą implementację mechanizmów obliczeń numerycznych. Specyfika projektowania aplikacji w środowisku Delphi pozwala na utworzenie komponentów realizujących algorytmy numeryczne i stosowanie ich w wielu aplikacjach.
Książka "Algorytmy numeryczne w Delphi. Księga eksperta" przedstawia najczęściej wykorzystywane metody numeryczne wraz z przykładami ich implementacji w języku ObjectPascal. Każde zagadnienie jest omówione zarówno od strony teoretycznej, jak i praktycznej, co ułatwia jego zrozumienie i pozwala na modyfikacje zamieszczonych w książce kodów źródłowych.
* Typy, funkcje, klasy i procedury wykorzystywane w algorytmach numerycznych
* Algebra macierzy i równania liniowe
* Badanie funkcji
* Rozwiązywanie równań nieliniowych i wyznaczanie wartości własnych macierzy
* Układy równań różniczkowych liniowych i nieliniowych
* Przekształcenia Fouriera i Laplace’a
Niemal każdy problem obliczeniowy można rozwiązać za pomocą metod numerycznych. Nie musisz więc wymyślać ponownie koła -- wystarczy, że poznasz opisane w tej książce algorytmy.
Dzięki poradom i wskazówkom zawartym w tej książce Czytelnik zmieni się ze zwykłego użytkownika komputera PC w administratora sieciowego. Chociaż książka przeznaczona jest dla początkujących, także profesjonaliści zajmujący się sieciami i telekomunikacją znajdą tu wiele przydatnych wiadomości. "ABC sieci komputerowych" to kompendium wiedzy zarówno o zagadnieniach dotyczących infrastruktury sieciowej jak i kwestii związanych z oprogramowaniem używanym w sieciach.
Lektura tej książki sprawi, że:
* Nauczysz się odróżniać typy sieci i wybierzesz technologię sieciową najlepiej odpowiadającą Twoim potrzebom
* Zapoznasz się z różnymi składnikami sprzętu komputerowego wykorzystywanymi do tworzenia sieci
* Poznasz architekturę sieci komputerowych
* Zapoznasz się z teorią i praktyką dotyczącą komunikacji w sieci
* Poznasz protokoły internetowe (FTP, POP3, SMTP, IMAP, TCP/IP)
* Nauczysz się projektować i konfigurować sieci oraz dowiesz się, w jaki sposób udostępniać w sieci zasoby, takie jak drukarki czy dyski
* Będziesz mógł uruchamiać serwery WWW
* Zapoznasz się z metodami ochrony danych, ochrony sieci przed atakami oraz ochrony systemu przed wirusami
* Będziesz znał praktyczne sposoby rozwiązywania problemów związanych z sieciami
Spośród wielu dostępnych środowisk programistycznych Delphi wyróżnia się łatwością i szybkością tworzenia aplikacji. Zastosowany język programowania ObjectPascal utrwala dobre nawyki programowania strukturalnego, wzbogacając je o nowe możliwości, jakie niesie za sobą programowanie zorientowane obiektowo. Wygodne środowisko RAD, możliwość łatwego uzyskiwania dostępu do relacyjnych baz danych oraz możliwość tworzenia aplikacji wieloplatformowych, to kolejne zalety Delphi, które przekonały doń rzesze programistów.
Książka "Delphi 7. Kompendium programisty" to -- jak wskazuje jej tytuł -- kompletny przewodnik po Delphi, obejmujący zarówno opis zintegrowanego środowiska programistycznego, języka ObjectPascal, jak i najważniejszych funkcjonalności zawartych w dołączonych do Delphi bibliotekach. Jest to pozycja dla początkujących adeptów sztuki programistycznej, a także dla tych wszystkich, którzy chcą poszerzyć i wzbogacić swoją wiedzę o tym wygodnym narzędziu.
Książka przedstawia:
* Podstawowe informacje o Delphi
* Język ObjectPascal -- jego strukturę i składnię
* Programowanie zorientowane obiektowo
* Interfejs Delphi
* Obsługę komunikatów w Delphi
* Korzystanie z rejestru Windows i plików .ini
* Dostęp do plików
* Tworzenie aplikacji wielowątkowych
* Multimedialne funkcje Delphi
* Tworzenie aplikacji sieciowych
* Pisanie własnych bibliotek DLL
* Wykorzystanie oraz tworzenie własnych bibliotek VCL i CLX
* Dostęp do relacyjnych baz danych
* IntraWeb -- Delphi i WWW
Do książki dołączony jest CD-ROM, na którym znajdziesz kody źródłowe wykorzystane w książce. Cennym uzupełnieniem jest także dodatek, przedstawiający przetestowane w praktyce zalecenia dotyczące pisania czytelnego kodu w Delphi.
Badanie algorytmów leży w samym sercu nauk komputerowych. W ostatnich latach dokonano znaczących postępów w tej dziedzinie. Opracowano m.in. wiele efektywniejszych algorytmów (szybkie przekształcenie Fouriera), odkryto także istnienie pewnych naturalnych zadań, dla których wszystkie algorytmy są nieefektywne. Wyniki te powodują wzrost zainteresowania badaniami algorytmów, co przyczynia się do intensywnego rozwoju tej dziedziny wiedzy.
Książka jest podręcznikiem wstępnego kursu projektowania i analizy algorytmów. Autorzy położyli nacisk raczej na prezentacji najważniejszych idei i przystępności wykładu, niż na szczegółach realizacji i sztuczkach programistycznych. Autorzy przedstawiają na ogół nieformalne, intuicyjne objaśnienia zamiast długich i pracochłonnych dowodów. Książka nie wymaga żadnego szczególnego przygotowania z zakresu matematyki, czy języków programowania. Pożądana jest jednak pewna dojrzałość w stosowaniu pojęć matematycznych, ogólne obycie w językach programowania wysokiego poziomu, takich jak FORTRAN lub ALGOL, a także podstawowa znajomość algebry liniowej.
W książce omówiono m.in.:
* Podstawowe pojęcia i modele (w tym maszynę Turniga)
* Najważniejsze struktury danych, rekurencję, programowanie dynamiczne
* Algorytmy sortowania, operacje na zbiorach, drzewach i grafach
* Szybkie przekształcenie Fouriera z zastosowaniami
* Algorytmy arytmetyczne, operacje na wielomianach
* Algorytmy dopasowania wzorców
* Problemy NP-zupełne
* Dolne ograniczenia złożoności obliczeniowej
Ważnym uzupełnieniem treści książki są ćwiczenia o zróżnicowanych poziomach trudności. "Projektowanie i analiza algorytmów" to doskonały podręcznik dla studentów informatyki i kierunków pokrewnych, a także wspaniała pomoc dla osób prowadzących wykłady i ćwiczenia na tych kierunkach.
Struktura organizacyjna i architektura systemów komputerowychWydawnictwo Helion
Komputery już dawno stały się zjawiskiem powszechnym i nie są już traktowane jak magiczne skrzynki. Praktycznie wszyscy znają już możliwości ich praktycznego wykorzystania. W dobie intuicyjnych systemów operacyjnych, technologii plug-and-play i postępującego uproszczenia wszelkich operacji związanych z komputerami wiedza o architekturze i organizacji systemów komputerowych może wydawać się potrzebna jedynie wąskiej grupie specjalistów-sprzętowców. Jest jednak inaczej. Ogólna znajomość tego, co kryje się pod "maską" komputera potrzebna jest każdemu użytkownikowi komputera. Dzięki niej programista zrozumie, z czego wynikają błędy w działaniu programu, twórca systemów czasu rzeczywistego zoptymalizuje wykorzystanie procesora przez system, a osoba decydująca się na zakup nowego sprzętu we właściwy sposób zinterpretuje "obiektywne" testy przytaczane przez producentów w materiałach reklamowych.
Struktura organizacyjna i architektura systemów komputerowych to przystępne omówienie organizacji i architektury współczesnych komputerów. Książka, stworzona zgodnie z założeniami komitetu ACM-IEEE Computing Curricula 2001, nadaje się idealnie jako podręcznik dla kursu wprowadzającego w tą tematykę. Zawarte w niej zagadnienia zilustrowane są licznymi przykładami zaczerpniętymi z rzeczywistego świata, co dodatkowo ułatwia ich zrozumienie.
* Historia rozwoju komputerów.
* Sposoby przedstawiania danych, notacje i kody.
* Logika binarna i algebra Boole’a.
* Organizacja pracy systemu komputerowego, cykle maszynowe, magistrala, lista rozkazów, asembler.
* Tryby adresowania.
* Przechowywanie danych w pamięci komputera.
* Narzędzia programistyczne i systemy operacyjne.
* Alternatywne architektury komputerów.
* Analiza wydajności systemów komputerowych.
* Sieci komputerowe.
Doskonale dobrane proporcje pomiędzy objętością tekstu i poziomem szczegółowości oraz opisywanie wyłącznie istotnych aspektów zagadnienia powodują, że książka stanowi doskonałe źródło naprawdę przydatnej wiedzy.
Profesjonalne programowanie. Część 1. Zrozumieć komputerWydawnictwo Helion
Chcesz zostać programistą doskonałym?
Zacznij od poznania szczegółów działania komputera
* Zapis wartości liczbowych oraz arytmetyka zmiennoprzecinkowa i binarna
* Organizacja dostępu do pamięci komputera
* Proces wykonywania programu oraz operacje wejścia i wyjścia
Kod napisany przez profesjonalnego programistę jest wydajny i efektywny. Aby tworzyć wydajny kod, należy poznać architekturę komputera i sposób, w jaki program jest wykonywany. Zrozumienie tego, w jaki sposób komputer realizuje kolejne instrukcje programu i jak słowa kluczowe języków wysokiego poziomu są przenoszone na rozkazy procesora, jest kluczem do napisania kodu, który po skompilowaniu da szybko i bezbłędnie działający program.
"Profesjonalne programowanie. Część 1. Zrozumieć komputer" to pierwszy tom serii książek przeznaczonych dla tych programistów, którzy chcą podnieść swoje kwalifikacje. Przedstawia wewnętrzną architekturę komputera od strony, której znajomość jest niezbędna programiście. Opisuje sposoby zapisu wartości liczbowych i tekstów, działania na liczbach binarnych i zmiennoprzecinkowych oraz logikę Boole’a. Czytając tę książkę, dowiesz się, w jaki sposób procesor przetwarza rozkazy asemblera, jak odbywa się dostęp do danych zapisanych w pamięci oraz jak przesyłane są dane do i z urządzeń zewnętrznych.
* Zapis liczb w systemie binarnym, ósemkowym i szesnastkowym
* Działania na liczbach binarnych i zmiennoprzecinkowych
* Sposoby reprezentacji danych znakowych
* Organizacja pamięci i tryby adresowania
* Złożone typy danych
* Projektowanie układów cyfrowych i logika Boole’a
* Architektura procesora i rozkazy asemblera
* Operacje wejścia i wyjścia
Jeśli chcesz, aby napisane przez Ciebie oprogramowanie budziło podziw, koniecznie przeczytaj tę książkę.
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWydawnictwo Helion
Poznaj skuteczne rozwiązania problemów, jakie napotkasz podczas codziennej pracy programisty
* Prawidłowo zoptymalizuj kod źródłowy
* Zaprojektuj efektywną obsługę wyjątków
* Naucz się odpowiednio korzystać z przestrzeni nazw
Nauka każdego nowego zagadnienia przebiega zdecydowanie szybciej i efektywniej pod kierunkiem osoby znającej temat. Nie inaczej jest w przypadku nauki programowania w języku C++. Programowanie w tym języku wymaga dogłębnego opanowania możliwości biblioteki standardowej, inżynierii oprogramowania i wielu innych tematów. Rozwiązując samodzielnie zagadki, jakie często pojawiają się podczas poznawania języka C++ lepiej zapamiętujemy ich rozwiązania, dzięki czemu łatwiej możemy zastosować je w codziennej pracy.
Książka "Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań" to zbiór zagadnień związanych z niemal wszystkimi aspektami programowania w C++, przedstawionych w formie zagadek z rozwiązaniami. Opisuje zarówno podstawy stosowania szablonów, biblioteki standardowej i projektowanie klas, jak i tematy zaawansowane -- przestrzenie nazw, wyjątki, dziedziczenie i zarządzanie zasobami. Czytając ją, przekonasz się, w jaki sposób można użyć pozornie niezwiązanych ze sobą elementów do opracowania nowych i oryginalnych rozwiązań częstych problemów.
* Poprawne stosowanie predykatów
* Kontenery i wskaźniki
* Korzystanie z szablonów
* Optymalizacja kodu
* Bezpieczna obsługa wyjątków
* Mechanizmy dziedziczenia i polimorfizmu
* Zarządzanie zasobami i pamięcią
* Makrodefinicje
* Przestrzenie nazw
Gdy zrozumiesz zagadnienia opisywane w tej książce, nie będziesz musiał podczas programowania zastanawiać się nad szczegółami -- będziesz mógł skoncentrować się na problemach, które naprawdę chcesz rozwiązać.
O autorze:
Herb Sutter to ekspert od programowania w języku C++. Jest regularnie zapraszany do wygłaszania wykładów na konferencjach dla programistów.
[więcej...]
Książka "PHP i MySQL. Aplikacje bazodanowe" jest przeznaczona dla tych, którzy tworzą lub zamierzają tworzyć witryny WWW oparte na technologii PHP i MySQL. Opisano w niej reguły i techniki wykorzystywane przy tworzeniu małych i średnich aplikacji bazodanowych wykorzystywanych do przechowywania danych, odczytywania ich i zarządzania nimi. Przedstawia zasady pracy z bazami danych. Pokazuje, jak śledzić poczynania użytkowników za pomocą sesji, pisać bezpieczny kod, oddzielać go od warstwy prezentacyjnej i uniezależniać go od wyboru bazy danych. Opisuje również techniki generowania raportów i obsługi błędów oraz zaawansowane zagadnienia związane z bazami danych i programowaniem zorientowanym obiektowo.
* Typowe modele architektury aplikacji bazodanowych
* Język PHP -- podstawowe wiadomości
* Programowanie zorientowane obiektowo w PHP5
* Język SQL i baza danych MySQL
* Biblioteka PEAR
* Kontrola poprawności wprowadzanych danych z wykorzystaniem PHP i JavaScript
* Mechanizmy bezpieczeństwa w aplikacjach bazodanowych
* Wdrażanie aplikacji
* Generowanie raportów
* Przykład praktyczny -- internetowy sklep z winami
Wiadomości zawarte w tej książce pomogą każdemu programiście stworzyć sklep internetowy, portal lub system zarządzania treścią.
Metody numeryczne są to sposoby rozwiązywania złożonych problemów matematycznych za pomocą narzędzi obliczeniowych udostępnianych przez popularne języki programowania. Jeden z najpopularniejszych języków -- Pascal, będący podstawą języka ObjectPascal wykorzystywanego w Delphi, pozwala na bardzo łatwą implementację mechanizmów obliczeń numerycznych. Specyfika projektowania aplikacji w środowisku Delphi pozwala na utworzenie komponentów realizujących algorytmy numeryczne i stosowanie ich w wielu aplikacjach.
Książka "Algorytmy numeryczne w Delphi. Księga eksperta" przedstawia najczęściej wykorzystywane metody numeryczne wraz z przykładami ich implementacji w języku ObjectPascal. Każde zagadnienie jest omówione zarówno od strony teoretycznej, jak i praktycznej, co ułatwia jego zrozumienie i pozwala na modyfikacje zamieszczonych w książce kodów źródłowych.
* Typy, funkcje, klasy i procedury wykorzystywane w algorytmach numerycznych
* Algebra macierzy i równania liniowe
* Badanie funkcji
* Rozwiązywanie równań nieliniowych i wyznaczanie wartości własnych macierzy
* Układy równań różniczkowych liniowych i nieliniowych
* Przekształcenia Fouriera i Laplace’a
Niemal każdy problem obliczeniowy można rozwiązać za pomocą metod numerycznych. Nie musisz więc wymyślać ponownie koła -- wystarczy, że poznasz opisane w tej książce algorytmy.
Dzięki poradom i wskazówkom zawartym w tej książce Czytelnik zmieni się ze zwykłego użytkownika komputera PC w administratora sieciowego. Chociaż książka przeznaczona jest dla początkujących, także profesjonaliści zajmujący się sieciami i telekomunikacją znajdą tu wiele przydatnych wiadomości. "ABC sieci komputerowych" to kompendium wiedzy zarówno o zagadnieniach dotyczących infrastruktury sieciowej jak i kwestii związanych z oprogramowaniem używanym w sieciach.
Lektura tej książki sprawi, że:
* Nauczysz się odróżniać typy sieci i wybierzesz technologię sieciową najlepiej odpowiadającą Twoim potrzebom
* Zapoznasz się z różnymi składnikami sprzętu komputerowego wykorzystywanymi do tworzenia sieci
* Poznasz architekturę sieci komputerowych
* Zapoznasz się z teorią i praktyką dotyczącą komunikacji w sieci
* Poznasz protokoły internetowe (FTP, POP3, SMTP, IMAP, TCP/IP)
* Nauczysz się projektować i konfigurować sieci oraz dowiesz się, w jaki sposób udostępniać w sieci zasoby, takie jak drukarki czy dyski
* Będziesz mógł uruchamiać serwery WWW
* Zapoznasz się z metodami ochrony danych, ochrony sieci przed atakami oraz ochrony systemu przed wirusami
* Będziesz znał praktyczne sposoby rozwiązywania problemów związanych z sieciami
Spośród wielu dostępnych środowisk programistycznych Delphi wyróżnia się łatwością i szybkością tworzenia aplikacji. Zastosowany język programowania ObjectPascal utrwala dobre nawyki programowania strukturalnego, wzbogacając je o nowe możliwości, jakie niesie za sobą programowanie zorientowane obiektowo. Wygodne środowisko RAD, możliwość łatwego uzyskiwania dostępu do relacyjnych baz danych oraz możliwość tworzenia aplikacji wieloplatformowych, to kolejne zalety Delphi, które przekonały doń rzesze programistów.
Książka "Delphi 7. Kompendium programisty" to -- jak wskazuje jej tytuł -- kompletny przewodnik po Delphi, obejmujący zarówno opis zintegrowanego środowiska programistycznego, języka ObjectPascal, jak i najważniejszych funkcjonalności zawartych w dołączonych do Delphi bibliotekach. Jest to pozycja dla początkujących adeptów sztuki programistycznej, a także dla tych wszystkich, którzy chcą poszerzyć i wzbogacić swoją wiedzę o tym wygodnym narzędziu.
Książka przedstawia:
* Podstawowe informacje o Delphi
* Język ObjectPascal -- jego strukturę i składnię
* Programowanie zorientowane obiektowo
* Interfejs Delphi
* Obsługę komunikatów w Delphi
* Korzystanie z rejestru Windows i plików .ini
* Dostęp do plików
* Tworzenie aplikacji wielowątkowych
* Multimedialne funkcje Delphi
* Tworzenie aplikacji sieciowych
* Pisanie własnych bibliotek DLL
* Wykorzystanie oraz tworzenie własnych bibliotek VCL i CLX
* Dostęp do relacyjnych baz danych
* IntraWeb -- Delphi i WWW
Do książki dołączony jest CD-ROM, na którym znajdziesz kody źródłowe wykorzystane w książce. Cennym uzupełnieniem jest także dodatek, przedstawiający przetestowane w praktyce zalecenia dotyczące pisania czytelnego kodu w Delphi.
JBuilder firmy Borland to ulubione środowisko programistyczne wielu programistów Javy, pozwalające na efektywne tworzenie złożonych aplikacji.
O technikach programowania w języku Java i związanych z nim specyficznych zagadnieniach traktuje wiele książek. Ta jednak koncentruje się bardziej na opisie JBuildera -- wbudowanych w niego możliwości, automatycznych kreatorów i narzędzi -- niż na samych kodach Javy. Opisuje wiele zaawansowanych zagadnień, takich jak: testowanie modułów, refaktoring, Java Server Pages, Enterprise JavaBeans, CORBA i dostęp do baz danych.
Opisano między innymi:
* Środowisko JBuilder, jego interfejs i możliwości dostosowania do własnych potrzeb
* Kreatory JBuildera: Screen Designer i Menu Designer
* Modelowanie w środowisku JBuildera, UML
* Testowanie modułów, debugowanie programów
* Refaktoring
* Przygotowanie aplikacji do wdrożenia
* Korzystanie z AWT i Swing
* Tworzenie formatek i elementów graficznych
* Korzystanie z plików i relacyjnych baz danych, DataExpress
* Tworzenie aplikacji sieciowych i JSP, korzystanie ze Struts
* Korzystanie z XML w JBuilderze
* Pisanie aplikacji opartych na EJB
* Tworzenie i wdrażanie oprogramowania z użyciem serwerów WebLogic i WebSphere
* Tworzenie aplikacji WWW (webservices), protokół SOAP
* Pisanie midletów
* Zespołowe tworzenie aplikacji
Jest to książka dla średnio zaawansowanych programistów Javy. Dzięki praktycznemu podejściu do omawianych tematów sprawi, że w szybkim tempie poznasz niuanse JBuildera i będziesz tworzył zaawansowane aplikacje efektywniej niż do tej pory.
Visio 2002 dla każdego -- jedyna książka o Visio, której potrzebujesz.
Skomplikowane zależności, których opisanie zajęłoby dziesiątki stron, można przekazać za pomocą schematów w sposób dużo prostszy, a zarazem bardziej skondensowany. Jednak tworzenie rozmaitych schematów często wykracza poza nasze umiejętności -- tutaj przychodzi nam z pomocą Visio, dzięki któremu rysowanie staje się o wiele szybsze i łatwiejsze. Ta bogata w możliwości aplikacja wykorzystywana jest w bardzo wielu branżach i stała się najpopularniejszym programem służącym do tworzenia diagramów.
Książka Visio 2002 dla każdego jest propozycją wydawnictwa Helion dla każdego użytkownika programu Visio 2002. W poszczególnych rozdziałach poznasz podstawy tego narzędzia i stopniowo przejdziesz do bardziej zaawansowanych możliwości Viso 2002. Jeśli zamierzasz kupić tylko jedną, uniwersalną pozycję o Visio 2002 – "Visio 2002 dla każdego" jest książką, której szukasz.
* Wykorzystywanie pakietów Network Diagram Kits do tworzenia schematu sieci korporacyjnej.
* Poznanie właściwości warstw w rysunkach tworzonych w Visio.
* Tworzenie niestandardowych właściwości elementów w arkuszu ShapeSheet.
* Wykorzystywanie technologii OLE do umieszczania dodatkowych elementów w rysunku tworzonym w Visio.
* Łączenie rysunku tworzonego w Visio ze źródłem danych.
* Tworzenie dwuwymiarowych obiektów z jednowymiarowych kształtów.
* Tworzenie mapy myśli, przydatnej w sesjach burzy mózgów.
* Wykorzystywanie kreatora Export Project Data Wizard w celu przesłania wykresu Gantta (lub innych danych harmonogramu projektu) do innej aplikacji.
Keith Powell ma wieloletnie doświadczenie zdobyte w przemyśle i jest autorem wielu książek poświęconych różnym narzędziom programistycznym i systemom operacyjnym, które stały się popularne z początkiem lat osiemdziesiątych. Jako senior manager w KPMG Consulting, Chicago, większość pracy poświęca na analizie najnowszych technologii związanych z architekturą e-commerce, strategią, bezpieczeństwem i wdrażaniem nowych systemów.
"Anatomia PC. Kompendium" to skrócona wersja bestsellera o budowie komputerów PC. Rozproszoną i trudno dostępną wiedzę na temat sprzętu komputerowego masz teraz w zasięgu ręki, w jednym, kompletnym opracowaniu, którego kolejne edycje cieszą się niesłabnącym powodzeniem wśród czytelników. Z liczącego ponad 1000 stron oryginalnego wydania wybrano te informacje, które są najważniejsze w praktyce i których znajomość jest konieczna do zrozumienia zasad działania sprzętu PC, pomijając wiedzę o bardziej "egzotycznych" funkcjach.
Gdy Twój komputer odmówi posłuszeństwa, gdy instalacja kolejnej karty rozszerzeń czy wymiana procesora skończy się porażką, sięgnij po tę książkę. Dzięki niej z pewnością poradzisz sobie z problemami sprzętowymi. "Anatomia PC. Kompendium" to książka, którą każdy serwisant powinien mieć w swojej torbie!
Omówiono:
* Mikroprocesory
* Architekturę PC
* Układy pamięci
* Otoczenie procesora (chipset)
* Magistralę PCI
* Magistralę AGP
* Dostęp do pamięci przez DMA
* Przerwania sprzętowe
* Obsługę twardych dysków
* Budowę kart graficznych
* Łącza szeregowe i równoległe
* Złącze USB
* Karty dźwiękowe
* Zasilanie PC
* Funkcje BIOS-u
Niniejsza książka jest wyjątkowa pośród innych publikacji kierowanych do fotografików cyfrowych -- prezentuje sprawdzone sposoby na osiągnięcie zamierzonych rezultatów. Nie ma tu miejsca na nudne wywody teoretyczne; nikt nie będzie Ci kazał niczego wymyślać samodzielnie. Zamiast tego znajdziesz opisy technik używanych przez najlepszych specjalistów w dziedzinie fotografii cyfrowej i retuszu zdjęć. Ta książka powie Ci wprost, jakich ustawień używać, kiedy i dlaczego.
Jeśli szukasz książki w stylu "powiedz mi wszystko, co wiesz na temat filtru wyostrzającego", to lepiej odłóż tę publikację z powrotem na półkę. Zamiast niej możesz sobie kupić dowolną inną książkę o Photoshopie -- na pewno znajdziesz tam odpowiedzi na swoje pytania. Po niniejszą książkę sięgnij tylko wówczas, gdy interesują Cię sztuczki, jakimi posługują się fachowcy od fotografii cyfrowej podczas edycji, korekcji, retuszu i prezentacji swoich dzieł najbardziej wymagającym klientom na tej planecie. Będziesz zachwycony tym, jak proste i efektywne są stosowane przez nich metody.
Dzięki książce poznasz:
* Sekrety profesjonalnego retuszu fotografii
* Zasady prawidłowej korekcji kolorystycznej fotografii
* Zdumiewające techniki "rzeźbienia ciała"
* Jak i dlaczego zawodowcy edytują zdjęcia w trybie 16-bitowym
* Sztuczki zwiększające produktywność
* Techniki wyostrzania, którymi naprawdę posługują się zawodowcy
* Sposoby radzenia sobie z typowymi problemami występujących w obrazach pochodzących z cyfrowych aparatów fotograficznych
* Techniki usuwania z obrazów szumu i kolorowych otoczek, a także sposoby ochrony swoich prac przed naruszeniem praw autorskich
* Najlepsze fotograficzne efekty specjalne
O autorze:
Scott Kelby jest redaktorem naczelnym pisma Photoshop User, przewodniczącym stowarzyszenia NAPP, skupiającego profesjonalnych użytkowników Photoshopa, dyrektorem szkoleniowym seminarium Adobe Photoshop Seminar Tour i jednym z najlepszych instruktorów tego programu w Ameryce. Scott jest również autorem bestsellerowych książek "Photoshop Photo-Retouching Secrets" i "Photoshop Down & Dirty Tricks", a także współautorem pozycji "Photoshop Killer Tips". Jego lekki i przyjemny sposób przekazu czyni naukę zabawną. Każdego roku Scott spotyka się na swoich seminariach z tysiącami studentów, dlatego w jego książkach pojawiają się zawsze najświeższe informacje o najlepszych technikach edycji cyfrowych obrazów.
Od scenariusza do gotowego, cyfrowego filmu
Nawet jeśli nie masz dostępu do wysokiej klasy narzędzi używanych w największych studiach filmowych, możesz realizować projekty na wysokim poziomie korzystając z komputera i kamery o umiarkowanej cenie.
W książce "Cyfrowe filmy wideo" znajdziesz wszystkie informacje, jakie mogą być potrzebne w realizacji takiego przedsięwzięcia. Czy zamierzasz nakręcić kinowy film fabularny, czy też krótkometrażowy film promocyjny bądź informacyjny, książka przeprowadzi Cię przez wszystkie etapy procesu produkcji; od pisania scenariusza i planowania, po zdjęcia, montaż i postprodukcję. Jeśli jesteś doświadczonym twórcą filmów wykonywanych tradycyjną metodą, dzięki tej książce z łatwością poznasz najnowsze technologie cyfrowe. Niezależnie od tego, czy jesteś studentem akademii filmowej, fachowcem od reklamy, instruktorem czy pasjonatem tworzenia filmów wideo, wiedza zawarta w tej książce jest Ci potrzebna do ukończenia swojego dzieła.
* Wyczerpujący materiał i samouczki na temat nieliniowego montażu wideo
* Omówienie technologii dystrybucji filmów, w tym przygotowania płyt DVD i przenoszenia filmów wideo na kliszę filmową
* Szczegółowe omówienie podstaw technologii wideo, wyboru kamery i planowania zdjęć
* Wyjaśnienie reguł pisania scenariusza, oświetlenia planu zdjęciowego, rejestracji i produkcji dźwięku i tworzenia stacji roboczej
* Ćwiczenia pozwalające ugruntować zdobytą wiedzę
Na dołączonych płytach CD-ROM znajdziesz demonstracyjne wersje programów omawianych w książce oraz pliki z klipami wideo, dźwiękami i obrazami wykorzystywanymi w ćwiczeniach i samouczkach.
* Skompletuj sprzęt umożliwiający osiągnięcie wysokiej jakości przy niskich kosztach
* Napisz scenariusz i budżet, zaplanuj zdjęcia i wykonaj je
* Naucz się technik montażu i postprodukcji
* Zapisz materiał filmowy na płytach DVD i innych nośnikach
Poznałeś już podstawy obsługi Photoshopa CS. Czas na następny krok -- opanowanie bardziej zaawansowanych funkcji tego programu. Photoshop CS to aplikacja o ogromnych możliwościach, dla której zastosowanie znajdą graficy przygotowujący projekty stron WWW, projektanci publikacji drukowanych, artyści i fotograficy. Jeśli nawet grafika komputerowa jest dla Ciebie zabawą, a nie pracą, Photoshop CS szybko stanie się podstawowym narzędziem, którego będziesz używać.
Książka "Photoshop CS. Ćwiczenia zaawansowane" może być Twoim przewodnikiem w poznawaniu kolejnych funkcji tego narzędzia. Wykonując kolejne ćwiczenia, nauczysz się wykorzystywać Photoshopa CS do obróbki cyfrowych zdjęć.
Dzięki tej książce poznasz:
* Prostowanie i kadrowanie zdjęć
* Czyszczenie skanowanych obrazów
* Narzędzia do retuszu obrazów
* Techniki korekcji kolorów
* Tworzenie panoram
* Automatyzację pracy z wykorzystaniem zadań
* Korekcję ostrości obrazów.
Wykorzystaj Photoshopa CS w roli cyfrowej ciemni fotograficznej. Przekonasz się, że nie ma złych zdjęć -- są tylko takie, których jeszcze nikt nie obrabiał w Photoshopie.
Relacyjne bazy danych stanowią podstawę większości współczesnych systemów informatycznych. Choć poszczególne systemy zarządzania bazami danych różnią się między sobą w wielu aspektach, są jednak oparte na wspólnych podstawach teoretycznych. Jeśli zrozumiesz ten wspólny fundament, będziesz mógł z łatwością budować na nim własne aplikacje, niezależnie od tego, czy jako systemu bazodanowego użyjesz komercyjnego Oracle"a lub MS SQL-a, czy też bezpłatnego PostgreSQL.
Książka "Relacyjne bazy danych" została napisana w celu jak najbardziej przystępnego objaśnienia zagadnień relacyjnego modelu danych oraz jego znaczenia dla projektantów i twórców baz danych. Objaśnienia tych, często skomplikowanych zagadnień, przybliżają tajniki relacyjnego modelu danych wykorzystując przykłady, a nie wzory matematyczne. Dzięki ich zrozumieniu będziesz mógł projektować bazy danych szybsze, bardziej elastyczne i lepiej dopasowane do zadań, jakie mają realizować. Poznasz:
* Podstawowe pojęcia związane z bazami danych: tabele, rekordy, pola
* Sposoby pobierania danych za pomocą zapytań
* Tworzenie raportów z wyselekcjonowanych danych
* Projektowanie baz z uwzględnieniem związków między danymi, klucze i indeksy
* Sposoby przestrzegania reguł integralności danych
* Tworzenie zaawansowanych wielowarstwowych aplikacji opartych o bazy danych
* Programowanie wyzwalaczy, procedur zapisanych, użycie perspektyw
* Zastosowania transakcji
* Teorię baz danych: reguły Codda, normalizację
* Język SQL
Dr Mark Whitehorn dysponuje ogromną wiedzą w dziedzinie teorii relacyjnych baz danych. Dzięki cyklowi artykułów w brytyjskim magazynie Personal Computer World udało mu się przybliżyć ją tysiącom użytkowników.
"Po prostu doskonała. Wyjaśniając tajniki zagadnień związanych z relacyjnymi bazami danych, Mark Whitehorn oraz Bill Marklyn osiągnęli o wiele więcej niż inni autorzy. Uczynili ten temat ciekawym, a nawet wręcz zabawnym, co stawia ich poza zasięgiem jakiejkolwiek konkurencji”.
Neil Fawcett, Edytor techniczny, VNU Business Publications
Wykorzystanie wbudowanego w system Oracle języka PL/SQL w znaczący sposób zwiększa wydajność programisty systemów bazodanowych. PL/SQL łączy w sobie możliwości i elastyczność języka czwartej generacji (4GL) SQL z konstrukcjami proceduralnymi języka trzeciej generacji (3GL). Konstrukcje proceduralne są w pełni zintegrowane z Oracle SQL, co daje w rezultacie język strukturalny o ogromnym potencjale. Programy napisane w tym języku umożliwiają obsługę danych zarówno w samym systemie Oracle, jak i w zewnętrznych aplikacjach.
Książka "Oracle9i. Programowanie w języku PL/SQL" wyjaśnia główne właściwości języka oraz różnice w PL/SQL dla różnych wersji bazy danych. Dzięki niej nauczysz się projektować, testować i uruchamiać aplikacje PL/SQL działające w wielu środowiskach, jak również poznasz szczegóły zastosowania języków SQL i PL/SQL, obsługi błędów, zbioru podprogramów i pakietów, a także wiele zaawansowanych właściwości. Niniejsza pozycja umożliwia:
* Zapoznanie się z różnymi środowiskami programistycznymi języka PL/SQL, których kopie znajdują się na dołączonej płycie CD
* Poznanie szczegółów składni języka PL/SQL: zmienne, typy danych, wyrażenia, operatory oraz struktury sterujące
* Zapewnienie spójności danych dzięki instrukcjom sterowania transakcjami dostępnym w SQL-u
* Wykorzystanie kursorów, które pozwalają na tworzenie zapytań zwracających wiele wierszy oraz jawną kontrolę przetwarzania instrukcji SQL
* Tworzenie programów PL/SQL, które wykrywają i inteligentnie reagują na błędy fazy wykonania
* Wykorzystanie możliwości tworzenia kolekcji wielopoziomowych w systemie Oracle9i
* Tworzenie i korzystanie z procedur, funkcji i pakietów
* Tworzenie wyzwalaczy DML zastępujących i systemowych w celu wymuszania złożonych ograniczeń danych
* Korzystanie z zalet języka PL/SQL, takich jak: procedury zewnętrzne, wbudowany dynamiczny SQL, masowe powiązania oraz typy obiektowe
Książka jest przeznaczona zarówno dla programistów, którzy muszą nauczyć się składni i poznać zaawansowane cechy języka PL/SQL, jak i dla tych, którzy jeszcze nie poznali innych języków trzeciej generacji. Przydatna, aczkolwiek nie wymagana, jest ogólna znajomość sytemu Oracle (łączenie się z bazą danych i jej wykorzystywanie, podstawy języka SQL, itp.).
Red Hat to bez wątpienia najpopularniejsza dystrybucja systemu Linux. Z wersji na wersję staje się coraz bardziej rozbudowana, a jednocześnie coraz prostsza w instalacji i obsłudze. Red Hat Linux 8.0, z dołączonym pakietem OpenOffice i licznymi aplikacjami internetowymi (przeglądarka Mozilla, program pocztowy Evolution) może już śmiało konkurować z MS Windows także w zastosowaniach biurowych. Warto zauważyć, że pozycja Linuksa wśród systemów instalowanych na rozmaitych serwerach, w tym internetowych, jest ugruntowana i stabilna.
Książka ułatwi Ci sprawną instalację 8. wersji systemu, którą znajdziesz na płytach CD-ROM dołączonych do książki. Bogato ilustrowane, zorientowane na wykonanie konkretnych zadań rozdziały nauczą Cię korzystania z rozbudowanych możliwości tego systemu operacyjnego.
W książce omówiono między innymi:
* Instalację i konfigurację systemu Red Hat Linux 8.0
* Konfigurację i używanie środowiska GNOME
* Obsługę poczty elektronicznej oraz korzystanie z Internetu
* Korzystanie z pakietu biurowego OpenOffice.org
* Powłokę Bash
* Zastosowanie Red Hata jako serwera usług FTP, NFS, Telnet, Samba, WWW
Nie ma na co czekać! Red Hat Linux 8.0 wraz z przyjaznym dla użytkownika, w pełni zintegrowanym środowiskiem graficznym GNOME, otwiera nowe możliwości zarówno przed początkującymi, jak i doświadczonymi użytkownikami.
Dlaczego nie zacząć od razu? Ta książka to zaproszenie do przygody z Linuksem. Skorzystaj z niego.
Książka Alfreda Aho i Jeffreya Ullmana "Wykłady z informatyki z przykładami w języku C" stanowi znaczący postęp w dziedzinie metodyki nauczania podstaw informatyki. Ten nowatorski podręcznik w przystępny sposób prezentuje zagadnienia dotyczące modeli, pojęć i technik z zakresu matematyki dyskretnej i informatyki. Książka stanowi zarówno wprowadzenie do dziedziny informatyki, jak i autorytatywne źródło jej teoretycznych podstaw. Pokazuje, w jaki sposób "matematyczne abstrakcje" przekształca się w działające programy.
Podręcznik dostarcza przyszłym informatykom solidnych podstaw niezbędnych w dalszych studiach oraz w przyszłej pracy zawodowej. Zawiera liczne ćwiczenia, ułatwiające przyswojenie przedstawianej w nim wiedzy i sprawdzenie swoich umiejętności. Autorzy wymagają od czytelnika znajomości języka C.
Zakres tematyczny obejmuje między innymi:
* Iterację, indukcję i rekursję
* Zagadnienia związane z czasem wykonywania programów
* Kombinatorykę i prawdopodobieństwo
* Modele danych oparte na drzewach, listach i zbiorach
* Relacyjny i grafowy model danych
* Wzorce, automaty i wyrażenia regularne, rekurencyjny model wzorców
* Logikę zdań
* Logikę predykatów
SolidEdge to program należący do grupy aplikacji MCAD -- wspomagających
projektowanie konstrukcji mechanicznych. Za jego pomocą można wykonać
przestrzenne modele części, podzespołów i zespołów, a następnie
przygotować dokumentację techniczną projektowanej konstrukcji. SolidEgde
może również współpracować z innymi aplikacjami inżynierskimi --
obliczeniowymi, symulacyjnymi i wspomagającymi wytwarzanie.
Książka "Solid Edge. Komputerowe wspomaganie projektowania" to poradnik
dla użytkowników najnowszej (v.15) wersji tej aplikacji. Interesujące wiadomości
znajdą w nim zarówno początkujący, jak i zaawansowani użytkownicy. Książka opisuje proces tworzenia modeli części i generowania dokumentacji. Zawarte w niej zagadnienia są podzielone na dwie części -- pierwsza przeznaczona jest dla osób dopiero rozpoczynających pracę z SolidEdge, a druga -- dla użytkowników mających już jakieś doświadczenie w korzystaniu z tej aplikacji.
* Praca na płaszczyźnie, moduł Draft
* Modelowanie bryłowe
* Modelowanie powierzchni
* Tworzenie zespołów
* Tworzenie raportów
* Wykonanie projektu formy wtryskowej
* Tworzenie dokumentacji
* Dostosowanie programu do własnych potrzeb
Biblioteka OpenGL to zestaw procedur graficznych, których możemy używać w rozmaitych językach programowania dla różnych systemów operacyjnych. Jest to ogólnie uznany standard -- jego znajomość to podstawa do zajmowania się grafiką komputerową.
Książka przedstawia jedynie fragment możliwości OpenGL, wystarczający jednak, by rozpocząć przygodę z programowaniem grafiki trójwymiarowej. W odróżnieniu od innych pozycji poświęconych tej bibliotece, przykłady zostały napisane w języku ObjectPascal (Delphi), co umożliwi także programistom nie posługującym się językami C/C++ rozpoczęcie przygody z grafiką 3D.
W książce omówiono:
* Podstawy OpenGL: punkty, linie, trójkąty, wielokąty, kolorowanie
* Rysowanie złożonych obiektów za pomocą kwadryk
* Posługiwanie się perspektywą i kamerą
* Materiały: kolor, połysk, emisję
* Zagadnienia związane ze światłem
* Tworzenie dynamicznych scen
* Składanie przekształceń
* Operacje na macierzach
* Tworzenie brył
* Tekstury i ich właściwości
* Napisy w OpenGL
* Tworzenie prostej gry
Nauka, filozofia i religia w Matrix
Rok 2003 po wejściu na ekrany kin filmów "Matrix: Reaktywacja" i "Matrix: Rewolucje" będzie kolejnym rokiem Matriksa. Wychodząca w cztery lata po pierwszym filmie książka "Wybierz czerwoną pigułkę" jest znaczącym przyczynkiem do teorii literatury i filmu, a zarazem bardzo przystępnym wyborem esejów dla niespecjalistów, którzy po prostu uwielbiają Matrix z jego złożoną i zastanawiającą fabułą.
Książka zawiera odpowiedzi na wiele pytań, które nasuwają się po obejrzeniu filmu, przedstawia nowe i śmiałe interpretacje tego kinowego bestselleru. Jest niezbędną lekturą dla zainteresowanych szeroko rozumianą, kulturową i literacką analizą jednego z najważniejszych filmów dwudziestego wieku, ponieważ łączy szczegółowe ujęcie wielu filozoficznych, literackich i ekonomicznych zagadnień obecnych w Matriksie z jasnym i wartkim stylem.
W książce zgromadzono eseje wielu doktorów, którzy nie są lekarzami, lecz ekonomistami, filozofami, badaczami religii, literatury i mediów, pisarzami science fiction, wynalazcami i technologami. Doktorzy przyrządzili interpretacyjny eliksir, który smakuje znakomicie.
Czym jest Matrix? Efektowną mieszanką kina akcji, filmów kung-fu i science-fiction, czy kryjącą w sobie wiele warstw filozoficzną opowieścią o zdehumanizowanym świecie? I czym jest Matrix? Cyfrową halucynacją, czy rzeczywistością, którą sami sobie budujemy? Na te pytania starają się odpowiedzieć autorzy książki poświęconej najbardziej kultowemu filmowi przełomu wieków.
Bracia Wachowscy, zapytani ile warstw znaczeniowych zawiera Matrix odpowiadają: "Więcej niż można przypuszczać".
Ta książka pozwoli Ci odkryć przynajmniej niektóre z nich i pobudzić do własnych poszukiwań.
Wybierz czerwoną pigułkę i zanurz się w świecie Matriksa, w którym nic nie jest takie, jakim zdaje się być na pierwszy rzut oka.
Adobe Premiere 6.5 umożliwia montaż cyfrowego wideo na zwykłych komputerach PC i Apple. Jego możliwości w zupełności wystarczają profesjonalistom, dla początkującego użytkownika mogą być nawet oszałamiające.
"Adobe Premiere 6.5. Biblia" to książka dla producentów multimediów, projektantów witryn internetowych, grafików, artystów, filmowców oraz użytkowników kamer wideo -- dla wszystkich, którzy, korzystając z komputera, chcą tworzyć filmy wideo i umieszczać je na taśmach VHS, płytach CD-ROM lub w Internecie. Czytając tę książkę szybko się przekonasz, że jest ona czymś więcej niż tylko źródłem informacji opisującym praktycznie wszystkie funkcje programu Adobe Premiere. Omawiane w książce koncepcje i możliwości programu Premiere są wyjaśniane za pomocą wielu krótkich ćwiczeń. Książka jest niezastąpionym źródłem informacji zarówno dla początkujących, jak i zaawansowanych użytkowników. Nie zwlekaj. Zacznij czytać i dowiedz się, jak zrealizować swoje pomysły.
* Twórz cyfrowe filmy, prezentacje i wideoklipy korzystając z własnego komputera
* Eksportuj cyfrowe projekty wideo na dysk twardy, płyty CD-ROM, taśmy VHS lub do Internetu
* Łącz narrację, muzykę i efekty dźwiękowe wzbogacając nimi obraz
* Odkryj możliwości współpracy programu Premiere 6.5 z aplikacjami takimi jak Photoshop, Illustrator, After Effects czy GoLive
* Przekształć zwykłe sekwencje wideo nakręcone typową cyfrową kamerą w pełne życia i pasji projekty filmowe
* Wykorzystaj w produkcji grafikę JPEG i TIFF, a także cyfrowe wideo i dźwięk
Uzupełnieniem książki jest CD-ROM zawierający między innymi próbną wersję programu Adobe Premiere 6, klipy wideo wykorzystywane w ćwiczeniach zawartych w książce i bibliotekę sekwencji wideo, dźwięków i grafik, które możesz stosować we własnych filmach.
Książka ta stanowi nie tylko doskonałe źródło wiedzy o programie Adobe Premiere 6.5. Dzięki niej w krótkim czasie będziesz mógł konkurować z najlepszymi montażystami.
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion
Przy tworzeniu systemów informatycznych najważniejsze zadania wykonuje się, zanim powstanie pierwszy fragment kodu źródłowego. Wymogi stawiane współczesnym aplikacjom powodują, że inżynieria oprogramowania staje się kwestią kluczową. Opracowanie odpowiedniego projektu oraz właściwy dobór technologii i metodologii zapewniają szybką i efektywną pracę nad systemem. Niezwykle ważne jest poznanie dostępnych w języku Java struktur danych i umiejętność ich wykorzystania. Prawidłowo dobrana struktura danych znacznie przyspiesza nie tylko implementację aplikacji, ale również działanie gotowego systemu.
Książka "Struktury danych i techniki obiektowe na przykładzie Javy 5.0" przedstawia podstawowe struktury danych i sposoby ich wykorzystania podczas programowania obiektowego. Wszystkie wiadomości zostały zaprezentowane z uwzględnieniem reguł nowoczesnej inżynierii oprogramowania. Czytając kolejne rozdziały książki, poznasz najlepsze zastosowania różnych struktur danych oraz wady i zalety ich implementacji. Przede wszystkim jednak zrozumiesz potrzebę stosowania tak wielu struktur danych.
* Cykl życia oprogramowania
* Zastosowanie języka UML w projektowaniu systemów
* Obsługa błędów i wyjątków
* Testowanie oprogramowania
* Dziedziczenie i hierarchia klas
* Listy jedno- i dwukierunkowe
* Interfejs Collection
* Stosy i kolejki
* Algorytmy rekurencyjne
* Sortowanie danych
* Drzewa wyszukiwania
* Grafy
Po przeczytaniu tej książki zrozumiesz zasadę:
"Pomyśl, a dopiero potem pisz kod".
Praktyczne rozwiązania dla zaawansowanych programistów
Do tworzenia wydajnych programów nie wystarczy teoretyczna wiedza o algorytmach, strukturach danych i inżynierii oprogramowania. Istnieje pokaźna liczba sztuczek, sprytnych technik i praktycznych rozwiązań, których znajomość jest niezbędna każdemu programiście.
Niniejsza książka zawiera pokaźny zestaw technik, które pomogą zaoszczędzić sporo czasu. Techniki te zostały opracowane przez twórców kodu poszukujących eleganckich i wydajnych sposobów tworzenia lepszego oprogramowania. W "Uczcie programistów" doświadczony programista Hank Warren dzieli się z Czytelnikami znanymi sobie sztuczkami, które zgromadził wraz z imponującym doświadczeniem w dziedzinie programowania aplikacji i systemów operacyjnych. Większość z tych sztuczek jest niezwykle praktyczna, niektóre zostały przedstawione jako ciekawostki lub zaskakujące rozwiązania. Ich zestawienie stanowi niesamowitą kolekcję, która będzie pomocna nawet dla najbardziej doświadczonych programistów w rozszerzeniu ich umiejętności.
W książce opisano następujące zagadnienia:
* Obszerna kolekcja użytecznych sztuczek programistycznych
* Drobne algorytmy rozwiązujące często spotykane problemy
* Algorytmy kontroli przekroczenia ograniczeń
* Zmiana kolejności bitów i bajtów
* Dzielenie całkowite i dzielenie przez stałe
* Elementarne operacje na liczbach całkowitych
* Kod Gray"a
* Krzywa Hilberta
* Formuły wyznaczania liczb pierwszych
Niniejsza książka jest doskonałą pozycją dla wszystkich programistów, którzy mają zamiar tworzyć wydajny kod. "Uczta programistów" nauczy Cię tworzenia aplikacji wysokiej jakości -- wyższej niż wymagana na uczelniach i kursach programowania.
Strukturalna organizacja systemów komputerowych. Wydanie VWydawnictwo Helion
Doskonałe omówienie zasad działania współczesnych komputerów
* Dowiedz się, jak działają procesory i magistrale
* Poznaj reguły algebry logiki
* Odkryj tajemnice współczesnych systemów operacyjnych
Dla większości użytkowników komputerów, nawet tych, dla których komputer jest narzędziem pracy, wiedza o tym urządzeniu kończy się na umiejętności instalowania i uruchamiania aplikacji. Współczesne, intuicyjne systemy operacyjne, technologie maksymalnie upraszczające pracę z komputerem, łatwe w obsłudze aplikacje -- wszystko to powoduje, że znajomość zasad funkcjonowania komputerów wydaje się nam niepotrzebna. Tymczasem taka wiedza może okazać się przydatna nie tylko specjaliście, ale również zwykłemu użytkownikowi. Dzięki niej twórcy aplikacji są w stanie zoptymalizować ich działanie i zrozumieć przyczyny błędów, projektanci urządzeń peryferyjnych wybrać najlepszy sposób komunikacji swojego produktu z komputerem, a osoby zainteresowane kupnem nowego sprzętu dokonać świadomego wyboru.
W książce "Strukturalna organizacja systemów komputerowych. Wydanie V" zaprezentowano system komputerowy w ujęciu hierarchicznym, jako zespół zależnych od siebie warstw. Poznajemy go, poczynając od poziomu "logiki cyfrowej", poprzez mikroarchitekturę i poziom maszynowy, aż do poziomu systemu operacyjnego i języka asemblera. Książka przedstawia również historię rozwoju komputerów, zadania systemów operacyjnych, zasady programowania w języku maszynowym oraz architektury najpopularniejszych procesorów.
* Procesory i pamięć operacyjna
* Wykonywanie rozkazów języka maszynowego
* Operacje wejścia i wyjścia
* Arytmetyka cyfrowa
* Magistrale ISA, PCI oraz PCI Express
* Przetwarzanie danych przez procesory
* Programowanie w języku asemblera
* Działanie systemów operacyjnych
* Przetwarzanie rozproszone i obliczenia równoległe
Dowiedz się jak działa Twój komputer.
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowejWydawnictwo Helion
Umiejętność programowania nie ma już charakteru czysto zawodowego. Księgowi muszą się posługiwać arkuszami kalkulacyjnymi i edytorami tekstu, fotografowie korzystają z edytorów zdjęć, muzycy programują syntezatory, zaś profesjonalni programiści tworzą skomplikowane aplikacje. Programowanie jest więc bardzo pożądaną umiejętnością, potrzebną nie tylko informatykom.
Projektowanie oprogramowania wymaga takich samych zdolności analitycznych, jak matematyka. Jednak, w przeciwieństwie do matematyki, praca z programami jest aktywnym sposobem zdobywania wiedzy. Obcowanie z oprogramowaniem daje możliwość stałej interakcji, co pozwala na zgłębianie wiedzy, eksperymentowanie z nią oraz na stałą samoocenę.
Autorzy tej klasycznej publikacji stawiają tezę, iż "każdy powinien nauczyć się, jak projektować oprogramowanie" i właśnie nauka podstaw projektowania jest jej tematem głównym. W książce znajdziesz wiele podstawowych algorytmów, wyjaśnienia takich pojęć, jak akumulacja wiedzy czy równość ekstensjonalna i intensjonalna, słowem wszystko to, co stanowi teoretyczną podstawę wiedzy programistycznej.
Poznasz między innymi:
* Podstawowe struktury, z których składają się programy komputerowe
* Proste i złożony typy danych
* Metody przetwarzania danych
* Programowanie z użyciem rekurencji, algorytmy z nawracaniem
* Projektowanie abstrakcyjne
* Sposoby gromadzenia wiedzy
* Wykorzystanie wektorów
Z lektury książki "Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej" skorzystają zarówno studenci informatyki, jak też i słuchacze innych kierunków oraz wszystkie osoby, które chcą podbudować swoją wiedzę praktyczną solidnymi i przydatnymi podstawami teoretycznymi.
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Doskonały przewodnik po najnowszej wersji języka PHP
dla twórców dynamicznych serwisów WWW
Książka "PHP. Programowanie. Wydanie III" to kolejne wydanie praktycznego przewodnika dla programistów stron internetowych. Jeden z najlepszych programistów PHP -- Leon Atkinson, uczy wszystkiego, co potrzebujesz, by stworzyć dobrą i szybką aplikację sieciową. Dokładnie opisuje składnię PHP i kluczowe elementy języka. Atkinson przedstawia także najważniejsze funkcje PHP, w tym funkcje wejścia-wyjścia, przetwarzania danych, matematyczne, daty, czasu, konfiguracji, funkcje umożliwiające współpracę z bazami danych, funkcje graficzne i sieciowe. Prezentuje on również działanie PHP na przykładach realizujących sortowanie, przeszukiwanie, analizę łańcuchów i inne zadania.
Książka składa się z czterech części:
* wstępu do programowania,
* przewodnika po wszystkich funkcjach,
* przeglądu typowych problemów programistycznych
* części umożliwiającej zastosowanie zdobytej wiedzy przy tworzeniu witryn.
Pierwsza część zajmuje się kwestiami dotyczącymi wszystkich języków programowania: jak wygląda skrypt PHP, jak sterować przebiegiem programu i jak zarządzać danymi.
Część druga organizuje funkcje według ich zastosowania i zawiera przykłady ich zastosowania. PHP udostępnia bardzo dużo funkcji, dlatego część ta jest najobszerniejsza.
Część trzecia zajmuje się rozwiązywaniem typowych problemów programistycznych, takich jak sortowanie czy generowanie grafiki.
Ostatnia część udziela porad dotyczących tworzenia całych witryn sieciowych za pomocą PHP.
* Poznaj wzorce projektowe w PHP, techniki programowania obiektowego i możliwości wykorzystania języka XML
* Wykorzystaj nowe funkcje i możliwości PHP 5
* Napisz wydajne aplikacje internetowe, wykorzystując najlepsze praktyki inżynierii oprogramowania
Błyskawiczny kurs programowania aplikacji w języku C
Język C, mimo prawie 30-letniej historii, cieszy się niesłabnącą popularnością wśród programistów. Wszyscy jego użytkownicy cenią w nim prostą i czytelną składnię, niewielki i łatwy do zapamiętania zakres słów kluczowych oraz duże możliwości, dzięki którym za pomocą C można rozwiązać niemal każde zagadnienie programistyczne. Zewnętrzne biblioteki, dostępne w sieci oraz dołączane do najpopularniejszych narzędzi programistycznych, dodatkowo rozszerzają możliwości C.
Książka "Programowanie w języku C. Szybki start" to podręcznik dla tych, którzy chcą poznać C w praktyce i nie chcą przebijać się przez dziesiątki stron opisów teoretycznych. Każde zagadnienie -- od najprostszych, związanych ze strukturą programu i zasadami kompilacji aż do złożonych typów danych i obsługi plików zewnętrznych -- jest przedstawione w postaci bogato ilustrowanej sekwencji czynności. Wykonując kolejne przykłady z książki, poznasz wszystkie podstawowe wiadomości o programowaniu w języku C.
* Struktura programu w języku C
* Typy danych
* Sterowanie działaniem programu
* Korzystanie ze standardowego wejścia i wyjścia
* Deklarowanie i stosowanie funkcji
* Dyrektywy preprocesora
* Wskaźniki i zarządzanie pamięcią
* Obsługa plików
* Złożone typy danych
Poznaj zalety i możliwości najpopularniejszego języka programowania.
Książka "Algorytmy w C" jest doskonałą pomocą dla programistów, którym w codziennej pracy potrzebne są sprawdzone rozwiązania. Nie ma tu teoretycznych dywagacji tak charakterystycznych dla większości książek o strukturach danych i algorytmach. Znajdziesz w niej za to przystępnie podane informacje i praktyczne techniki programowania.
Wyjątkowo elegancki styl programowania i pisania autora, Kyle’a Loudona, ułatwia poznanie najważniejszych struktur danych, takich jak listy, stosy, kolejki, zbiory, sterty, kolejki priorytetowe i grafy. Autor prezentuje użycie algorytmów sortujących, wyszukiwania, analiz numerycznych, kompresji danych, szyfrowania danych, typowych algorytmów obsługi grafów oraz geometrii analitycznej. W rozdziałach poświęconych kompresji i szyfrowaniu czytelnik znajdzie nie tylko gotowy, szybki w działaniu kod, ale też informacje przydatne dla osób, które nigdy nie miały czasu ani chęci zagłębiać się w omawiane zagadnienia.
W tekście umieszczono także kody wraz z przykładami zastosowania poszczególnych struktur danych i algorytmów. Komplet kodów źródłowych znajduje się na płycie CD-ROM. Kod ten został napisany w taki sposób, byś łatwo mógł go wykorzystać we własnych aplikacjach.
W książce omówiono:
* Wskaźniki
* Rekurencję
* Analizę algorytmów
* Struktury danych (listy, stosy, kolejki, zbiory, tablice asocjacyjne, drzewa, sterty, kolejki priorytetowe i grafy)
* Sortowanie i wyszukiwanie
* Metody numeryczne
* Kompresję danych
* Szyfrowanie danych
* Algorytmy operujące na grafach
* Algorytmy przydatne do obliczeń geometrycznych.
JBuilder firmy Borland to ulubione środowisko programistyczne wielu programistów Javy, pozwalające na efektywne tworzenie złożonych aplikacji.
O technikach programowania w języku Java i związanych z nim specyficznych zagadnieniach traktuje wiele książek. Ta jednak koncentruje się bardziej na opisie JBuildera -- wbudowanych w niego możliwości, automatycznych kreatorów i narzędzi -- niż na samych kodach Javy. Opisuje wiele zaawansowanych zagadnień, takich jak: testowanie modułów, refaktoring, Java Server Pages, Enterprise JavaBeans, CORBA i dostęp do baz danych.
Opisano między innymi:
* Środowisko JBuilder, jego interfejs i możliwości dostosowania do własnych potrzeb
* Kreatory JBuildera: Screen Designer i Menu Designer
* Modelowanie w środowisku JBuildera, UML
* Testowanie modułów, debugowanie programów
* Refaktoring
* Przygotowanie aplikacji do wdrożenia
* Korzystanie z AWT i Swing
* Tworzenie formatek i elementów graficznych
* Korzystanie z plików i relacyjnych baz danych, DataExpress
* Tworzenie aplikacji sieciowych i JSP, korzystanie ze Struts
* Korzystanie z XML w JBuilderze
* Pisanie aplikacji opartych na EJB
* Tworzenie i wdrażanie oprogramowania z użyciem serwerów WebLogic i WebSphere
* Tworzenie aplikacji WWW (webservices), protokół SOAP
* Pisanie midletów
* Zespołowe tworzenie aplikacji
Jest to książka dla średnio zaawansowanych programistów Javy. Dzięki praktycznemu podejściu do omawianych tematów sprawi, że w szybkim tempie poznasz niuanse JBuildera i będziesz tworzył zaawansowane aplikacje efektywniej niż do tej pory.
Visio 2002 dla każdego -- jedyna książka o Visio, której potrzebujesz.
Skomplikowane zależności, których opisanie zajęłoby dziesiątki stron, można przekazać za pomocą schematów w sposób dużo prostszy, a zarazem bardziej skondensowany. Jednak tworzenie rozmaitych schematów często wykracza poza nasze umiejętności -- tutaj przychodzi nam z pomocą Visio, dzięki któremu rysowanie staje się o wiele szybsze i łatwiejsze. Ta bogata w możliwości aplikacja wykorzystywana jest w bardzo wielu branżach i stała się najpopularniejszym programem służącym do tworzenia diagramów.
Książka Visio 2002 dla każdego jest propozycją wydawnictwa Helion dla każdego użytkownika programu Visio 2002. W poszczególnych rozdziałach poznasz podstawy tego narzędzia i stopniowo przejdziesz do bardziej zaawansowanych możliwości Viso 2002. Jeśli zamierzasz kupić tylko jedną, uniwersalną pozycję o Visio 2002 – "Visio 2002 dla każdego" jest książką, której szukasz.
* Wykorzystywanie pakietów Network Diagram Kits do tworzenia schematu sieci korporacyjnej.
* Poznanie właściwości warstw w rysunkach tworzonych w Visio.
* Tworzenie niestandardowych właściwości elementów w arkuszu ShapeSheet.
* Wykorzystywanie technologii OLE do umieszczania dodatkowych elementów w rysunku tworzonym w Visio.
* Łączenie rysunku tworzonego w Visio ze źródłem danych.
* Tworzenie dwuwymiarowych obiektów z jednowymiarowych kształtów.
* Tworzenie mapy myśli, przydatnej w sesjach burzy mózgów.
* Wykorzystywanie kreatora Export Project Data Wizard w celu przesłania wykresu Gantta (lub innych danych harmonogramu projektu) do innej aplikacji.
Keith Powell ma wieloletnie doświadczenie zdobyte w przemyśle i jest autorem wielu książek poświęconych różnym narzędziom programistycznym i systemom operacyjnym, które stały się popularne z początkiem lat osiemdziesiątych. Jako senior manager w KPMG Consulting, Chicago, większość pracy poświęca na analizie najnowszych technologii związanych z architekturą e-commerce, strategią, bezpieczeństwem i wdrażaniem nowych systemów.
"Anatomia PC. Kompendium" to skrócona wersja bestsellera o budowie komputerów PC. Rozproszoną i trudno dostępną wiedzę na temat sprzętu komputerowego masz teraz w zasięgu ręki, w jednym, kompletnym opracowaniu, którego kolejne edycje cieszą się niesłabnącym powodzeniem wśród czytelników. Z liczącego ponad 1000 stron oryginalnego wydania wybrano te informacje, które są najważniejsze w praktyce i których znajomość jest konieczna do zrozumienia zasad działania sprzętu PC, pomijając wiedzę o bardziej "egzotycznych" funkcjach.
Gdy Twój komputer odmówi posłuszeństwa, gdy instalacja kolejnej karty rozszerzeń czy wymiana procesora skończy się porażką, sięgnij po tę książkę. Dzięki niej z pewnością poradzisz sobie z problemami sprzętowymi. "Anatomia PC. Kompendium" to książka, którą każdy serwisant powinien mieć w swojej torbie!
Omówiono:
* Mikroprocesory
* Architekturę PC
* Układy pamięci
* Otoczenie procesora (chipset)
* Magistralę PCI
* Magistralę AGP
* Dostęp do pamięci przez DMA
* Przerwania sprzętowe
* Obsługę twardych dysków
* Budowę kart graficznych
* Łącza szeregowe i równoległe
* Złącze USB
* Karty dźwiękowe
* Zasilanie PC
* Funkcje BIOS-u
Niniejsza książka jest wyjątkowa pośród innych publikacji kierowanych do fotografików cyfrowych -- prezentuje sprawdzone sposoby na osiągnięcie zamierzonych rezultatów. Nie ma tu miejsca na nudne wywody teoretyczne; nikt nie będzie Ci kazał niczego wymyślać samodzielnie. Zamiast tego znajdziesz opisy technik używanych przez najlepszych specjalistów w dziedzinie fotografii cyfrowej i retuszu zdjęć. Ta książka powie Ci wprost, jakich ustawień używać, kiedy i dlaczego.
Jeśli szukasz książki w stylu "powiedz mi wszystko, co wiesz na temat filtru wyostrzającego", to lepiej odłóż tę publikację z powrotem na półkę. Zamiast niej możesz sobie kupić dowolną inną książkę o Photoshopie -- na pewno znajdziesz tam odpowiedzi na swoje pytania. Po niniejszą książkę sięgnij tylko wówczas, gdy interesują Cię sztuczki, jakimi posługują się fachowcy od fotografii cyfrowej podczas edycji, korekcji, retuszu i prezentacji swoich dzieł najbardziej wymagającym klientom na tej planecie. Będziesz zachwycony tym, jak proste i efektywne są stosowane przez nich metody.
Dzięki książce poznasz:
* Sekrety profesjonalnego retuszu fotografii
* Zasady prawidłowej korekcji kolorystycznej fotografii
* Zdumiewające techniki "rzeźbienia ciała"
* Jak i dlaczego zawodowcy edytują zdjęcia w trybie 16-bitowym
* Sztuczki zwiększające produktywność
* Techniki wyostrzania, którymi naprawdę posługują się zawodowcy
* Sposoby radzenia sobie z typowymi problemami występujących w obrazach pochodzących z cyfrowych aparatów fotograficznych
* Techniki usuwania z obrazów szumu i kolorowych otoczek, a także sposoby ochrony swoich prac przed naruszeniem praw autorskich
* Najlepsze fotograficzne efekty specjalne
O autorze:
Scott Kelby jest redaktorem naczelnym pisma Photoshop User, przewodniczącym stowarzyszenia NAPP, skupiającego profesjonalnych użytkowników Photoshopa, dyrektorem szkoleniowym seminarium Adobe Photoshop Seminar Tour i jednym z najlepszych instruktorów tego programu w Ameryce. Scott jest również autorem bestsellerowych książek "Photoshop Photo-Retouching Secrets" i "Photoshop Down & Dirty Tricks", a także współautorem pozycji "Photoshop Killer Tips". Jego lekki i przyjemny sposób przekazu czyni naukę zabawną. Każdego roku Scott spotyka się na swoich seminariach z tysiącami studentów, dlatego w jego książkach pojawiają się zawsze najświeższe informacje o najlepszych technikach edycji cyfrowych obrazów.
Od scenariusza do gotowego, cyfrowego filmu
Nawet jeśli nie masz dostępu do wysokiej klasy narzędzi używanych w największych studiach filmowych, możesz realizować projekty na wysokim poziomie korzystając z komputera i kamery o umiarkowanej cenie.
W książce "Cyfrowe filmy wideo" znajdziesz wszystkie informacje, jakie mogą być potrzebne w realizacji takiego przedsięwzięcia. Czy zamierzasz nakręcić kinowy film fabularny, czy też krótkometrażowy film promocyjny bądź informacyjny, książka przeprowadzi Cię przez wszystkie etapy procesu produkcji; od pisania scenariusza i planowania, po zdjęcia, montaż i postprodukcję. Jeśli jesteś doświadczonym twórcą filmów wykonywanych tradycyjną metodą, dzięki tej książce z łatwością poznasz najnowsze technologie cyfrowe. Niezależnie od tego, czy jesteś studentem akademii filmowej, fachowcem od reklamy, instruktorem czy pasjonatem tworzenia filmów wideo, wiedza zawarta w tej książce jest Ci potrzebna do ukończenia swojego dzieła.
* Wyczerpujący materiał i samouczki na temat nieliniowego montażu wideo
* Omówienie technologii dystrybucji filmów, w tym przygotowania płyt DVD i przenoszenia filmów wideo na kliszę filmową
* Szczegółowe omówienie podstaw technologii wideo, wyboru kamery i planowania zdjęć
* Wyjaśnienie reguł pisania scenariusza, oświetlenia planu zdjęciowego, rejestracji i produkcji dźwięku i tworzenia stacji roboczej
* Ćwiczenia pozwalające ugruntować zdobytą wiedzę
Na dołączonych płytach CD-ROM znajdziesz demonstracyjne wersje programów omawianych w książce oraz pliki z klipami wideo, dźwiękami i obrazami wykorzystywanymi w ćwiczeniach i samouczkach.
* Skompletuj sprzęt umożliwiający osiągnięcie wysokiej jakości przy niskich kosztach
* Napisz scenariusz i budżet, zaplanuj zdjęcia i wykonaj je
* Naucz się technik montażu i postprodukcji
* Zapisz materiał filmowy na płytach DVD i innych nośnikach
Poznałeś już podstawy obsługi Photoshopa CS. Czas na następny krok -- opanowanie bardziej zaawansowanych funkcji tego programu. Photoshop CS to aplikacja o ogromnych możliwościach, dla której zastosowanie znajdą graficy przygotowujący projekty stron WWW, projektanci publikacji drukowanych, artyści i fotograficy. Jeśli nawet grafika komputerowa jest dla Ciebie zabawą, a nie pracą, Photoshop CS szybko stanie się podstawowym narzędziem, którego będziesz używać.
Książka "Photoshop CS. Ćwiczenia zaawansowane" może być Twoim przewodnikiem w poznawaniu kolejnych funkcji tego narzędzia. Wykonując kolejne ćwiczenia, nauczysz się wykorzystywać Photoshopa CS do obróbki cyfrowych zdjęć.
Dzięki tej książce poznasz:
* Prostowanie i kadrowanie zdjęć
* Czyszczenie skanowanych obrazów
* Narzędzia do retuszu obrazów
* Techniki korekcji kolorów
* Tworzenie panoram
* Automatyzację pracy z wykorzystaniem zadań
* Korekcję ostrości obrazów.
Wykorzystaj Photoshopa CS w roli cyfrowej ciemni fotograficznej. Przekonasz się, że nie ma złych zdjęć -- są tylko takie, których jeszcze nikt nie obrabiał w Photoshopie.
Relacyjne bazy danych stanowią podstawę większości współczesnych systemów informatycznych. Choć poszczególne systemy zarządzania bazami danych różnią się między sobą w wielu aspektach, są jednak oparte na wspólnych podstawach teoretycznych. Jeśli zrozumiesz ten wspólny fundament, będziesz mógł z łatwością budować na nim własne aplikacje, niezależnie od tego, czy jako systemu bazodanowego użyjesz komercyjnego Oracle"a lub MS SQL-a, czy też bezpłatnego PostgreSQL.
Książka "Relacyjne bazy danych" została napisana w celu jak najbardziej przystępnego objaśnienia zagadnień relacyjnego modelu danych oraz jego znaczenia dla projektantów i twórców baz danych. Objaśnienia tych, często skomplikowanych zagadnień, przybliżają tajniki relacyjnego modelu danych wykorzystując przykłady, a nie wzory matematyczne. Dzięki ich zrozumieniu będziesz mógł projektować bazy danych szybsze, bardziej elastyczne i lepiej dopasowane do zadań, jakie mają realizować. Poznasz:
* Podstawowe pojęcia związane z bazami danych: tabele, rekordy, pola
* Sposoby pobierania danych za pomocą zapytań
* Tworzenie raportów z wyselekcjonowanych danych
* Projektowanie baz z uwzględnieniem związków między danymi, klucze i indeksy
* Sposoby przestrzegania reguł integralności danych
* Tworzenie zaawansowanych wielowarstwowych aplikacji opartych o bazy danych
* Programowanie wyzwalaczy, procedur zapisanych, użycie perspektyw
* Zastosowania transakcji
* Teorię baz danych: reguły Codda, normalizację
* Język SQL
Dr Mark Whitehorn dysponuje ogromną wiedzą w dziedzinie teorii relacyjnych baz danych. Dzięki cyklowi artykułów w brytyjskim magazynie Personal Computer World udało mu się przybliżyć ją tysiącom użytkowników.
"Po prostu doskonała. Wyjaśniając tajniki zagadnień związanych z relacyjnymi bazami danych, Mark Whitehorn oraz Bill Marklyn osiągnęli o wiele więcej niż inni autorzy. Uczynili ten temat ciekawym, a nawet wręcz zabawnym, co stawia ich poza zasięgiem jakiejkolwiek konkurencji”.
Neil Fawcett, Edytor techniczny, VNU Business Publications
Wykorzystanie wbudowanego w system Oracle języka PL/SQL w znaczący sposób zwiększa wydajność programisty systemów bazodanowych. PL/SQL łączy w sobie możliwości i elastyczność języka czwartej generacji (4GL) SQL z konstrukcjami proceduralnymi języka trzeciej generacji (3GL). Konstrukcje proceduralne są w pełni zintegrowane z Oracle SQL, co daje w rezultacie język strukturalny o ogromnym potencjale. Programy napisane w tym języku umożliwiają obsługę danych zarówno w samym systemie Oracle, jak i w zewnętrznych aplikacjach.
Książka "Oracle9i. Programowanie w języku PL/SQL" wyjaśnia główne właściwości języka oraz różnice w PL/SQL dla różnych wersji bazy danych. Dzięki niej nauczysz się projektować, testować i uruchamiać aplikacje PL/SQL działające w wielu środowiskach, jak również poznasz szczegóły zastosowania języków SQL i PL/SQL, obsługi błędów, zbioru podprogramów i pakietów, a także wiele zaawansowanych właściwości. Niniejsza pozycja umożliwia:
* Zapoznanie się z różnymi środowiskami programistycznymi języka PL/SQL, których kopie znajdują się na dołączonej płycie CD
* Poznanie szczegółów składni języka PL/SQL: zmienne, typy danych, wyrażenia, operatory oraz struktury sterujące
* Zapewnienie spójności danych dzięki instrukcjom sterowania transakcjami dostępnym w SQL-u
* Wykorzystanie kursorów, które pozwalają na tworzenie zapytań zwracających wiele wierszy oraz jawną kontrolę przetwarzania instrukcji SQL
* Tworzenie programów PL/SQL, które wykrywają i inteligentnie reagują na błędy fazy wykonania
* Wykorzystanie możliwości tworzenia kolekcji wielopoziomowych w systemie Oracle9i
* Tworzenie i korzystanie z procedur, funkcji i pakietów
* Tworzenie wyzwalaczy DML zastępujących i systemowych w celu wymuszania złożonych ograniczeń danych
* Korzystanie z zalet języka PL/SQL, takich jak: procedury zewnętrzne, wbudowany dynamiczny SQL, masowe powiązania oraz typy obiektowe
Książka jest przeznaczona zarówno dla programistów, którzy muszą nauczyć się składni i poznać zaawansowane cechy języka PL/SQL, jak i dla tych, którzy jeszcze nie poznali innych języków trzeciej generacji. Przydatna, aczkolwiek nie wymagana, jest ogólna znajomość sytemu Oracle (łączenie się z bazą danych i jej wykorzystywanie, podstawy języka SQL, itp.).
Red Hat to bez wątpienia najpopularniejsza dystrybucja systemu Linux. Z wersji na wersję staje się coraz bardziej rozbudowana, a jednocześnie coraz prostsza w instalacji i obsłudze. Red Hat Linux 8.0, z dołączonym pakietem OpenOffice i licznymi aplikacjami internetowymi (przeglądarka Mozilla, program pocztowy Evolution) może już śmiało konkurować z MS Windows także w zastosowaniach biurowych. Warto zauważyć, że pozycja Linuksa wśród systemów instalowanych na rozmaitych serwerach, w tym internetowych, jest ugruntowana i stabilna.
Książka ułatwi Ci sprawną instalację 8. wersji systemu, którą znajdziesz na płytach CD-ROM dołączonych do książki. Bogato ilustrowane, zorientowane na wykonanie konkretnych zadań rozdziały nauczą Cię korzystania z rozbudowanych możliwości tego systemu operacyjnego.
W książce omówiono między innymi:
* Instalację i konfigurację systemu Red Hat Linux 8.0
* Konfigurację i używanie środowiska GNOME
* Obsługę poczty elektronicznej oraz korzystanie z Internetu
* Korzystanie z pakietu biurowego OpenOffice.org
* Powłokę Bash
* Zastosowanie Red Hata jako serwera usług FTP, NFS, Telnet, Samba, WWW
Nie ma na co czekać! Red Hat Linux 8.0 wraz z przyjaznym dla użytkownika, w pełni zintegrowanym środowiskiem graficznym GNOME, otwiera nowe możliwości zarówno przed początkującymi, jak i doświadczonymi użytkownikami.
Dlaczego nie zacząć od razu? Ta książka to zaproszenie do przygody z Linuksem. Skorzystaj z niego.
Książka Alfreda Aho i Jeffreya Ullmana "Wykłady z informatyki z przykładami w języku C" stanowi znaczący postęp w dziedzinie metodyki nauczania podstaw informatyki. Ten nowatorski podręcznik w przystępny sposób prezentuje zagadnienia dotyczące modeli, pojęć i technik z zakresu matematyki dyskretnej i informatyki. Książka stanowi zarówno wprowadzenie do dziedziny informatyki, jak i autorytatywne źródło jej teoretycznych podstaw. Pokazuje, w jaki sposób "matematyczne abstrakcje" przekształca się w działające programy.
Podręcznik dostarcza przyszłym informatykom solidnych podstaw niezbędnych w dalszych studiach oraz w przyszłej pracy zawodowej. Zawiera liczne ćwiczenia, ułatwiające przyswojenie przedstawianej w nim wiedzy i sprawdzenie swoich umiejętności. Autorzy wymagają od czytelnika znajomości języka C.
Zakres tematyczny obejmuje między innymi:
* Iterację, indukcję i rekursję
* Zagadnienia związane z czasem wykonywania programów
* Kombinatorykę i prawdopodobieństwo
* Modele danych oparte na drzewach, listach i zbiorach
* Relacyjny i grafowy model danych
* Wzorce, automaty i wyrażenia regularne, rekurencyjny model wzorców
* Logikę zdań
* Logikę predykatów
SolidEdge to program należący do grupy aplikacji MCAD -- wspomagających
projektowanie konstrukcji mechanicznych. Za jego pomocą można wykonać
przestrzenne modele części, podzespołów i zespołów, a następnie
przygotować dokumentację techniczną projektowanej konstrukcji. SolidEgde
może również współpracować z innymi aplikacjami inżynierskimi --
obliczeniowymi, symulacyjnymi i wspomagającymi wytwarzanie.
Książka "Solid Edge. Komputerowe wspomaganie projektowania" to poradnik
dla użytkowników najnowszej (v.15) wersji tej aplikacji. Interesujące wiadomości
znajdą w nim zarówno początkujący, jak i zaawansowani użytkownicy. Książka opisuje proces tworzenia modeli części i generowania dokumentacji. Zawarte w niej zagadnienia są podzielone na dwie części -- pierwsza przeznaczona jest dla osób dopiero rozpoczynających pracę z SolidEdge, a druga -- dla użytkowników mających już jakieś doświadczenie w korzystaniu z tej aplikacji.
* Praca na płaszczyźnie, moduł Draft
* Modelowanie bryłowe
* Modelowanie powierzchni
* Tworzenie zespołów
* Tworzenie raportów
* Wykonanie projektu formy wtryskowej
* Tworzenie dokumentacji
* Dostosowanie programu do własnych potrzeb
Biblioteka OpenGL to zestaw procedur graficznych, których możemy używać w rozmaitych językach programowania dla różnych systemów operacyjnych. Jest to ogólnie uznany standard -- jego znajomość to podstawa do zajmowania się grafiką komputerową.
Książka przedstawia jedynie fragment możliwości OpenGL, wystarczający jednak, by rozpocząć przygodę z programowaniem grafiki trójwymiarowej. W odróżnieniu od innych pozycji poświęconych tej bibliotece, przykłady zostały napisane w języku ObjectPascal (Delphi), co umożliwi także programistom nie posługującym się językami C/C++ rozpoczęcie przygody z grafiką 3D.
W książce omówiono:
* Podstawy OpenGL: punkty, linie, trójkąty, wielokąty, kolorowanie
* Rysowanie złożonych obiektów za pomocą kwadryk
* Posługiwanie się perspektywą i kamerą
* Materiały: kolor, połysk, emisję
* Zagadnienia związane ze światłem
* Tworzenie dynamicznych scen
* Składanie przekształceń
* Operacje na macierzach
* Tworzenie brył
* Tekstury i ich właściwości
* Napisy w OpenGL
* Tworzenie prostej gry
Nauka, filozofia i religia w Matrix
Rok 2003 po wejściu na ekrany kin filmów "Matrix: Reaktywacja" i "Matrix: Rewolucje" będzie kolejnym rokiem Matriksa. Wychodząca w cztery lata po pierwszym filmie książka "Wybierz czerwoną pigułkę" jest znaczącym przyczynkiem do teorii literatury i filmu, a zarazem bardzo przystępnym wyborem esejów dla niespecjalistów, którzy po prostu uwielbiają Matrix z jego złożoną i zastanawiającą fabułą.
Książka zawiera odpowiedzi na wiele pytań, które nasuwają się po obejrzeniu filmu, przedstawia nowe i śmiałe interpretacje tego kinowego bestselleru. Jest niezbędną lekturą dla zainteresowanych szeroko rozumianą, kulturową i literacką analizą jednego z najważniejszych filmów dwudziestego wieku, ponieważ łączy szczegółowe ujęcie wielu filozoficznych, literackich i ekonomicznych zagadnień obecnych w Matriksie z jasnym i wartkim stylem.
W książce zgromadzono eseje wielu doktorów, którzy nie są lekarzami, lecz ekonomistami, filozofami, badaczami religii, literatury i mediów, pisarzami science fiction, wynalazcami i technologami. Doktorzy przyrządzili interpretacyjny eliksir, który smakuje znakomicie.
Czym jest Matrix? Efektowną mieszanką kina akcji, filmów kung-fu i science-fiction, czy kryjącą w sobie wiele warstw filozoficzną opowieścią o zdehumanizowanym świecie? I czym jest Matrix? Cyfrową halucynacją, czy rzeczywistością, którą sami sobie budujemy? Na te pytania starają się odpowiedzieć autorzy książki poświęconej najbardziej kultowemu filmowi przełomu wieków.
Bracia Wachowscy, zapytani ile warstw znaczeniowych zawiera Matrix odpowiadają: "Więcej niż można przypuszczać".
Ta książka pozwoli Ci odkryć przynajmniej niektóre z nich i pobudzić do własnych poszukiwań.
Wybierz czerwoną pigułkę i zanurz się w świecie Matriksa, w którym nic nie jest takie, jakim zdaje się być na pierwszy rzut oka.
Adobe Premiere 6.5 umożliwia montaż cyfrowego wideo na zwykłych komputerach PC i Apple. Jego możliwości w zupełności wystarczają profesjonalistom, dla początkującego użytkownika mogą być nawet oszałamiające.
"Adobe Premiere 6.5. Biblia" to książka dla producentów multimediów, projektantów witryn internetowych, grafików, artystów, filmowców oraz użytkowników kamer wideo -- dla wszystkich, którzy, korzystając z komputera, chcą tworzyć filmy wideo i umieszczać je na taśmach VHS, płytach CD-ROM lub w Internecie. Czytając tę książkę szybko się przekonasz, że jest ona czymś więcej niż tylko źródłem informacji opisującym praktycznie wszystkie funkcje programu Adobe Premiere. Omawiane w książce koncepcje i możliwości programu Premiere są wyjaśniane za pomocą wielu krótkich ćwiczeń. Książka jest niezastąpionym źródłem informacji zarówno dla początkujących, jak i zaawansowanych użytkowników. Nie zwlekaj. Zacznij czytać i dowiedz się, jak zrealizować swoje pomysły.
* Twórz cyfrowe filmy, prezentacje i wideoklipy korzystając z własnego komputera
* Eksportuj cyfrowe projekty wideo na dysk twardy, płyty CD-ROM, taśmy VHS lub do Internetu
* Łącz narrację, muzykę i efekty dźwiękowe wzbogacając nimi obraz
* Odkryj możliwości współpracy programu Premiere 6.5 z aplikacjami takimi jak Photoshop, Illustrator, After Effects czy GoLive
* Przekształć zwykłe sekwencje wideo nakręcone typową cyfrową kamerą w pełne życia i pasji projekty filmowe
* Wykorzystaj w produkcji grafikę JPEG i TIFF, a także cyfrowe wideo i dźwięk
Uzupełnieniem książki jest CD-ROM zawierający między innymi próbną wersję programu Adobe Premiere 6, klipy wideo wykorzystywane w ćwiczeniach zawartych w książce i bibliotekę sekwencji wideo, dźwięków i grafik, które możesz stosować we własnych filmach.
Książka ta stanowi nie tylko doskonałe źródło wiedzy o programie Adobe Premiere 6.5. Dzięki niej w krótkim czasie będziesz mógł konkurować z najlepszymi montażystami.
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion
Przy tworzeniu systemów informatycznych najważniejsze zadania wykonuje się, zanim powstanie pierwszy fragment kodu źródłowego. Wymogi stawiane współczesnym aplikacjom powodują, że inżynieria oprogramowania staje się kwestią kluczową. Opracowanie odpowiedniego projektu oraz właściwy dobór technologii i metodologii zapewniają szybką i efektywną pracę nad systemem. Niezwykle ważne jest poznanie dostępnych w języku Java struktur danych i umiejętność ich wykorzystania. Prawidłowo dobrana struktura danych znacznie przyspiesza nie tylko implementację aplikacji, ale również działanie gotowego systemu.
Książka "Struktury danych i techniki obiektowe na przykładzie Javy 5.0" przedstawia podstawowe struktury danych i sposoby ich wykorzystania podczas programowania obiektowego. Wszystkie wiadomości zostały zaprezentowane z uwzględnieniem reguł nowoczesnej inżynierii oprogramowania. Czytając kolejne rozdziały książki, poznasz najlepsze zastosowania różnych struktur danych oraz wady i zalety ich implementacji. Przede wszystkim jednak zrozumiesz potrzebę stosowania tak wielu struktur danych.
* Cykl życia oprogramowania
* Zastosowanie języka UML w projektowaniu systemów
* Obsługa błędów i wyjątków
* Testowanie oprogramowania
* Dziedziczenie i hierarchia klas
* Listy jedno- i dwukierunkowe
* Interfejs Collection
* Stosy i kolejki
* Algorytmy rekurencyjne
* Sortowanie danych
* Drzewa wyszukiwania
* Grafy
Po przeczytaniu tej książki zrozumiesz zasadę:
"Pomyśl, a dopiero potem pisz kod".
Praktyczne rozwiązania dla zaawansowanych programistów
Do tworzenia wydajnych programów nie wystarczy teoretyczna wiedza o algorytmach, strukturach danych i inżynierii oprogramowania. Istnieje pokaźna liczba sztuczek, sprytnych technik i praktycznych rozwiązań, których znajomość jest niezbędna każdemu programiście.
Niniejsza książka zawiera pokaźny zestaw technik, które pomogą zaoszczędzić sporo czasu. Techniki te zostały opracowane przez twórców kodu poszukujących eleganckich i wydajnych sposobów tworzenia lepszego oprogramowania. W "Uczcie programistów" doświadczony programista Hank Warren dzieli się z Czytelnikami znanymi sobie sztuczkami, które zgromadził wraz z imponującym doświadczeniem w dziedzinie programowania aplikacji i systemów operacyjnych. Większość z tych sztuczek jest niezwykle praktyczna, niektóre zostały przedstawione jako ciekawostki lub zaskakujące rozwiązania. Ich zestawienie stanowi niesamowitą kolekcję, która będzie pomocna nawet dla najbardziej doświadczonych programistów w rozszerzeniu ich umiejętności.
W książce opisano następujące zagadnienia:
* Obszerna kolekcja użytecznych sztuczek programistycznych
* Drobne algorytmy rozwiązujące często spotykane problemy
* Algorytmy kontroli przekroczenia ograniczeń
* Zmiana kolejności bitów i bajtów
* Dzielenie całkowite i dzielenie przez stałe
* Elementarne operacje na liczbach całkowitych
* Kod Gray"a
* Krzywa Hilberta
* Formuły wyznaczania liczb pierwszych
Niniejsza książka jest doskonałą pozycją dla wszystkich programistów, którzy mają zamiar tworzyć wydajny kod. "Uczta programistów" nauczy Cię tworzenia aplikacji wysokiej jakości -- wyższej niż wymagana na uczelniach i kursach programowania.
Strukturalna organizacja systemów komputerowych. Wydanie VWydawnictwo Helion
Doskonałe omówienie zasad działania współczesnych komputerów
* Dowiedz się, jak działają procesory i magistrale
* Poznaj reguły algebry logiki
* Odkryj tajemnice współczesnych systemów operacyjnych
Dla większości użytkowników komputerów, nawet tych, dla których komputer jest narzędziem pracy, wiedza o tym urządzeniu kończy się na umiejętności instalowania i uruchamiania aplikacji. Współczesne, intuicyjne systemy operacyjne, technologie maksymalnie upraszczające pracę z komputerem, łatwe w obsłudze aplikacje -- wszystko to powoduje, że znajomość zasad funkcjonowania komputerów wydaje się nam niepotrzebna. Tymczasem taka wiedza może okazać się przydatna nie tylko specjaliście, ale również zwykłemu użytkownikowi. Dzięki niej twórcy aplikacji są w stanie zoptymalizować ich działanie i zrozumieć przyczyny błędów, projektanci urządzeń peryferyjnych wybrać najlepszy sposób komunikacji swojego produktu z komputerem, a osoby zainteresowane kupnem nowego sprzętu dokonać świadomego wyboru.
W książce "Strukturalna organizacja systemów komputerowych. Wydanie V" zaprezentowano system komputerowy w ujęciu hierarchicznym, jako zespół zależnych od siebie warstw. Poznajemy go, poczynając od poziomu "logiki cyfrowej", poprzez mikroarchitekturę i poziom maszynowy, aż do poziomu systemu operacyjnego i języka asemblera. Książka przedstawia również historię rozwoju komputerów, zadania systemów operacyjnych, zasady programowania w języku maszynowym oraz architektury najpopularniejszych procesorów.
* Procesory i pamięć operacyjna
* Wykonywanie rozkazów języka maszynowego
* Operacje wejścia i wyjścia
* Arytmetyka cyfrowa
* Magistrale ISA, PCI oraz PCI Express
* Przetwarzanie danych przez procesory
* Programowanie w języku asemblera
* Działanie systemów operacyjnych
* Przetwarzanie rozproszone i obliczenia równoległe
Dowiedz się jak działa Twój komputer.
Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowejWydawnictwo Helion
Umiejętność programowania nie ma już charakteru czysto zawodowego. Księgowi muszą się posługiwać arkuszami kalkulacyjnymi i edytorami tekstu, fotografowie korzystają z edytorów zdjęć, muzycy programują syntezatory, zaś profesjonalni programiści tworzą skomplikowane aplikacje. Programowanie jest więc bardzo pożądaną umiejętnością, potrzebną nie tylko informatykom.
Projektowanie oprogramowania wymaga takich samych zdolności analitycznych, jak matematyka. Jednak, w przeciwieństwie do matematyki, praca z programami jest aktywnym sposobem zdobywania wiedzy. Obcowanie z oprogramowaniem daje możliwość stałej interakcji, co pozwala na zgłębianie wiedzy, eksperymentowanie z nią oraz na stałą samoocenę.
Autorzy tej klasycznej publikacji stawiają tezę, iż "każdy powinien nauczyć się, jak projektować oprogramowanie" i właśnie nauka podstaw projektowania jest jej tematem głównym. W książce znajdziesz wiele podstawowych algorytmów, wyjaśnienia takich pojęć, jak akumulacja wiedzy czy równość ekstensjonalna i intensjonalna, słowem wszystko to, co stanowi teoretyczną podstawę wiedzy programistycznej.
Poznasz między innymi:
* Podstawowe struktury, z których składają się programy komputerowe
* Proste i złożony typy danych
* Metody przetwarzania danych
* Programowanie z użyciem rekurencji, algorytmy z nawracaniem
* Projektowanie abstrakcyjne
* Sposoby gromadzenia wiedzy
* Wykorzystanie wektorów
Z lektury książki "Projektowanie oprogramowania. Wstęp do programowania i techniki komputerowej" skorzystają zarówno studenci informatyki, jak też i słuchacze innych kierunków oraz wszystkie osoby, które chcą podbudować swoją wiedzę praktyczną solidnymi i przydatnymi podstawami teoretycznymi.
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Doskonały przewodnik po najnowszej wersji języka PHP
dla twórców dynamicznych serwisów WWW
Książka "PHP. Programowanie. Wydanie III" to kolejne wydanie praktycznego przewodnika dla programistów stron internetowych. Jeden z najlepszych programistów PHP -- Leon Atkinson, uczy wszystkiego, co potrzebujesz, by stworzyć dobrą i szybką aplikację sieciową. Dokładnie opisuje składnię PHP i kluczowe elementy języka. Atkinson przedstawia także najważniejsze funkcje PHP, w tym funkcje wejścia-wyjścia, przetwarzania danych, matematyczne, daty, czasu, konfiguracji, funkcje umożliwiające współpracę z bazami danych, funkcje graficzne i sieciowe. Prezentuje on również działanie PHP na przykładach realizujących sortowanie, przeszukiwanie, analizę łańcuchów i inne zadania.
Książka składa się z czterech części:
* wstępu do programowania,
* przewodnika po wszystkich funkcjach,
* przeglądu typowych problemów programistycznych
* części umożliwiającej zastosowanie zdobytej wiedzy przy tworzeniu witryn.
Pierwsza część zajmuje się kwestiami dotyczącymi wszystkich języków programowania: jak wygląda skrypt PHP, jak sterować przebiegiem programu i jak zarządzać danymi.
Część druga organizuje funkcje według ich zastosowania i zawiera przykłady ich zastosowania. PHP udostępnia bardzo dużo funkcji, dlatego część ta jest najobszerniejsza.
Część trzecia zajmuje się rozwiązywaniem typowych problemów programistycznych, takich jak sortowanie czy generowanie grafiki.
Ostatnia część udziela porad dotyczących tworzenia całych witryn sieciowych za pomocą PHP.
* Poznaj wzorce projektowe w PHP, techniki programowania obiektowego i możliwości wykorzystania języka XML
* Wykorzystaj nowe funkcje i możliwości PHP 5
* Napisz wydajne aplikacje internetowe, wykorzystując najlepsze praktyki inżynierii oprogramowania
Błyskawiczny kurs programowania aplikacji w języku C
Język C, mimo prawie 30-letniej historii, cieszy się niesłabnącą popularnością wśród programistów. Wszyscy jego użytkownicy cenią w nim prostą i czytelną składnię, niewielki i łatwy do zapamiętania zakres słów kluczowych oraz duże możliwości, dzięki którym za pomocą C można rozwiązać niemal każde zagadnienie programistyczne. Zewnętrzne biblioteki, dostępne w sieci oraz dołączane do najpopularniejszych narzędzi programistycznych, dodatkowo rozszerzają możliwości C.
Książka "Programowanie w języku C. Szybki start" to podręcznik dla tych, którzy chcą poznać C w praktyce i nie chcą przebijać się przez dziesiątki stron opisów teoretycznych. Każde zagadnienie -- od najprostszych, związanych ze strukturą programu i zasadami kompilacji aż do złożonych typów danych i obsługi plików zewnętrznych -- jest przedstawione w postaci bogato ilustrowanej sekwencji czynności. Wykonując kolejne przykłady z książki, poznasz wszystkie podstawowe wiadomości o programowaniu w języku C.
* Struktura programu w języku C
* Typy danych
* Sterowanie działaniem programu
* Korzystanie ze standardowego wejścia i wyjścia
* Deklarowanie i stosowanie funkcji
* Dyrektywy preprocesora
* Wskaźniki i zarządzanie pamięcią
* Obsługa plików
* Złożone typy danych
Poznaj zalety i możliwości najpopularniejszego języka programowania.
Książka "Algorytmy w C" jest doskonałą pomocą dla programistów, którym w codziennej pracy potrzebne są sprawdzone rozwiązania. Nie ma tu teoretycznych dywagacji tak charakterystycznych dla większości książek o strukturach danych i algorytmach. Znajdziesz w niej za to przystępnie podane informacje i praktyczne techniki programowania.
Wyjątkowo elegancki styl programowania i pisania autora, Kyle’a Loudona, ułatwia poznanie najważniejszych struktur danych, takich jak listy, stosy, kolejki, zbiory, sterty, kolejki priorytetowe i grafy. Autor prezentuje użycie algorytmów sortujących, wyszukiwania, analiz numerycznych, kompresji danych, szyfrowania danych, typowych algorytmów obsługi grafów oraz geometrii analitycznej. W rozdziałach poświęconych kompresji i szyfrowaniu czytelnik znajdzie nie tylko gotowy, szybki w działaniu kod, ale też informacje przydatne dla osób, które nigdy nie miały czasu ani chęci zagłębiać się w omawiane zagadnienia.
W tekście umieszczono także kody wraz z przykładami zastosowania poszczególnych struktur danych i algorytmów. Komplet kodów źródłowych znajduje się na płycie CD-ROM. Kod ten został napisany w taki sposób, byś łatwo mógł go wykorzystać we własnych aplikacjach.
W książce omówiono:
* Wskaźniki
* Rekurencję
* Analizę algorytmów
* Struktury danych (listy, stosy, kolejki, zbiory, tablice asocjacyjne, drzewa, sterty, kolejki priorytetowe i grafy)
* Sortowanie i wyszukiwanie
* Metody numeryczne
* Kompresję danych
* Szyfrowanie danych
* Algorytmy operujące na grafach
* Algorytmy przydatne do obliczeń geometrycznych.
Zakładając znajomość podstaw języka C++ książka ta umożliwia programistom rozwinięcie zaawansowanych umiejętności programowania poprzez stosowanie styli i idiomów języka C++. Struktura książki zorganizowana jest wokół abstrakcji wspieranych przez język C++: abstrakcyjnych typów danych, kombinacji typów w strukturach dziedziczenia, programowania obiektowego i dziedziczenia wielokrotnego. W książce przedstawione zostają także te idiomy, które nie znajdują bezpośredniego wsparcia w języku C++, takie jak wirtualne konstruktory, obiekty prototypów i zaawansowane techniki odzyskiwania nieużytków.
Książka:
* Przedstawia zalety i potencjalne pułapki zaawansowanych technik programowania w języku C++.
* Sposoby efektywnego łączenia abstrakcji języka C++ ilustruje szeregiem krótkich, ale stanowiących wystarczający instruktaż przykładów.
* Dostarcza wielu praktycznych zasad wykorzystania języka C++ do implementacji rezultatów projektowania obiektowego.
* Omawia wszystkie właściwości edycji 3.0 języka C++, w tym zastosowanie szablonów w celu wielokrotnego wykorzystania kodu.
* Przedstawia istotne aspekty rozwoju złożonych systemów, w tym projektowanie bibliotek, obsługę wyjątków i przetwarzanie rozproszone.
Książka ta jest ważnym podręcznikiem dla każdego programisty aplikacji lub programisty systemowego posługującego się językiem C++.
O autorze:
James Coplien pracuje w departamencie związanym z badaniami nad produkcją oprogramowania w firmie AT&T Bell Laboratories. Jest także konsultantem przy dużych projektach wykorzystujących technologie obiektowe.
[więcej...]
Nie ucz się C++ -- naucz się programować w C++
* C++ od najprzydatniejszych elementów, a nie od elementów najprostszych
* Rzeczywiste zadania i ich rozwiązania
* Opis C++ i biblioteki standardowej
* Książka sprawdzona w praktyce na Uniwersytecie Stanford
Książka ta ma pomóc Czytelnikowi w szybkim nauczeniu się języka C++ poprzez pisanie w nim przydatnych programów. Ta strategia wydaje się oczywista, jednak jest odmienna od powszechnie przyjętej metodologii nauczania. Autorzy nie będą uczyć Cię języka C, choć wielu uważa, że jest to niezbędne. W prezentowanych przykładach od razu wykorzystane zostaną wysokopoziomowe struktury, a prezentacja sposobu ich zastosowania będzie często wyprzedzać omówienie ich fundamentów. Dzięki takiemu podejściu zaczniesz szybko pisać programy wykorzystujące idiomy C++.
Zastosowany w książce schemat autorzy wypróbowali podczas kursów prowadzonych na Uniwersytecie Stanforda, na których studenci uczą się pisać programy już na pierwszych zajęciach.
Poznaj:
* Podstawowe cechy C++
* Operacje na ciągach
* Pętle i liczniki
* Przetwarzanie danych "porcja po porcji"
* Organizację programów i danych
* Kontenery sekwencyjne i analiza ciągów tekstowych
* Algorytmy biblioteki standardowej
* Kontenery asocjacyjne
* Funkcje uogólnione i definiowanie własnych typów
* Zarządzanie pamięcią i niskopoziomowymi strukturami danych
* Półautomatyczne zarządzanie pamięcią
* Programowanie zorientowane obiektowo
O autorach:
Andrew Koenig jest członkiem działu badającego systemy oprogramowania w Shannon Laboratory firmy AT&T oraz redaktorem projektu komitetów standaryzacyjnych języka C++. [więcej...]
Barbara Moo jest konsultantką z dwudziestoletnim doświadczeniem programistycznym, zarządzała projektem pierwszego kompilatora C++. [więcej...]
Programowanie w Prologu różni się zasadniczo od programowania w językach strukturalnych, takich jak Pascal czy C i językach obiektowych jak Java. Dla wielu osób zaczynających przygodę z Prologiem zaskoczeniem jest fakt, że pisanie programu w tym języku nie polega na kodowaniu algorytmu. Programista opisuje obiekty i związki między nimi, a także podaje warunki, jakie powinno spełniać szukane rozwiązanie. System sam przeprowadza obliczenia w oparciu o podane zależności logiczne, zaś programista jedynie częściowo może wpływać na sposób działania programu.
Książka "Prolog. Programowanie" to podręcznik tego niezwykłego języka programowania stosowanego przy rozwiązywaniu problemów z różnych dziedzin: od logiki matematycznej i symbolicznego rozwiązywania równań przez analizę języka naturalnego, aż do zagadnień związanych ze sztuczną inteligencją. Zawiera ona:
* Wprowadzenie do Prologu
* Podstawowe struktury danych
* Nawracanie, sterowanie nawracaniem za pomocą symbolu odcięcia
* Operacje wejścia/wyjścia
* Predykaty
* Składnię reguł gramatycznych i analizę języka naturalnego
* Wiele przykładowych programów
Wszystkim rozdziałom towarzyszą ćwiczenia. Uzupełnieniem tekstu książki są dodatki omawiające m.in. rozwiązania ćwiczeń i różnice między najważniejszymi wersjami Prologu.
"Prolog. Programowanie" to książka dla studentów matematyki i informatyki, a także dla wszystkich zainteresowanych programowaniem opartym na regułach logicznych. Jeśli chcesz podjąć wyzwanie i nauczyć się Prologu, jest książka dla Ciebie.
Badanie struktur danych, elementarnych składników wykorzystywanych w informatyce, jest podstawą, w oparciu o którą możesz zdobywać cenne umiejętności. Znajomość struktur danych jest niezbędna studentom, którzy chcą programować czy też testować oprogramowanie.
W niniejszej książce zwrócono uwagę na trzy ważne aspekty struktur danych: po pierwsze, na związek struktur danych z algorytmami, między innymi na złożoność obliczeniową algorytmów. Po drugie, struktury te prezentowane są w sposób zgodny z zasadami projektowania obiektowego i obiektowym paradygmatem programowania. Po trzecie, ważną częścią książki są implementacje struktur danych w języku C++.
Książka prezentuje:
* Podstawy projektowania obiektowego w C++
* Analizę złożoności
* Listy powiązane
* Stosy i kolejki
* Rekurencję
* Drzewa binarne
* Sterty
* Drzewa wielokrotne
* Grafy
* Sortowanie i mieszanie
* Kompresja danych
* Zarządzanie pamięcią
Książka ta dostarcza studentom informatyki nie tylko niezbędnej wiedzy na temat algorytmów i struktur danych, ale prezentuje jednocześnie sposoby ich implementacji w języku C++, obecnie jednym z wiodących języków programowania. Dostarcza ona więc nie tylko wiedzy teoretycznej, ale również pozwala rozwinąć praktyczne umiejętności przydatnych w przyszłej pracy zawodowej.
Teoria i praktyka prowadzenia projektów programistycznych
* Naucz się zasad programowania ekstremalnego i zastosuj je w praktyce
* Od konceptualizacji do przekazania działającego systemu -- poznaj najlepsze sposoby pracy na każdym etapie tworzenia oprogramowania
* Poznaj znaczenie wszystkich uczestników procesu tworzenia oprogramowania: programistów, menedżerów i klientów
* Dowiedz się, jak rozwiązać najczęstsze problemy powstające przy wdrażaniu metodologii programowania ekstemalnego
"eXtreme programming" przedstawia nową metodologię i praktykę programowania w przystępny, a jednocześnie kompleksowy sposób. Autorzy omawiają podstawowe pojęcia programowania ekstremalnego: planowanie edycji, programowanie w parach, wczesne testowanie, "zręczne modelowanie" i refaktoryzację. Zostały one zaprezentowane na przykładzie konkretnego projektu, którego realizację omówiono w książce.
Kto powinien przeczytać tę książkę? Będzie ona niewątpliwie pożyteczną lekturą dla każdego, kto choć częściowo związał swe życie z tworzeniem oprogramowania -- programisty, menedżera czy koordynatora projektu. I nawet gdyby miało skończyć się tylko na czytaniu -- bez praktycznego zastosowania w najbliższym projekcie poznanych reguł, wiedza o programowaniu ekstremalnym okaże się bez wątpienia pożyteczna.
* Naucz się zasad programowania ekstremalnego i zastosuj je w praktyce
* Od konceptualizacji do oddania działającego systemu -- poznaj najlepsze sposoby pracy na każdym etapie tworzenia programowania
* Poznaj znaczenie wszystkich uczestników procesu tworzenia oprogramowania: programistów, menedżerów i klientów
* Dowiedz się, jak rozwiązać najczęstsze problemy powstające przy wdrażaniu metodologii programowania ekstemalnego
Poznanie istoty programowania komputerów można zacząć od analizy języków programowania, ich struktur, typów danych i instrukcji. Jednak mnogość języków, różnice pomiędzy nimi i możliwość wykorzystania ich do różnych zadań sprawiają, że przeprowadzenie takiej analizy będzie niezwykle czasochłonne, a jednocześnie nie będzie gwarantowało poznania wszystkich koncepcji i paradygmatów programowania. Naukę koncepcji programowania najlepiej rozpocząć od poznania modelowych struktur realizowanych za pomocą modeli obliczeniowych -- konstrukcji definiujących sposób realizacji obliczeń, nie powołujących się na konkretny język.
Książka "Programowanie. Koncepcje, techniki i modele" prezentuje programowanie jako zbiór takich właśnie modeli. Opisuje je w postaci kodów stworzonych w prostym języku podstawowym przeznaczonym dla abstrakcyjnego komputera. W książce przedstawiono zarówno modele ogólne -- programowanie deklaratywne, współbieżność deklaratywną, współbieżność przesyłania komunikatów, stan jawny, programowanie zorientowane obiektowo, współbieżność stanu dzielonego oraz programowanie relacyjne -- jak i modele specjalizowane, takie jak programowanie graficznych interfejsów użytkownika, programowanie rozproszone oraz programowanie z ograniczeniami. Publikacja zawiera wiele fragmentów programów i ćwiczeń. Można je uruchomić w ramach systemu Mozart Programming System -- pakietu programistycznego rozprowadzanego na licencji open source.
* Podstawowe założenia problematyki programowania
* Notacja Backusa-Naura
* Gramatyki kontekstowe i bezkontekstowe
* Zasada działania maszyny abstrakcyjnej
* Typy danych, instrukcje i funkcje
* Drzewa i analiza składniowa
* Metodologie projektowania programów
* Programowanie współbieżne
* Zasady projektowanie i programowanie obiektowego
* Projektowanie interfejsów użytkownika
* Obliczenia rozproszone
Pisanie niezawodnych programów wymaga opanowania koncepcji leżących u ich podstaw. Dzięki tej książce poznasz je wszystkie.
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktykWydawnictwo Helion
Czytelny i przejrzysty kod to podstawa sprawnego tworzenia aplikacji. W przypadku pracy zespołowej stosowanie wspólnego standardu kodowania to konieczność. Pisanie kodu w oparciu o określone standardy kodowania przyspiesza powstawanie programu, ułatwia komunikację pomiędzy członkami zespołu i pozwala na szybkie wdrożenie nowych programistów do projektu. Oczywiście, w każdej firmie lub zespole można ustalić własny standard kodowania -- ważne jest jednak, aby opierał się na określonych regułach, wynikających ze specyfiki języka programowania.
Książka "Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk" zawiera opis wspomnianych reguł. Przedstawia zasady pisania kodu źródłowego i standaryzowania określonych zapisów, operacji i sposobów wykorzystania elementów języka C++. Każda z zasad jest szczegółowo omówiona i poparta praktycznymi przykładami. Książka prezentuje najlepsze ze znanych praktyk -- zarówno "starych", jak i tych, które całkiem niedawno uległy standaryzacji, oraz opisuje techniki, o których nie słyszeli nawet programiści z wieloletnim doświadczeniem.
* Organizacja kodu
* Styl projektowy i styl kodowania
* Skalowalność kodu
* Racjonalna i efektywna obsługa błędów
* Prawidłowe stosowanie elementów języka
* Odpowiednie korzystanie z STL
* Bezpieczeństwo typów
Usprawnij pracę, stosując standardy kodowania -- gdy za parę miesięcy będziesz musiał wrócić do swoich dzisiejszych programów, przekonasz się, że było warto.
Poznaj profesjonalne techniki programistyczne
C++ to jeden z najpopularniejszych języków programowania. Ma zwięzłą i elegancką składnię, czytelny i logiczny model obiektów i starannie opracowane biblioteki. Jego możliwości dają programiście niemal nieograniczoną kontrolę nad komputerem. Jednak sprawne i efektywne programowanie w C++ to prawdziwa sztuka. Wymaga staranności, dokładnego zaplanowania tworzonej aplikacji oraz wiedzy o funkcjach i mechanizmach, jakie można zastosować.
Książka "C++. Sztuka programowania" przedstawia profesjonalne sposoby tworzenia aplikacji w języku C++. Nie opisuje podstaw języka – skupia się na tworzeniu praktycznych aplikacji z wykorzystaniem profesjonalnych technik programistycznych. Wykonując zawarte w książce przykłady, rozwiążesz różne zadania programistyczne i osiągniesz biegłość w posługiwaniu się językiem C++.
* Szablony STL, biblioteki i model obiektowy języka C++
* Mechanizm odzyskiwania pamięci
* Wykorzystanie wielowątkowości w aplikacjach
* Eksperymentalne elementy języka C++
* Aplikacje internetowe w C++
* Techniki sztucznej inteligencji
* Tworzenie własnego interpretera C++
O autorze:
Herb Schildt jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows.
[więcej...]
Przystępny kurs programowania dla wszystkich
* Poznaj najpopularniejsze języki programowania
* Zorganizuj sobie pracę przy tworzeniu aplikacji
* Napisz własny program
* Przetestuj aplikacje i usuń błędy
Mimo dynamicznego rozwoju informatyki wśród większości użytkowników komputerów nadal istnieje przekonanie, że programowanie jest zajęciem dla wybrańców posiadających ogromną i niemal tajemną wiedzę. Tymczasem pisanie programów to umiejętność, którą może opanować każdy. Oczywiście nauka programowania wymaga poznania wielu zagadnień teoretycznych i praktycznych, ale nie wymaga od osoby uczącej się żadnych niezwykłych umiejętności. Każdy może poznać zasady pisania programów, zarówno dla celów hobbystycznych, jak i zawodowych.
Książka "Programowanie. Od podstaw" to podręcznik programowania przeznaczony dla osób, które dopiero rozpoczynają swoją komputerową przygodę. Zawiera uniwersalne wiadomości przydatne każdemu programiście niezależnie od tego, co i w jakim języku będzie tworzyć. Czytając ją, poznasz wady i zalety różnych języków programowania, sposoby realizacji typowych zadań programistycznych i metody testowania aplikacji. Dowiesz się, jak komputery przechowują informacje, jakie systemy liczbowe wykorzystuje się w programowaniu i jakie narzędzia będą Ci potrzebne podczas pracy. Zdobędziesz solidne podstawy, które pozwolą Ci na dalsze rozwijanie swoich umiejętności.
* Sposób interpretacji kodu źródłowego przez komputer
* System binarny i szesnastkowy
* Warsztat pracy programisty
* Komentarze w kodach programów
* Definiowanie zmiennych
* Instrukcje warunkowe
* Testowanie i usuwanie błędów
* Projektowanie interfejsów użytkownika
* Operacje na plikach
* Wykorzystywanie rejestru Windows
* Zarządzanie wersjami kodu
* Kompilacja
Przekonaj się, że programowanie nie jest trudne.
Naucz się języka C++ w najlepszy sposób:
poznając go z punktu widzenia inżynierii programowania
* Demonstruje praktyczne techniki stosowane przez zawodowych programistów
* Zawiera poprawny, gruntownie przetestowany przykładowy kod źródłowy programów oraz przykłady zaczerpnięte z praktyki
* Skoncentrowana na nowoczesnych technologiach, które muszą poznać programiści
* Zawiera rady profesjonalistów, które pozwolą czytelnikowi tworzyć najlepsze programy
Książka Wiktora Shterna zatytułowana "C++. Inżynieria programowania" stosuje wyjątkowy sposób nauki języka C++ przeznaczony dla programistów mających doświadczenie w dowolnym języku programowania: prezentuje możliwość zastosowania w C++ najlepszych technik programistycznych oraz metodologii inżynierii programowania. Nawet jeżeli już wcześniej wykorzystywałeś język C++, ta wyczerpująca książka przedstawi sposób tworzenia poprawniejszego kodu, łatwiejszego do utrzymania i modyfikacji.
Książka niniejsza uczy zasad programowania obiektowego przed samą nauką języka, co pozwala wykorzystać wszystkie zalety OOP do tworzenia poprawnych aplikacji. Udoskonalisz znajomość kluczowych składników standardu ANSI/ISO C++ rozpatrywanych z punktu widzenia inżyniera: klas, metod, modyfikatorów const, dynamicznego zarządzania pamięcią, złożeń klas, dziedziczenia, polimorfizmu, operacji wejścia-wyjścia i wielu innych. Jeżeli pragniesz tworzyć w języku C++ najlepsze programy, musisz projektować, myśleć i programować stosując najlepsze obecnie praktyki inżynierii programowania. Lektura książki "C++. Inżynieria programowania" pomoże Ci w tym.
Książka "C++. Inżynieria programowania" kładzie nacisk na:
* Prezentację zastosowań zasad inżynierii programowania w programach pisanych w C++
* Tworzenie kodu łatwego do późniejszych modyfikacji
* Praktyczne zrozumienie zasad programowania obiektowego przed nauką samego języka
* Przedstawienie najnowszych cech standardu ANSI/ISO C++
* Zaprezentowanie setek realistycznych przykładów kodu programów
Kompletny przewodnik po języku asemblera
Asembler, mimo że jest zdecydowanie trudniejszy w nauce niż języki programowania wysokiego poziomu, jest wśród programisów bardzo popularny. Tworzone w nim programy są mniejsze, zajmują mniej pamięci i miejsca na dysku, a przede wszystkim działają szybciej. Opracowano język HLA, dzięki któremu programowanie w asemblerze przebiega płynnie i polega na analizie implementacji poszczególnych, wysokopoziomowych konstrukcji, znanych z języków takich jak C, C++ czy Pascal.
Książka "Asembler. Sztuka programowania" to podręcznik programowania w języku asemblera oparty na języku HLA. Opisuje 32-bitową architekturę procesorów Intel oraz zasady tworzenia programów w języku HLA. Przedstawia sposoby pisania, kompilacji i uruchamiania programów wykorzystujących różne, nawet najbardziej złożone typy danych.
* Wprowadzenie do języka HLA
* Sposoby reprezentacji danych
* Organizacja pamięci i tryby adresowania
* Typy danych
* Podział programu na procedury i moduły
* Sterowanie wykonaniem programu
* Instrukcje arytmetyczne
* Operacje na plikach
* Operacje bitowe i łańcuchowe
* Makrodefinicje
* Klasy i obiekty
* Połączenie asemblera z programami w innych językach
Przekonaj się, jak prosty jest język asemblera.
Książka "Język C. Wskaźniki. Vademecum profesjonalisty" przeznaczona jest dla zaawansowanych studentów i profesjonalistów, zapewniając obszerne źródło informacji dla tych, którzy potrzebują dogłębnego omówienia języka C. Dokładne wyjaśnienie podstaw oraz przegląd zaawansowanych funkcji pozwala programistom skorzystać z siły wskaźników w języku C. Dokładny opis idiomów programowych oraz gruntowna dyskusja zaawansowanych tematów powoduje, że książka jest nieocenionym podręcznikiem i informatorem dla studentów i zawodowych programistów.
* Zawiera wszystko, co jest niezbędne do dogłębnego poznania języka C
* Dokładnie opisuje wskaźniki, ich składnię, techniki efektywnego użycia oraz często stosowane idiomy programistyczne, w których występują wskaźniki
* Porównuje różne metody implementacji często stosowanych abstrakcyjnych typów danych
* Zawiera wskazówki na temat efektywności, przenośności i zagadnień inżynierii programowania, jak również ostrzeżenia o często popełnianych błędach
* Oferuje prosty, konwersacyjny styl, jasno opisujący trudne tematy, zawiera wiele ilustracji i diagramów pomagających z wizualizacji skomplikowanych zagadnień
* Opisuje wszystkie funkcje z biblioteki standardowej C.
O autorze:
Kenneth A. Reek jest profesorem informatyki w Rochester Institute of Technology i doświadczonym programistą, który pracował w wielu firmach jako konsultant. Książka ta powstała po dziewięciu latach prowadzenia seminariów z programowania w C.
[więcej...]
Similar to Algorytmy, struktury danych i techniki programowania. Wydanie III (20)
Windows Movie Maker dołączany do systemu Windows XP to doskonałe narzędzie do domowego montażu cyfrowych filmów wideo. Jest prosty w obsłudze, posiada spore możliwości, a montaż filmów za jego pomocą jest przyjemną zabawą. Movie Maker pozwala na przeniesienie klipów z kamery cyfrowej, zaimportowanie materiałów z dysku, rozmieszczenie ujęć i połączenie ich przejściami, a także udźwiękowienie i dodanie efektów specjalnych. Gotowy film można wysłać pocztą elektroniczną, zapisać na dysku lub płycie CD albo opublikować w internecie.
Książka "Tworzenie filmów w Windows XP. Projekty" przedstawia proces tworzenia filmu wideo. Opisuje kolejne kroki prowadzące do zmontowania cyfrowego filmu wideo z przechwyconych ujęć i zaimportowanych materiałów. Nie znajdziesz w niej jednak długich opisów i dziesiątek parametrów. Każde zagadnienie jest przedstawione za pomocą zrzutów ekranu i krótkich instrukcji. Dzięki temu w ciągu kilku godzin zrealizujesz swój pierwszy projekt w Movie Makerze.
* Elementy interfejsu użytkownika
* Przechwytywanie klipów z kamery wideo
* Import materiałów źródłowych
* Tworzenie wstępnego montażu
* Dodawanie przejść i efektów specjalnych
* Nakładanie plansz tytułowych i napisów
* Udźwiękowienie filmu
* Korzystanie z funkcji Autofilm
* Eksport zmontowanego filmu
Przekonaj się, jak proste może być tworzenie własnych filmów wideo.
Przedstaw się światu!
* Jak zbudować elegancką stronę z blogiem?
* Jak tworzyć wyspecjalizowane przeglądarki bloga?
* Jak dodawać do własnego serwisu blogowego kanał RSS?
Prowadzenie bloga to nowy sposób na zwiększenie aktywności społecznej - szansa na zaistnienie w rzeczywistości wirtualnej, mająca swoje odbicie w tak zwanym „prawdziwym życiu”. Dlatego blogi piszą dziś niemal wszyscy: politycy, marketingowcy, celebryci, biznesmeni. Forma publicznie dostępnego pamiętnika pozwala na szeroką prezentację własnych poglądów, przekonań czy wartości. Z tego powodu blogi wykorzystywane są też jako wortale poświęcone określonej tematyce, promujące idee lub produkty. Ich użytkownicy stworzyli nawet własną społeczność, która 31 sierpnia obchodzi swoje święto - Dzień Bloga. Już dziś możesz do nich dołączyć!
„Blog, więcej niż internetowy pamiętnik” to książka, która pokaże Ci, jak założyć i prowadzić własny blog, a także aktywnie korzystać z innych blogów. Dowiesz się z niej, jak skorzystać z oprogramowania obsługującego serwisy blogowe, jak zintegrować języki PHP, HTML, CSS i SQL, aby stworzyć elegancką stronę prezentującą Twój blog. Nauczysz się budować własną bazę danych, przeznaczoną do przechowywania wpisów, a także zabezpieczać ją przed niepowołanymi modyfikacjami. I wreszcie poznasz sposób na dodanie do własnego serwisu kanału RSS, aby czytelnicy na bieżąco mogli obserwować pojawianie się nowych wpisów. Znajdziesz tu wszystko, czego potrzebujesz, aby zaprezentować światu swój blog!
* Obsługa okna tworzenia bloga
* Modyfikowanie wyglądu bloga
* Publikowanie w określonym terminie
* Rozbudowa bloga
* Instalacja czytnika RSS
* Subskrybowanie blogów za pomocą RSS
* Instalacja oprogramowania własnego serwera
* Baza danych i modyfikacja danych
* Projektowanie struktury bloga
* Zakładanie konta użytkownika
* Zakładanie bazy danych i tabeli danych
* Nadawanie uprawnień do korzystania z tabeli
* Przygotowanie szablonu i tworzenie strony www
* Automatyzowanie, blokowanie i trwałe usuwanie wpisu
* Tworzenie formularza wyszukiwania
* Tworzenie kanału RSS i wypełnianie go treścią
* Pobieranie programu Weber
Blog to prosty i fascynujący sposób, aby świat dowiedział się o Twoim istnieniu!
Pakiet biurowy MS Office jest jednym z podstawowych narzędzi wykorzystywanych we współczesnych firmach. Zawarty w nim system zarządzania bazami danych Access to wygodna w obsłudze aplikacja służąca do operowania na zbiorach danych. Dzięki prostocie obsługi, sporym możliwościom i wizualnym narzędziom stanowi doskonałe rozwiązanie dla przedsiębiorstw, w których duże znaczenie ma czas poświęcany na opanowanie nowych programów. Kreatory i rozbudowany system pomocy oferowane przez Accessa niezwykle upraszczają proces tworzenia bazy oraz aplikacji przeznaczonych do obsługi zgromadzonych w niej danych.
W książce "Access w biurze i nie tylko" znajdziesz omówienie podstawowych możliwości tego systemu. Nauczysz się tworzyć i otwierać istniejące bazy danych oraz tworzyć nowe. Dowiesz się, w jaki sposób projektować tabele i jak dobierać typy danych dla poszczególnych kolumn tabeli. Przeczytasz o relacjach, poznasz sposoby wybierania i wstawiania danych, a także manipulowania nimi za pomocą kwerend. W kolejnych rozdziałach znajdziesz informacje o tworzeniu formularzy i raportów oraz wyświetlaniu wykresów na podstawie danych zgromadzonych w bazie. Nauczysz się także pisać własne makra i poznasz podstawy języka Visual Basic for Applications.
* Otwieranie istniejących baz danych
* Tworzenie tabel
* Typy danych
* Tworzenie i modyfikowanie relacji
* Manipulowanie danymi za pomocą kwerend
* Konstruowanie formularzy
* Budowanie raportów
* Automatyzacja pracy za pomocą makropoleceń
* Tworzenie i wyświetlanie wykresów
Dane to dziś najcenniejszy towar. Naucz się nim zarządzać.
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
Zapewnij swojej witrynie miejsce w pierwszej dziesiątce!
* Jak działają wyszukiwarki?
* Jaki wpływ na pozycję serwisu mają linki przychodzące i wychodzące?
* Czy istnieją zagrożenia związane z niewłaściwym pozycjonowaniem?
Stworzenie serwisu WWW to dopiero połowa sukcesu w Internecie. Druga połowa to zapewnienie witrynie odpowiedniej popularności. A tę popularność może zagwarantować przede wszystkim wysokie miejsce w wynikach wyszukiwarek. Jak to osiągnąć? Od czego zacząć i jak monitorować skuteczność prowadzonych działań? Wszystkie odpowiedzi znajdziesz właśnie w tej książce!
Poprzez liczne przykłady i ćwiczenia autorzy zapoznają Cię ze sposobem działania wyszukiwarki Google i zasadami doboru właściwych słów kluczowych. Pokażą, jak najlepiej rozmieścić je na stronie. Ponadto dowiesz się, jaki wpływ na pozycję strony mają linki wychodzące oraz przychodzące, jak przebiega proces indeksowania strony, jak działają systemy wymiany linków oraz jak wykorzystać statystyki do obserwacji ruchu na stronie. Przeczytasz także o tym, jakie zagrożenia niesie ze sobą niewłaściwa procedura pozycjonowania.
* Sposób działania Google oraz innych wyszukiwarek
* Definiowanie fraz i słów kluczowych
* Wpływ linków przychodzących i wychodzących na pozycję strony
* Korzystanie z systemów wymiany linków
* Proces indeksacji witryny
* Zagrożenia związane z niewłaściwym pozycjonowaniem
* Wykorzystanie statystyk do śledzenia ruchu na stronie
* Sposoby reklamowania serwisu
Zwiększ oglądalność swojej witryny WWW!
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
Lustereczko, powiedz przecie,
kto jest najwspanialszy w necie?
* Tworzenie i wykorzystywanie odpowiedniego wizerunku oraz zarabianie na nim
* Budowanie pożądanych marek bez wielkich nakładów finansowych
* Interaktywne relacje z klientami
* Wykorzystanie Internetu do rozwoju biznesu
* Narzędzia kreowania wizerunku w sieci
Jak Cię widzą (w sieci), tak Cię piszą
Internet jest nie tylko rewolucyjnym medium, pierwszym o naprawdę masowym zasięgu działania. Stanowi on przede wszystkim fascynujący alternatywny świat. Działa jak magnes, co roku przyciągając nowych użytkowników. Niczym używka, wciąż odnotowuje wydłużenie czasu kontaktu z odbiorcą. I last but not least — Internet to niekończący się pasaż handlowy, wymarzone miejsce spotkań podaży i popytu.
Poznaj specyfikę światowej sieci WWW i znajdź w niej właściwe miejsce dla Twojej marki. E-marketing rządzi się własnymi prawami — z jednej strony bezustannie stawia firmy przed nowymi wyzwaniami, z drugiej zaś stale kreuje nowe narzędzia dotarcia do klienta. A są one naprawdę fascynujące: możliwość dowolnej personalizacji przekazu, olbrzymia ilość kanałów, a przede wszystkim atrakcyjne społeczności — ludzie młodzi, aktywni, hobbyści, biznesmeni oraz entuzjaści nowinek. Mogą oni zostać ambasadorami Twojej marki, ale mogą też ją zniszczyć. Dlatego musisz poznać zasady rządzące Internetem i jego społecznościami, a następnie zacząć budować instrumenty wywierania wpływu i wykorzystać je dla dobra Twojego produktu.
Internet ma przyszłość!
* Czym jest e-wizerunek i jak wpływa na sukces firm, produktów i ludzi?
* Narzędzia budowania image’u — strona WWW, fora internetowe, newslettery i inne.
* Sześć zasad skutecznego kreowania e-wizerunku.
* Grzechy główne działań internetowych.
* Marka jako efekt przemyślanej strategii wizerunkowej.
* Case studies
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
Rozpocznij przygodę z Visual C++!
* Jakie prawa rządzą programowaniem obiektowym?
* Jak tworzyć usługi systemowe?
* Jak dokumentować tworzony kod?
Microsoft Visual C++ jest zintegrowanym środowiskiem, pozwalającym na tworzenie aplikacji przy użyciu języków C, C++ lub C++/CLI. Zawiera ono wyspecjalizowane narzędzia, pomagające w wydajnym tworzeniu rozwiązań opartych o te języki. Pierwsza wersja Visual C++ została wydana w 1992 roku, a środowisko to jest bezustannie ulepszane. Najnowsze wydanie, z datą 2008, zostało opublikowane w listopadzie 2007 roku i wprowadziło wiele nowości — jak chociażby wsparcie dla technologii .NET 3.5. Niewątpliwie narzędzie firmowane przez giganta z Redmond jest jednym z najpopularniejszych, a używają go programiści z całego świata.
Dzięki tej książce również Ty możesz dołączyć do tego wybitnego grona. Po jej przeczytaniu będziesz miał wiedzę na temat środowiska programistycznego i platformy .NET. Poznasz podstawy programowania obiektowego, nauczysz się uzyskiwać dostęp do informacji zgromadzonych w bazach danych oraz korzystać z możliwości Internetu bezpośrednio w Twoich programach. Kolejne rozdziały przedstawiają interesujące tematy dotyczące obsługi wyjątków, programów wielowątkowych oraz sposobów tworzenia usług systemowych. Ostatni rozdział poświęcony został tak istotnej kwestii, jak dokumentowanie kodu — to czynność, o której wielu programistów zapomina. Jeżeli chcesz rozpocząć przygodę z Microsoft Visual C++, ta książka jest idealną lekturą dla Ciebie!
* Praca w zintegrowanym środowisku programistycznym
* Pojęcia związane z programowaniem obiektowym
* Uzyskiwanie dostępu do informacji zgromadzonych w bazach danych
* Wykorzystanie transakcji w pracy z danymi
* Sposoby integracji z siecią Internet
* Obsługa wyjątków
* Programowanie wielowątkowe
* Tworzenie grafiki oraz wykorzystanie multimediów
* Drukowanie w systemie Windows
* Tworzenie usług systemowych
* Dokumentowanie kodu programu
Wykorzystaj możliwości Microsoft Visual C++ 2008!
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
Poznaj możliwości iPhone’a!
* Jak rozpocząć pracę z iPhone’em?
* Jak wykorzystać możliwości przeglądarki Safari?
* Jak używać map?
Pojawienie się iPhone’a firmy Apple można bez wahania nazwać Rewolucją! Rewolucją przez duże "R". Nigdy wcześniej żaden nowy telefon nie wzbudził takich emocji. Nigdy wcześniej nie ustawiały się na wiele dni przed premierą kolejki pod salonami. Co sprawia, że ludzie szaleją za tym małym cudem techniki? Wielodotykowy (ang. multitouch) ekran, dostęp do tysięcy aplikacji, stabilny system operacyjny oraz elegancki, przykuwający uwagę wygląd to tylko niektóre z jego zalet.
Właśnie dzięki tej książce dowiesz się, co tak naprawdę potrafi Twój iPhone. Autor — niezawodny Scott Kelby — bez zbędnego zagłębiania się w szczegóły techniczne opowie Ci o możliwościach tego rewolucyjnego urządzenia. Zaprezentuje Ci m.in. sposoby wykonywania różnych operacji przy użyciu tego telefonu. Poznasz tajniki jego konfiguracji i synchronizacji z komputerem oraz metodę sprawdzania poziomu naładowania baterii. Nauczysz się wykorzystywać wszystkie możliwości przeglądarki Safari, czytnika poczty oraz terminarza. Dowiesz się również, jak odtwarzać klipy z YouTube, słuchać muzyki czy oglądać filmy. Książka ta jest zatem świetną pozycją zarówno dla początkującego użytkownika telefonu iPhone, jak również dla zaawansowanego — ten ostatni znajdzie tu informacje, które go zaskoczą i zachwycą! W końcu iPhone to zdolna i piękna bestia…
* Włączanie, usypianie, wyłączanie iPhone’a
* Wykorzystanie wbudowanego głośnika
* Obsługa ekranu
* Importowanie kontaktów
* Dodawanie numerów
* Połączenia konferencyjne
* Wyciszanie dzwonka
* Odbieranie i wysyłanie wiadomości e-mail
* Obsługa przeglądarki Safari
* Wykorzystanie kalendarza
* Odtwarzanie klipów z YouTube
* Używanie mapy
* Sprawdzanie prognozy pogody
* Importowanie i odtwarzanie muzyki
* Wykonywanie zdjęć
* Rozwiązywanie typowych problemów
Sprawdź, co potrafi Twój iPhone!
Uwiecznij świat, jakiego nie znałeś!
* Jaki sprzęt jest potrzebny do makrofotografii?
* Jak uzyskać duże powiększenia?
* Jak komponować efektowne zdjęcia?
Wiele osób nie zwraca uwagi na niepozorne, małe elementy otaczającego nas świata. Czyż nie warto pokazać im, co tracą? Wykonanie dobrego zdjęcia w skali makro to wyzwanie, ale zachwyt na twarzach oglądających jest wart wszelkich poświęceń. Właśnie dzięki makrofotografii można ujrzeć cudowny świat, niezauważalny na co dzień. Magiczny świat szczegółów!
Autor książki "Makrofotografia. Magia szczegółu " przedstawia ten temat w sposób przejrzysty i systematyczny. Dzięki tej publikacji zdobędziesz informacje dotyczące sprzętu potrzebnego do wykonania makrofotografii oraz sposobu kompozycji zdjęcia. Poznasz zagadnienia związane z właściwym doborem ostrości, a także takie pojęcia, jak głębia ostrości, długość ogniskowej, jasność obiektywu i wiele innych. Pozwolą Ci one na swobodne poruszanie się po świecie makrofotografii. Ponadto poszerzysz swoją wiedzę odnośnie doboru właściwego oświetlenia oraz programów odpowiednich do obróbki wykonanych zdjęć. Niewątpliwym atutem tej książki są pytania i zadania kontrolne, które pozwolą Ci zweryfikować zdobyte umiejętności. Jeżeli chcesz uwiecznić otoczenie w makrofotografii, ta pozycja będzie dla Ciebie nieocenionym źródłem informacji, a może nawet twórczej inspiracji!
* Sprzęt konieczny do wykonania makrofotografii
* Sposoby na uzyskanie dużych powiększeń
* Komponowanie zdjęć
* Zasady doboru kadru
* Uzyskiwanie właściwej ostrości
* Ograniczenia ostrości
* Dobór właściwego oświetlenia
* Metody pomiaru światła
* Doświetlanie zdjęć
* Narzędzia do edycji zdjęć
Odsłoń na fotografiach całe piękno szczegółu!
Naucz się korzystać z nowoczesnych narzędzi PowerShella
i usprawniaj żmudne zadania administracyjne!
* Jak skonfigurować środowisko PowerShella?
* Jak tworzyć aplety poleceń i jak ich używać?
* Jak korzystać z potoku danych?
Windows PowerShell to innowacyjne narzędzie do zarządzania systemem i przetwarzania skryptów dla serwerów oraz klientów pod kontrolą Windows. Charakterystyczną cechą tego interpretera poleceń jest obiektowa logika, która sprawia, że wynikiem każdego polecenia jest obiekt określonego typu. Dodatkowo wszystkie funkcje dostępne przez API systemu są możliwe do wywołania z poziomu PowerShella. Dzięki swojej uniwersalności oraz nowoczesnym narzędziom interpreter ten zapewnia spójny oraz jasny mechanizm zarządzania, oparty na wierszu poleceń i niewymagający od użytkownika dużej wiedzy programistycznej.
Książka "Windows PowerShell. Podstawy" zawiera dokładny opis innowacyjnej architektury PowerShella, zasad pisania skryptów oraz możliwości korzystania z podstawowych interfejsów systemowych: COM, WMI, ADSI i ADO.NET, a także obszerny zbiór opisów rozwiązań konkretnych zadań administracyjnych. Korzystając z tego przewodnika, poznasz funkcje i narzędzia PowerShella. Nauczysz się również korzystać z obiektowego potoku danych i zarządzać procesami, dziennikami zdarzeń oraz wpisami rejestru. Dzięki zawartej tu wiedzy z pewnością usprawnisz i zautomatyzujesz wszelkie czasochłonne zadania administracyjne, by móc swobodnie stosować PowerShell jako podstawową konsolę do codziennej pracy.
* Aplety poleceń
* Przetwarzanie potokowe
* Potoki danych
* Uniwersalny model nawigacji
* Definiowanie dysków
* Język skryptów PowerShella
* Tablice asocjacyjne
* Praca ze skryptami
* Różnicowanie reakcji na błędy
* Biblioteki klas
* Narzędzia PowerShella
* Zarządzanie użytkownikami i grupami w Active Directory
* Bazy danych
* Zaawansowane operacje dostępu do danych
PowerShell skróci czas Twojej pracy!
Poznaj specyfikę języka Java i zostań mistrzem programowania
* Jak korzystać z bibliotek języka Java?
* Jak pisać funkcjonalny i klarowny kod?
* Jak stworzyć profesjonalny i efektowny program?
Język Java jest językiem obiektowym z dziedziczeniem jednobazowym. Wewnątrz każdej metody korzysta on ze zorientowanego na instrukcje stylu kodowania. Aby dobrze poznać jakikolwiek język, należy nauczyć się posługiwać jego regułami, zasadami i składnią — podobnie jest z językiem programowania. Jeśli chcesz zyskać możliwość efektywnego programowania w języku Java, powinieneś poznać struktury danych, operacje i udogodnienia, oferowane przez biblioteki standardowe, a także często stosowane i efektywne sposoby tworzenia kodu. Całą potrzebną Ci wiedzę znajdziesz właśnie w tym podręczniku.
W książce „Java. Efektywne programowanie” w sposób zrozumiały i klarowny przedstawiono zasady opisujące mechanizmy używane w najlepszych technikach programowania. Ten podręcznik podpowie Ci, jak najbardziej racjonalnie korzystać z języka Java oraz jego podstawowych bibliotek. Dowiesz się, jak stosować wyjątki przechwytywalne i wyjątki czasu wykonania, poznasz także zalety stosowania statycznych klas składowych. Opanujesz metody sprawdzania poprawności parametrów i projektowania sygnatur oraz wszelkie instrukcje, które pozwolą Ci na wydajne i profesjonalne programowanie.
* Tworzenie i usuwanie obiektów
* Klasy i interfejsy
* Zapewnianie niezmienności obiektu
* Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
* Zalety stosowania statycznych klas składowych
* Typy ogólne
* Typy wyliczeniowe i adnotacje
* Metody
* Programowanie
* Wykorzystanie ogólnie przyjętych konwencji nazewnictwa
* Wyjątki
* Współbieżność i serializacja
* Dokumentowanie bezpieczeństwa dla wątków
Nie wystarczy samo poznanie języka Java. Trzeba wiedzieć, jak z niego efektywnie korzystać!
Rozpocznij swoją przygodę z JavaScript!
* Jak rozpocząć przygodę z JavaScript?
* Jakie obiekty dostarcza JavaScript?
* Jak reagować na błędy?
Język JavaScript, choć ma już blisko dwanaście lat, swoimi możliwościami wciąż potrafi zafascynować niejednego projektanta stron internetowych. Ma już za sobą gorsze dni, jednak aktualnie dzięki technologii AJAX znów jest na topie. Wykorzystując go w odpowiedni sposób, sprawisz, że twój serwis WWW stanie się bardziej interaktywny i dynamiczny.
Ta książka pozwoli Ci wyjść zwycięsko z pierwszego starcia z tym językiem! Dowiesz się z niej, jak używać zmiennych, operatorów oraz funkcji. Nauczysz się reagować na zdarzenia oraz wykorzystywać okna dialogowe. Ponadto zdobędziesz wiedzę na temat pracy z obiektami DOM HTML oraz na temat sposobów reagowania na błędy w skryptach. Autor przedstawia tu także dostępne obiekty JavaScript oraz pokazuje, jak wykonywać operacje związane z czasem. Ogromnym atutem tej książki jest przejrzystość i usystematyzowany sposób prezentowania informacji. Dzięki temu również Ty szybko i bezboleśnie poznasz JavaScript!
* Typowe konstrukcje języka JavaScript
* Wykorzystanie zmiennych
* Zastosowanie funkcji
* Reagowanie na zdarzenia
* Sposoby użycia okien dialogowych
* Wykonywanie operacji związanych z czasem
* Dostępne obiekty JavaScript
* Obiekty DOM HTML
* Przygotowanie własnych obiektów
* Dziedziczenie w JavaScript
* Obsługa błędów
Przejdź bezboleśnie pierwsze starcie z JavaScript!
Naucz się łączyć największe zalety języków oraz technik programowania
i twórz interaktywne strony internetowe
* Jak unikać typowych błędów i sprawnie rozwiązywać problemy programistyczne?
* Jak połączyć zalety HTML, XML i PHP dla uzyskania pożądanych efektów?
* Jak tworzyć aplikacje wyposażone w aktywny interfejs użytkownika?
Statyczne strony WWW to dziś już przeszłość. Powszechnie dostępne narzędzia dają programistom prawie nieograniczone możliwości w zakresie tworzenia interaktywnych witryn internetowych, wzbogaconych o najróżniejsze efekty wizualne, animacje oraz wbudowane narzędzia pomocnicze. Największą popularność zdobyły sobie narzędzia z kategorii open source — z powodu ich minimalnego kosztu oraz niezwykle dużych zasobów, dostępnych za pośrednictwem Internetu. Z tej książki dowiesz się, jak tworzyć bogate i interaktywne strony WWW, łącząc rozmaite techniki i korzystając z różnych języków.
Książka "Ajax, JavaScript i PHP. Intensywny trening" poprowadzi Cię krok po kroku po podstawowych zasadach programowania w językach JavaScript, PHP i HTML oraz technologiach programowania. Dzięki temu podręcznikowi dowiesz się m.in., jak wykorzystywać dostępne biblioteki ajaksowe do implementowania i ulepszania podstawowych mechanizmów aplikacji. Szybko nauczysz się tworzyć interaktywne strony WWW, zarówno za pomocą technologii serwerowych, jak i technik oraz narzędzi umiejscowionych po stronie klienckiej, a także ich kombinacji.
* Tworzenie stron WWW w języku HTML
* Stylizacja stron za pomocą arkuszy CSS
* Tworzenie skryptów w języku JavaScript
* Wbudowanie skryptu w stronę WWW
* Obiektowy model dokumentu (DOM)
* Obiekty String
* Instrukcje warunkowe i pętle
* Funkcje wbudowane i biblioteki
* Konstruowanie aplikacji ajaksowych
* Zmienne w języku PHP
* Funkcje liczbowe, łańcuchy i tabele
* Kontrola przepływu sterowania
* Usługi webowe oraz protokoły REST i SOAP
Łącz, kompiluj, dobieraj — niech Twoje strony WWW zrobią wrażenie!
Poznaj narzędzia programu PowerPoint i twórz wyjątkowe prezentacje!
* Jak stworzyć profesjonalną prezentację na każdą okazję?
* Jak modyfikować grafikę SmartArt?
* Jak korzystać z programu Clip Organizer i biblioteki slajdów?
Z pewnością wiesz, do czego służy program PowerPoint, lecz jeśli jeszcze nie potrafisz z niego korzystać, a musisz szybko przygotować profesjonalną prezentację, ta książka jest właśnie dla Ciebie! Znajdziesz tu opis ostatniej wersji programu — PowerPoint 2007. Umożliwia ona stworzenie zaawansowanej i bogatej prezentacji, wyposażonej w dźwięk, fotografie i animacje filmowe. Nowy PowerPoint pozwala także na bezpieczne udostępnianie Twojej prezentacji wszystkim zainteresowanym.
Książka "PowerPoint 2007 PL. Seria praktyk" to bogato ilustrowany, a przy tym prawdziwie intuicyjny podręcznik, dzięki któremu każdy nauczy się sprawnie korzystać z tej aplikacji. Kolor i zrzuty ekranowe ilustrujące kolejne informacje, jak również klarowne i zrozumiałe instrukcje sprawiają, że nauka staje się niezwykle prosta. Dzięki tej książce poznasz wszystkie niezbędne narzędzia PowerPointa i ciekawe funkcje tego programu. Dowiesz się, jak zastosować w swojej prezentacji grafiki SmartArt oraz zaawansowane układy slajdów, a także w jaki sposób korzystać z galerii stylów czy biblioteki slajdów.
* Tworzenie prezentacji
* Praca z tekstem
* Grafika i linie
* Konwersja na grafikę SmartArt
* Tabele i wykresy
* Używanie Excela 2007 — kopiowanie i wstawianie tabel
* Wzbogacanie prezentacji — animacje
* Multimedia
* Dodawanie filmów i dźwięku
* Tworzenie albumów
* Pokaz slajdów
* Nagrywanie narracji
* Udostępnianie prezentacji
* Bezpieczeństwo
PowerPoint jest dla każdego!
Poznaj narzędzia oraz funkcje Excela i z łatwością wykorzystuj tę wiedzę w pracy
* Jak tworzyć skoroszyty i wykresy?
* Jak zarządzać danymi w arkuszach?
* Jak szacować formuły?
Na samo brzmienie słowa "Excel" reagujesz paniką? Uważasz, że to bardzo skomplikowany i trudny w obsłudze program? Świetnie! Ta książka została napisana właśnie z myślą o Tobie! Podręcznik, który trzymasz w rękach, stanowi namacalny dowód na to, że Excel 2007 może być prosty, a nauka jego obsługi bardzo przyjemna! Choć trudno Ci w tej chwili w to uwierzyć, aplikacja ta oferuje cale spektrum nowoczesnych, a przy tym przyjaznych i intuicyjnych narzędzi oraz funkcji, dzięki którym znacznie usprawnisz i przyspieszysz swoją pracę. Naprawdę warto je poznać!
Książkę "Excel 2007 PL. Seria praktyk" przygotowano w taki sposób, aby każdy mógł nauczyć się korzystać z narzędzi Excela, tworzyć odpowiednie arkusze oraz wykonywać na nich praktyczne operacje. Wszystkie porady i instrukcje napisane zostały prostym, zrozumiałym językiem. Dzięki temu szybko opanujesz sposoby zarządzania danymi czy szacowania formuł w tym programie. Wszystkie omawiane zagadnienia zilustrowane są ułatwiającymi zrozumienie zrzutami ekranowymi, a kolorowy druk znacznie uprzyjemni Ci korzystanie z książki. Wystarczy ją przeczytać, a poznasz Excela w stopniu pozwalającym Ci na swobodną pracę w tym programie. Na co zatem czekasz? Przed Tobą nauka takich zagadnień, jak:
* Tworzenie skoroszytu
* Wprowadzanie danych do arkusza i zarządzanie nimi
* Formuły i funkcje
* Tabele i wykresy
* Konwersja tabeli do postaci zakresu
* Zaawansowane funkcje
* Szacowanie formuł
* Zarządzanie Excelem
* Makra
* Szablony i scenariusze
* Łącza i odwołania
* Stosowanie aktualizacji
Najprostszy i najprzyjemniejszy sposób na poznanie Excela!
Poznaj praktyczne możliwości programu Access 2007!
* Jak właściwie zaprojektować bazę danych?
* Jak korzystać z szablonów?
* Jak tworzyć tabele i definiować relacje między nimi?
Wbrew pozorom nie trzeba być specjalistą, żeby korzystać z Accessa! Jest to program wyjątkowo przyjazny dla użytkownika, umożliwiający tworzenie baz danych i zarządzanie nimi bez potrzeby dogłębnego poznawania języka SQL oraz skomplikowanych środowisk serwerowych. Aplikacja pozwala na zapisywanie danych z wykorzystaniem formularzy, kierowanie zapytań do bazy, a także dzielenie danych ze współpracownikami za pośrednictwem sieci komputerowej.
Książka "Access 2007 PL. Seria praktyk" zawiera zwięzły i czytelny opis wszystkich najważniejszych funkcji tego programu, a także konkretne przykłady i jasne instrukcje zastosowania narzędzi Accessa. Kolorowe strony pozwalają na szybkie odnalezienie interesujących Cię zagadnień. Dzięki temu podręcznikowi poznasz podstawowe zasady tworzenia dobrego projektu bazy danych oraz jej zaawansowane możliwości. Nauczysz się tworzyć tabele, formularze i raporty, a także korzystać z kluczy podstawowych i obcych. Bez problemu zbudujesz taką bazę danych, która pozwoli Ci sprawnie zarządzać informacjami.
* Personalizacja Accessa 2007
* Projektowanie baz danych
* Relacyjne bazy danych
* Klucze podstawowe i obce
* Tworzenie tabel
* Korzystanie z typów danych
* Definiowanie relacji
* Kwerendy
* Korzystanie z SQL
* Tworzenie i dostrajanie formularzy
* Tworzenie raportów
* Współdzielenie Accessa
Naucz się korzystać z Accessa — zachwycą Cię jego możliwości!
Odkryj bogactwo funkcji Worda!
Jak poprawnie formatować i uatrakcyjniać dokumenty?
Chcesz zacząć sprawnie tworzyć w programie Word dokumenty o profesjonalnym wyglądzie? A może tak dobrze go już znasz, że wątpisz, by skrywał przed Tobą jeszcze jakiekolwiek tajemnice? Tak czy inaczej warto opanować wszystkie potężne możliwości najpopularniejszego edytora tekstów, różne sposoby pracy z nim i metody tworzenia dokumentów tekstowych. Uzbrojony w taką wiedzę, z pewnością będziesz pracował szybciej i sprawniej.
Książka "Word 2007 PL. Seria praktyk" jest graficznym przewodnikiem po najnowszej wersji Worda i zawiera dokładny opis jego funkcji podstawowych oraz zaawansowanych — począwszy od tworzenia i formatowania tekstów, a na złożonych makrach skończywszy. Wszystko to przedstawione zostało za pomocą przejrzystych, kolorowych i szczegółowych instrukcji oraz praktycznych przykładów. Dzięki temu podręcznikowi poznasz całe spektrum narzędzi Worda i udoskonalisz swoją pracę z tym programem.
* Narzędzia główne
* Formatowanie tekstu
* Szybkie style
* Praca z dokumentem
* Drukowanie i publikowanie
* Konwersja do formatu PDF
* Biblioteka ClipArt i SmartArt
* Hiperłącza i zakładki
* Równania
* Zaawansowane funkcje — podpis cyfrowy
* Makra
Opanuj wszystkie narzędzia Worda i ciesz się swobodą tworzenia dokumentów!
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
Dołącz do kreatorów nowych trendów! Stwórz własny serwis społecznościowy!
* Pierwsze kroki w roli twórcy serwisu — rodzaje stron, prawo i reklama
* Skrypty, instalacja i administracja — PHPizabi, Elgg, Dolphin, Joomla!
* ABC moderatora i użytkownika — regulamin, trolle, zakres ingerencji
Serwisy społecznościowe są bodaj najszybciej rozwijającą się dziś częścią internetu. Nie sposób przecenić ich roli społecznej i opiniotwórczej. Liczba użytkowników i ich poczucie wspólnoty decydują o sile i prężności tych serwisów. W każdej chwili możesz przyłączyć się do któregoś z nich. Jednak znacznie więcej radości sprawiłoby Ci na pewno prowadzenie własnego serwisu, wokół którego skupiałaby się cała społeczność osób o zainteresowaniach podobnych do Twoich.
W książce "Serwisy społecznościowe. Budowa, administracja i moderacja" znajdziesz wszelkie informacje dotyczące tworzenia i obsługi serwisu społecznościowego. Opisano w niej początki tego zjawiska społecznego, podstawy jego działania, rozmaite odmiany serwisów, wszelkie kwestie prawne i techniczne. Niezależnie od tego, czy szukasz inspiracji odnośnie treści umieszczanych w serwisie, czy chciałbyś dowiedzieć się, jak rozwiązać konkretne problemy z konfiguracją, rejestracją, wyborem mechanizmu działania czy wyglądu Twojego serwisu, autorzy służą Ci rzetelną wiedzą, wskazówkami i podpowiedziami. Oprócz tego wprowadzą Cię w kwestie związane z bezpieczeństwem w sieci, rolą moderatora i rozwiązywaniem problemów z użytkownikami.
* Społeczności internetowe
* Serwisy społecznościowe (historia, rodzaje, reklama)
* Regulacje prawne
* Wybór domeny i hostingu
* Niezbędne narzędzia (klient FTP, edytory CSS i tekstowe)
* Serwis społecznościowy a forum dyskusyjne
* Bezpieczeństwo serwisu
* Skrypty (PHPizabi, Elgg, Dolphin, Joomla!, BuddyPress, Joovili, SocialEngine i wiele innych)
* Online-Community-Building
* Skrypty do budowy serwisu wideo (ClipBucket Lite, Clipshare, ClipHouse i wiele innych)
* Rola moderatora
* Social shopping
Sprawdź, jak wiele satysfakcji daje własny serwis społecznościowy!
AutoCAD to program do komputerowego wspomagania projektowania, który od lat wyznacza standardy na rynku takich aplikacji. Z jego możliwości korzystają projektanci różnych branż, a ogromna liczba bibliotek, modułów i nakładek sprawia, że realizacja nawet najbardziej złożonych projektów przebiega szybko i sprawnie. Każda kolejna wersja AutoCAD-a jest bardziej rozbudowana. W wersji 2008 autorzy aplikacji zadbali o optymalizację znanych już użytkownikom narzędzi i zwiększenie produktywności pracy. Zmodernizowany interfejs użytkownika oraz nowe możliwości docenią nie tylko profesjonaliści, ale również ci, którzy stawiają pierwsze kroki w świecie komputerowego wspomagania projektowania.
Książka "AutoCAD 2008 i 2008 PL" to wyczerpujące omówienie najnowszej edycji tej aplikacji. Każdy użytkownik AutoCAD-a, niezależnie od stopnia zaawansowania, znajdzie w niej interesujące informacje. Czytając tę książkę, nauczysz się tworzyć i modyfikować rysunki, wymiarować je, korzystać z warstw, bloków i stylów oraz drukować projekty. Poznasz zasady modelowania bryłowego, tworzenia szablonów oraz rysowania w trybie aksonometrycznym. Każde z narzędzi dostępnych w aplikacji jest dokładnie omówione, a ilustrowane przykłady ułatwiają poznanie ich w praktyce.
* Interfejs użytkownika, menu i paski narzędzi
* Praca z dokumentami
* Układy współrzędnych
* Tworzenie podstawowych obiektów i definiowanie ich właściwości
* Napisy i tabelki
* Rysowanie precyzyjne
* Rysunek aksonometryczny
* Kreskowanie
* Naprawianie uszkodzonych rysunków
* Techniki wymiarowania, modyfikowanie wymiarów i style wymiarowe
* Modelowanie 3D i bryły ACIS
Poznaj najnowszą wersję narzędzia, które zrewolucjonizowało pracę projektantów na całym świecie.
Zobacz, jakie to proste — naucz się tworzyć bazy danych!
* Jak tworzyć formularze i raporty?
* Jak modyfikować strukturę tabel?
* Jak stosować mechanizmy wymiany danych?
Współczesny świat wymusza na przedsiębiorstwach gromadzenie oraz przetwarzanie ogromnej ilości informacji. To sprawia, że muszą one dysponować wydajnymi i sprawnymi bazami danych. Aby zbudować taki system zarządzania danymi, niezbędne są odpowiednie narzędzia — jednym z nich jest program MS Access. Ta aplikacja przede wszystkim pozwala na łatwą kontrolę poprawności tworzonych projektów oraz zapewnia integrację narzędzi służących do tworzenia struktury relacyjnej. Dba także o zgodność tych narzędzi ze standardem języka zapytań SQL, wykorzystywanym do tworzenia i modyfikowania baz danych oraz operowania na zgromadzonych w nich informacjach.
Książka „Bazy danych. Pierwsze starcie” stanowi doskonałe wprowadzenie w tematykę tworzenia baz danych. Zawiera wszystkie potrzebne informacje, podane w prosty i przejrzysty sposób. Ten podręcznik przyda się zarówno studentom kierunków informatycznych, jak i wszystkim tym, którzy chcą zdobyć wiedzę o nowoczesnych metodach budowania takich baz. Stąd dowiesz się m.in., jak wykorzystywać język zapytań SQL, w jaki sposób tworzyć tabele, formularze i raporty oraz stosować mechanizmy wymiany danych, a także na czym polega filtrowanie i sortowanie w zapytaniach. Zdobędziesz wiedzę i umiejętności wystarczające do samodzielnego zbudowania wydajnej bazy danych i sprawnego nią zarządzania.
* Projektowanie bazy danych — narzędzia wizualne
* Tworzenie formularzy i raportów
* Strukturalny język zapytań SQL w wersji MS JetSQL
* Składnia podstawowa
* Unia — koniunkcja zbiorów
* Grupowanie i funkcje agregujące
* Zastosowanie języka SQL z poziomu formularzy
* Mechanizmy wymiany danych
* Obiekty: DAO, RDO, ADO
* Zastosowanie mechanizmów wymiany danych przy tworzeniu aplikacji
Stwórz własną, niezawodną bazę danych!
Wkrocz w świat projektowania 3D
* Jak definiować parametry projektu?
* W jaki sposób korzystać z narzędzi projektowych?
* Jak generować dokumentację techniczną?
Inventor, opracowany i sprzedawany przez firmę Autodesk, to program typu CAD, pozwalający na zamodelowanie projektowanego urządzenia lub elementu w postaci bryły trójwymiarowej. W oparciu o tak zamodelowaną bryłę Inventor umożliwia wygenerowanie pełnej dokumentacji projektowej — rysunków wykonawczych i złożeniowych, wykazu części i innych. Aplikacja pozwala także na przeprowadzenie symulacji i analizy działania projektowanego urządzenia.
"Inventor. Pierwsze kroki " to podręcznik dla wszystkich osób, które chcą poznać możliwości tej aplikacji i wykorzystać je w swojej pracy. Książka opisuje proces instalacji i konfiguracji programu oraz definiowania parametrów projektu. Pokazuje także kolejne kroki jego realizacji. Przeczytasz w niej o tworzeniu szkiców, definiowaniu wiązań, generowaniu modeli bryłowych i tworzeniu zespołów. Dowiesz się także, w jaki sposób wygenerować dokumentację techniczną w oparciu o gotowy model oraz jak zaprezentować elementy projektu w postaci animacji trójwymiarowej.
* Instalacja Inventora
* Konfiguracja interfejsu użytkownika
* Praca z oknami dialogowymi
* Tworzenie szkiców i wiązań
* Edycja obiektów graficznych
* Tworzenie brył trójwymiarowych
* Łączenie elementów w zespoły
* Tworzenie dokumentacji technicznej
* Prezentacja zespołów
Zrealizuj swoje wizje za pomocą Inventora!
Algorytmy, struktury danych i techniki programowania. Wydanie III
1. IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI Algorytmy, struktury danych
i techniki programowania.
KATALOG KSI¥¯EK Wydanie III
KATALOG ONLINE Autor: Piotr Wróblewski
ISBN: 83-7361-101-0
ZAMÓW DRUKOWANY KATALOG Format: B5, stron: 360
TWÓJ KOSZYK Algorytmika stanowi ga³¹ wiedzy, która w ci¹gu ostatnich kilkudziesiêciu lat
dostarczy³a wielu efektywnych narzêdzi wspomagaj¹cych rozwi¹zywanie ró¿norodnych
DODAJ DO KOSZYKA problemów za pomoc¹ komputera. Teoria algorytmów i struktur danych jest jednym
z podstawowych przedmiotów wyk³adanych na studiach informatycznych i pokrewnych.
Ksi¹¿ka, której trzecie i poprawione wydanie trzymasz w rêku, od wielu lat stanowi
CENNIK I INFORMACJE podstawowy podrêcznik z dziedziny algorytmiki. Ró¿ni siê od klasycznych
podrêczników akademickich: skierowana jest nie tylko do adeptów informatyki.
ZAMÓW INFORMACJE Dziêki naciskowi na praktyczn¹ stronê prezentowanych zagadnieñ powinna
O NOWO CIACH zainteresowaæ tak¿e osoby programuj¹ce hobbystycznie, jak równie¿ tych wszystkich,
dla których programowanie jest dzia³alno ci¹ wa¿n¹, lecz nie podstawow¹ w pracy
ZAMÓW CENNIK zawodowej. Jest to nowoczesny podrêcznik dla wszystkich, którzy w codziennej pracy
programistycznej odczuwaj¹ potrzebê szybkiego odszukania pewnych informacji
z dziedziny algorytmiki w celu zastosowania ich w swoich programach.
CZYTELNIA W ksi¹¿ce opisano m.in.:
FRAGMENTY KSI¥¯EK ONLINE • Techniki rekurencyjne: co to jest rekurencja i jak j¹ stosowaæ w praktyce?
• Sortowanie danych: najpopularniejsze procedury sortuj¹ce.
• Struktury danych: listy, kolejki, zbiory i drzewa w ujêciu praktycznym.
• Derekursywacja: jak zmieniæ program rekurencyjny (czasami bardzo
czasoch³onny) na wersjê iteracyjn¹?
• Algorytmy przeszukiwania: przeszukiwanie liniowe, binarne i transformacja
liniowa (ang. hashing).
• Przeszukiwanie tekstów: opis najbardziej znanych metod przeszukiwania tekstów
(Boyera i Moore'a, Rabina i Karpa, brute-force, K-M-P).
• Zaawansowane techniki programowania: dziel i rz¹d , programowanie
dynamiczne, algorytmy ¿ar³oczne (ang. greedy).
• Algorytmika grafów: opis jednej z najciekawszych struktur danych
Wydawnictwo Helion wystêpuj¹cych w informatyce.
ul. Chopina 6 • Sztuczna inteligencja: czy komputery mog¹ my leæ?
44-100 Gliwice • Kodowanie i kompresja danych: opis najpopularniejszych metod kodowania
tel. (32)230-98-63
i kompresji danych — systemu kryptograficznego z kluczem publicznym
e-mail: helion@helion.pl
i metody Huffmana
W ksi¹¿ce znajdziesz równie¿ liczne przyk³ady i zadania, które pomog¹ Ci sprawdziæ
swoj¹ wiedzê. Kod ród³owy znajdziesz na do³¹czonej dyskietce.
2. Spis treści
Przedmowa...................................................................................... 11
Rozdział 1. Zanim wystartujemy ........................................................................ 19
1.1. Jak to wcześniej bywało, czyli wyjątki z historii maszyn algorytmicznych..............21
1.2. Jak to się niedawno odbyło, czyli o tym, kto „wymyślił”
metodologię programowania .....................................................................................23
1.3. Proces koncepcji programów .....................................................................................24
1.4. Poziomy abstrakcji opisu i wybór języka...................................................................25
1.5. Poprawność algorytmów ............................................................................................27
Rozdział 2. Rekurencja ...................................................................................... 29
2.1. Definicja rekurencji....................................................................................................29
2.2. Ilustracja pojęcia rekurencji .......................................................................................31
2.3. Jak wykonują się programy rekurencyjne?...................................................................32
2.4. Niebezpieczeństwa rekurencji....................................................................................34
2.4.1. Ciąg Fibonacciego ............................................................................................34
2.4.2. Stack overflow!.................................................................................................36
2.5. Pułapek ciąg dalszy ....................................................................................................37
2.5.1. Stąd do wieczności............................................................................................37
2.5.2. Definicja poprawna, ale... .................................................................................38
2.6. Typy programów rekurencyjnych ..............................................................................39
2.7. Myślenie rekurencyjne ...............................................................................................41
2.7.1. Przykład 1.: Spirala...........................................................................................42
2.7.2. Przykład 2.: Kwadraty „parzyste”.....................................................................44
2.8. Uwagi praktyczne na temat technik rekurencyjnych .................................................45
2.9. Zadania .......................................................................................................................46
2.9.1. Zadanie 2.1........................................................................................................46
2.9.2. Zadanie 2.2........................................................................................................46
2.9.3. Zadanie 2.3........................................................................................................48
2.9.4. Zadanie 2.4........................................................................................................48
2.9.5. Zadanie 2.5........................................................................................................49
2.10. Rozwiązania i wskazówki do zadań.........................................................................49
2.10.1. Zadanie 2.1......................................................................................................49
2.10.2. Zadanie 2.2......................................................................................................50
2.10.3. Zadanie 2.3......................................................................................................50
2.10.4. Zadanie 2.4......................................................................................................51
2.10.5. Zadanie 2.5......................................................................................................52
3. 6 Algorytmy, struktury danych i techniki programowania
Rozdział 3. Analiza sprawności algorytmów ........................................................ 53
3.1. Dobre samopoczucie u ytkownika programu ............................................................54
3.2. Przykład 1: Jeszcze raz funkcja silnia... .....................................................................56
3.3. Przykład 2: Zerowanie fragmentu tablicy ..................................................................60
3.4. Przykład 3: Wpadamy w pułapkę...............................................................................62
3.5. Przykład 4: Ró ne typy zło oności obliczeniowej.....................................................63
3.6. Nowe zadanie: uprościć obliczenia! ............................................................................66
3.7. Analiza programów rekurencyjnych ...........................................................................66
3.7.1. Terminologia.....................................................................................................67
3.7.2. Ilustracja metody na przykładzie ......................................................................68
3.7.3. Rozkład logarytmiczny .....................................................................................70
3.7.4. Zamiana dziedziny równania rekurencyjnego ..................................................71
3.7.5. Funkcja Ackermanna, czyli coś dla smakoszy .................................................72
3.8. Zadania .......................................................................................................................73
3.8.1. Zadanie 3.1........................................................................................................73
3.8.2. Zadanie 3.2........................................................................................................74
3.8.3. Zadanie 3.3........................................................................................................74
3.8.4. Zadanie 3.4........................................................................................................74
3.9. Rozwiązania i wskazówki do zadań...........................................................................75
3.9.1 Zadanie 3.2.........................................................................................................75
3.9.2. Zadanie 3.4........................................................................................................76
Rozdział 4. Algorytmy sortowania ...................................................................... 77
4.1. Sortowanie przez wstawianie, algorytm klasy O(N2) ................................................78
4.2. Sortowanie bąbelkowe, algorytm klasy O(N2)...........................................................80
4.3. Quicksort, algorytm klasy O(N log N).......................................................................82
4.4. Heap Sort — sortowanie przez kopcowanie ..............................................................85
4.5. Sortowanie przez scalanie ..........................................................................................88
4.6. Uwagi praktyczne.......................................................................................................90
Rozdział 5. Struktury danych ............................................................................. 93
5.1. Listy jednokierunkowe...............................................................................................94
5.1.1. Realizacja struktur danych listy jednokierunkowej ..........................................96
5.1.2. Tworzenie listy jednokierunkowej....................................................................97
5.1.3. Listy jednokierunkowe — teoria i rzeczywistość................................................106
5.2. Tablicowa implementacja list...................................................................................119
5.2.1. Klasyczna reprezentacja tablicowa .................................................................119
5.2.2. Metoda tablic równoległych ...........................................................................121
5.2.3. Listy innych typów .........................................................................................123
5.3. Stos ...........................................................................................................................125
5.3.1. Zasada działania stosu.....................................................................................125
5.4. Kolejki FIFO ............................................................................................................129
5.5. Sterty i kolejki priorytetowe.....................................................................................132
5.6. Drzewa i ich reprezentacje .......................................................................................139
5.6.1. Drzewa binarne i wyra enia arytmetyczne .....................................................142
5.7. Uniwersalna struktura słownikowa ..........................................................................147
5.8. Zbiory .......................................................................................................................152
5.9. Zadania .....................................................................................................................155
5.9.1. Zadanie 5.1......................................................................................................155
5.9.2. Zadanie 5.2......................................................................................................155
5.9.3. Zadanie 5.3......................................................................................................155
5.10. Rozwiązania zadań.................................................................................................155
5.10.1. Zadanie 5.1....................................................................................................155
5.10.2. Zadanie 5.3....................................................................................................156
4. Spis treści 7
Rozdział 6. Derekursywacja i optymalizacja algorytmów ................................... 157
6.1. Jak pracuje kompilator? ...........................................................................................158
6.2. Odrobina formalizmu nie zaszkodzi!..........................................................................160
6.3. Kilka przykładów derekursywacji algorytmów ...........................................................162
6.4. Derekursywacja z wykorzystaniem stosu ................................................................165
6.4.1. Eliminacja zmiennych lokalnych....................................................................166
6.5. Metoda funkcji przeciwnych....................................................................................168
6.6. Klasyczne schematy derekursywacji........................................................................170
6.6.1. Schemat typu while.........................................................................................171
6.6.2. Schemat typu if-else........................................................................................173
6.6.3. Schemat z podwójnym wywołaniem rekurencyjnym .....................................175
6.7. Podsumowanie .........................................................................................................177
Rozdział 7. Algorytmy przeszukiwania .............................................................. 179
7.1. Przeszukiwanie liniowe............................................................................................179
7.2. Przeszukiwanie binarne............................................................................................180
7.3. Transformacja kluczowa (hashing) ..........................................................................181
7.3.1. W poszukiwaniu funkcji H .............................................................................183
7.3.2. Najbardziej znane funkcje H...........................................................................184
7.3.3. Obsługa konfliktów dostępu ...........................................................................187
7.3.4. Powrót do źródeł .............................................................................................187
7.3.5. Jeszcze raz tablice!..........................................................................................188
7.3.6. Próbkowanie liniowe ......................................................................................189
7.3.7. Podwójne kluczowanie ...................................................................................191
7.3.8. Zastosowania transformacji kluczowej...........................................................193
7.3.9. Podsumowanie metod transformacji kluczowej ...............................................193
Rozdział 8. Przeszukiwanie tekstów ................................................................. 195
8.1. Algorytm typu brute-force .......................................................................................195
8.2. Nowe algorytmy poszukiwań...................................................................................197
8.2.1. Algorytm K-M-P.............................................................................................198
8.2.2.Algorytm Boyera i Moore’a.............................................................................203
8.2.3. Algorytm Rabina i Karpa................................................................................205
Rozdział 9. Zaawansowane techniki programowania......................................... 209
9.1. Programowanie typu „dziel i zwycię aj” .................................................................210
9.1.1. Odszukiwanie minimum i maksimum w tablicy liczb....................................211
9.1.2. Mno enie macierzy o rozmiarze N×N............................................................214
9.1.3. Mno enie liczb całkowitych ...........................................................................217
9.1.4. Inne znane algorytmy „dziel i zwycię aj” ......................................................218
9.2. Algorytmy „ arłoczne”, czyli przekąsić coś nadszedł ju czas... ............................219
9.2.1. Problem plecakowy, czyli niełatwe jest ycie turysty-piechura ...........................220
9.3. Programowanie dynamiczne ....................................................................................223
9.4. Uwagi bibliograficzne ..............................................................................................227
Rozdział 10. Elementy algorytmiki grafów .......................................................... 229
10.1. Definicje i pojęcia podstawowe .............................................................................230
10.2. Sposoby reprezentacji grafów ................................................................................232
10.3. Podstawowe operacje na grafach ...........................................................................234
10.3.1. Suma grafów .................................................................................................234
10.3.2. Kompozycja grafów......................................................................................234
10.3.3. Potęga grafu ..................................................................................................235
10.4. Algorytm Roy-Warshalla .......................................................................................236
10.5. Algorytm Floyda-Warshalla...................................................................................239
10.6. Algorytm Dijkstry ..................................................................................................243
5. 8 Algorytmy, struktury danych i techniki programowania
10.7. Drzewo rozpinające minimalne..............................................................................244
10.8. Przeszukiwanie grafów ..........................................................................................245
10.8.1. Strategia „w głąb” .........................................................................................246
10.8.2. Strategia „wszerz”.........................................................................................247
10.9. Problem właściwego doboru ..................................................................................249
10.10. Podsumowanie .....................................................................................................254
Rozdział 11.Algorytmy numeryczne.................................................................... 255
11.1. Poszukiwanie miejsc zerowych funkcji .................................................................255
11.2. Iteracyjne obliczanie wartości funkcji....................................................................257
11.3. Interpolacja funkcji metodą Lagrange’a ................................................................258
11.4. Ró niczkowanie funkcji.........................................................................................260
11.5. Całkowanie funkcji metodą Simpsona...................................................................262
11.6. Rozwiązywanie układów równań liniowych metodą Gaussa ................................263
11.7. Uwagi końcowe......................................................................................................266
Rozdział 12. Czy komputery mogą myśleć? ........................................................ 267
12.1. Przegląd obszarów zainteresowań Sztucznej Inteligencji......................................268
12.1.1. Systemy eksperckie.......................................................................................269
12.1.2. Sieci neuronowe............................................................................................271
12.2. Reprezentacja problemów ......................................................................................272
12.2.1. Ćwiczenie 12.1..............................................................................................274
12.3. Gry dwuosobowe i drzewa gier..............................................................................274
12.4. Algorytm mini-max................................................................................................276
Rozdział 13. Kodowanie i kompresja danych ...................................................... 281
13.1. Kodowanie danych i arytmetyka du ych liczb...........................................................283
13.1.1. Kodowanie symetryczne...............................................................................284
13.1.2. Kodowanie asymetryczne .............................................................................285
13.1.3. Metody prymitywne......................................................................................292
13.1.4. Łamanie szyfrów...........................................................................................293
13.2. Techniki kompresji danych ....................................................................................294
13.2.1. Kompresja poprzez modelowanie matematyczne.........................................296
13.2.2. Kompresja metodą RLE................................................................................297
13.2.3. Kompresja danych metodą Huffmana ..........................................................298
13.2.4. Kodowanie LZW ..........................................................................................304
13.2.5. Idea kodowania słownikowego na przykładach ...........................................304
13.2.6. Opis formatu GIF..........................................................................................307
Rozdział 14. Zadania różne................................................................................ 311
14.1. Teksty zadań...........................................................................................................311
14.1.1. Zadanie 14.1..................................................................................................311
14.1.2. Zadanie 14.2..................................................................................................312
14.1.3. Zadanie 14.3..................................................................................................312
14.1.4. Zadanie 14.4..................................................................................................312
14.1.5. Zadanie 14.5..................................................................................................312
14.1.6. Zadanie 14.6..................................................................................................312
14.1.7. Zadanie 14.7..................................................................................................312
14.1.8. Zadanie 14.8..................................................................................................313
14.1.9. Zadanie 14.9..................................................................................................313
14.1.10. Zadanie 14.10..............................................................................................313
14.1.11. Zadanie 14.11..............................................................................................313
14.1.12. Zadanie 14.12..............................................................................................313
6. Spis treści 9
14.2. Rozwiązania ...........................................................................................................313
14.2.1. Zadanie 14.1..................................................................................................313
14.2.2. Zadanie 14.3..................................................................................................314
14.2.3. Zadanie 14.4..................................................................................................315
14.2.4. Zadanie 14.10................................................................................................315
14.2.5. Zadanie 14.12................................................................................................316
Dodatek A Poznaj C++ w pięć minut! .............................................................. 319
Dodatek B Systemy obliczeniowe w pigułce..................................................... 337
Literatura ...................................................................................... 343
Spis ilustracji ................................................................................ 345
Spis tablic ..................................................................................... 349
Skorowidz...................................................................................... 351
7. Rozdział 8.
Przeszukiwanie tekstów
Zanim na dobre zanurzymy się w lekturę nowego rozdziału, nale y wyjaśnić pewne nie-
porozumienie, które mo e towarzyszyć jego tytułowi. Otó za tekst będziemy uwa ali
ciąg znaków w sensie informatycznym. Nie zawsze będzie to miało cokolwiek wspólnego
z ludzką „pisaniną”! Tekstem będzie na przykład równie ciąg bitów1, który tylko przez
umowność mo e być podzielony na równej wielkości porcje, którym przyporządkowano
pewien kod liczbowy2.
Okazuje się wszelako, e przyjęcie konwencji dotyczących interpretacji informacji ułatwia
wiele operacji na niej. Dlatego te pozostańmy przy ogólnikowym stwierdzeniu „tekst”
wiedząc, e za tym określeniem mo e się kryć dość sporo znaczeń.
8.1. Algorytm typu brute-force
Zadaniem, które będziemy usiłowali wspólnie rozwiązać, jest poszukiwanie wzorca3 w
o długości M znaków w tekście t o długości N. Z łatwością mo emy zaproponować
dość oczywisty algorytm rozwiązujący to zadanie, bazując na pomysłach symbolicz-
nie przedstawionych na rysunku 8.1.
Rysunek 8.1. Fragmenty (jeszcze) zgodne
Algorytm typu brute-
-force przeszukiwania
tekstu T E L E F O N K O T E L E E K S O R A Z
N-1
0 j M-1 0 i
wzorzec w Badany tekst t
1
Reprezentujący np. pamięć ekranu.
2
Np. ASCII lub dowolny inny.
3
Ang. pattern matching.
8. 196 Algorytmy, struktury danych i techniki programowania
Zarezerwujmy indeksy L i K do poruszania się odpowiednio we wzorcu i tekście pod-
czas operacji porównywania znak po znaku zgodności wzorca z tekstem. Załó my, e
w trakcie poszukiwań obszary objęte szarym kolorem na rysunku okazały się zgodne.
Po stwierdzeniu tego faktu przesuwamy się zarówno we wzorcu, jak i w tekście o jedną
pozycję do przodu (K
; L
).
Có się jednak powinno stać z indeksami K oraz L podczas stwierdzenia niezgodności
znaków? W takiej sytuacji całe poszukiwanie kończy się pora ką, co zmusza nas do
anulowania „szarej strefy” zgodności. Czynimy to poprzez cofnięcie się w tekście o to,
co było zgodne, czyli o L znaków, wyzerowując przy okazji L. Omówmy jeszcze mo-
ment stwierdzenia całkowitej zgodności wzorca z tekstem. Kiedy to nastąpi? Otó
nietrudno zauwa yć, e podczas stwierdzenia zgodności ostatniego znaku L powinno
zrównać się z /. Mo emy wówczas łatwo odtworzyć pozycję, od której wzorzec startuje
w badanym tekście: będzie to oczywiście K/.
Tłumacząc powy sze sytuacje na C++, mo emy łatwo dojść do następującej procedury:
txt-1.cpp
KPV UWMCL
EJCT
15. C TCM
EQWV UWMCL
CD GPFN YTCEC
_
Jako wynik funkcji zwracana jest pozycja w tekście, od której zaczyna się wzorzec, lub
w przypadku, gdy poszukiwany tekst nie został odnaleziony — jest to znana nam ju
doskonale konwencja. Przypatrzmy się dokładniej przykładowi poszukiwania wzorca
w pewnym tekście binarnym (patrz rysunek 8.2).
16. Rozdział 8. ♦ Przeszukiwanie tekstów 197
Rysunek 8.2. `0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1
„Fałszywe starty”
podczas poszukiwania 1 0 1 0 0
1 0 1 0 0
1 0 1 0 0
1 0 1 0 0
1 0 1 0 0
1 0 1 0 0
1 0 1 0 0
1 0 1 0 0
1 0 1 0 0
1 0 1 0 0
Rysunek jest nieco uproszczony: w istocie poziome przesuwanie się wzorca oznacza in-
strukcje zaznaczone na listingu jako (*), natomiast cała szara strefa o długości k oznacza
k-krotne wykonanie (**).
Na podstawie zobrazowanego przykładu mo emy spróbować wymyślić taki najgorszy
tekst i wzorzec, dla których proces poszukiwania będzie trwał mo liwie najdłu ej. Cho-
dzi oczywiście o zarówno tekst, jak i wzorzec zło one z samych zer i zakończone je-
dynką4.
Spróbujmy obliczyć klasę tego algorytmu dla opisanego przed chwilą ekstremalnego naj-
gorszego przypadku. Obliczenie nie nale y do skomplikowanych czynności: zakłada-
jąc, e restart algorytmu będzie konieczny
0
/0/
razy, i wiedząc, e pod-
czas ka dego cyklu jest konieczne wykonanie / porównań, otrzymujemy natychmiast
/
0/
, czyli około5 / 0.
Zaprezentowany w tym paragrafie algorytm wykorzystuje komputer jako bezmyślne,
ale sprawne liczydło6. Jego zło oność obliczeniowa eliminuje go w praktyce z przeszu-
kiwania tekstów binarnych, w których mo e wystąpić wiele niekorzystnych konfigura-
cji danych. Jedyną zaletą algorytmu jest jego prostota, co i tak nie czyni go na tyle atrak-
cyjnym, by dać się zamęczyć jego powolnym działaniem.
8.2. Nowe algorytmy poszukiwań
Algorytm, o którym będzie mowa w tym rozdziale, posiada ciekawą historię, którą
w formie anegdoty warto przytoczyć. Otó w 1970 roku S. A. Cook udowodnił teore-
tyczny rezultat dotyczący pewnej abstrakcyjnej maszyny. Wynikało z niego, e istniał
4
Zera i jedynki symbolizują tu dwa ró ne od siebie znaki.
5
Zwykle / będzie znacznie mniejsze ni 0.
6
Termin brute-force jeden z moich znajomych ślicznie przetłumaczył jako „metodę mastodonta”.
17. 198 Algorytmy, struktury danych i techniki programowania
algorytm poszukiwania wzorca w tekście, który działał w czasie proporcjonalnym do
/
0 w najgorszym przypadku. Rezultat pracy Cooka wcale nie był przewidziany do prak-
tycznych celów, niemniej D. E. Knuth i V. R. Pratt otrzymali na jego podstawie algo-
rytm, który był łatwo implementowalny praktycznie — ukazując przy okazji, i pomię-
dzy praktycznymi realizacjami a rozwa aniami teoretycznymi nie istnieje wcale a tak
ogromna przepaść, jakby się to mogło wydawać. W tym samym czasie J. H. Morris od-
krył dokładnie ten sam algorytm jako rozwiązanie problemu, który napotkał podczas
praktycznej implementacji edytora tekstu. Algorytm K-M-P — bo tak będziemy go dalej
zwali — jest jednym z przykładów dość częstych w nauce odkryć równoległych: z ja-
kichś niewiadomych powodów nagle kilku pracujących osobno ludzi dochodzi do tego
samego dobrego rezultatu. Prawda, e jest w tym coś niesamowitego i a się prosi o ja-
kieś metafizyczne hipotezy?
Knuth, Morris i Pratt opublikowali swój algorytm dopiero w 1976 roku. W międzyczasie
pojawił się kolejny „cudowny” algorytm, tym razem autorstwa R. S. Boyera i J. S.
Moore’a, który okazał się w pewnych zastosowaniach znacznie szybszy od algorytmu
K-M-P. Został on równie równolegle wynaleziony (odkryty?) przez R. W. Gospera.
Oba te algorytmy są jednak dość trudne do zrozumienia bez pogłębionej analizy, co
utrudniło ich rozpropagowanie.
W roku 1980 R. M. Karp i M. O. Rabin doszli do wniosku, e przeszukiwanie tekstów
nie jest a tak dalekie od standardowych metod przeszukiwania i wynaleźli algorytm,
który — działając ciągle w czasie proporcjonalnym do /
0 — jest ideowo zbli ony do
poznanego ju przez nas algorytmu typu brute-force. Na dodatek, jest to algorytm, który
mo na względnie łatwo uogólnić na przypadek poszukiwania w tablicach 2-wymiaro-
wych, co czyni go potencjalnie u ytecznym w obróbce obrazów.
W następnych trzech sekcjach szczegółowo omówimy sobie wspomniane w tym prze-
glądzie historycznym algorytmy.
8.2.1. Algorytm K-M-P
Wadą algorytmu brute-force jest jego czułość na konfigurację danych: fałszywe restarty
są tu bardzo kosztowne; w analizie tekstu cofamy się o całą długość wzorca, zapomi-
nając po drodze wszystko, co przetestowaliśmy do tej pory. Narzuca się tu niejako
chęć skorzystania z informacji, które ju w pewien sposób posiadamy — przecie
w następnym etapie będą wykonywane częściowo te same porównania, co poprzednio!
W pewnych szczególnych przypadkach przy znajomości struktury analizowanego tek-
stu mo liwe jest ulepszenie algorytmu. Przykładowo: jeśli wiemy na pewno, i w po-
szukiwanym wzorcu jego pierwszy znak nie pojawia się ju w nim w ogóle7, to
w razie restartu nie musimy cofać wskaźnika K o L pozycji, jak to było poprzednio
(patrz listing txt-1.cpp). W tym przypadku mo emy po prostu zinkrementować K wiedząc,
e ewentualne powtórzenie poszukiwań na pewno nic by ju nie dało. Owszem, mo -
na się łatwo zgodzić z twierdzeniem, i tak wyspecjalizowane teksty zdarzają się re-
latywnie rzadko, jednak powy szy przykład ukazuje, i ewentualne manipulacje algo-
7
Przykład: „ABBBBBBB” — znak ‘A’ wystąpił tylko jeden raz.
18. Rozdział 8. ♦ Przeszukiwanie tekstów 199
rytmami poszukiwań są ciągle mo liwe — wystarczy się tylko rozejrzeć. Idea algorytmu
K-M-P. polega na wstępnym zbadaniu wzorca w celu obliczenia ilości pozycji, o które
nale y cofnąć wskaźnik K w przypadku stwierdzenia niezgodności badanego tekstu ze
wzorcem. Oczywiście, mo na równie rozumować w kategoriach przesuwania wzorca
do przodu — rezultat będzie ten sam. To właśnie tę drugą konwencję będziemy stosować
dalej. Wiemy ju , e powinniśmy przesuwać się po badanym tekście nieco inteligentniej
ni w poprzednim algorytmie. W przypadku zauwa enia niezgodności na pewnej pozy-
cji L wzorca8 nale y zmodyfikować ten indeks, wykorzystując informację zawartą w ju
zbadanej „szarej strefie” zgodności.
Brzmi to wszystko (zapewne) niesłychanie tajemniczo, pora więc jak najszybciej wyjaśnić
tę sprawę, aby uniknąć mo liwych nieporozumień. Popatrzmy w tym celu na rysunek 8.3.
Rysunek 8.3.
Wyszukiwanie optymalnego
przesunięcia w algorytmie
K-M-P
Moment niezgodności został zaznaczony poprzez narysowanie przerywanej pionowej
kreski. Otó wyobraźmy sobie, e przesuwamy teraz wzorzec bardzo wolno w prawo,
patrząc jednocześnie na ju zbadany tekst — tak, aby obserwować ewentualne pokrycie
się tej części wzorca, która znajduje się po lewej stronie przerywanej kreski, z tekstem,
który umieszczony jest powy ej wzorca. W pewnym momencie mo e okazać się, e na-
stępuje pokrycie obu tych części. Zatrzymujemy wówczas przesuwanie i kontynuujemy
testowanie (znak po znaku) zgodności obu części znajdujących się za kreską pionową.
Od czego zale y ewentualne pokrycie się oglądanych fragmentów tekstu i wzorca? Otó ,
dość paradoksalnie badany tekst nie ma tu nic do powiedzenia — jeśli mo na to tak
określić. Informacja o tym, jaki on był, jest ukryta w stwierdzeniu „L znaków było
zgodnych” — w tym sensie mo na zupełnie o badanym tekście zapomnieć i analizując
wyłącznie sam wzorzec, odkryć poszukiwane optymalne przesunięcie. Na tym właśnie
spostrze eniu opiera się idea algorytmu K-M-P. Okazuje się, e badając samą strukturę
wzorca, mo na obliczyć, jak powinniśmy zmodyfikować indeks L w razie stwierdzenia
niezgodności tekstu ze wzorcem na j-tej pozycji.
Zanim zagłębimy się w wyjaśnienia na temat obliczania owych przesunięć, popatrzmy
na efekt ich działania na kilku kolejnych przykładach. Na rysunku 8.4 mo emy do-
strzec, i na siódmej pozycji wzorca9 (którym jest dość abstrakcyjny ciąg ) zo-
stała stwierdzona niezgodność.
Jeśli zostawimy indeks K w spokoju, to — modyfikując wyłącznie L — mo emy bez
problemu kontynuować przeszukiwanie. Jakie jest optymalne przesunięcie wzorca? Śli-
zgając go wolno w prawo (patrz rysunek 8.4) doprowadzamy w pewnym momencie
do nało enia się ciągów przed kreską — cała strefa niezgodności została wyprowa-
dzona na prawo i ewentualne dalsze testowanie mo e być kontynuowane!
8
Lub i w przypadku badanego tekstu.
9
Licząc indeksy tablicy tradycyjnie od zera.
19. 200 Algorytmy, struktury danych i techniki programowania
Rysunek 8.4. i=const i=const
Przesuwanie się wzorca
w algorytmie K-M-P (1) 1 2 3 4 1 2 3 5 1 2 3 4 1 2 3 5
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
j=7 j=3
Analogiczny przykład znajduje się na rysunku 8.5.
Rysunek 8.5. i=const i=const
Przesuwanie się wzorca
w algorytmie K-M-P (2) 1 0 1 1 0 1 0 1 0 1 1 0 1 0
1 0 1 1 1 1 0 1 0 1 1 1 1 0
j=3 j=1
Tym razem niezgodność wystąpiła na pozycji L. Dokonując — podobnie jak poprzed-
nio — przesuwania wzorca w prawo, zauwa amy, i jedyne mo liwe nało enie się
znaków wystąpi po przesunięciu o dwie pozycje w prawo — czyli dla L. Dodatko-
wo okazuje się, e znaki za kreską te się pokryły, ale o tym algorytm dowie się dopiero
podczas kolejnego testu zgodności na pozycji K.
Dla potrzeb algorytmu K-M-P konieczne okazuje się wprowadzenie tablicy przesunięć
KPV UJKHV=/?. Sposób jej zastosowania będzie następujący: jeśli na pozycji L wystąpiła
niezgodność znaków, to kolejną wartością L będzie UJKHV=L?. Nie wnikając chwilowo
w sposób inicjalizacji tej tablicy (odmiennej oczywiście dla ka dego wzorca), mo e-
my natychmiast podać algorytm K-M-P, który w konstrukcji jest niemal dokładną kopią
algorytmu typu brute-force:
kmp.cpp
KPV MOR
EJCT
21. V
]
KPV KL0UVTNGP
V
HQT
KLK0 L/K
L
YJKNG
L
V=K? Y=L?
LUJKHV=L?
KH
L/
TGVWTP K/
GNUG
TGVWTP
_
Szczególnym przypadkiem jest wystąpienie niezgodności na pozycji zerowej: z za-
ło enia niemo liwe jest tu przesuwanie wzorca w celu uzyskania nało enia się znaków.
Z tego powodu chcemy, aby indeks L pozostał niezmieniony przy jednoczesnej progre-
sji indeksu K. Jest to mo liwe do uzyskania, jeśli umówimy się, e UJKHV=? zostanie
zainicjowany wartością . Wówczas podczas kolejnej iteracji pętli HQT nastąpi in-
krementacja K oraz L, co wyzeruje nam L.
22. Rozdział 8. ♦ Przeszukiwanie tekstów 201
Pozostaje do omówienia sposób konstrukcji tablicy UJKHV=/?. Jej obliczenie powinno
nastąpić przed wywołaniem funkcji MOR, co sugeruje, i w przypadku wielokrotnego po-
szukiwania tego samego wzorca nie musimy ju powtarzać inicjacji tej tablicy. Funk-
cja inicjująca tablicę jest przewrotna — jest ona praktycznie identyczna z MOR z tą tylko
ró nicą, i algorytm sprawdza zgodność wzorca... z nim samym!
KPV UJKHV=/?
XQKF KPKVAUJKHVU
EJCT
23. Y
]
KPV KL
UJKHV=?
HQT
KL K/ K
L
UJKHV=K?L
YJKNG
L
Y=K? Y=L?
LUJKHV=L?
_
Sens tego algorytmu jest następujący: tu po inkrementacji K i L wiemy, e pierwsze L
znaków wzorca jest zgodne ze znakami na pozycjach: R=KL? R=K? (ostatnie L
pozycji w pierwszych K znakach wzorca). Poniewa jest to największe L spełniające po-
wy szy warunek, zatem, aby nie ominąć potencjalnego miejsca wykrycia wzorca w tek-
ście, nale y ustawić UJKHV=K? na L.
Popatrzmy, jaki będzie efekt zadziałania funkcji KPKVAUJKHVU na słowie ananas (patrz
rysunek 8.6). Zacieniowane litery oznaczają miejsca, w których wystąpiła niezgodność
wzorca z tekstem. W ka dym przypadku graficznie przedstawiono efekt przesunięcia
wzorca — widać wyraźnie, które strefy pokrywają się przed strefą zacieniowaną (po-
równaj rysunek 8.5).
Rysunek 8.6.
a) b)
Optymalne przesunięcia
wzorca „ananas” a n a n a s a n a n a s
a n a n a s a n a n a s
c) d)
a n a n a s a n a n a s
a n a n a s a n a n a s
e)
a n a n a s
a n a n a s
Przypomnijmy jeszcze, e tablica UJKHV zawiera nową wartość dla indeksu L, który
przemieszcza się po wzorcu.
Algorytm K-M-P mo na zoptymalizować, jeśli znamy z góry wzorce, których będziemy
poszukiwać. Przykładowo: jeśli bardzo często zdarza nam się szukać w tekstach sło-
wa ananas, to w funkcję MOR mo na wbudować tablicę przesunięć:
24. 202 Algorytmy, struktury danych i techniki programowania
ananas.cpp
KPV MORACPCPCU
EJCT
25. V
]
KPV K
UVCTV
K
GV KH
V=K? C IQVQ UVCTV
K
GV KH
V=K? P IQVQ GV
K
GV KH
V=K? C IQVQ GV
K
GV KH
V=K? P IQVQ GV
K
KH
V=K? C IQVQ GV
K
KH
V=K? U IQVQ GV
K
TGVWTP K
_
W celu właściwego odtworzenia etykiet nale y oczywiście co najmniej raz wykonać
funkcję KPKVAUJKHVU lub obliczyć samemu odpowiednie wartości. W ka dym razie gra
jest warta świeczki: powy sza funkcja charakteryzuje się bardzo zwięzłym kodem
wynikowym asemblerowym, jest zatem bardzo szybka. Posiadacze kompilatorów,
które umo liwiają generację kodu wynikowego jako tzw. „assembly output”10, mogą
z łatwością sprawdzić ró nice pomiędzy wersjami MOR i MORACPCPCU! Dla przykładu
mogę podać, e w przypadku wspomnianego kompilatora GNU klasyczna wersja pro-
cedury MOR (wraz z KPKVAUJKHVU) miała objętość około 170 linii kodu asemblerowego,
natomiast MORACPCPCU zmieściła się w ok. 100 liniach. (Patrz: pliki z rozszerzeniem s na
dyskietce dla kompilatora GNU lub asm dla kompilatora Borland C++ 5.5).
Algorytm K-M-P działa w czasie proporcjonalnym do /
0 w najgorszym przypadku.
Największy zauwa alny zysk związany z jego u yciem dotyczy przypadku tekstów
o wysokim stopniu samopowtarzalności — dość rzadko występujących w praktyce.
Dla typowych tekstów zysk związany z wyborem metody K-M-P będzie zatem słabo za-
uwa alny.
U ycie tego algorytmu jest jednak niezbędne w tych aplikacjach, w których następuje
liniowe przeglądanie tekstu — bez buforowania. Jak łatwo zauwa yć, wskaźnik K w funk-
cji MOR nigdy nie jest dekrementowany, co oznacza, e plik mo na przeglądać od po-
czątku do końca bez cofania się w nim. W niektórych systemach mo e to mieć istotne
znaczenie praktyczne — przykładowo: mamy zamiar analizować bardzo długi plik
tekstowy i charakter wykonywanych operacji nie pozwala na cofnięcie się w tej czynno-
ści (i w odczytywanym na bie ąco pliku).
10
W przypadku kompilatorów popularnej serii Borland C++ nale y skompilować program ręcznie poprzez
polecenie bcc32 -S -Ixxx plik.cpp, gdzie xxx oznacza katalog z plikami typu H; identyczna opcja istnieje
w kompilatorze GNU C++, nale y wystukać: c++ -S plik.cpp.
26. Rozdział 8. ♦ Przeszukiwanie tekstów 203
8.2.2.Algorytm Boyera i Moore’a
Kolejny algorytm, który będziemy omawiali, jest ideowo znacznie prostszy do zrozu-
mienia ni algorytm K-M-P. W przeciwieństwie do metody K-M-P porównywaniu
ulega ostatni znak wzorca. To niekonwencjonalne podejście niesie ze sobą kilka istot-
nych zalet:
jeśli podczas porównywania oka e się, e rozpatrywany aktualnie znak nie
wchodzi w ogóle w skład wzorca, wówczas mo emy „skoczyć” w analizie
tekstu o całą długość wzorca do przodu! Cię ar algorytmu przesunął się więc
z analizy ewentualnych zgodności na badanie niezgodności — a te ostatnie są
statystycznie znacznie częściej spotykane;
skoki wzorca są zazwyczaj znacznie większe od — porównaj z metodą K-M-P!
Zanim przejdziemy do szczegółowej prezentacji kodu, omówimy sobie na przykładzie je-
go działanie. Spójrzmy w tym celu na rysunek 8.7, gdzie przedstawione jest poszukiwa-
nie ciągu znaków „lek” w tekście „Z pamiętnika młodej lekarki”11.
Rysunek 8.7. Z p a m i ę t n i k a m ł o d e j l e k a r k i
Przeszukiwanie tekstu
metodą Boyera
i Moore'a l e k
l e k
l e k
l e k
l e k
l e k
l e k
l e k
l e k
Pierwsze pięć porównań trafia na litery: R, K, P, C i , które we wzorcu nie występują!
Za ka dym razem mo emy zatem przeskoczyć w tekście o trzy znaki do przodu (dłu-
gość wzorca). Porównanie szóste trafia jednak na literę G, która w słowie „lek” wy-
stępuje. Algorytm wówczas przesuwa wzorzec o tyle pozycji do przodu, aby litery G
nało yły się na siebie, i porównywanie jest kontynuowane.
Następnie okazuje się, e litera L nie występuje we wzorcu — mamy zatem prawo prze-
sunąć się o kolejne 3 znaki do przodu. W tym momencie trafiamy ju na poszukiwane
słowo, co następuje po jednokrotnym przesunięciu wzorca, tak aby pokryły się litery M.
Algorytm jest jak widać klarowny, prosty i szybki. Jego realizacja tak e nie jest zbyt
skomplikowana. Podobnie jak w przypadku metody poprzedniej, tak e i tu musimy wy-
konać pewną prekompilację w celu stworzenia tablicy przesunięć. Tym razem jednak
tablica ta będzie miała tyle pozycji, ile jest znaków w alfabecie — wszystkie znaki,
które mogą wystąpić w tekście plus spacja. Będziemy równie potrzebowali prostej
11
Tytuł znakomitego cyklu autorstwa Ewy Szumańskiej.
27. 204 Algorytmy, struktury danych i techniki programowania
funkcji KPFGMU, która zwraca w przypadku spacji liczbę zero — w pozostałych przypad-
kach numer litery w alfabecie. Poni szy przykład uwzględnia jedynie kilka polskich
liter — Czytelnik uzupełni go z łatwością o brakujące znaki. Numer litery jest oczywi-
ście zupełnie arbitralny i zale y od programisty. Wa ne jest tylko, aby nie pominąć w ta-
blicy adnej litery, która mo e wystąpić w tekście. Jedna z mo liwych wersji funkcji
KPFGMU jest przedstawiona poni ej:
EQPUV -
28. PCMK #5%++
RQNUMKG NKVGT[
URCELC
KPV UJKHV=-?
KPV KPFGMU
EJCT E
]
UYKVEJ
E
]
ECUG TGVWTP URCELC
ECUG ú TGVWTP
ECUG ù TGVWTP RQNUMKG NKVGT[
ECUG TGVWTP
ECUG TGVWTP KVF FNC RQQUVC [EJ
FGHCWNV RQNUMKEJ NKVGT
KH
KUNQYGT
E E LGUV OC æ NKVGTæ!
TGVWTP E C
GNUG
TGVWTP E #
_
_
Funkcja KPFGMU ma jedynie charakter usługowy. Słu y ona m.in. do właściwej inicjali-
zacji tablicy przesunięć. Mając za sobą analizę przykładu z rysunku 8.7, Czytelnik nie
powinien być zbytnio zdziwiony sposobem inicjalizacji:
XQKF KPKVAUJKHVU
EJCT
29. Y
]
KPV K /UVTNGP
Y
HQT
K K- K
UJKHV=K?/
HQT
K K/ K
UJKHV=KPFGMU
Y=K??/K
_
Przejdźmy wreszcie do prezentacji samego listingu algorytmu, z przykładem wywołania:
KPV DO
EJCT
31. V
]
KPKVAUJKHVU
Y
KPV K L0UVTNGP
V/UVTNGP
Y
HQT
K/L/ L KL
YJKNG
V=K? Y=L?
]
KPV ZUJKHV=KPFGMU
V=K??
KH
/L Z
K
/L
GNUG
K
Z
KH
K 0
TGVWTP
L/
_
32. Rozdział 8. ♦ Przeszukiwanie tekstów 205
TGVWTP K
_
KPV OCKP
]
EJCT
33. V RCOKúVPKMC O QFGL NGMCTMK
EQWV 9[PKM RQUWMKYC DO
NGM V GPFN
_
Algorytm Boyera i Moore’a, podobnie jak i K-M-P, jest klasy /
0 — jednak jest on
o tyle od niego lepszy, i w przypadku krótkich wzorców i długiego alfabetu kończy
się po około M/N porównaniach. W celu obliczenia optymalnych przesunięć12 autorzy al-
gorytmu proponują skombinowanie powy szego algorytmu z tym zaproponowanym
przez Knutha, Morrisa i Pratta. Celowość tego zabiegu wydaje się jednak wątpliwa,
gdy , optymalizując sam algorytm, mo na w bardzo łatwy sposób uczynić zbyt czaso-
chłonnym sam proces prekompilacji wzorca.
8.2.3. Algorytm Rabina i Karpa
Ostatni algorytm do przeszukiwania tekstów, który będziemy analizowali, wymaga zna-
jomości rozdziału 7. i terminologii, która została w nim przedstawiona. Algorytm Rabina
i Karpa polega bowiem na dość przewrotnej idei:
wzorzec Y (do odszukania) jest kluczem (patrz terminologia transformacji
kluczowej w rozdziale 7.) o długości / znaków, charakteryzującym się pewną
wartością wybranej przez nas funkcji *. Mo emy zatem obliczyć jednokrotnie
*Y*
Y i korzystać z tego wyliczenia w sposób ciągły.
tekst wejściowy V (do przeszukania) mo e być w taki sposób odczytywany,
aby na bie ąco znać / ostatnich znaków13. Z tych / znaków wyliczamy
na bie ąco *V*
V.
Gdy zało ymy jednoznaczność wybranej funkcji *, sprawdzenie zgodności wzorca
z aktualnie badanym fragmentem tekstu sprowadza się do odpowiedzi na pytanie: czy *Y
jest równe *V? Spostrzegawczy Czytelnik ma jednak prawo pokręcić w tym miejscu
z powątpiewaniem głową: przecie to nie ma prawa działać szybko! Istotnie, pomysł
wyliczenia dodatkowo funkcji * dla ka dego słowa wejściowego o długości / wydaje
się tak samo kosztowny — jak nie bardziej! — jak zwykłe sprawdzanie tekstu znak po
znaku (patrz algorytm brute-force, §8.1). Tym bardziej e jak do tej pory nie powie-
dzieliśmy ani słowa na temat funkcji *! Z poprzedniego rozdziału pamiętamy zapewne,
i jej wybór wcale nie był taki oczywisty.
Omawiany algorytm jednak istnieje i na dodatek działa szybko! Zatem, aby to wszyst-
ko, co poprzednio zostało napisane, logicznie się ze sobą łączyło, potrzebny nam będzie
zapewne jakiś trik. Sztuka polega na właściwym wyborze funkcji *. Robin i Karp wybrali
12
Rozwa np. wielokrotne występowanie takich samych liter we wzorcu.
13
Na samym początku będzie to oczywiście / pierwszych znaków tekstu.
34. 206 Algorytmy, struktury danych i techniki programowania
taką funkcję, która dzięki swym szczególnym właściwościom umo liwia dynamiczne
wykorzystywanie wyników obliczeń dokonanych krok wcześniej, co znacząco potrafi
uprościć obliczenia wykonywane w kroku bie ącym.
Załó my, e ciąg M znaków będziemy interpretować jako pewną liczbę całkowitą.
Przyjmując za b — jako podstawę systemu — ilość wszystkich mo liwych znaków,
otrzymamy:
x = t[i]b M-1 + t[i + 1]b M-2 +K t[i + M -1].
Przesuńmy się teraz w tekście o jedną pozycję do przodu i zobaczmy, jak zmieni się
wartość x:
x'= t[i + 1]b M-1 + t[i + 2]b M-2 +... t[i + M].
Jeśli dobrze przyjrzymy się x i x', to oka e się, e wartość x' jest w du ej części zbudo-
wana z elementów tworzących x — pomno onych przez b z uwagi na przesunięcie.
Nietrudno jest wówczas wywnioskować, e:
x'= ( x - t[i]b M-1 ) + t[i + M].
Jako funkcji * u yjemy dobrze nam znanej z poprzedniego rozdziału *
ZZ R, gdzie
R jest du ą liczbą pierwszą. Załó my, e dla danej pozycji K wartość *
Z jest nam
znana. Po przesunięciu się w tekście o jedną pozycję w prawo pojawia się konieczność
wyliczenia wartości funkcji *
Z dla tego „nowego” słowa. Czy istotnie zachodzi po-
trzeba powtarzania całego wyliczenia? Być mo e istnieje pewne ułatwienie bazujące na
zale ności, jaka istnieje pomiędzy Z i Z ?
Na pomoc przychodzi nam tu własność funkcji OQFWNQ u ytej w wyra eniu arytmetycz-
nym. Mo na oczywiście obliczyć OQFWNQ z wyniku końcowego, lecz to bywa czasami
niewygodne z uwagi na przykład wielkość liczby, z którą mamy do czynienia — a po-
za tym, gdzie tu byłby zysk szybkości?! Jednak identyczny wynik otrzymuje się, apliku-
jąc funkcję OQFWNQ po ka dej operacji cząstkowej i przenosząc otrzymaną wartość do
następnego wyra enia cząstkowego! Dla przykładu weźmy obliczenie:
(5*100 + 6 *10 + 8)%7 = 568%7 = 1.
Wynik ten jest oczywiście prawdziwy, co mo na łatwo sprawdzić z kalkulatorem. Iden-
tyczny rezultat da nam jednak następująca sekwencja obliczeń:
5*100%7 = 3 (3 + 6 *10)%7 = 0 (0 + 8)%7 = 1
co jest te łatwe do weryfikacji.
Implementacja algorytmu jest prosta, lecz zawiera kilka instrukcji wartych omówienia.
Popatrzmy na listing:
42. D
KPFGMU
V=K
/? R
KH
K 0/
TGVWTP RQTC MC RQUWMKYC
_
TGVWTP K
_
Na pierwszym etapie następuje wyliczenie początkowych wartości *V i *Y. Poniewa
ciągi znaków trzeba interpretować jako liczby, konieczne będzie zastosowanie znanej
ju nam doskonale funkcji KPFGMU (patrz strona 204.). Wartość *Y jest niezmienna i nie
wymaga uaktualniania. Nie dotyczy to jednak aktualnie badanego fragmentu tekstu —
tutaj wartość *V ulega zmianie podczas ka dej inkrementacji zmiennej K. Do obliczenia
*
Z mo emy wykorzystać omówioną wcześniej własność funkcji OQFWNQ — co jest do-
konywane w trzeciej pętli HQT. Dodatkowego wyjaśnienia wymaga być mo e linia ozna-
czona (*). Otó dodawanie wartości D
43. R do *V pozwala nam uniknąć przypadkowego
wskoczenia w liczby ujemne. Gdyby istotnie tak się stało, przeniesiona do następnego
wyra enia arytmetycznego wartość OQFWNQ byłaby nieprawidłowa i sfałszowałaby koń-
cowy wynik!
Kolejne uwagi nale ą się parametrom R i D. Zaleca się, aby R było du ą liczbą pierw-
szą14, jednak e nie mo na tu przesadzać z uwagi na mo liwe przekroczenie zakresu
pojemności u ytych zmiennych. W przypadku wyboru du ego R zmniejszamy praw-
dopodobieństwo wystąpienia kolizji spowodowanej niejednoznacznością funkcji *. Ta
mo liwość — mimo i mało prawdopodobna — ciągle istnieje i ostro ny programista
powinien wykonać dodatkowy test zgodności Y i V=K? V=K
/? po zwróceniu
przez funkcję TM pewnego indeksu K.
Co zaś się tyczy wyboru podstawy systemu (oznaczonej w programie jako b), to warto
jest wybrać liczbę nawet nieco za du ą, zawsze jednak będącą potęgą liczby 2. Mo -
liwe jest wówczas zaimplementowanie operacji mno enia przez b jako przesunięcia
bitowego — wykonywanego przez komputer znacznie szybciej ni zwykłe mno enie.
Przykładowo: dla b=64 mo emy zapisać mno enie D
44. R jako R.
Gwoli formalności jeszcze mo na dodać, e gdy nie występuje kolizja (typowy przy-
padek!), algorytm Robina i Karpa wykonuje się w czasie proporcjonalnym do /
0.
14
W naszym przypadku jest to liczba 33554393.