Doskonały podręcznik dla początkujących programistów
* Typy danych i konstrukcje sterujące
* Programowanie proceduralne i obiektowe
* Biblioteka STL
* Obsługa plików
C++ to jeden z najpopularniejszych języków programowania, jego możliwości są ogromne. Używa się go do pisania aplikacji narzędziowych, gier, a nawet systemów operacyjnych. Nauka języka C++ jest jednak żmudnym i skomplikowanym procesem -- to prawdziwe wyzwanie dla programistów. Opanowanie potęgi C++ wymaga poznania zasad programowania obiektowego, korzystania z bibliotek i szablonów, obsługi błędów i wyjątków i wielu innych zagadnień. Ale odpowiednio napisany podręcznik, zawierający podstawową wiedzę na temat tego języka, zdecydowanie ułatwi przyswojenie sztuki programowania w C++.
Książka "Język C++. Szkoła programowania. Wydanie V" to właśnie taki podręcznik. Jego autor Stephen Prata przedstawia C++ w sposób idealnie nadający się dla początkujących programistów chcących opanować tajniki tego języka. Czytając tę książkę, poznasz historię języka C i jego najważniejsze elementy, dowiesz się, czym różni się programowanie proceduralne od obiektowego i jak stosować te dwie techniki, korzystając z C++. Nauczysz się definiować klasy i obiekty, przydzielać zasoby pamięci dla aplikacji, korzystać ze wskaźników i implementować mechanizmy obsługi plików i strumieni wejścia-wyjścia.
* Kompilatory języka C++
* Struktura programu
* Proste i złożone typy danych
* Pętle i instrukcje warunkowe
* Definiowanie funkcji i korzystanie z nich
* Model pamięci w C++
* Podstawowe elementy programowania obiektowego -- obiekty i klasy
* Dynamiczne przydzielanie pamięci
* Mechanizmy dziedziczenia
* Obsługa wyjątków
* Biblioteka STL
* Operacje wejścia-wyjścia
Poznaj najważniejsze zasady programowania w C++.
Tworzenie zaskakujących efektów graficznych
* Jak stworzyć trójwymiarowe wykresy?
* Jak wykorzystać wzory matematyczne w programowaniu?
* W jaki sposób zastosować geometrię fraktalną do generowania grafiki?
Jesteś programistą Flasha i szukasz nowych wyzwań? A może zastanawiasz się, czy matematyka, jaką poznałeś w szkole lub na studiach, może okazać się przydatna w projektach prezentacji flashowych? Jeśli chcesz stworzyć we Flashu coś nowego, świetnie się przy tym bawiąc, możesz wykorzystać w tym celu swoją wiedzę matematyczną. Fraktale, ciąg Fibonacciego, geometria trójwymiarowa, rachunek wektorowy -- to wszystko może stać się narzędziem, dzięki któremu uzyskasz zapierające dech w piersiach efekty graficzne.
Książka "Flash. Akademia matematycznych sztuczek. Wydanie II" to zbiór projektów, których twórcy w ciekawy sposób wykorzystują znane zależności matematyczne. Czytając ją, dowiesz się, jak powstają hipnotyczne efekty wirujących kształtów geometrycznych oraz jak generować fraktalne krajobrazy i figury. Poznasz możliwości wykorzystania translacji wektorowych i macierzowych do konstruowania trójwymiarowych wykresów oraz brył. Nauczysz się także uwzględniać dynamikę w animacjach i symulować jej wpływ na animowane obiekty.
* Animowanie kształtów dwuwymiarowych
* Falująca siatka
* Tworzenie fraktalnych roślin i krajobrazów
* Wykorzystanie rekurencji
* Efekty trójwymiarowe
Przekonaj się, że matematyka wcale nie musi być żmudna i męcząca.
Poznaj technologię, która zrewolucjonizowała projektowanie stron WWW
* Definiowanie stylów dla tekstów i rysunków
* Pozycjonowanie elementów strony za pomocą stylów
* Dostosowywanie dokumentów do wyświetlania w różnych przeglądarkach
Kaskadowe arkusze stylów (CSS) całkowicie zmieniły sposób projektowania stron WWW. Formatowanie elementów za pomocą znaczników, żmudne rozmieszczanie ich w komórkach tabel oraz sztuczki, dzięki którym uzyskiwano efekt podświetlenia, to techniki uważane dziś już za przestarzałe. Wykorzystując technologię CSS możemy definiować wygląd każdego elementu umieszczonego na stronie. Przystosowanie strony do wyświetlania na ekranie telefonu komórkowego lub urządzenia PDA również nie stanowi problemu, jeśli zastosujemy do tego kaskadowe arkusze stylów. Opanowanie tej technologii jest dziś nieodzownym elementem wiedzy każdego projektanta witryn WWW.
Książka "CSS. Antologia. 101 wskazówek i trików" to zbiór porad dotyczących stosowania kaskadowych arkuszy stylów. Wykorzystując opisane w książce sposoby, zaprojektujesz estetyczne i efektywne witryny WWW i aplikacje internetowe. Czytając tę książkę, dowiesz się, jak definiować style dla elementów tekstowych i graficznych, w jaki sposób formatować tabele i formularze oraz jak stworzyć podświetlane przyciski bez korzystania z JavaScriptu. Przeczytasz tu również o pozycjonowaniu elementów strony za pomocą stylów, dostosowywaniu strony do wyświetlania w różnych przeglądarkach, systemach operacyjnych i urządzeniach. Poznasz także techniki umożliwiające uzyskanie "efektów specjalnych", które uatrakcyjnią wygląd Twojej witryny.
* Stosowanie stylów dla tekstu
* Przypisywanie stylów do elementów graficznych
* Budowanie mechanizmów nawigacyjnych
* Formatowanie tabel i formularzy
* Zachowanie zgodności witryny z różnymi modelami przeglądarek
* Definiowanie układu strony WWW za pomocą stylów
* Tworzenie efektów specjalnych
Odkryj możliwości kaskadowych arkuszy stylów.
Poznaj techniki obróbki zdjęć
* Wykorzystaj filtry i efekty Photoshopa
* Usuń niedoskonałości ze zdjęć
* Podkreśl walory fotografii
Wykonanie zdjęcia aparatem cyfrowym jest dopiero początkiem procesu, którego wynikiem jest zapierająca dech w piersiach fotografia. Dzięki nieograniczonym możliwościom cyfrowej obróbki możemy udoskonalić zdjęcie, usunąć z niego niepotrzebne elementy, a także połączyć dwa zdjęcia w jedno. Jednak efekty specjalne to nie wszystko --możemy także uwypuklić to, co chcieliśmy pokazać na naszej fotografii i podkreślić walory plastyczne zdjęcia.
Czytając książkę "10 projektów w cyfrowej ciemni fotograficznej" poznasz praktyczne zastosowania narzędzi oferowanych przez Photoshopa. Nauczysz się obrabiać cyfrowe zdjęcia wydobywając z nich to, co uważasz za najpiękniejsze. Nie znajdziesz tu opisów funkcji Photoshopa i znaczenia ich parametrów. Dowiesz się natomiast, w jaki sposób możesz wpływać za ich pomocą na wygląd zdjęcia a także rozwiniesz swój warsztat i wypracujesz własny styl.
Stwórz cyfrowe arcydzieła.
Poznaj możliwości i mechanizmy C++ stosowane przez profesjonalistów
* Efektywne zarządzanie pamięcią
* Obsługa błędów
* Biblioteki i wzorce projektowe
Język C++ od dawna cieszy się zasłużoną popularnością wśród twórców oprogramowania. Jednak często nawet najbardziej doświadczeni programiści nie wykorzystują wszystkich jego możliwości. W opracowaniach dotyczących tego języka najczęściej omawiana jest składnia i elementy języka, a znacznie rzadziej -- jego praktyczne zastosowania. Brak odniesień do praktyki powoduje nieznajomość wielu niezwykle przydatnych i ułatwiających pracę aspektów C++ i nadmierne eksploatowanie prostych, książkowych konstrukcji.
Książka "C++. Zaawansowane programowanie" to przegląd metod programowania nie omawianych w większości publikacji. Ten przeznaczony dla średnio zaawansowanych programistów podręcznik przedstawia zasady stosowania C++ do rozwiązywania prawdziwych problemów. Opisuje nieznane możliwości znacznie przyspieszające i usprawniające pracę, sposoby tworzenia przenośnego kodu oraz testowania oprogramowania. Książka zawiera również omówienie biblioteki standardowej C++ oraz wzorców projektowych.
* Zasady tworzenia projektów w C++
* Projektowanie obiektowe
* Korzystanie z biblioteki standardowej C++
* Tworzenie kodu przeznaczonego do wielokrotnego zastosowania
* Styl kodowania
* Zarządzanie pamięcią
* Procedury obsługi wyjątków
* Przeciążanie operatorów
* Tworzenie aplikacji wieloplatformowych
* Testowanie kodu i usuwanie błędów
* Programowanie rozproszone
* Stosowanie wzorców projektowych
Naucz się korzystać z C++ tak, jak robią to profesjonaliści.
Wzorce projektowe. Analiza kodu sposobem na ich poznanieWydawnictwo Helion
Opanuj zasady stosowania wzorców projektowych na praktycznych przykładach
* Dowiedz się, czym są wzorce projektowe
* Zaimplementuj wzorce we własnych programach
* Poznaj rodzaje wzorców projektowych
Wzorce projektowe to zapisane w sposób formalny sposoby rozwiązywania najczęstszych problemów, z jakimi borykają się twórcy oprogramowania stosujący języki obiektowe. Najczęściej stosowane wzorce zostały skatalogowane i przedstawione w postaci diagramów UML, jednak do poprawnego ich wykorzystywania niezbędna jest wiedza praktyczna. Przystępując do implementacji wzorca projektowego, należy poznać zakres jego zastosowania. Taką wiedzę najlepiej zdobywa się, analizując przykłady kodów źródłowych.
Dzięki książce "Wzorce projektowe. Analiza kodu sposobem na ich poznanie" poznasz wzorce w taki właśnie sposób -- badając programy, w których je zastosowano. Każdy z omawianych w książce wzorców zaprezentowany jest w oparciu o dwie implementacje szczegółowo wyjaśniające zasadę jego działania. Dzięki takim opisom wzorców opanujesz tę technologię znacznie szybciej niż w przypadku nauki teoretycznych podstaw oraz prób ich samodzielnego wdrażania we własnych aplikacjach. Unikniesz typowych błędów i dowiesz się, jak prawidłowo wykorzystywać każdy z wzorców.
* Zastosowanie wzorców projektowych
* Klasyfikacja wzorców
* Podstawowe pojęcia z dziedziny obiektowości
* Interfejsy i wzorce konstrukcyjne
* Implementacja wzorców obserwatora i fasady
* Wykorzystanie wzorców projektowych w aplikacjach bazodanowych
Książka zawiera również zestawienie najczęściej wykorzystywanych wzorców projektowych wraz z opisem ich zastosowań.
Środowisko programistyczne Delphi jest od dawna jednym z najpopularniejszych narzędzi stosowanych przez twórców aplikacji. Każda z jego wersji wnosiła wiele nowości, jednak wersja oznaczona symbolem 2005 to prawdziwy przełom. Umożliwia ona bowiem projektowanie aplikacji przeznaczonych dla platformy .NET, co otwiera przez programistami tysiące nowych możliwości. Mogą wykorzystywać bibliotekę klas FCL, tworzyć aplikacje nie tylko w znanym z poprzednich wersji Delphi języku Object Pascal, ale również w zyskującym coraz większą popularność języku C#, a także stosować w swoich programach klasy i obiekty napisane w dowolnym języku zgodnym z platformą .NET. Delphi 2005 to prawdziwa rewolucja.
Książka "Delphi 2005" wyczerpująco omawia najnowszą wersję tego środowiska programistycznego. Przedstawia jego możliwości i ich praktyczne zastosowanie. Szczegółowo opisuje zagadnienia podstawowe, takie jak praca z interfejsem użytkownika i stosowanie komponentów oraz tematy zaawansowane związane z tworzeniem aplikacji bazodanowych, korzystaniem z klas i obiektów specyficznych dla platformy .NET oraz pisaniem własnych komponentów.
* Korzystanie z elementów interfejsu użytkownika
* Zarządzanie plikami projektu
* Biblioteka klas .NET
* Przetwarzanie plików XML
* Zasady programowania obiektowego w Object Pascal
* Tworzenie aplikacji z wykorzystaniem biblioteki VCL.NET
* Połączenia z bazą danych za pomocą ADO.NET
* Zasady tworzenia własnych komponentów
Dzięki tej książce poznasz wszystkie możliwości najnowszej wersji Delphi.
Setki gotowych rozwiązań dla programistów XML i XSLT
Język XSLT to jedna z najważniejszych technologii służących do przekształcania dokumentów XML. Za pomocą tego języka można pobierać dane XML, przekształcać je na strony HTML, a nawet generować na ich podstawie wykresy w formacie SVG. Niniejsza książka to praktyczny przewodnik po tych oraz wielu innych funkcjach języka XSLT, a przedstawiony w niej materiał obejmuje także rozbudowane możliwości najnowszej wersji -- XSLT 2.0.
Książka "XSLT. Receptury. Wydanie II" zawiera setki gotowych rozwiązań problemów stojących przed programistami używającymi XSLT. Znajdziesz tu sposoby wykonania różnych zadań związanych z transformacją danych XML, zarówno tych podstawowych, jak i skomplikowanych. Poznasz rozmaite techniki przetwarzania dokumentów XML bazujące na obu wersjach języka XSLT. Zrozumiesz także praktyczne zagadnienia związane z wydajnością tworzonych rozwiązań i wygodą ich stosowania. W wielu recepturach znajdziesz alternatywne rozwiązania problemów, dzięki czemu będziesz mógł wybrać technikę najbardziej odpowiadającą wykonywanemu przez Ciebie zadaniu.
* Opis XSLT 2.0
* Wprowadzenie do języka XPath
* Wyszukiwanie danych w dokumentach XML
* Przekształcanie danych XML na różne formaty (zwykły tekst, HTML, SVG, XML)
* Przetwarzanie łańcuchów znaków i wyrażeń matematycznych
* Obsługa dat i czasu
* Obsługa zapytań XML
* Obsługa XSLT w innych językach
* Generowanie kodu
* Zaawansowane zastosowania XSLT
* Testowanie arkuszy XSLT
Gotowe rozwiązania przedstawione w tej książce pomogą
Ci w szybkim tworzeniu niezawodnych programów.
Excel jest jednym z najpopularniejszych programów biurowych. Ma wiele niezaprzeczalnych zalet, ale niektóre rozwiązania mogą doprowadzić użytkownika do szału. I choć w założeniu miały ułatwiać pracę, zdecydowanie ją utrudniają: pojawiający się znikąd Spinacz skutecznie przeszkadza w zrobieniu czegokolwiek, a prawidłowe wydrukowanie arkusza lub skoroszytu wymaga poświęcenia kilkudziesięciu kartek papieru na testowanie ustawień. Tych problemów można się w łatwy sposób pozbyć, a wtedy praca z Excelem stanie się o wiele łatwiejsza i przyjemniejsza.
"Sposoby na Excel" to zbiór porad, dzięki którym wyeliminujesz irytujące cechy Excela. Dowiesz się, jak ujarzmić formaty danych, które zmieniają się z niewiadomych przyczyn, jak posortować dane, które nie dają się posortować, i jak przyspieszyć działanie skomplikowanych formuł. Nauczysz się prawidłowo formatować komórki, wymieniać dane pomiędzy arkuszami i stosować makra, dzięki którym zdecydowanie szybciej wykonasz wiele operacji. Poznasz też tajemnice drukowania i tworzenia wykresów.
* Wprowadzanie i importowanie danych
* Formatowanie komórek i skoroszytów
* Tworzenie i edycja formuł
* Filtrowanie i przeszukiwanie danych
* Dodawanie wykresów do arkuszy
* Wymiana danych z innymi arkuszami
* Drukowanie arkuszy
* Korzystanie z VBA
Przeczytaj tę książkę i oszczędź sobie wielu stresów podczas pracy z Excelem.
Tworzenie zaskakujących efektów graficznych
* Jak stworzyć trójwymiarowe wykresy?
* Jak wykorzystać wzory matematyczne w programowaniu?
* W jaki sposób zastosować geometrię fraktalną do generowania grafiki?
Jesteś programistą Flasha i szukasz nowych wyzwań? A może zastanawiasz się, czy matematyka, jaką poznałeś w szkole lub na studiach, może okazać się przydatna w projektach prezentacji flashowych? Jeśli chcesz stworzyć we Flashu coś nowego, świetnie się przy tym bawiąc, możesz wykorzystać w tym celu swoją wiedzę matematyczną. Fraktale, ciąg Fibonacciego, geometria trójwymiarowa, rachunek wektorowy -- to wszystko może stać się narzędziem, dzięki któremu uzyskasz zapierające dech w piersiach efekty graficzne.
Książka "Flash. Akademia matematycznych sztuczek. Wydanie II" to zbiór projektów, których twórcy w ciekawy sposób wykorzystują znane zależności matematyczne. Czytając ją, dowiesz się, jak powstają hipnotyczne efekty wirujących kształtów geometrycznych oraz jak generować fraktalne krajobrazy i figury. Poznasz możliwości wykorzystania translacji wektorowych i macierzowych do konstruowania trójwymiarowych wykresów oraz brył. Nauczysz się także uwzględniać dynamikę w animacjach i symulować jej wpływ na animowane obiekty.
* Animowanie kształtów dwuwymiarowych
* Falująca siatka
* Tworzenie fraktalnych roślin i krajobrazów
* Wykorzystanie rekurencji
* Efekty trójwymiarowe
Przekonaj się, że matematyka wcale nie musi być żmudna i męcząca.
Poznaj technologię, która zrewolucjonizowała projektowanie stron WWW
* Definiowanie stylów dla tekstów i rysunków
* Pozycjonowanie elementów strony za pomocą stylów
* Dostosowywanie dokumentów do wyświetlania w różnych przeglądarkach
Kaskadowe arkusze stylów (CSS) całkowicie zmieniły sposób projektowania stron WWW. Formatowanie elementów za pomocą znaczników, żmudne rozmieszczanie ich w komórkach tabel oraz sztuczki, dzięki którym uzyskiwano efekt podświetlenia, to techniki uważane dziś już za przestarzałe. Wykorzystując technologię CSS możemy definiować wygląd każdego elementu umieszczonego na stronie. Przystosowanie strony do wyświetlania na ekranie telefonu komórkowego lub urządzenia PDA również nie stanowi problemu, jeśli zastosujemy do tego kaskadowe arkusze stylów. Opanowanie tej technologii jest dziś nieodzownym elementem wiedzy każdego projektanta witryn WWW.
Książka "CSS. Antologia. 101 wskazówek i trików" to zbiór porad dotyczących stosowania kaskadowych arkuszy stylów. Wykorzystując opisane w książce sposoby, zaprojektujesz estetyczne i efektywne witryny WWW i aplikacje internetowe. Czytając tę książkę, dowiesz się, jak definiować style dla elementów tekstowych i graficznych, w jaki sposób formatować tabele i formularze oraz jak stworzyć podświetlane przyciski bez korzystania z JavaScriptu. Przeczytasz tu również o pozycjonowaniu elementów strony za pomocą stylów, dostosowywaniu strony do wyświetlania w różnych przeglądarkach, systemach operacyjnych i urządzeniach. Poznasz także techniki umożliwiające uzyskanie "efektów specjalnych", które uatrakcyjnią wygląd Twojej witryny.
* Stosowanie stylów dla tekstu
* Przypisywanie stylów do elementów graficznych
* Budowanie mechanizmów nawigacyjnych
* Formatowanie tabel i formularzy
* Zachowanie zgodności witryny z różnymi modelami przeglądarek
* Definiowanie układu strony WWW za pomocą stylów
* Tworzenie efektów specjalnych
Odkryj możliwości kaskadowych arkuszy stylów.
Poznaj techniki obróbki zdjęć
* Wykorzystaj filtry i efekty Photoshopa
* Usuń niedoskonałości ze zdjęć
* Podkreśl walory fotografii
Wykonanie zdjęcia aparatem cyfrowym jest dopiero początkiem procesu, którego wynikiem jest zapierająca dech w piersiach fotografia. Dzięki nieograniczonym możliwościom cyfrowej obróbki możemy udoskonalić zdjęcie, usunąć z niego niepotrzebne elementy, a także połączyć dwa zdjęcia w jedno. Jednak efekty specjalne to nie wszystko --możemy także uwypuklić to, co chcieliśmy pokazać na naszej fotografii i podkreślić walory plastyczne zdjęcia.
Czytając książkę "10 projektów w cyfrowej ciemni fotograficznej" poznasz praktyczne zastosowania narzędzi oferowanych przez Photoshopa. Nauczysz się obrabiać cyfrowe zdjęcia wydobywając z nich to, co uważasz za najpiękniejsze. Nie znajdziesz tu opisów funkcji Photoshopa i znaczenia ich parametrów. Dowiesz się natomiast, w jaki sposób możesz wpływać za ich pomocą na wygląd zdjęcia a także rozwiniesz swój warsztat i wypracujesz własny styl.
Stwórz cyfrowe arcydzieła.
Poznaj możliwości i mechanizmy C++ stosowane przez profesjonalistów
* Efektywne zarządzanie pamięcią
* Obsługa błędów
* Biblioteki i wzorce projektowe
Język C++ od dawna cieszy się zasłużoną popularnością wśród twórców oprogramowania. Jednak często nawet najbardziej doświadczeni programiści nie wykorzystują wszystkich jego możliwości. W opracowaniach dotyczących tego języka najczęściej omawiana jest składnia i elementy języka, a znacznie rzadziej -- jego praktyczne zastosowania. Brak odniesień do praktyki powoduje nieznajomość wielu niezwykle przydatnych i ułatwiających pracę aspektów C++ i nadmierne eksploatowanie prostych, książkowych konstrukcji.
Książka "C++. Zaawansowane programowanie" to przegląd metod programowania nie omawianych w większości publikacji. Ten przeznaczony dla średnio zaawansowanych programistów podręcznik przedstawia zasady stosowania C++ do rozwiązywania prawdziwych problemów. Opisuje nieznane możliwości znacznie przyspieszające i usprawniające pracę, sposoby tworzenia przenośnego kodu oraz testowania oprogramowania. Książka zawiera również omówienie biblioteki standardowej C++ oraz wzorców projektowych.
* Zasady tworzenia projektów w C++
* Projektowanie obiektowe
* Korzystanie z biblioteki standardowej C++
* Tworzenie kodu przeznaczonego do wielokrotnego zastosowania
* Styl kodowania
* Zarządzanie pamięcią
* Procedury obsługi wyjątków
* Przeciążanie operatorów
* Tworzenie aplikacji wieloplatformowych
* Testowanie kodu i usuwanie błędów
* Programowanie rozproszone
* Stosowanie wzorców projektowych
Naucz się korzystać z C++ tak, jak robią to profesjonaliści.
Wzorce projektowe. Analiza kodu sposobem na ich poznanieWydawnictwo Helion
Opanuj zasady stosowania wzorców projektowych na praktycznych przykładach
* Dowiedz się, czym są wzorce projektowe
* Zaimplementuj wzorce we własnych programach
* Poznaj rodzaje wzorców projektowych
Wzorce projektowe to zapisane w sposób formalny sposoby rozwiązywania najczęstszych problemów, z jakimi borykają się twórcy oprogramowania stosujący języki obiektowe. Najczęściej stosowane wzorce zostały skatalogowane i przedstawione w postaci diagramów UML, jednak do poprawnego ich wykorzystywania niezbędna jest wiedza praktyczna. Przystępując do implementacji wzorca projektowego, należy poznać zakres jego zastosowania. Taką wiedzę najlepiej zdobywa się, analizując przykłady kodów źródłowych.
Dzięki książce "Wzorce projektowe. Analiza kodu sposobem na ich poznanie" poznasz wzorce w taki właśnie sposób -- badając programy, w których je zastosowano. Każdy z omawianych w książce wzorców zaprezentowany jest w oparciu o dwie implementacje szczegółowo wyjaśniające zasadę jego działania. Dzięki takim opisom wzorców opanujesz tę technologię znacznie szybciej niż w przypadku nauki teoretycznych podstaw oraz prób ich samodzielnego wdrażania we własnych aplikacjach. Unikniesz typowych błędów i dowiesz się, jak prawidłowo wykorzystywać każdy z wzorców.
* Zastosowanie wzorców projektowych
* Klasyfikacja wzorców
* Podstawowe pojęcia z dziedziny obiektowości
* Interfejsy i wzorce konstrukcyjne
* Implementacja wzorców obserwatora i fasady
* Wykorzystanie wzorców projektowych w aplikacjach bazodanowych
Książka zawiera również zestawienie najczęściej wykorzystywanych wzorców projektowych wraz z opisem ich zastosowań.
Środowisko programistyczne Delphi jest od dawna jednym z najpopularniejszych narzędzi stosowanych przez twórców aplikacji. Każda z jego wersji wnosiła wiele nowości, jednak wersja oznaczona symbolem 2005 to prawdziwy przełom. Umożliwia ona bowiem projektowanie aplikacji przeznaczonych dla platformy .NET, co otwiera przez programistami tysiące nowych możliwości. Mogą wykorzystywać bibliotekę klas FCL, tworzyć aplikacje nie tylko w znanym z poprzednich wersji Delphi języku Object Pascal, ale również w zyskującym coraz większą popularność języku C#, a także stosować w swoich programach klasy i obiekty napisane w dowolnym języku zgodnym z platformą .NET. Delphi 2005 to prawdziwa rewolucja.
Książka "Delphi 2005" wyczerpująco omawia najnowszą wersję tego środowiska programistycznego. Przedstawia jego możliwości i ich praktyczne zastosowanie. Szczegółowo opisuje zagadnienia podstawowe, takie jak praca z interfejsem użytkownika i stosowanie komponentów oraz tematy zaawansowane związane z tworzeniem aplikacji bazodanowych, korzystaniem z klas i obiektów specyficznych dla platformy .NET oraz pisaniem własnych komponentów.
* Korzystanie z elementów interfejsu użytkownika
* Zarządzanie plikami projektu
* Biblioteka klas .NET
* Przetwarzanie plików XML
* Zasady programowania obiektowego w Object Pascal
* Tworzenie aplikacji z wykorzystaniem biblioteki VCL.NET
* Połączenia z bazą danych za pomocą ADO.NET
* Zasady tworzenia własnych komponentów
Dzięki tej książce poznasz wszystkie możliwości najnowszej wersji Delphi.
Setki gotowych rozwiązań dla programistów XML i XSLT
Język XSLT to jedna z najważniejszych technologii służących do przekształcania dokumentów XML. Za pomocą tego języka można pobierać dane XML, przekształcać je na strony HTML, a nawet generować na ich podstawie wykresy w formacie SVG. Niniejsza książka to praktyczny przewodnik po tych oraz wielu innych funkcjach języka XSLT, a przedstawiony w niej materiał obejmuje także rozbudowane możliwości najnowszej wersji -- XSLT 2.0.
Książka "XSLT. Receptury. Wydanie II" zawiera setki gotowych rozwiązań problemów stojących przed programistami używającymi XSLT. Znajdziesz tu sposoby wykonania różnych zadań związanych z transformacją danych XML, zarówno tych podstawowych, jak i skomplikowanych. Poznasz rozmaite techniki przetwarzania dokumentów XML bazujące na obu wersjach języka XSLT. Zrozumiesz także praktyczne zagadnienia związane z wydajnością tworzonych rozwiązań i wygodą ich stosowania. W wielu recepturach znajdziesz alternatywne rozwiązania problemów, dzięki czemu będziesz mógł wybrać technikę najbardziej odpowiadającą wykonywanemu przez Ciebie zadaniu.
* Opis XSLT 2.0
* Wprowadzenie do języka XPath
* Wyszukiwanie danych w dokumentach XML
* Przekształcanie danych XML na różne formaty (zwykły tekst, HTML, SVG, XML)
* Przetwarzanie łańcuchów znaków i wyrażeń matematycznych
* Obsługa dat i czasu
* Obsługa zapytań XML
* Obsługa XSLT w innych językach
* Generowanie kodu
* Zaawansowane zastosowania XSLT
* Testowanie arkuszy XSLT
Gotowe rozwiązania przedstawione w tej książce pomogą
Ci w szybkim tworzeniu niezawodnych programów.
Excel jest jednym z najpopularniejszych programów biurowych. Ma wiele niezaprzeczalnych zalet, ale niektóre rozwiązania mogą doprowadzić użytkownika do szału. I choć w założeniu miały ułatwiać pracę, zdecydowanie ją utrudniają: pojawiający się znikąd Spinacz skutecznie przeszkadza w zrobieniu czegokolwiek, a prawidłowe wydrukowanie arkusza lub skoroszytu wymaga poświęcenia kilkudziesięciu kartek papieru na testowanie ustawień. Tych problemów można się w łatwy sposób pozbyć, a wtedy praca z Excelem stanie się o wiele łatwiejsza i przyjemniejsza.
"Sposoby na Excel" to zbiór porad, dzięki którym wyeliminujesz irytujące cechy Excela. Dowiesz się, jak ujarzmić formaty danych, które zmieniają się z niewiadomych przyczyn, jak posortować dane, które nie dają się posortować, i jak przyspieszyć działanie skomplikowanych formuł. Nauczysz się prawidłowo formatować komórki, wymieniać dane pomiędzy arkuszami i stosować makra, dzięki którym zdecydowanie szybciej wykonasz wiele operacji. Poznasz też tajemnice drukowania i tworzenia wykresów.
* Wprowadzanie i importowanie danych
* Formatowanie komórek i skoroszytów
* Tworzenie i edycja formuł
* Filtrowanie i przeszukiwanie danych
* Dodawanie wykresów do arkuszy
* Wymiana danych z innymi arkuszami
* Drukowanie arkuszy
* Korzystanie z VBA
Przeczytaj tę książkę i oszczędź sobie wielu stresów podczas pracy z Excelem.
C++ jest obecnie wiodącym językiem programowania obiektowego. Jego podstawowymi zaletami w stosunku do innych języków obiektowych jest wysoka efektywność i uniwersalność. Stosowany jest do tworzenia komercyjnego oprogramowania oraz efektywnych rozwiązań złożonych problemów.
Książka krok po kroku omawia wszystkie właściwości języka i wyjaśnia sposoby ich praktycznego użycia. Przedstawione przykłady programów nie są zbyt skomplikowane, by nie odrywać Twojej uwagi od omawianych zagadnień, ale nie są też sztucznie uproszczone. Kluczowym założeniem języka C++ jest programowanie z wykorzystaniem szablonów, które umożliwiają tworzenie rozwiązań o wysokim poziomie ogólności - na przykład implementację polimorfizmu. Nicolai Josuttis omawia możliwość łączenia szablonów z programowaniem obiektowym, która decyduje o potężnych możliwościach języka C++ jako narzędzia tworzenia wydajnych programów. W tym zakresie książka wykracza daleko poza podstawy.
* Wprowadzenie do C++ i programowania obiektowego
* Podstawowe pojęcia języka C++
* Programowanie klas
* Dziedziczenie i polimorfizm
* Składowe dynamiczne i statyczne
* Szablony języka C++
* Szczegółowe omówienie standardowej biblioteki wejścia-wyjścia
Książka ta jest idealnym podręcznikiem umożliwiającym studiowanie języka C++ w domowym zaciszu. Prezentuje ona zagadnienia podstawowe, ale w wielu przypadkach przekracza je dostarczając prawdziwie profesjonalnej wiedzy.
Wyczerpujący, szczegółowy, praktyczny i aktualny podręcznik programowania w języku C++
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
Rozpocznij przygodę z programowaniem
* Poznaj elementy języka C++.
* Naucz się przetwarzać dane tekstowe i liczbowe.
* Opanuj zasady programowania obiektowego.
C++ to język programowania wykorzystywany do wielu zadań. Programiści stosują go do tworzenia aplikacji użytkowych, gier, a nawet części systemów operacyjnych. Może więc wydawać się, że opanowanie zasad programowania w tym języku przekracza możliwości przeciętnego człowieka. Tak jednak nie jest -- programowanie to nie wiedza tajemna, dostępna jedynie dla wybranych, a programiści znający C++ nie są nadludźmi. Z odpowiednią pomocą można bez kłopotów zdobyć wiedzę o wszystkich sztuczkach i ciekawostkach C++, a nauka programowania w tym języku nie powinna sprawić Ci problemów.
Książka "C++ bez obaw" może być Twoim asystentem, gdy będziesz się uczył programowania w języku C++. Dzięki niej przekonasz się, że opanowanie tej sztuki leży w Twoim zasięgu. Znajdziesz w niej omówienie elementów C++ zilustrowane praktycznymi przykładami. Dowiesz się, z czego zbudowany jest program w C++ i jak sprawić, aby kod źródłowy stał się aplikacją możliwą do uruchomienia na Twoim komputerze. Przeczytasz o przetwarzaniu danych, operacjach na plikach, sortowaniu, obliczeniach matematycznych i programowaniu obiektowym. Poznasz wiele przydatnych zagadnień związanych z tworzeniem oprogramowania.
* Struktura programu w C++
* Wyświetlanie danych na ekranie
* Typy danych
* Pętle i instrukcje warunkowe
* Korzystanie ze wskaźników
* Operacje na plikach
* Programowanie obiektowe
Poszerz swoje możliwości, programuj w języku C++
"C++. Kruczki i fortele w programowaniu" to pomoc dla zawodowych programistów pozwalająca uniknąć lub poprawić dziewięćdziesiąt dziewięć najczęściej popełnianych i najbardziej szkodliwych błędów projektowych i programowych w C++. Jest to też książka, dzięki której można poznać niektóre niestandardowe cechy języka C++ i techniki programistyczne.
W książce omówiono typowe błędy występujące niemalże we wszystkich programach utworzonych w C++. Każdy z nich został starannie opisany, przedstawiono również konsekwencje wynikające z ich pojawienia się w kodzie programu i szczegółowy opis sposobów na ich uniknięcie. "C++. Kruczki i fortele w programowaniu” to książka o tym, jak uniknąć największych zagrożeń związanych z programowaniem w C++. Gotowa i praktyczna wiedza dla programistów, która pozwoli im uzyskać status ekspertów.
Omówione błędy dotyczą:
* Podstaw języka C++
* Składni języka
* Preprocesora
* Konwersji
* Inicjalizacji
* Zarządzania pamięcią i zasobami
* Polimorfizmu
* Projektowania klas
* Projektowania hierarchii
O autorze:
Stephen C. Dewhurst był jednym z pierwszych użytkowników języka C++ w laboratoriach Bell Labs. Ma ponad dwudziestoletnie doświadczenie w stosowaniu C++ do rozwiązywania problemów w takich dziedzinach, jak projektowanie kompilatorów, zabezpieczanie handlu elektronicznego czy telekomunikacja implementowana na bazie urządzeń wbudowanych [więcej...]
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...]
Doskonałe źródło wiedzy dla wszystkich programistów C#
* Szczegółowe omówienie C# i .NET w wersji 2.0
* Techniki tworzenia i zabezpieczania aplikacji oraz zarządzania kodem źródłowym i wersjami
* Dziesiątki przykładów i kodów źródłowych
Platforma .NET i język C# spowodowały prawdziwą rewolucję na rynku narzędzi programistycznych. Wersja 2.0 przyniosła kilka interesujących rozwiązań, w tym nowe typy danych, komponenty i klasy. Dodatkowe funkcje języka C# pozwalają na przyspieszenie i usprawnienie procesu tworzenia aplikacji oraz jej wdrażania i rozwijania. Dzięki platformie .NET przygotowanie wydajnej, bezpiecznej i łatwej do rozbudowy aplikacji stało się znacznie prostsze i szybsze.
Książka "C# i .NET" przedstawia możliwości platformy .NET i napisanego specjalnie dla niej języka C#. Opisuje elementy platformy, składnię i możliwości języka C# oraz zagadnienia związane z tworzeniem programów za pomocą tych narzędzi. Omawia zasady pisania aplikacji Window Forms i efektywne techniki stosowania klas graficznych z biblioteki GDI+. Charakteryzuje także technologię ADO.NET, metody korzystania z plików XML, przetwarzanie wielowątkowe oraz techniki tworzenia wydajnych aplikacji internetowych w technologii ASP.NET. Szczególną uwagę poświęcono bezpieczeństwu programów i danych oraz skalowaniu i lokalizacji oprogramowania.
* Elementy platformy .NET
* Podstawy języka C#
* Praca z klasami i obiektami w C#
* Przetwarzanie tekstu oraz operacje wejścia i wyjścia
* Tworzenie aplikacji Window Forms
* Korzystanie z biblioteki GDI+
* Połączenia z bazami danych za pomocą ADO.NET
* Aplikacje wielowątkowe oraz rozproszone
* Tworzenie aplikacji internetowych
Jeśli chcesz napisać w C# aplikację dobrej jakości, sięgnij po tę książkę.
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.
Programowanie w języku C jest czymś więcej niż tylko wprowadzaniem kodu zgodnego z regułami składni; styl i wykrywanie błędów odgrywają równie istotną rolę w procesie tworzenia oprogramowania. Istotnie przyczyniają się do prawidłowego działania programów oraz ułatwiają ich konserwację. W książce omówiono więc nie tylko działanie języka C, ale również cały proces tworzenia programu w tym języku (uwzględniając założenia projektowe programu, kodowanie, metody wykrywania błędów, dokumentację, konserwację oraz aktualizację).
Wbrew powszechnemu przekonaniu większość programistów nie spędza całego swojego czasu przy pisaniu kodu. Poświęcają oni wiele czasu na wprowadzanie zmian i poprawek do aplikacji napisanych przez kogoś innego. Po przeczytaniu tej książki będziesz w stanie tworzyć programy, z którymi inni programiści nie będą musieli staczać bojów. Posiądziesz również umiejętność analizowania kodu napisanego przez innego programistę.
Książka "Język C. Programowanie" omawia także popularne zintegrowane środowiska programistyczne dla systemu Windows (Borland C++, Turbo C++ oraz Microsoft Visual C++) oraz narzędzia programistyczne dla systemu UNIX (cc i gcc). Zawarto w niej również kod programu generującego statystyki, który ma za zadanie zademonstrowanie zagadnień omówionych w książce. Książka jest przeznaczona dla osób, które nie miały dotąd doświadczenia w programowaniu oraz dla programistów znających już język C, a pragnących poprawić swój styl i czytelność tworzonego kodu. Jeśli chcesz sprawnie posługiwać się C, "Język C. Programowanie" to idealny podręcznik dla Ciebie.
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...]
Poznanie ruchów figur szachowych to dopiero pierwszy krok w nauce tej gry. Aby ją opanować, trzeba zrozumieć strategie i taktyki, które wpływają na każdy ruch. To samo dotyczy języka C++. Znajomość właściwych strategii pomaga unikać pułapek i pracować o wiele skuteczniej. Rob Murray dzieląc się swoim doświadczeniem pomaga programistom C++ wykonać następny krok w kierunku tworzenia wydajnych aplikacji.
Licznie występujące w całej książce przykłady kodu mają na celu zilustrowanie przydatnych strategii programistycznych i ostrzec przed nabyciem niebezpiecznych nawyków. Aby dodatkowo ułatwić przyswajanie nowych umiejętności, każdy rozdział kończy się listą poruszonych w nim kluczowych zagadnień oraz pytaniami mającymi spowodować przemyślenia i dyskusje.
Książka przedstawia między innymi:
* Tworzenie właściwych abstrakcji dla projektu i przekształcanie abstrakcji w klasy C++
* Mechanizmy dziedziczenia pojedynczego i wielokrotnego
* Metody tworzenia klas
* Szczegółowy opis mechanizmu szablonów
* Wskazówki dotyczące stosowania wyjątków
* Metody tworzenia kodu nadającego się do wielokrotnego wykorzystania
* Przenoszenie programów z języka C do C++
Robert B. Murray jest wicedyrektorem ds. inżynierii oprogramowania w firmie Quantitative Data Systems dostarczającej niestandardowych rozwiązań z zakresu oprogramowania dla czołowych firm. [więcej...]
Język C++ od czasu jego zdefiniowania przez Bjarne Stroustrupa był kilkakrotnie uaktualniany w latach 80. i 90. XX wieku. Chociaż C++Builder nie jest dokładnym odzwierciedleniem standardu ANSI języka C++, to obecna jego wersja przygotowana przez firmę Borland jest stabilna i zgodna z oczekiwaniami programistów. Borland C++Builder stanowi połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych VCL/CLX oraz zintegrowanego środowiska programisty IDE.
"C++Builder. Kompendium programisty" omawia podstawy programowania w C++ ze szczególnym uwzględnieniem możliwości oferowanych przez kompilator Borland C++Builder. Poznasz więc nie tylko sam język, ale nauczysz się pisać w nim wydajne i przenośne aplikacje, działające zarówno w środowisku linuksowym, jak i w Windows.
Omówione zagadnienia obejmują:
* Opis zintegrowanego środowiska programisty C++Buildera
* Podstawy języka C++
* Wczesne oraz późne wiązanie -- wstęp do programowania zorientowanego obiektowo
* Możliwości C++Buildera w zakresie posługiwania się tablicami różnego typu
* Zaawansowane operatory rzutowania typów
* Informacje czasu wykonania
* Obsługę wyjątków
* Obsługę plików
* Łańcuchy ANSI
* Zmienne o typie modyfikowalnym w czasie wykonywania programu
* Funkcje FPU i systemowe
* Elementy wielowątkowości -- wykorzystanie C++ oraz C++Buildera w nowoczesnych, wielowątkowych systemach operacyjnych
* Liczby pseudolosowe i konwersje wielkości liczbowych
* Wprowadzenie do grafiki
* Komponentowy model C++Buildera i biblioteki DLL
* Biblioteka CLX -- projektowanie aplikacji przenośnych pomiędzy systemami operacyjnymi Windows i Linux
Zostań profesjonalnym programistą C#
C# jest uważany przez wielu programistów za najlepszy język stosowany do tworzenia aplikacji dla platformy .NET. Język ten, opracowany w firmie Microsoft, łączy w sobie najbardziej wartościowe cechy C++ i Javy, ścisłą integrację z komponentami .NET, wysoki poziom bezpieczeństwa i ogromne możliwości. Świetnie nadaje się do tworzenia aplikacji sieciowych i bazodanowych przeznaczonych zarówno dla systemu Windows, jak i dla urządzeń przenośnych, takich jak PocketPC. Popularność C# stale rośnie, a nieodpłatne udostępnienie przez firmę Microsoft środowiska programistycznego Visual C# Express Edition sprawiło, że coraz więcej twórców oprogramowania wykorzystuje je w swojej pracy.
Książka "Wstęp do programowania w języku C#" to podręcznik przeznaczony dla tych, którzy chcą poznać ten język od podstaw. Czytając ją, poznasz możliwości C# i platformy .NET. Nauczysz się tworzyć własne aplikacje, korzystając ze środowiska Visual C# Express Edition. W książce znajdziesz omówienie składni i elementów języka C#, wyjaśnienie zasad programowania obiektowego i sposobów realizacji różnych zadań programistycznych. Napiszesz aplikacje dla Windows wykorzystujące biblioteki klas .NET i obsługujące pliki w formacie XML.
* Konstrukcja platformy .NET
* Składnia C#
* Elementy języka
* Programowanie obiektowe
* Obsługa zdarzeń
* Korzystanie z tablic i kolekcji
* Obsługa wyjątków
* Biblioteka Windows Forms
* Stosowanie komponentów .NET
* Operacje na plikach i strumieniach
* Obsługa formatu XML
Język C++ to najpopularniejszy obecnie język programowania. Jego podstawowe zalety -- przejrzysta składnia, niewielka ilość słów kluczowych i szeroki wachlarz możliwości -- przysporzyły mu wielu zwolenników. Na rynku dostępnych jest wiele książek o programowaniu w C++, jednak większość z nich zawiera sposoby rozwiązywania konkretnych problemów i zadań programistycznych. Niewiele książek koncentruje się na założeniach, na których opiera się programowanie w języku C++.
W książce "Język C++. Koncepcje i techniki programowania" autorzy skoncentrowali się na kluczowych technikach programowania w C++. Jednak nie przedstawiają ich w formie odpowiedzi na pytania "jak to zrobić", ale "dlaczego robimy to tak, a nie inaczej". Opisują szeroki wachlarz idei i technik programowania w C++ począwszy od szczegółowych przykładów kodu, a skończywszy na zasadach i filozofii projektowania.
* Tworzenie klas
* Uchwyty klas
* Zasady projektowania obiektowego
* Szablony i iteratory
* Stosowanie bibliotek
* Projektowanie bibliotek
* Techniki programowania
Dzięki tej książce nauczysz się nie tylko przestrzegać reguł języka C++, ale także myśleć w tym języku podczas pracy nad programem.
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...]
C++. 50 efektywnych sposobów na udoskonalenie Twoich programówWydawnictwo Helion
Pierwsze wydanie książki "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" zostało sprzedane w nakładzie 100 000 egzemplarzy i zostało przetłumaczone na cztery języki. Nietrudno zrozumieć, dlaczego tak się stało. Scott Meyers w charakterystyczny dla siebie, praktyczny sposób przedstawił wiedzę typową dla ekspertów -- czynności, które niemal zawsze wykonują lub czynności, których niemal zawsze unikają, by tworzyć prosty, poprawny i efektywny kod. Każda z zawartych w tej książce pięćdziesięciu wskazówek jest streszczeniem metod pisania lepszych programów w C++, zaś odpowiednie rozważania są poparte konkretnymi przykładami. Z myślą o nowym wydaniu, autor opracował od początku wszystkie opisywane w tej książce wskazówki. Wynik jego pracy jest wyjątkowo zgodny z międzynarodowym standardem C++, technologią aktualnych kompilatorów oraz najnowszymi trendami w świecie rzeczywistych aplikacji C++.
Do najważniejszych zalet książki "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" należą:
* Eksperckie porady dotyczące projektowania zorientowanego obiektowo, projektowania klas i właściwego stosowania technik dziedziczenia
* Analiza standardowej biblioteki C++, włącznie z wpływem standardowej biblioteki szablonów oraz klas podobnych do string i vector na strukturę dobrze napisanych programów
* Rozważania na temat najnowszych możliwości języka C++: inicjalizacji stałych wewnątrz klas, przestrzeni nazw oraz szablonów składowych
* Wiedza będąca zwykle w posiadaniu wyłącznie doświadczonych programistów
Książka "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" pozostaje jedną z najważniejszych publikacji dla każdego programisty pracującego z C++.
Wzorce projektowe są modelami gotowych rozwiązań problemów programistycznych, przed jakimi często stają twórcy oprogramowania. Dzięki nim nie musimy ponownie "wymyślać koła". Dysponując wzorcami projektowymi, jesteśmy w stanie szybciej i efektywniej zbudować aplikację, ponieważ koncentrujemy się na samej implementacji algorytmu, a nie na jego opracowaniu. Najczęściej stosowane, klasyczne już, 23 wzorce projektowe opracowane przez twórców notacji UML implementowano już w wielu językach programowania. Jak sprawdzą się w połączeniu z jedną z najnowszych technologii, jaką jest .NET?
"C#. Wzorce projektowe" to kompletny przewodnik po wzorcach projektowych w C# i środowisku .NET. Przedstawia sposoby wykorzystania obiektowych cech języka C# i tworzenia eleganckiego kodu poprzez zastosowanie wzorców projektowych oraz korzystanie z ogromnych możliwości oferowanych przez biblioteki klas FCL dla środowiska Microsoft .NET. Wszystkie przedstawione w książce wzorce projektowe zostały zilustrowane przykładami kodu oraz diagramami UML, co ułatwia ich zrozumienie oraz zastosowanie w praktyce.
* Podstawowe wiadomości o wzorcach projektowych
* Interfejsy i klasy abstrakcyjne
* Wzorce interfejsów
* Wzorce odpowiedzialności
* Wzorce konstrukcyjne
* Wprowadzenie do operacji
* Wzorce operacji
* Wzorce rozszerzeń
* Wzorce rozszerzające
Poznaj zastosowanie wzorców projektowych
i wykorzystaj je w swojej pracy.
Podręcznik podstawowego języka programowania dla platformy .NET
* Poznaj elementy języka C#
* Stwórz własną aplikację
* Komunikuj się z bazami danych
Język C# został opracowany przez firmę Microsoft jako podstawowe narzędzie programistyczne dla platformy .NET. C# łączący w sobie najlepsze cechy języków C, C++, Java i Visual Basic doskonale nadaje się do tworzenia aplikacji bazujących na komponentach. Jest prosty, bezpieczny ze względu na typy, oparty na obiektach i komponentach i przygotowany do obsługi mechanizmów komunikacji sieciowej. Za pomocą C# tworzone są nie tylko aplikacje na "duże" komputery, ale także programy dla platformy PocketPC. Popularność C# nadal rośnie, a jego producent stale inwestuje w dalszy rozwój tego narzędzia i platformy .NET.
"C#. Programowanie" to podręcznik przedstawiający tajniki tworzenia aplikacji dla .NET w języku C#. Przeczytasz w nim o podstawowych elementach i strukturach C#, zasadach programowania obiektowego oraz obsłudze wyjątków i błędów. Poznasz sposoby tworzenia aplikacji z wykorzystaniem podstawowych technologii tworzenia aplikacji dla platformy .NET -- ASP.NET, Windows Forms i ADO.NET. Nauczysz się wykorzystywać metadane i łączyć swoje aplikacje z API Windows oraz obiektami COM.
* Typy w języku C#
* Zmienne i stałe
* Instrukcje, operatory i dyrektywy preprocesora
* Reguły programowania obiektowego
* Operacje na łańcuchach znaków
* Stosowanie wyrażeń regularnych
* Tworzenie aplikacji dla systemu Windows
* Łączenie z bazami danych za pomocą ADO.NET
* Pisanie aplikacji i usług sieciowych
* Zdalne korzystanie z obiektów
* Wątki i synchronizacja
* Operacje na plikach
* Opisuje C# 2.0, .NET 2.0 oraz Visual Studio 2005
Poznaj nowoczesne techniki programowania.
Szkoła programowania Bruce’a Eckela!
Podczas nauki tworzenia aplikacji w języku C++ towarzyszyć Ci będzie jeden z najlepszych dydaktyków programowania na świecie!
Nauka języka C++ i szczegółowe poznanie jego możliwości to poważne wyzwanie nie tylko dla początkującego, ale również dla zaawansowanego programisty. W książce "Thinking in C++. Edycja polska" Bruce Eckel w doskonały sposób przedstawił podstawowe zagadnienia związane z tym językiem. Jeśli opanowałeś materiał z tej książki, możesz rozpocząć lekturę drugiego tomu.
Następnym krokiem jest -- "Thinking in C++. Edycja polska. Tom II" -- kolejny bestseller Bruce’a Eckela poświęcony językowi C++. Tym razem Bruce w typowy dla siebie, prosty i zrozumiały sposób opisuje zaawansowane aspekty programowania w C++. Dowiesz się, jak korzystać z referencji, przeciążania operatorów, dziedziczenia i obiektów dynamicznych, a także poznasz zagadnienia zaawansowane -- prawidłowe użycie szablonów, wyjątków i wielokrotnego dziedziczenia. Wszystkie tematy opatrzone są ćwiczeniami.
* obsługa wyjątków
* programowanie defensywne
* standardowa biblioteka C++
* strumienie wejścia-wyjścia
* wzorce projektowe
* zaawansowane metody programowania obiektowego
* współbieżność
Kody źródłowe znajdujące się w książce są zgodne z wieloma kompilatorami C++.
O autorach:
Bruce Eckel jest prezesem MindView, Inc., firmy prowadzącej zarówno otwarte jak i zamknięte kursy treningowe; zajmującej się też doradztwem, nadzorem i kontrolą nad projektami związanymi z technologiami obiektowymi i wzorcami projektowymi. [więcej...]
Chuck Allison jest matematykiem, pełniącym obecnie funkcję wykładowcy na wydziale informatyki uniwersytetu stanowego Utah Valley. Do niedawna pełnił funkcję redaktora w magazynie C/C++ Users Journal. [więcej...]
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.
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!
More Related Content
Similar to Język C++. Szkoła programowania. Wydanie V
C++ jest obecnie wiodącym językiem programowania obiektowego. Jego podstawowymi zaletami w stosunku do innych języków obiektowych jest wysoka efektywność i uniwersalność. Stosowany jest do tworzenia komercyjnego oprogramowania oraz efektywnych rozwiązań złożonych problemów.
Książka krok po kroku omawia wszystkie właściwości języka i wyjaśnia sposoby ich praktycznego użycia. Przedstawione przykłady programów nie są zbyt skomplikowane, by nie odrywać Twojej uwagi od omawianych zagadnień, ale nie są też sztucznie uproszczone. Kluczowym założeniem języka C++ jest programowanie z wykorzystaniem szablonów, które umożliwiają tworzenie rozwiązań o wysokim poziomie ogólności - na przykład implementację polimorfizmu. Nicolai Josuttis omawia możliwość łączenia szablonów z programowaniem obiektowym, która decyduje o potężnych możliwościach języka C++ jako narzędzia tworzenia wydajnych programów. W tym zakresie książka wykracza daleko poza podstawy.
* Wprowadzenie do C++ i programowania obiektowego
* Podstawowe pojęcia języka C++
* Programowanie klas
* Dziedziczenie i polimorfizm
* Składowe dynamiczne i statyczne
* Szablony języka C++
* Szczegółowe omówienie standardowej biblioteki wejścia-wyjścia
Książka ta jest idealnym podręcznikiem umożliwiającym studiowanie języka C++ w domowym zaciszu. Prezentuje ona zagadnienia podstawowe, ale w wielu przypadkach przekracza je dostarczając prawdziwie profesjonalnej wiedzy.
Wyczerpujący, szczegółowy, praktyczny i aktualny podręcznik programowania w języku C++
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
Rozpocznij przygodę z programowaniem
* Poznaj elementy języka C++.
* Naucz się przetwarzać dane tekstowe i liczbowe.
* Opanuj zasady programowania obiektowego.
C++ to język programowania wykorzystywany do wielu zadań. Programiści stosują go do tworzenia aplikacji użytkowych, gier, a nawet części systemów operacyjnych. Może więc wydawać się, że opanowanie zasad programowania w tym języku przekracza możliwości przeciętnego człowieka. Tak jednak nie jest -- programowanie to nie wiedza tajemna, dostępna jedynie dla wybranych, a programiści znający C++ nie są nadludźmi. Z odpowiednią pomocą można bez kłopotów zdobyć wiedzę o wszystkich sztuczkach i ciekawostkach C++, a nauka programowania w tym języku nie powinna sprawić Ci problemów.
Książka "C++ bez obaw" może być Twoim asystentem, gdy będziesz się uczył programowania w języku C++. Dzięki niej przekonasz się, że opanowanie tej sztuki leży w Twoim zasięgu. Znajdziesz w niej omówienie elementów C++ zilustrowane praktycznymi przykładami. Dowiesz się, z czego zbudowany jest program w C++ i jak sprawić, aby kod źródłowy stał się aplikacją możliwą do uruchomienia na Twoim komputerze. Przeczytasz o przetwarzaniu danych, operacjach na plikach, sortowaniu, obliczeniach matematycznych i programowaniu obiektowym. Poznasz wiele przydatnych zagadnień związanych z tworzeniem oprogramowania.
* Struktura programu w C++
* Wyświetlanie danych na ekranie
* Typy danych
* Pętle i instrukcje warunkowe
* Korzystanie ze wskaźników
* Operacje na plikach
* Programowanie obiektowe
Poszerz swoje możliwości, programuj w języku C++
"C++. Kruczki i fortele w programowaniu" to pomoc dla zawodowych programistów pozwalająca uniknąć lub poprawić dziewięćdziesiąt dziewięć najczęściej popełnianych i najbardziej szkodliwych błędów projektowych i programowych w C++. Jest to też książka, dzięki której można poznać niektóre niestandardowe cechy języka C++ i techniki programistyczne.
W książce omówiono typowe błędy występujące niemalże we wszystkich programach utworzonych w C++. Każdy z nich został starannie opisany, przedstawiono również konsekwencje wynikające z ich pojawienia się w kodzie programu i szczegółowy opis sposobów na ich uniknięcie. "C++. Kruczki i fortele w programowaniu” to książka o tym, jak uniknąć największych zagrożeń związanych z programowaniem w C++. Gotowa i praktyczna wiedza dla programistów, która pozwoli im uzyskać status ekspertów.
Omówione błędy dotyczą:
* Podstaw języka C++
* Składni języka
* Preprocesora
* Konwersji
* Inicjalizacji
* Zarządzania pamięcią i zasobami
* Polimorfizmu
* Projektowania klas
* Projektowania hierarchii
O autorze:
Stephen C. Dewhurst był jednym z pierwszych użytkowników języka C++ w laboratoriach Bell Labs. Ma ponad dwudziestoletnie doświadczenie w stosowaniu C++ do rozwiązywania problemów w takich dziedzinach, jak projektowanie kompilatorów, zabezpieczanie handlu elektronicznego czy telekomunikacja implementowana na bazie urządzeń wbudowanych [więcej...]
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...]
Doskonałe źródło wiedzy dla wszystkich programistów C#
* Szczegółowe omówienie C# i .NET w wersji 2.0
* Techniki tworzenia i zabezpieczania aplikacji oraz zarządzania kodem źródłowym i wersjami
* Dziesiątki przykładów i kodów źródłowych
Platforma .NET i język C# spowodowały prawdziwą rewolucję na rynku narzędzi programistycznych. Wersja 2.0 przyniosła kilka interesujących rozwiązań, w tym nowe typy danych, komponenty i klasy. Dodatkowe funkcje języka C# pozwalają na przyspieszenie i usprawnienie procesu tworzenia aplikacji oraz jej wdrażania i rozwijania. Dzięki platformie .NET przygotowanie wydajnej, bezpiecznej i łatwej do rozbudowy aplikacji stało się znacznie prostsze i szybsze.
Książka "C# i .NET" przedstawia możliwości platformy .NET i napisanego specjalnie dla niej języka C#. Opisuje elementy platformy, składnię i możliwości języka C# oraz zagadnienia związane z tworzeniem programów za pomocą tych narzędzi. Omawia zasady pisania aplikacji Window Forms i efektywne techniki stosowania klas graficznych z biblioteki GDI+. Charakteryzuje także technologię ADO.NET, metody korzystania z plików XML, przetwarzanie wielowątkowe oraz techniki tworzenia wydajnych aplikacji internetowych w technologii ASP.NET. Szczególną uwagę poświęcono bezpieczeństwu programów i danych oraz skalowaniu i lokalizacji oprogramowania.
* Elementy platformy .NET
* Podstawy języka C#
* Praca z klasami i obiektami w C#
* Przetwarzanie tekstu oraz operacje wejścia i wyjścia
* Tworzenie aplikacji Window Forms
* Korzystanie z biblioteki GDI+
* Połączenia z bazami danych za pomocą ADO.NET
* Aplikacje wielowątkowe oraz rozproszone
* Tworzenie aplikacji internetowych
Jeśli chcesz napisać w C# aplikację dobrej jakości, sięgnij po tę książkę.
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.
Programowanie w języku C jest czymś więcej niż tylko wprowadzaniem kodu zgodnego z regułami składni; styl i wykrywanie błędów odgrywają równie istotną rolę w procesie tworzenia oprogramowania. Istotnie przyczyniają się do prawidłowego działania programów oraz ułatwiają ich konserwację. W książce omówiono więc nie tylko działanie języka C, ale również cały proces tworzenia programu w tym języku (uwzględniając założenia projektowe programu, kodowanie, metody wykrywania błędów, dokumentację, konserwację oraz aktualizację).
Wbrew powszechnemu przekonaniu większość programistów nie spędza całego swojego czasu przy pisaniu kodu. Poświęcają oni wiele czasu na wprowadzanie zmian i poprawek do aplikacji napisanych przez kogoś innego. Po przeczytaniu tej książki będziesz w stanie tworzyć programy, z którymi inni programiści nie będą musieli staczać bojów. Posiądziesz również umiejętność analizowania kodu napisanego przez innego programistę.
Książka "Język C. Programowanie" omawia także popularne zintegrowane środowiska programistyczne dla systemu Windows (Borland C++, Turbo C++ oraz Microsoft Visual C++) oraz narzędzia programistyczne dla systemu UNIX (cc i gcc). Zawarto w niej również kod programu generującego statystyki, który ma za zadanie zademonstrowanie zagadnień omówionych w książce. Książka jest przeznaczona dla osób, które nie miały dotąd doświadczenia w programowaniu oraz dla programistów znających już język C, a pragnących poprawić swój styl i czytelność tworzonego kodu. Jeśli chcesz sprawnie posługiwać się C, "Język C. Programowanie" to idealny podręcznik dla Ciebie.
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...]
Poznanie ruchów figur szachowych to dopiero pierwszy krok w nauce tej gry. Aby ją opanować, trzeba zrozumieć strategie i taktyki, które wpływają na każdy ruch. To samo dotyczy języka C++. Znajomość właściwych strategii pomaga unikać pułapek i pracować o wiele skuteczniej. Rob Murray dzieląc się swoim doświadczeniem pomaga programistom C++ wykonać następny krok w kierunku tworzenia wydajnych aplikacji.
Licznie występujące w całej książce przykłady kodu mają na celu zilustrowanie przydatnych strategii programistycznych i ostrzec przed nabyciem niebezpiecznych nawyków. Aby dodatkowo ułatwić przyswajanie nowych umiejętności, każdy rozdział kończy się listą poruszonych w nim kluczowych zagadnień oraz pytaniami mającymi spowodować przemyślenia i dyskusje.
Książka przedstawia między innymi:
* Tworzenie właściwych abstrakcji dla projektu i przekształcanie abstrakcji w klasy C++
* Mechanizmy dziedziczenia pojedynczego i wielokrotnego
* Metody tworzenia klas
* Szczegółowy opis mechanizmu szablonów
* Wskazówki dotyczące stosowania wyjątków
* Metody tworzenia kodu nadającego się do wielokrotnego wykorzystania
* Przenoszenie programów z języka C do C++
Robert B. Murray jest wicedyrektorem ds. inżynierii oprogramowania w firmie Quantitative Data Systems dostarczającej niestandardowych rozwiązań z zakresu oprogramowania dla czołowych firm. [więcej...]
Język C++ od czasu jego zdefiniowania przez Bjarne Stroustrupa był kilkakrotnie uaktualniany w latach 80. i 90. XX wieku. Chociaż C++Builder nie jest dokładnym odzwierciedleniem standardu ANSI języka C++, to obecna jego wersja przygotowana przez firmę Borland jest stabilna i zgodna z oczekiwaniami programistów. Borland C++Builder stanowi połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych VCL/CLX oraz zintegrowanego środowiska programisty IDE.
"C++Builder. Kompendium programisty" omawia podstawy programowania w C++ ze szczególnym uwzględnieniem możliwości oferowanych przez kompilator Borland C++Builder. Poznasz więc nie tylko sam język, ale nauczysz się pisać w nim wydajne i przenośne aplikacje, działające zarówno w środowisku linuksowym, jak i w Windows.
Omówione zagadnienia obejmują:
* Opis zintegrowanego środowiska programisty C++Buildera
* Podstawy języka C++
* Wczesne oraz późne wiązanie -- wstęp do programowania zorientowanego obiektowo
* Możliwości C++Buildera w zakresie posługiwania się tablicami różnego typu
* Zaawansowane operatory rzutowania typów
* Informacje czasu wykonania
* Obsługę wyjątków
* Obsługę plików
* Łańcuchy ANSI
* Zmienne o typie modyfikowalnym w czasie wykonywania programu
* Funkcje FPU i systemowe
* Elementy wielowątkowości -- wykorzystanie C++ oraz C++Buildera w nowoczesnych, wielowątkowych systemach operacyjnych
* Liczby pseudolosowe i konwersje wielkości liczbowych
* Wprowadzenie do grafiki
* Komponentowy model C++Buildera i biblioteki DLL
* Biblioteka CLX -- projektowanie aplikacji przenośnych pomiędzy systemami operacyjnymi Windows i Linux
Zostań profesjonalnym programistą C#
C# jest uważany przez wielu programistów za najlepszy język stosowany do tworzenia aplikacji dla platformy .NET. Język ten, opracowany w firmie Microsoft, łączy w sobie najbardziej wartościowe cechy C++ i Javy, ścisłą integrację z komponentami .NET, wysoki poziom bezpieczeństwa i ogromne możliwości. Świetnie nadaje się do tworzenia aplikacji sieciowych i bazodanowych przeznaczonych zarówno dla systemu Windows, jak i dla urządzeń przenośnych, takich jak PocketPC. Popularność C# stale rośnie, a nieodpłatne udostępnienie przez firmę Microsoft środowiska programistycznego Visual C# Express Edition sprawiło, że coraz więcej twórców oprogramowania wykorzystuje je w swojej pracy.
Książka "Wstęp do programowania w języku C#" to podręcznik przeznaczony dla tych, którzy chcą poznać ten język od podstaw. Czytając ją, poznasz możliwości C# i platformy .NET. Nauczysz się tworzyć własne aplikacje, korzystając ze środowiska Visual C# Express Edition. W książce znajdziesz omówienie składni i elementów języka C#, wyjaśnienie zasad programowania obiektowego i sposobów realizacji różnych zadań programistycznych. Napiszesz aplikacje dla Windows wykorzystujące biblioteki klas .NET i obsługujące pliki w formacie XML.
* Konstrukcja platformy .NET
* Składnia C#
* Elementy języka
* Programowanie obiektowe
* Obsługa zdarzeń
* Korzystanie z tablic i kolekcji
* Obsługa wyjątków
* Biblioteka Windows Forms
* Stosowanie komponentów .NET
* Operacje na plikach i strumieniach
* Obsługa formatu XML
Język C++ to najpopularniejszy obecnie język programowania. Jego podstawowe zalety -- przejrzysta składnia, niewielka ilość słów kluczowych i szeroki wachlarz możliwości -- przysporzyły mu wielu zwolenników. Na rynku dostępnych jest wiele książek o programowaniu w C++, jednak większość z nich zawiera sposoby rozwiązywania konkretnych problemów i zadań programistycznych. Niewiele książek koncentruje się na założeniach, na których opiera się programowanie w języku C++.
W książce "Język C++. Koncepcje i techniki programowania" autorzy skoncentrowali się na kluczowych technikach programowania w C++. Jednak nie przedstawiają ich w formie odpowiedzi na pytania "jak to zrobić", ale "dlaczego robimy to tak, a nie inaczej". Opisują szeroki wachlarz idei i technik programowania w C++ począwszy od szczegółowych przykładów kodu, a skończywszy na zasadach i filozofii projektowania.
* Tworzenie klas
* Uchwyty klas
* Zasady projektowania obiektowego
* Szablony i iteratory
* Stosowanie bibliotek
* Projektowanie bibliotek
* Techniki programowania
Dzięki tej książce nauczysz się nie tylko przestrzegać reguł języka C++, ale także myśleć w tym języku podczas pracy nad programem.
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...]
C++. 50 efektywnych sposobów na udoskonalenie Twoich programówWydawnictwo Helion
Pierwsze wydanie książki "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" zostało sprzedane w nakładzie 100 000 egzemplarzy i zostało przetłumaczone na cztery języki. Nietrudno zrozumieć, dlaczego tak się stało. Scott Meyers w charakterystyczny dla siebie, praktyczny sposób przedstawił wiedzę typową dla ekspertów -- czynności, które niemal zawsze wykonują lub czynności, których niemal zawsze unikają, by tworzyć prosty, poprawny i efektywny kod. Każda z zawartych w tej książce pięćdziesięciu wskazówek jest streszczeniem metod pisania lepszych programów w C++, zaś odpowiednie rozważania są poparte konkretnymi przykładami. Z myślą o nowym wydaniu, autor opracował od początku wszystkie opisywane w tej książce wskazówki. Wynik jego pracy jest wyjątkowo zgodny z międzynarodowym standardem C++, technologią aktualnych kompilatorów oraz najnowszymi trendami w świecie rzeczywistych aplikacji C++.
Do najważniejszych zalet książki "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" należą:
* Eksperckie porady dotyczące projektowania zorientowanego obiektowo, projektowania klas i właściwego stosowania technik dziedziczenia
* Analiza standardowej biblioteki C++, włącznie z wpływem standardowej biblioteki szablonów oraz klas podobnych do string i vector na strukturę dobrze napisanych programów
* Rozważania na temat najnowszych możliwości języka C++: inicjalizacji stałych wewnątrz klas, przestrzeni nazw oraz szablonów składowych
* Wiedza będąca zwykle w posiadaniu wyłącznie doświadczonych programistów
Książka "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" pozostaje jedną z najważniejszych publikacji dla każdego programisty pracującego z C++.
Wzorce projektowe są modelami gotowych rozwiązań problemów programistycznych, przed jakimi często stają twórcy oprogramowania. Dzięki nim nie musimy ponownie "wymyślać koła". Dysponując wzorcami projektowymi, jesteśmy w stanie szybciej i efektywniej zbudować aplikację, ponieważ koncentrujemy się na samej implementacji algorytmu, a nie na jego opracowaniu. Najczęściej stosowane, klasyczne już, 23 wzorce projektowe opracowane przez twórców notacji UML implementowano już w wielu językach programowania. Jak sprawdzą się w połączeniu z jedną z najnowszych technologii, jaką jest .NET?
"C#. Wzorce projektowe" to kompletny przewodnik po wzorcach projektowych w C# i środowisku .NET. Przedstawia sposoby wykorzystania obiektowych cech języka C# i tworzenia eleganckiego kodu poprzez zastosowanie wzorców projektowych oraz korzystanie z ogromnych możliwości oferowanych przez biblioteki klas FCL dla środowiska Microsoft .NET. Wszystkie przedstawione w książce wzorce projektowe zostały zilustrowane przykładami kodu oraz diagramami UML, co ułatwia ich zrozumienie oraz zastosowanie w praktyce.
* Podstawowe wiadomości o wzorcach projektowych
* Interfejsy i klasy abstrakcyjne
* Wzorce interfejsów
* Wzorce odpowiedzialności
* Wzorce konstrukcyjne
* Wprowadzenie do operacji
* Wzorce operacji
* Wzorce rozszerzeń
* Wzorce rozszerzające
Poznaj zastosowanie wzorców projektowych
i wykorzystaj je w swojej pracy.
Podręcznik podstawowego języka programowania dla platformy .NET
* Poznaj elementy języka C#
* Stwórz własną aplikację
* Komunikuj się z bazami danych
Język C# został opracowany przez firmę Microsoft jako podstawowe narzędzie programistyczne dla platformy .NET. C# łączący w sobie najlepsze cechy języków C, C++, Java i Visual Basic doskonale nadaje się do tworzenia aplikacji bazujących na komponentach. Jest prosty, bezpieczny ze względu na typy, oparty na obiektach i komponentach i przygotowany do obsługi mechanizmów komunikacji sieciowej. Za pomocą C# tworzone są nie tylko aplikacje na "duże" komputery, ale także programy dla platformy PocketPC. Popularność C# nadal rośnie, a jego producent stale inwestuje w dalszy rozwój tego narzędzia i platformy .NET.
"C#. Programowanie" to podręcznik przedstawiający tajniki tworzenia aplikacji dla .NET w języku C#. Przeczytasz w nim o podstawowych elementach i strukturach C#, zasadach programowania obiektowego oraz obsłudze wyjątków i błędów. Poznasz sposoby tworzenia aplikacji z wykorzystaniem podstawowych technologii tworzenia aplikacji dla platformy .NET -- ASP.NET, Windows Forms i ADO.NET. Nauczysz się wykorzystywać metadane i łączyć swoje aplikacje z API Windows oraz obiektami COM.
* Typy w języku C#
* Zmienne i stałe
* Instrukcje, operatory i dyrektywy preprocesora
* Reguły programowania obiektowego
* Operacje na łańcuchach znaków
* Stosowanie wyrażeń regularnych
* Tworzenie aplikacji dla systemu Windows
* Łączenie z bazami danych za pomocą ADO.NET
* Pisanie aplikacji i usług sieciowych
* Zdalne korzystanie z obiektów
* Wątki i synchronizacja
* Operacje na plikach
* Opisuje C# 2.0, .NET 2.0 oraz Visual Studio 2005
Poznaj nowoczesne techniki programowania.
Szkoła programowania Bruce’a Eckela!
Podczas nauki tworzenia aplikacji w języku C++ towarzyszyć Ci będzie jeden z najlepszych dydaktyków programowania na świecie!
Nauka języka C++ i szczegółowe poznanie jego możliwości to poważne wyzwanie nie tylko dla początkującego, ale również dla zaawansowanego programisty. W książce "Thinking in C++. Edycja polska" Bruce Eckel w doskonały sposób przedstawił podstawowe zagadnienia związane z tym językiem. Jeśli opanowałeś materiał z tej książki, możesz rozpocząć lekturę drugiego tomu.
Następnym krokiem jest -- "Thinking in C++. Edycja polska. Tom II" -- kolejny bestseller Bruce’a Eckela poświęcony językowi C++. Tym razem Bruce w typowy dla siebie, prosty i zrozumiały sposób opisuje zaawansowane aspekty programowania w C++. Dowiesz się, jak korzystać z referencji, przeciążania operatorów, dziedziczenia i obiektów dynamicznych, a także poznasz zagadnienia zaawansowane -- prawidłowe użycie szablonów, wyjątków i wielokrotnego dziedziczenia. Wszystkie tematy opatrzone są ćwiczeniami.
* obsługa wyjątków
* programowanie defensywne
* standardowa biblioteka C++
* strumienie wejścia-wyjścia
* wzorce projektowe
* zaawansowane metody programowania obiektowego
* współbieżność
Kody źródłowe znajdujące się w książce są zgodne z wieloma kompilatorami C++.
O autorach:
Bruce Eckel jest prezesem MindView, Inc., firmy prowadzącej zarówno otwarte jak i zamknięte kursy treningowe; zajmującej się też doradztwem, nadzorem i kontrolą nad projektami związanymi z technologiami obiektowymi i wzorcami projektowymi. [więcej...]
Chuck Allison jest matematykiem, pełniącym obecnie funkcję wykładowcy na wydziale informatyki uniwersytetu stanowego Utah Valley. Do niedawna pełnił funkcję redaktora w magazynie C/C++ Users Journal. [więcej...]
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.
Similar to Język C++. Szkoła programowania. Wydanie V (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!
1. IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREŒCI
Jêzyk C++. Szko³a
programowania. Wydanie V
KATALOG KSI¥¯EK Autor: Stephen Prata
T³umaczenie: Przemys³aw Steæ (rozdz. 17, dod. A–G),
KATALOG ONLINE Przemys³aw Szeremiota (rozdz. 9–12), Tomasz Walczak
(rozdz. 13–16), Tomasz ¯mijewski (rozdz. wstêp, 1–8)
ISBN: 83-7361-958-5
ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: C++ Primer Plus, 5th Edition
Format: B5, stron: 1168
TWÓJ KOSZYK
Doskona³y podrêcznik dla pocz¹tkuj¹cych programistów
DODAJ DO KOSZYKA
• Typy danych i konstrukcje steruj¹ce
• Programowanie proceduralne i obiektowe
CENNIK I INFORMACJE • Biblioteka STL
• Obs³uga plików
ZAMÓW INFORMACJE C++ to jeden z najpopularniejszych jêzyków programowania, jego mo¿liwoœci s¹
O NOWOŒCIACH ogromne. U¿ywa siê go do pisania aplikacji narzêdziowych, gier, a nawet systemów
operacyjnych. Nauka jêzyka C++ jest jednak ¿mudnym i skomplikowanym procesem
ZAMÓW CENNIK — to prawdziwe wyzwanie dla programistów. Opanowanie potêgi C++ wymaga poznania
zasad programowania obiektowego, korzystania z bibliotek i szablonów, obs³ugi b³êdów
i wyj¹tków i wielu innych zagadnieñ. Ale odpowiednio napisany podrêcznik, zawieraj¹cy
CZYTELNIA podstawow¹ wiedzê na temat tego jêzyka, zdecydowanie u³atwi przyswojenie sztuki
programowania w C++.
FRAGMENTY KSI¥¯EK ONLINE Ksi¹¿ka „Jêzyk C++. Szko³a programowania. Wydanie V” to w³aœnie taki podrêcznik.
Jego autor Stephen Prata przedstawia C++ w sposób idealnie nadaj¹cy siê dla
pocz¹tkuj¹cych programistów chc¹cych opanowaæ tajniki tego jêzyka. Czytaj¹c tê
ksi¹¿kê, poznasz historiê jêzyka C i jego najwa¿niejsze elementy, dowiesz siê, czym
ró¿ni siê programowanie proceduralne od obiektowego i jak stosowaæ te dwie techniki,
korzystaj¹c z C++. Nauczysz siê definiowaæ klasy i obiekty, przydzielaæ zasoby pamiêci
dla aplikacji, korzystaæ ze wskaŸników i implementowaæ mechanizmy obs³ugi plików
i strumieni wejœcia-wyjœcia.
• Kompilatory jêzyka C++
• Struktura programu
• Proste i z³o¿one typy danych
Wydawnictwo Helion • Pêtle i instrukcje warunkowe
ul. Chopina 6 • Definiowanie funkcji i korzystanie z nich
44-100 Gliwice • Model pamiêci w C++
tel. (32)230-98-63 • Podstawowe elementy programowania obiektowego — obiekty i klasy
e-mail: helion@helion.pl • Dynamiczne przydzielanie pamiêci
• Mechanizmy dziedziczenia
• Obs³uga wyj¹tków
• Biblioteka STL
• Operacje wejœcia-wyjœcia
Poznaj najwa¿niejsze zasady programowania w C++
2. SPIS TREŚCI
WSTĘP ............................................................................................................................ 1
ROZDZIAŁ 1 Zaczynamy ............................................................................................ 11
Nauka C++ — co nas czeka? ......................................................................................... 11
Pochodzenie języka C++ — krótka historia .................................................................. 12
Język C ...................................................................................................................... 13
Filozofia programowania w C .................................................................................. 13
Zmiana w C++ — programowanie obiektowe ......................................................... 15
C++ i programowanie ogólne ................................................................................... 16
Pochodzenie C++ ...................................................................................................... 16
Przenośność i standardy ................................................................................................. 18
Mechanika tworzenia programu .................................................................................... 20
Pisanie kodu źródłowego .......................................................................................... 21
Kompilacja i konsolidacja ........................................................................................ 22
Podsumowanie ................................................................................................................ 27
ROZDZIAŁ 2 Pierwszy program w C++ ..................................................................... 29
C++ — początek ............................................................................................................ 29
Funkcja main() ......................................................................................................... 31
Komentarze w C++ .................................................................................................. 34
Preprocesor i plik iostream ....................................................................................... 35
Nazwy plików nagłówkowych .................................................................................. 36
Przestrzenie nazw ..................................................................................................... 37
Wypisywanie danych — cout ................................................................................... 38
Formatowanie kodu źródłowego C++ ...................................................................... 41
Instrukcje C++ ................................................................................................................ 43
Instrukcje deklaracji i zmienne ................................................................................ 43
Instrukcja przypisania .............................................................................................. 45
Nowa sztuczka z cout ............................................................................................... 46
Inne instrukcje C++ ....................................................................................................... 47
Użycie obiektu cin .................................................................................................... 48
Złączanie za pomocą cout ........................................................................................ 48
cin i cout — klasy po raz pierwszy .......................................................................... 49
Funkcje ........................................................................................................................... 51
Użycie funkcji zwracającej wartość .......................................................................... 51
Odmiany funkcji ....................................................................................................... 55
Funkcje definiowane przez użytkownika ................................................................. 55
Funkcje użytkownika zwracające wartość ................................................................ 59
Dyrektywa using w programach z wieloma funkcjami ............................................ 61
Podsumowanie ................................................................................................................ 63
Pytania sprawdzające ..................................................................................................... 63
Ćwiczenia programistyczne ........................................................................................... 64
ROZDZIAŁ 3 Dane ...................................................................................................... 67
Zmienne proste ............................................................................................................... 68
3. Nazwy zmiennych .................................................................................................... 68
Typy całkowitoliczbowe ............................................................................................ 70
Typy short, int i long ................................................................................................ 70
Typy bez znaku ......................................................................................................... 75
Dobór właściwego typu ............................................................................................. 78
Stałe całkowitoliczbowe ........................................................................................... 79
Jak C++ ustala typ stałej? ......................................................................................... 81
Typ char — znaki i małe liczby całkowite ............................................................... 81
Typ danych bool ........................................................................................................ 89
Kwalifikator const .......................................................................................................... 90
Liczby zmiennoprzecinkowe .......................................................................................... 91
Zapis liczb zmiennoprzecinkowych ......................................................................... 92
Zmiennoprzecinkowe typy danych ........................................................................... 93
Stałe zmiennoprzecinkowe ....................................................................................... 96
Zalety i wady liczb zmiennoprzecinkowych ............................................................ 96
Operatory arytmetyczne C++ ......................................................................................... 97
Kolejność działań — priorytety operatorów i łączność ........................................... 99
Odmiany dzielenia .................................................................................................. 100
Operator modulo ..................................................................................................... 102
Konwersje typów .................................................................................................... 103
Podsumowanie .............................................................................................................. 109
Pytania sprawdzające ................................................................................................... 110
Ćwiczenia programistyczne ......................................................................................... 110
ROZDZIAŁ 4 Typy złożone ....................................................................................... 113
Tablice w skrócie .......................................................................................................... 114
Uwagi o programie ................................................................................................. 116
Inicjalizacja tablic ................................................................................................... 117
Łańcuchy ...................................................................................................................... 118
Łączenie stałych łańcuchowych ............................................................................. 120
Łańcuchy w tablicy ................................................................................................. 120
Problemy z wprowadzaniem łańcuchów znakowych ............................................. 122
Wczytywanie łańcuchów znakowych wierszami ................................................... 124
Mieszanie w danych wejściowych łańcuchów i liczb ............................................ 128
Klasa string — wprowadzenie ..................................................................................... 130
Przypisanie, konkatenacja i dołączanie .................................................................. 131
Inne operacje klasy string ....................................................................................... 133
Klasa string a wejście i wyjście .............................................................................. 135
Struktury ....................................................................................................................... 137
Użycie struktury w programie ................................................................................ 139
Czy w strukturze można użyć pola typu string? .................................................... 142
Inne cechy struktur ................................................................................................. 142
Tablice struktur ....................................................................................................... 144
Pola bitowe .............................................................................................................. 145
Unie .............................................................................................................................. 146
VIII
4. Typy wyliczeniowe ....................................................................................................... 148
Ustawianie wartości enumeratorów ....................................................................... 150
Zakresy wartości w typach wyliczeniowych ........................................................... 150
Wskaźniki i różne drobiazgi ........................................................................................ 151
Deklarowanie i inicjalizacja wskaźników .............................................................. 154
Niebezpieczeństwa związane ze wskaźnikami ...................................................... 157
Wskaźniki i liczby .................................................................................................. 157
Użycie operatora new do alokowania pamięci ....................................................... 158
Zwalnianie pamięci za pomocą delete ................................................................... 160
Użycie new do tworzenia tablic dynamicznych ..................................................... 161
Wskaźniki, tablice i arytmetyka wskaźników .............................................................. 164
Uwagi o programie ................................................................................................. 166
Wskaźniki i łańcuchy ............................................................................................. 170
Użycie new do tworzenia struktur dynamicznych ................................................. 175
Alokacja pamięci: automatyczna, statyczna i dynamiczna .................................... 179
Podsumowanie .............................................................................................................. 181
Pytania sprawdzające ................................................................................................... 182
Ćwiczenia programistyczne ......................................................................................... 183
ROZDZIAŁ 5 Pętle i wyrażenia relacyjne ................................................................. 185
Pętle for ........................................................................................................................ 186
Elementy pętli for ................................................................................................... 187
Wracamy do pętli for .............................................................................................. 194
Zmiana wielkości kroku ......................................................................................... 195
Pętla for i łańcuchy znakowe .................................................................................. 196
Operatory inkrementacji (++) i dekrementacji (--) ................................................ 197
Efekty uboczne i punkty odniesienia ...................................................................... 199
Formy przedrostkowe a formy przyrostkowe ......................................................... 199
Operatory inkrementacji i dekrementacji a wskaźniki .......................................... 200
Złożone operatory przypisania ............................................................................... 201
Instrukcje złożone czyli bloki ................................................................................. 202
Przecinek jako operator (i pewne sztuczki składniowe) ........................................ 204
Wyrażenia relacyjne ..................................................................................................... 207
Bardzo typowy błąd ................................................................................................ 208
Porównywanie łańcuchów w stylu C ...................................................................... 211
Porównywanie łańcuchów klasy string .................................................................. 213
Pętla while .................................................................................................................... 215
Uwagi o programie ................................................................................................. 216
Pętla for a pętla while ............................................................................................. 217
Chwileczkę — tworzymy pętlę opóźnienia ............................................................ 219
Pętla do while ............................................................................................................... 221
Pętle i wprowadzanie danych tekstowych .................................................................... 224
Najprostsza wersja cin ............................................................................................ 224
cin.get(char) na odsiecz .......................................................................................... 225
Która cin.get()? ....................................................................................................... 227
IX
5. Koniec pliku ........................................................................................................... 227
Jeszcze inna wersja cin.get() .................................................................................. 231
Pętle zagnieżdżone i dwuwymiarowe tablice ............................................................... 234
Inicjalizacja tablic dwuwymiarowych .................................................................... 236
Podsumowanie .............................................................................................................. 238
Pytania sprawdzające ................................................................................................... 239
Ćwiczenia programistyczne ......................................................................................... 230
ROZDZIAŁ 6 Instrukcje warunkowe i operatory logiczne ........................................ 243
Instrukcja if .................................................................................................................. 243
Instrukcja if else ...................................................................................................... 245
Formatowanie instrukcji if else .............................................................................. 247
Konstrukcja if else if else ....................................................................................... 248
Wyrażenia logiczne ...................................................................................................... 250
Logiczny operator alternatywy — || ....................................................................... 250
Logiczny operator koniunkcji — && .................................................................... 252
Operator negacji logicznej — ! .............................................................................. 257
O operatorach logicznych ....................................................................................... 259
Zapis alternatywny ................................................................................................. 260
Biblioteka cctype .......................................................................................................... 261
Operator ?: .................................................................................................................... 263
Instrukcja switch .......................................................................................................... 265
Użycie enumeratorów jako etykiet ......................................................................... 269
switch versus if else ................................................................................................ 270
Instrukcje break i continue ........................................................................................... 270
Uwagi o programie ................................................................................................. 272
Pętle wczytywania liczb ............................................................................................... 273
Uwagi o programie ................................................................................................. 277
Proste wejście-wyjście z pliku ...................................................................................... 277
Tekstowe wejście-wyjście i pliki tekstowe .............................................................. 277
Zapis do pliku tekstowego ...................................................................................... 279
Odczyt danych z pliku tekstowego ......................................................................... 283
Podsumowanie .............................................................................................................. 288
Pytania sprawdzające ................................................................................................... 289
Ćwiczenia programistyczne ......................................................................................... 291
ROZDZIAŁ 7 Funkcje — składniki programów w C++ ........................................... 295
Funkcje w skrócie ......................................................................................................... 295
Definiowanie funkcji .............................................................................................. 296
Prototypowanie i wywoływanie funkcji .................................................................. 299
Parametry funkcji i przekazywanie przez wartość ...................................................... 302
Wiele parametrów ................................................................................................... 304
Jeszcze jedna funkcja dwuargumentowa ................................................................ 306
Funkcje i tablice ........................................................................................................... 309
Jak wskaźniki umożliwiają tworzenie funkcji przetwarzających tablice? ............. 310
Skutki użycia tablic jako parametrów .................................................................... 311
X
6. Dodatkowe przykłady funkcji i tablic ..................................................................... 314
Funkcje korzystające z zakresów tablic .................................................................. 320
Wskaźniki i modyfikator const ............................................................................... 322
Funkcje i tablice dwuwymiarowe ................................................................................. 325
Funkcje i łańcuchy w stylu C ....................................................................................... 327
Funkcje z łańcuchami w stylu C jako parametrami ............................................... 327
Funkcje zwracające łańcuchy w formacie C .......................................................... 329
Funkcje i struktury ....................................................................................................... 331
Przekazywanie i zwracanie struktur ....................................................................... 332
Inny przykład użycia funkcji i struktur .................................................................. 334
Przekazywanie adresu struktury ............................................................................. 339
Funkcje i obiekty klasy string ...................................................................................... 341
Rekurencja .................................................................................................................... 343
Rekurencja w pojedynczym wywołaniu ................................................................. 343
Rekurencja w wielu wywołaniach .......................................................................... 345
Wskaźniki na funkcje ................................................................................................... 347
Wskaźniki na funkcje — podstawy ........................................................................ 347
Przykład użycia wskaźników na funkcje ................................................................ 350
Podsumowanie .............................................................................................................. 351
Pytania sprawdzające ................................................................................................... 352
Ćwiczenia programistyczne ......................................................................................... 353
ROZDZIAŁ 8 Funkcje — zagadnienia zaawansowane ............................................. 357
Funkcje inline ............................................................................................................... 357
Zmienne referencyjne ................................................................................................... 361
Tworzenie zmiennej referencyjnej .......................................................................... 361
Referencje jako parametry funkcji .......................................................................... 364
Właściwości referencji ............................................................................................ 368
Ostrożnie ze zwracaniem referencji ....................................................................... 375
Użycie referencji z obiektami ................................................................................. 376
Obiekty po raz wtóry — obiekty, dziedziczenie i referencje .................................. 380
Kiedy korzystać z referencji jako parametrów? ..................................................... 383
Parametry domyślne ..................................................................................................... 384
Uwagi o programie ................................................................................................. 387
Przeciążanie funkcji ..................................................................................................... 387
Przykład przeciążania funkcji ................................................................................ 390
Kiedy korzystać z przeciążania funkcji? ................................................................ 392
Szablony funkcji ........................................................................................................... 393
Przeciążone szablony .............................................................................................. 397
Specjalizacje jawne ................................................................................................. 399
Tworzenie egzemplarzy i specjalizacje .................................................................. 404
Którą wersję funkcji kompilator wybierze? ........................................................... 406
Podsumowanie .............................................................................................................. 412
Pytania sprawdzające ................................................................................................... 413
Ćwiczenia programistyczne ......................................................................................... 414
XI
7. ROZDZIAŁ 9 Model pamięci i przestrzenie nazw .................................................... 417
Kompilacja rozłączna ................................................................................................... 417
Czas życia, zasięg i łączenie ........................................................................................ 424
Zasięg i łączenie ..................................................................................................... 425
Przydział automatyczny .......................................................................................... 425
Zmienne statyczne .................................................................................................. 431
Specyfikatory i kwalifikatory .................................................................................. 443
Łączenie a funkcje .................................................................................................. 445
Łączenie językowe .................................................................................................. 446
Kategorie przydziału a przydział dynamiczny ....................................................... 447
Miejscowa wersja operatora new ................................................................................. 448
O programie ............................................................................................................ 451
Przestrzenie nazw ......................................................................................................... 452
Tradycyjne przestrzenie nazw języka C++............................................................. 452
Nowe mechanizmy przestrzeni nazw ..................................................................... 454
Przestrzenie nazw — przykład ............................................................................... 463
Przyszłość przestrzeni nazw ................................................................................... 468
Podsumowanie .............................................................................................................. 468
Pytania sprawdzające ................................................................................................... 469
Ćwiczenia programistyczne ......................................................................................... 473
ROZDZIAŁ 10 Obiekty i klasy .................................................................................. 477
Programowanie proceduralne a programowanie obiektowe ........................................ 478
Klasy a abstrakcje ......................................................................................................... 479
Czym jest typ? ......................................................................................................... 479
Klasy w języku C++ ............................................................................................... 480
Implementowanie metod klas ................................................................................. 485
Stosowanie klas ...................................................................................................... 491
Podsumowanie poznanych wiadomości ................................................................. 495
Konstruktory i destruktory ........................................................................................... 496
Deklarowanie i definiowanie konstruktorów ......................................................... 497
Stosowanie konstruktorów ...................................................................................... 499
Konstruktory domyślne .......................................................................................... 500
Destruktory ............................................................................................................. 501
Ulepszenia klasy Stock ........................................................................................... 502
Konstruktory i destruktory — podsumowanie ....................................................... 511
Tożsamość obiektu — wskaźnik this ........................................................................... 512
Tablice obiektów ........................................................................................................... 519
Jeszcze o interfejsach i implementacji ......................................................................... 522
Zasięg klasy ............................................................................................................ 524
Stałe zasięgu klasy ....................................................................................................... 525
Abstrakcyjne typy danych ............................................................................................ 527
Podsumowanie .............................................................................................................. 533
Pytania sprawdzające ................................................................................................... 534
Ćwiczenia programistyczne ......................................................................................... 534
XII
8. ROZDZIAŁ 11 Stosowanie klas ................................................................................. 539
Przeciążanie operatorów .............................................................................................. 540
Raz, dwa, trzy — próba przeciążenia operatora .......................................................... 541
Dodatkowy operator dodawania ............................................................................. 545
Ograniczenia przeciążania operatorów .................................................................. 549
Jeszcze o przeciążaniu operatorów ......................................................................... 551
Przyjaciele najważniejsi ............................................................................................... 554
Deklarowanie przyjaźni .......................................................................................... 556
Typowa przyjaźń — przeciążanie operatora << .................................................... 557
Przeciążanie operatorów — metody kontra funkcje nieskładowe ............................... 565
Przeciążania ciąg dalszy — klasa Vector ..................................................................... 566
Składowa kodująca stan obiektu ............................................................................. 575
Przeciążanie operatorów arytmetycznych dla klasy Vector ................................... 577
Nota implementacyjna ............................................................................................ 580
Wektorowe błądzenie losowe .................................................................................. 580
Automatyczne konwersje i rzutowanie typów klas ...................................................... 585
O programie ............................................................................................................ 590
Funkcje konwersji ................................................................................................... 591
Konwersja a zaprzyjaźnienie .................................................................................. 597
Podsumowanie .............................................................................................................. 601
Pytania sprawdzające ................................................................................................... 603
Ćwiczenia programistyczne ......................................................................................... 603
ROZDZIAŁ 12 Klasy a dynamiczny przydział pamięci ............................................ 607
Klasy a pamięć dynamiczna ......................................................................................... 608
Powtórka z pamięci dynamicznej i statyczne składowe klas ................................. 608
Niejawne metody klasy ........................................................................................... 618
Nowa, ulepszona klasa — String ........................................................................... 628
O czym należy pamiętać, stosując new w konstruktorach? ................................... 641
Słów parę o zwracaniu obiektów ............................................................................ 643
Wskaźniki obiektów ............................................................................................... 647
Powtórka z poznanych technik ............................................................................... 659
Symulacja kolejki ......................................................................................................... 661
Klasa kolejki ........................................................................................................... 662
Klasa klienta ........................................................................................................... 673
Symulacja ................................................................................................................ 677
Podsumowanie .............................................................................................................. 682
Pytania sprawdzające ................................................................................................... 684
Ćwiczenia programistyczne ......................................................................................... 686
ROZDZIAŁ 13 Klasy i dziedziczenie ........................................................................ 691
Prosta klasa bazowa ..................................................................................................... 692
Dziedziczenie .......................................................................................................... 694
Konstruktory — zagadnienia związane z poziomem dostępu ............................... 696
Korzystanie z klasy pochodnej ............................................................................... 699
Relacje między klasą pochodną a bazową .............................................................. 702
XIII
9. Dziedziczenie — relacja jest-czymś ............................................................................ 705
Polimorficzne dziedziczenie publiczne ........................................................................ 706
Tworzenie klas Brass oraz BrassPlus ..................................................................... 707
Wiązanie statyczne i dynamiczne ........................................................................... 721
Zgodność typów wskaźnikowych i referencyjnych ................................................ 721
Wirtualne funkcje składowe i wiązanie dynamiczne ............................................. 723
Co trzeba wiedzieć o metodach wirtualnych? ........................................................ 726
Kontrola dostępu — poziom chroniony ....................................................................... 729
Abstrakcyjne klasy bazowe .......................................................................................... 732
Stosowanie abstrakcyjnych klas bazowych ............................................................ 735
Filozofia abstrakcyjnych klas bazowych ................................................................ 740
Dziedziczenie i dynamiczny przydział pamięci .......................................................... 740
Przypadek pierwszy — klasa pochodna bez dynamicznego przydziału pamięci ........ 740
Przypadek drugi — klasa pochodna z dynamicznym przydziałem pamięci ......... 742
Przykład dziedziczenia z wykorzystaniem dynamicznego przydziału pamięci oraz
funkcji zaprzyjaźnionych ........................................................................................ 744
Projektowanie klas — przegląd zagadnień .................................................................. 750
Funkcje składowe automatycznie generowane przez kompilator .......................... 750
Inne metody ............................................................................................................ 754
Dziedziczenie publiczne ......................................................................................... 756
Funkcje klasy — podsumowanie ............................................................................ 761
Podsumowanie .............................................................................................................. 762
Pytania sprawdzające ................................................................................................... 762
Ćwiczenia ..................................................................................................................... 764
ROZDZIAŁ 14 Wielokrotne użycie kodu w C++ ...................................................... 767
Klasy ze składowymi w postaci obiektów .................................................................... 768
Krótka charakterystyka klasy valarray ................................................................... 768
Projekt klasy Student .............................................................................................. 769
Przykładowa klasa Student ..................................................................................... 771
Dziedziczenie prywatne ............................................................................................... 779
Nowa wersja klasy Student ..................................................................................... 780
Dziedziczenie wielokrotne ........................................................................................... 792
Podwójne egzemplarze klasy Worker ..................................................................... 798
Podwójne metody .................................................................................................... 802
Przegląd zagadnień związanych z dziedziczeniem wielokrotnym ........................ 814
Szablony klas ................................................................................................................ 815
Definiowanie szablonu klasy .................................................................................. 815
Korzystanie z szablonu klasy ................................................................................. 819
Analiza szablonu klasy ........................................................................................... 822
Szablon tablicy i argumenty niebędące typami ...................................................... 828
Elastyczność szablonów .......................................................................................... 831
Specjalizacja szablonu ............................................................................................ 835
Szablony jako składowe .......................................................................................... 838
Szablony jako parametry ........................................................................................ 841
XIV
10. Szablony klas i zaprzyjaźnienie ............................................................................. 844
Podsumowanie .............................................................................................................. 852
Pytania sprawdzające ................................................................................................... 854
Ćwiczenia programistyczne ......................................................................................... 856
ROZDZIAŁ 15 Zaprzyjaźnienie, wyjątki i nie tylko ................................................. 863
Zaprzyjaźnienie ............................................................................................................ 863
Klasy zaprzyjaźnione .............................................................................................. 864
Zaprzyjaźnione funkcje składowe .......................................................................... 869
Inne relacje przyjaźni ............................................................................................. 873
Klasy zagnieżdżone ...................................................................................................... 875
Dostęp do klas zagnieżdżonych ............................................................................. 877
Zagnieżdżanie w szablonie ..................................................................................... 879
Wyjątki .......................................................................................................................... 883
Wywoływanie funkcji abort() ................................................................................. 884
Zwracanie kodu błędu ............................................................................................ 885
Mechanizm wyjątków ............................................................................................. 887
Wyjątki w postaci obiektów .................................................................................... 891
Rozwijanie stosu ..................................................................................................... 895
Inne właściwości wyjątków .................................................................................... 901
Klasa exception ....................................................................................................... 904
Wyjątki, klasy i dziedziczenie ................................................................................ 909
Problemy z wyjątkami ............................................................................................ 915
Ostrożnie z wyjątkami ............................................................................................ 918
RTTI ............................................................................................................................. 920
Po co nam RTTI? .................................................................................................... 920
Jak działa RTTI? ..................................................................................................... 921
Operatory rzutowania typu ........................................................................................... 930
Podsumowanie .............................................................................................................. 934
Pytania sprawdzające ................................................................................................... 935
Ćwiczenia programistyczne ......................................................................................... 937
ROZDZIAŁ 16 Klasa string oraz biblioteka STL ...................................................... 939
Klasa string .................................................................................................................. 939
Tworzenie obiektu string ........................................................................................ 940
Wprowadzanie danych do obiektów string ............................................................ 944
Używanie obiektów string ...................................................................................... 947
Co jeszcze oferuje klasa string? .............................................................................. 953
Klasa auto_ptr .............................................................................................................. 956
Używanie obiektów klasy auto_ptr ......................................................................... 957
Zagadnienia związane z klasą auto_ptr ................................................................. 960
Biblioteka STL ............................................................................................................. 961
Szablon klasy vector ............................................................................................... 962
Metody klasy vector ................................................................................................ 965
Inne możliwości klasy vector ................................................................................. 970
Programowanie generyczne ......................................................................................... 975
XV
11. Do czego potrzebne są iteratory? ............................................................................ 975
Rodzaje iteratorów .................................................................................................. 979
Hierarchia iteratorów .............................................................................................. 983
Pojęcia, uściślenia i modele .................................................................................... 984
Rodzaje kontenerów ............................................................................................... 991
Kontenery asocjacyjne .......................................................................................... 1002
Obiekty funkcyjne (funktory) ..................................................................................... 1009
Pojęcia związane z funktorami ............................................................................. 1011
Funktory predefiniowane ...................................................................................... 1014
Funktory adaptowalne i adaptatory funkcji .......................................................... 1016
Algorytmy ................................................................................................................... 1019
Grupy algorytmów ................................................................................................ 1019
Ogólne właściwości algorytmów .......................................................................... 1020
Biblioteka STL i klasa string ................................................................................ 1022
Funkcje a metody kontenerów .............................................................................. 1023
Używanie biblioteki STL ...................................................................................... 1025
Inne biblioteki ............................................................................................................ 1029
Klasy vector oraz valarray .................................................................................... 1030
Podsumowanie ............................................................................................................ 1036
Pytania sprawdzające ................................................................................................. 1038
Ćwiczenia programistyczne ....................................................................................... 1039
ROZDZIAŁ 17 Obsługa wejścia, wyjścia oraz plików ............................................ 1041
Ogólna charakterystyka obsługi wejścia-wyjścia w języku C++ ............................... 1042
Strumienie i bufory ............................................................................................... 1043
Strumienie i bufory a plik iostream ...................................................................... 1045
Przekierowanie ..................................................................................................... 1047
Realizacja operacji wyjścia z wykorzystaniem obiektu cout ..................................... 1048
Przeciążony operator << ....................................................................................... 1049
Inne metody klasy ostream ................................................................................... 1052
Opróżnianie bufora wyjściowego ......................................................................... 1055
Formatowanie danych wyjściowych za pomocą obiektu cout .............................. 1056
Realizacja operacji wejścia z wykorzystaniem obiektu cin ....................................... 1075
Jak operator >> obiektu cin „widzi” dane wejściowe .......................................... 1077
Stany strumienia ................................................................................................... 1079
Inne metody klasy istream .................................................................................... 1084
Pozostałe metody klasy istream ............................................................................ 1093
Wejście-wyjście plikowe ............................................................................................. 1098
Proste operacje wejścia-wyjścia plikowego .......................................................... 1098
Kontrola strumienia i metoda is_open() .............................................................. 1102
Otwieranie wielu plików ...................................................................................... 1103
Przetwarzanie argumentów wiersza polecenia .................................................... 1104
Tryby otwarcia pliku ............................................................................................. 1107
Dostęp swobodny .................................................................................................. 1118
Formatowanie wewnętrzne ........................................................................................ 1128
XVI
12. I co dalej? ................................................................................................................... 1130
Podsumowanie ............................................................................................................ 1131
Pytania sprawdzające ................................................................................................. 1133
Ćwiczenia programistyczne ....................................................................................... 1134
DODATEK A Systemy liczbowe ............................................................................... 1139
Liczby dziesiętne (o podstawie 10) ............................................................................ 1139
Liczby całkowite ósemkowe (o podstawie 8) ............................................................. 1139
Liczby szesnastkowe .................................................................................................. 1140
Liczby dwójkowe (o podstawie 2) .............................................................................. 1141
Zapis dwójkowy a szesnastkowy ................................................................................ 1141
DODATEK B Słowa zastrzeżone języka C++ .......................................................... 1145
Słowa kluczowe języka C++ ...................................................................................... 1145
Leksemy alternatywne ................................................................................................ 1146
Nazwy zastrzeżone bibliotek języka C++ .................................................................. 1146
DODATEK C Zestaw znaków ASCII ....................................................................... 1149
DODATEK D Priorytety operatorów ........................................................................ 1155
DODATEK E Inne operatory .................................................................................... 1159
Operatory bitowe ........................................................................................................ 1159
Operatory przesunięcia ......................................................................................... 1159
Bitowe operatory logiczne .................................................................................... 1161
Alternatywne reprezentacje operatorów bitowych ............................................... 1164
Kilka typowych technik wykorzystujących operatory bitowe .............................. 1164
Operatory dereferencji składowych ............................................................................ 1166
DODATEK F Klasa szablonowa string .................................................................... 1171
Trzynaście typów i stała ............................................................................................. 1172
Informacje o danych, konstruktory i różne drobiazgi ................................................ 1173
Konstruktory domyślne ........................................................................................ 1175
Konstruktory wykorzystujące tablice .................................................................... 1175
Konstruktory wykorzystujące fragment tablicy .................................................... 1176
Konstruktory kopiujące ........................................................................................ 1176
Konstruktory wykorzystujące n kopii znaku ........................................................ 1177
Konstruktory wykorzystujące zakres .................................................................... 1178
Metody zarządzające pamięcią ............................................................................. 1178
Dostęp do łańcucha .................................................................................................... 1179
Proste przypisanie ...................................................................................................... 1180
Przeszukiwanie łańcuchów ........................................................................................ 1180
Rodzina funkcji find() .......................................................................................... 1180
Rodzina funkcji rfind() ......................................................................................... 1181
Rodzina funkcji find_first_of() ............................................................................. 1182
Rodzina funkcji find_last_of() ............................................................................. 1182
Rodzina funkcji find_first_not_of() ..................................................................... 1183
Rodzina funkcji find_last_not_of() ...................................................................... 1183
XVII
13. Metody i funkcje porównania ..................................................................................... 1184
Modyfikatory łańcuchów ............................................................................................ 1185
Metody dołączania i dodawania ........................................................................... 1185
Inne metody przypisania ...................................................................................... 1186
Metody wstawiania ............................................................................................... 1187
Metody usuwania .................................................................................................. 1188
Metody zastępowania ........................................................................................... 1188
Pozostałe metody modyfikujące: copy() oraz swap() ........................................... 1189
Wejście i wyjście ......................................................................................................... 1189
DODATEK G Metody i funkcje z biblioteki STL .................................................... 1191
Składowe wspólne dla wszystkich kontenerów ......................................................... 1191
Dodatkowe składowe wektorów, list i kolejek dwustronnych ................................... 1194
Dodatkowe składowe zbiorów i map .......................................................................... 1197
Funkcje STL ............................................................................................................... 1198
Niemodyfikujące operacje sekwencyjne ............................................................... 1199
Mutujące operacje sekwencyjne ........................................................................... 1203
Operacje sortowania i pokrewne .......................................................................... 1211
Operacje liczbowe ................................................................................................. 1224
DODATEK H Wybrane pozycje książkowe i zasoby internetowe ........................... 1227
Wybrane pozycje książkowe ....................................................................................... 1227
Zasoby internetowe ..................................................................................................... 1229
DODATEK I Dostosowywanie do standardu ANSI/ISO C++ ................................. 1231
Stosuj rozwiązania alternatywne zamiast niektórych dyrektyw preprocesora .......... 1231
Do definiowania stałych używaj modyfikatora const zamiast dyrektywy #define .......................... 1231
Do definiowania niewielkich funkcji używaj specyfikatora inline zamiast makrodefinicji #define ... 1233
Używaj prototypów funkcji ........................................................................................ 1234
Stosuj rzutowanie typów ............................................................................................ 1235
Poznaj i wykorzystuj mechanizmy języka C++ ......................................................... 1236
Używaj nowej organizacji plików nagłówkowych ..................................................... 1236
Korzystaj z przestrzeni nazw ..................................................................................... 1236
Używaj szablonu autoptr ............................................................................................ 1237
Używaj klasy string .................................................................................................... 1238
Korzystaj z biblioteki STL ......................................................................................... 1238
DODATEK J Odpowiedzi do pytań kontrolnych ..................................................... 1241
Odpowiedzi do pytań z rozdziału 2 ........................................................................... 1241
Odpowiedzi do pytań z rozdziału 3 ........................................................................... 1242
Odpowiedzi do pytań z rozdziału 4 ........................................................................... 1243
Odpowiedzi do pytań z rozdziału 5 ........................................................................... 1244
Odpowiedzi do pytań z rozdziału 6 ........................................................................... 1245
Odpowiedzi do pytań z rozdziału 7 ........................................................................... 1247
Odpowiedzi do pytań z rozdziału 8 ........................................................................... 1249
Odpowiedzi do pytań z rozdziału 9 ........................................................................... 1250
Odpowiedzi do pytań z rozdziału 10 ......................................................................... 1252
XVIII
14. Odpowiedzi do pytań z rozdziału 11 .......................................................................... 1254
Odpowiedzi do pytań z rozdziału 12 ......................................................................... 1255
Odpowiedzi do pytań z rozdziału 13 ......................................................................... 1258
Odpowiedzi do pytań z rozdziału 14 ......................................................................... 1260
Odpowiedzi do pytań z rozdziału 15 ......................................................................... 1261
Odpowiedzi do pytań z rozdziału 16 ......................................................................... 1263
Odpowiedzi do pytań z rozdziału 17 ......................................................................... 1264
INDEKS ..................................................................................................................... 1267
XIX
15. Rozdzia³ 2
Pierwszy program w C++
W rozdziale zajmiemy siê nastêpuj¹cymi zagadnieniami:
• Tworzenie programu w C++.
• Ogólna postaæ programu w C++.
• Dyrektywa #include.
• Funkcja main().
• U¿ycie obiektu cout do wyprowadzania danych.
• Komentarze w programach C++.
• U¿ycie endl.
• Deklarowanie i u¿ycie zmiennych.
• U¿ycie obiektu cin do wprowadzania danych.
• Definiowanie i u¿ycie prostych funkcji.
K
iedy budujemy dom, zaczynamy od fundamentów i szkieletu. Jeśli nie mamy na
początek solidnych podstaw, będziemy mieli później problemy z dalszymi etapami
pracy: oknami, framugami, dachem i parkietami. Tak samo w przypadku nauki progra-
mowania musimy zacząć od poznania podstawowych elementów konstrukcyjnych programu, a do-
piero potem możemy przejść dalej, na przykład do pętli i obiektów. W niniejszym rozdziale przed-
stawimy w skrócie strukturę programu w C++ oraz krótko omówimy wybrane zagadnienia —
najważniejsze z nich to funkcje i klasy — którymi później zajmiemy się bardziej szczegółowo.
Chodzi o to, aby przynajmniej niektóre pojęcia wprowadzać stopniowo, bez zaskakiwania.
C++ — pocz¹tek
Zacznijmy od prostego programu w C++ pokazującego komunikat. Na listingu 2.1 ukazano uży-
cie obiektu cout do prezentacji danych wyjściowych. Kod źródłowy zawiera kilka dodatkowych
komentarzy, zaczynających się od pary znaków //, całkowicie ignorowanych przez kompilator.
W języku C wielkość liter ma znaczenie, wobec czego, jeśli w pokazanym programie zamiast
cout napiszemy Cout lub COUT, kompilator zgłosi błąd, informując o nieznanych identyfika-
torach. Rozszerzenie pliku cpp to typowy sposób wskazania, że mamy do czynienia z programem
16. Rozdzia³ 2 - Pierwszy program w C++
w C++. Czasami może być konieczne użycie innego rozszerzenia, jak opisaliśmy to w pierwszym
rozdziale.
Listing 2.1. myfirst.cpp
// myfirst.cpp—wyświetla komunikat
#include <iostream> // dyrektywa PREPROCESORA
int main() // nagłówek funkcji
{ // początek treści funkcji
using namespace std; // uwidocznienie definicji
cout << "Zabaw się językiem C++."; // komunikat
cout << endl; // zaczynamy nowy wiersz
cout << "Nie pożałujesz!" << endl; // kolejny komunikat
return 0; // zakończenie działania funkcji main()
} // koniec treści funkcji
Uwaga o zgodnoœci ze standardem
W przypadku u¿ycia starszego kompilatora zamiast #include <iostream> nale¿y
u¿yæ dyrektywy #include <iostream.h> oraz pomin¹æ wiersz using namespa-
ce std;. Zatem zamiast:
#include <iostream> // pieśń przyszłości
piszemy:
#include <iostream.h> // stan na dzisiaj
oraz ca³kowicie pomijamy wiersz:
using namespace std; // to też na przyszłość
Niektóre bardzo stare kompilatory zamiast #include <iostream.h> u¿ywaj¹ #in-
clude <stream.h>; jeœli mamy taki w³aœnie kompilator, powinniœmy albo postaraæ siê
o nowszy, albo skorzystaæ ze starszej ksi¹¿ki. Zamiana iostream.h na iostream za-
sz³a stosunkowo niedawno i niektóre kompilatory mog¹ jej jeszcze nie uwzglêdniaæ.
Pewne œrodowiska okienkowe uruchamiaj¹ program w osobnym oknie i po jego zakoñcze-
niu automatycznie okno to zamykaj¹. Jak mówiliœmy w rozdziale 1., mo¿na wymusiæ zacho-
wanie tego okna do chwili wciœniêcia klawisza; wystarczy w tym celu dodaæ przed instrukcj¹
return wiersz:
cin.get();
W przypadku niektórych programów trzeba dodaæ dwa takie wiersze; powoduj¹ one, ¿e pro-
gram czeka na wciœniêcie klawisza. Kod ten lepiej zrozumiemy po przeczytaniu rozdzia³u 4.
Poprawki w programie
Mo¿e siê okazaæ, ¿e aby uruchomiæ niektóre przyk³ady z tej ksi¹¿ki, trzeba nieco je zmieniæ.
Najczêœciej zmiana ta dotyczy omówionej przed chwil¹ kwestii zgodnoœci z najnowsz¹ wersj¹
30
17. C++ — pocz¹tek
standardu. Jeœli kompilator nie jest dostatecznie nowy, zamiast iostream trzeba u¿ywaæ io-
stream.h oraz pomijaæ deklaracjê przestrzeni nazw, namespace. Druga kwestia to u¿ywa-
ne œrodowisko programowania, które mo¿e wymagaæ u¿ycia jednego czy dwóch wywo³añ
cin.get(), gdy¿ bez tego wyniki dzia³ania programu znikn¹ z ekranu. Jako ¿e zmiany te
s¹ takie same we wszystkich programach, wiêc powy¿szej uwagi o zgodnoœci ze standar-
dem nie bêdziemy ju¿ dalej powtarzaæ. Nastêpne uwagi tego typu bêd¹ dotyczy³y innych
mo¿liwych niezgodnoœci.
Kiedy już za pomocą edytora tekstu przepiszemy powyższy program (lub pobierzemy go ze stro-
ny wydawnictwa), za pomocą kompilatora C++ możemy stworzyć plik wykonywalny zgodnie
z wytycznymi z rozdziału 1. Oto wynik działania programu z listingu 2.1:
Zabaw się językiem C++.
Nie pożałujesz!
Wejœcie i wyjœcie w jêzyku C
Osoby programuj¹ce w jêzyku C, widz¹c zamiast funkcji printf() jakieœ cout, mog¹
prze¿yæ szok. W C++ mo¿na tak naprawdê u¿ywaæ funkcji printf(), scanf() i im po-
dobnych, wystarczy tylko w³¹czyæ standardowy nag³ówek jêzyka C — stdio.h. Jednak ni-
niejsza ksi¹¿ka dotyczy jêzyka C++, wiêc u¿ywamy tutaj narzêdzi wejœcia i wyjœcia C++, któ-
re pod wieloma wzglêdami s¹ doskonalsze od swoich odpowiedników z jêzyka C.
Program w języku C++ składa się z cegiełek nazywanych funkcjami. Zwykle program opisuje
główne zadania, którym odpowiadają funkcje. Przykład z listingu 2.1 jest prosty i zawiera tylko
jedną funkcję, main(). Program myfirst.cpp ma następujące elementy:
• komentarze oznaczone przez //,
• dyrektywę preprocesora #include,
• nagłówek funkcji, int main(),
• dyrektywę using namespace,
• treść funkcji ograniczoną nawiasami klamrowymi, { i },
• instrukcje wykorzystujące cout do wyświetlenia komunikatu,
• instrukcję return kończącą działanie funkcji main().
Najpierw przyjrzyjmy się dokładniej poszczególnym elementom. Dobrze będzie zacząć od funk-
cji main(), gdyż elementy ją poprzedzające, jak dyrektywy preprocesora, łatwiej będzie zrozu-
mieć po zrozumieniu main().
Funkcja main()
Jeśli odrzucimy wszystkie ozdobniki, okaże się, że program z listingu 2.1 ma bardzo prostą pod-
stawową strukturę:
int main()
{
instrukcje
return 0;
}
31
18. Rozdzia³ 2 - Pierwszy program w C++
Mamy tu funkcję main() i opis jej działania. Wszystko to składa się na definicję funkcji. Defini-
cja składa się z dwóch części: wiersza int main() będącego nagłówkiem funkcji oraz ujętej
w nawiasy klamrowe treści funkcji. Na rysunku 2.1 pokazano funkcję main(). Nagłówek to krót-
ki opis interfejsu funkcji pozwalającego łączyć tę funkcję z resztą programu, treść funkcji zawiera
instrukcje wykonywane przez tę funkcję. W języku C++ każda instrukcja powinna kończyć się
średnikiem; nie należy zapominać o średnikach także przy przepisywaniu przykładów z książki.
Rysunek 2.1. Funkcja main()
Ostatnia instrukcja funkcji main(), return (nazywana instrukcją powrotu), kończy wykony-
wanie programu. Więcej o instrukcji powrotu dowiemy się dalej w tym rozdziale.
Instrukcje i œredniki
Instrukcja to pewne polecenie dla komputera. Aby zrozumieæ kod Ÿród³owy, kompilator musi
wiedzieæ, gdzie jedna instrukcja siê koñczy, a zaczyna nastêpna. W niektórych jêzykach u¿y-
wa siê separatora instrukcji — na przyk³ad w FORTRAN-ie instrukcje s¹ od siebie oddziela-
ne znakami nowego wiersza. Z kolei w Pascalu mo¿na separator instrukcji pomijaæ w pew-
nych wypadkach — na przyk³ad tu¿ przed s³owem kluczowym end, gdzie separator ten nie
oddziela od siebie dwóch instrukcji (zreszt¹ tutaj pragmatycy i minimaliœci spieraj¹ siê, czy
mo¿na nale¿y rozumieæ jako trzeba). Jednak C++, podobnie jak C, u¿ywa œrednika jako za-
koñczenia instrukcji, a nie separatora. Ró¿nica polega na tym, ¿e œrednik w³aœciwie jest czê-
œci¹ instrukcji, a nie czymœ pomiêdzy dwiema instrukcjami. Na praktykê przek³ada siê to tak,
¿e w C++ nigdy nie wolno pomijaæ œredników.
Nag³ówek funkcji jako interfejs
Najważniejsze, co teraz musimy zapamiętać, to to, że składnia C++ wymaga rozpoczęcia defini-
cji funkcji main() od następującego nagłówka: int main(). Składnię nagłówka funkcji
omówimy dokładniej nieco dalej, ale teraz kilka słów dla tych, którzy nie potrafią powstrzymać
swojej ciekawości.
32
19. C++ — pocz¹tek
W języku C++ funkcje są uruchamiane, czyli wywoływane, przez inne funkcje, a nagłówek funk-
cji opisuje interfejs funkcji wywoływanej na potrzeby funkcji wywołującej. Część znajdująca się
przed nazwą funkcji to typ wartości zwracanej przez funkcję; typ ten mówi, jak informacja jest
zwracana po wykonaniu funkcji do miejsca wywołania. W nawiasach za nazwą funkcji znajduje
się lista parametrów lub inaczej lista argumentów. Opisuje ona przekazywanie informacji z funkcji
wywołującej do funkcji wywoływanej. Trochę niedobrym przykładem jest tu funkcja main(),
gdyż normalnie nie wywołuje się jej z innych części programu. Zwykle main() jest wywoływa-
na przez kod rozruchowy dodawany przez kompilator między program a system operacyjny (Unix,
Windows XP i każdy inny). Tak więc nagłówek funkcji w przypadku funkcji main() opisuje
interfejs między tą funkcją a systemem operacyjnym.
Weźmy pod uwagę interfejs funkcji main() zaczynający się od słowa int. Funkcja C++ wywo-
ływana przez inną funkcję może zwrócić funkcji wywołującej wartość — jest to wartość zwraca-
na. W przypadku funkcji main() zwracana może być liczba całkowita; świadczy o tym użycie
słowa kluczowego int. Dalej mamy parę pustych nawiasów. Oznaczają one, że funkcja main()
nie pobiera żadnych informacji, czyli nie ma parametrów.
Tak więc nagłówek:
int main()
mówi, że funkcja main() zwraca funkcji ją wywołującej liczbę całkowitą oraz że nie pobiera
z miejsca wywołania żadnych danych.
Obecnie wiele programów korzysta z klasycznego nagłówka języka C:
main() // zgodnie z konwencją języka C
W klasycznym C pominięcie typu wartości zwracanej było równoważne stwierdzeniu, że zwraca-
na jest wartość int. Jednak w C++ już tak nie jest.
Można użyć jeszcze jednej postaci nagłówka:
int main(void) // styl bardzo dobitny
Słowo kluczowe void w nawiasach mówi, że funkcja nie ma żadnych parametrów. W języku
C++ (choć już nie w C) oznacza dokładnie to samo co słowo kluczowe void; w C pusta lista
w nawiasach sugeruje, że nie mówimy nic o parametrach.
Niektórzy programiści pomijają instrukcję powrotu i stosują następujący nagłówek:
void main()
Jest to logiczne, gdyż typ zwracany void oznacza, że funkcja nie zwraca żadnej wartości. Choć
wiele środowisk taką konstrukcję obsługuje, to nie należy ona do standardu C++, więc w niektó-
rych środowiskach może nie działać. Wobec tego należy takiego nagłówka unikać i trzymać się
standardu; nie wymaga to zbyt wielkiego nakładu pracy.
W końcu standard ANSI/ISO C++ idzie na rękę tym, którzy narzekają, że muszą na końcu funkcji
main() zawsze dopisywać instrukcję powrotu. Otóż jeśli kompilator dojdzie do końca funkcji
main() i nie znajdzie instrukcji return, zachowa się tak, jakby na końcu było:
return 0;
Taka niejawna instrukcja powrotu jest dodawana tylko do funkcji main() i do żadnej innej.
33
20. Rozdzia³ 2 - Pierwszy program w C++
Dlaczego nazwa main() jest jedyna w swoim rodzaju?
Istnieje pewien wyjątkowo przekonujący argument, aby nazwać funkcję z pliku myfirst.cpp
main() — nie mamy innego wyjścia. Po prostu każdy program C++ musi mieć funkcję main()
(i nie może to być żadne Main(), MAIN() czy mane() — wielkość liter też ma znaczenie).
Program myfirst.cpp ma tylko jedną funkcję, więc to ona musi nazywać się main(). Kiedy
uruchamiamy program napisany w języku C++, jego wykonywanie zaczyna się właśnie od funk-
cji main(). Jeśli zatem nie mamy funkcji main(), nasz program jest niekompletny i kompila-
tor nie omieszka nam wytknąć tego braku.
Istnieją pewne wyjątki. Jeśli na przykład piszemy w systemie Windows bibliotekę dynamicznie
wiązaną (DLL), funkcji main() może nie być. Kod takiej biblioteki może być używany przez
inne programy Windows; nie jest to samodzielny program, więc nie potrzebuje funkcji main().
Także programy przeznaczone do pracy w specjalnych środowiskach, takich jak sterownik robo-
ta, mogą nie potrzebować funkcji main(). Jednak normalne programy nie mogą się bez tej
funkcji obyć, a takimi właśnie programami będziemy się zajmować.
Komentarze w C++
W języku C++ podwójny ukośnik (//) oznacza początek komentarza. Komentarz to notatka
zostawiona przez programistę czytelnikowi, w której zwykle objaśniane są pewne aspekty dzia-
łania kodu. Kompilator komentarze pomija. W końcu zna przecież C++ przynajmniej równie
dobrze jak programista, ale nie potrafi zrozumieć komentarzy. Z punktu widzenia kompilatora
listing 2.1 wygląda tak, jakby tam żadnych komentarzy w ogóle nie było:
#include <iostream>
int main()
{
using namespace std;
cout << "Zabaw się językiem C++.";
cout << endl;
cout << "Nie pożałujesz!" << endl;
return 0;
}
Komentarze w C++ zaczynają się od // i kończą się wraz z końcem wiersza. Komentarz może
sam zajmować cały wiersz lub może być uzupełnieniem zwykłego kodu. Spójrzmy na pierwszy
wiersz listingu 2.1:
// myfirst.cpp — wyświetla komunikat
W niniejszej książce wszystkie programy zaczynają się od komentarza zawierającego nazwę pli-
ku z kodem źródłowym i krótkiego opisu programu. Jak wspomnieliśmy w pierwszym rozdziale,
rozszerzenie nazwy pliku z programem zależy od używanego kompilatora. Nazwą może być na
przykład też myfirst.C czy myfirst.cxx.
34
21. C++ — pocz¹tek
Wskazówka
Swoje programy trzeba dokumentowaæ za pomoc¹ komentarzy. Im program jest bardziej
z³o¿ony, tym cenniejsze s¹ komentarze. Nie tylko pomagaj¹ innym zrozumieæ, o co w pro-
gramie chodzi, ale pomagaj¹ te¿ autorowi — szczególnie jeœli wraca do swojego programu
po jakimœ czasie.
Komentarze w stylu C
Jêzyk C++ pozwala u¿ywaæ tak¿e komentarzy znanych z C, ujmowanych w znaki /* i */:
#include <iostream> /* komentarz w stylu C */
Komentarze w stylu C koñcz¹ siê znakami */, a nie koñcem wiersza, wiêc mog¹ mieæ wiele
wierszy. W programach mo¿na stosowaæ jeden z pokazanych rodzajów komentarzy lub oba
typy równoczeœnie. Warto jednak trzymaæ siê komentarzy C++; w ich przypadku nie trzeba
pamiêtaæ o parowaniu symboli /* i */, co oznacza mniej k³opotów. Zreszt¹ w specyfikacji
C99 do jêzyka C dodano te¿ komentarze //.
Preprocesor i plik iostream
Ten punkt omówimy w dużym skrócie — powiemy tylko o rzeczach niezbędnych. Kiedy w pro-
gramie chcemy użyć zwykłych narzędzi C++ do obsługi wejścia i wyjścia, konieczne jest dodanie
dwóch następujących wierszy:
#include <iostream>
using namespace std;
Jeśli kompilatorowi taki zapis się nie spodoba (na przykład będzie narzekał na brak pliku iostre-
am), można spróbować użyć jednego tylko wiersza:
#include <iostream.h> // to zrozumieją starsze kompilatory
Tyle wiedzy wystarczy do uruchamiania programów, ale wyjaśnijmy jeszcze co nieco.
W języku C++, podobnie jak w C, istnieje preprocesor. Jest to program przetwarzający wstępnie
pliki źródłowe przed zasadniczą kompilacją (w niektórych implementacjach C++ używa się pro-
gramu translującego kod C++ na kod C; mówiliśmy o tym w rozdziale 1.; wprawdzie to też jest
pewnego rodzaju preprocesor, to nie o taki nam teraz chodzi; preprocesor, który nas interesuje,
rozumie dyrektywy zaczynające się od znaku #). Aby wywołać preprocesor, nie trzeba podejmo-
wać żadnych specjalnych działań; włącza się on automatycznie podczas kompilacji programu.
Na listingu 2.1 mamy dyrektywę preprocesora #include:
#include <iostream> // dyrektywa PREPROCESORA
Dyrektywa ta powoduje dodanie do programu zawartości pliku iostream. Jest to typowe działanie
preprocesora — dodanie lub zamiana tekstu w pliku źródłowym przed jego skompilowaniem.
Pojawia się pytanie, po co trzeba dodawać do naszego programu plik iostream. Chodzi o komu-
nikację między programem a światem zewnętrznym. W nazwie iostream io oznacza wejście, czy-
35
22. Rozdzia³ 2 - Pierwszy program w C++
li informacje przekazywane do programu, oraz wyjście, czyli informacje przekazywane z progra-
mu. Obsługa wejścia-wyjścia w C++ opiera się na kilku definicjach z pliku iostream. Program
musi dołączyć odpowiednie definicje przed użyciem cout do pokazania komunikatu. Dyrekty-
wa #include powoduje, że zawartość pliku iostream zostanie wraz z naszym programem prze-
słana do kompilatora. Zawartość tego pliku zastąpi wiersz #include <iostream>. Orygi-
nalny plik nie zostanie zmieniony, natomiast do następnego etapu kompilacji przekazany zosta-
nie plik złożony z naszego pliku źródłowego i z iostream.
Zapamiêtaj!
Programy wykorzystuj¹ce do obs³ugi wejœcia i wyjœcia cin oraz cout musz¹ mieæ do³¹-
czony plik iostream (lub, w niektórych systemach, iostream.h).
Nazwy plików nag³ówkowych
Pliki takie jak iostream to pliki włączane lub inaczej pliki nagłówkowe. Kompilatory C++ za-
wsze są dostarczane wraz z szeregiem plików nagłówkowych, z których każdy obsługuje pewną
grupę narzędzi. Zgodnie z tradycją języka C plikom nagłówkowym nadawano rozszerzenie .h, co
łatwo pozwalało te pliki zidentyfikować. Na przykład plik nagłówkowy C math.h zawierał de-
klaracje funkcji matematycznych. Początkowo w C++ sytuacja wyglądała tak samo, ale ostatnio
zmieniono to. Obecnie rozszerzenie .h zachowano dla starszych plików nagłówkowych C (które
mogą być cały czas używane), natomiast pliki nagłówkowe samego C++ nie mają rozszerzenia
w ogóle. Istnieją też pliki nagłówkowe C, które zostały zamienione na pliki nagłówkowe C++.
Plikom tym zmieniono nazwę, odrzucając rozszerzenie .h oraz poprzedzając ich nazwy literą c
(od języka C). Na przykład w C++ staremu plikowi nagłówkowemu math.h odpowiada plik cmath.
Czasami wersje plików nagłówkowych C i C++ są takie same, a czasem nowsze wersje mają
pewne udoskonalenia. W przypadku plików nagłówkowych samego C++, jak iostream, odrzuce-
nie rozszerzenia .h to coś więcej niż poprawka kosmetyczna; pliki nagłówkowe bez tego rozsze-
rzenia wykorzystują przestrzenie nazw, które za chwilę omówimy. W tabeli 2.1 zestawiono kon-
wencje nazewnicze dotyczące plików nagłówkowych.
Tabela 2.1. Konwencje nazewnicze plików nag³ówkowych
Rodzaj nag³ówka Konwencja Przyk³ad Uwagi
Stary styl C++ koñczy siê .h iostream.h U¿ywane w programach C++.
Stary styl C koñczy siê .h math.h U¿ywane w programach C i C++.
Nowy styl C++ brak rozszerzenia iostream U¿ywane w programach C++
z namespace std.
Konwersja z C przedrostek c, cmath U¿ywane w programach C++,
brak rozszerzenia mo¿e zawieraæ cechy wykraczaj¹ce
poza C, jak choæby namespace std.
36
23. C++ — pocz¹tek
Biorąc pod uwagę tradycję C odróżniania różnego rodzaju plików po ich rozszerzeniach, rozsąd-
ne wydawało się użycie specjalnego rozszerzenia — na przykład .hx lub .hxx — do wyróżnienia
plików nagłówkowych C++. Tak samo uważał komitet ANSI/ISO. Jednak wobec niemożności
porozumienia się, jakie to powinno być rozszerzenie, ostatecznie postanowiono zrezygnować
z rozszerzenia w ogóle.
Przestrzenie nazw
Jeśli zamiast pliku iostream.h używamy iostream, powinniśmy użyć następującej dyrektywy prze-
strzeni nazw, aby udostępnić iostream w programach:
using namespace std;
Jest to dyrektywa using. Najłatwiej jest przyjąć, że tak ona wygląda i że być musi, a o resztę się
na razie nie martwić — możemy odłożyć dyskusję na przykład do rozdziału 9., gdzie omawiamy
modele pamięci i przestrzenie nazw. Aby jednak nie być teraz ciemnym jak tabaka w rogu, po-
wiemy krótko, o co tutaj chodzi.
Przestrzeń nazw to nowa cecha języka C++, która ma pomagać pisać programy składające się
z kodu pochodzącego od różnych dostawców. Trzeba się liczyć z tym, że w dwóch nabytych pa-
kietach mogą istnieć tak samo nazywające się funkcje — dajmy na to wanda(). Jeśli użyjemy
funkcji wanda(), kompilator nie będzie wiedział, o którą nam chodzi. Przestrzeń nazw pozwa-
la zgrupować ze sobą wszystkie moduły jednego dostawcy. Załóżmy, że firma MicroFlop Indu-
stries umieszcza swoje definicje w przestrzeni nazw Microflop. Wtedy ich funkcja wan-
da() będzie się nazywała Microflop::wanda(). Analogicznie przestrzeń nazw Rybia
może zawierać produkty Rybiej Korporacji; w tym wypadku funkcja wanda() będzie nazywała
się Rybia::wanda(). Teraz program będzie mógł używać obu funkcji:
Microflop::wanda("idziemy zatańczyć?"); // funkcja z przestrzeni nazw Microflop
Rybia::wanda("rybka zwana Pożądaniem"); // funkcja z przestrzeni nazw Rybia
Teraz klasy, funkcje i zmienne będące standardowymi składnikami kompilatora C++ trafiły do
przestrzeni nazw std; dzieje się tak w wersjach plików nagłówkowych nieposiadających roz-
szerzeń. Wobec tego, na przykład, zmienna cout używana do przekazywania danych na ze-
wnątrz, zdefiniowana w iostream, tak naprawdę nazywa się std::cout, a endl to tak na-
prawdę std::endl. Możemy zatem zrezygnować z dyrektywy using i pisać następująco:
std::cout << "Zabaw się językiem C++.";
std::cout << std::endl;
Jednak mało kto chce przepisywać kod nieuwzględniający przestrzeni nazw, wykorzystujący iostre-
am.h i cout, na kod z przestrzeniami nazw wykorzystujący iostream i std::cout; dlatego wła-
śnie stworzono dyrektywę using pozwalającą znacząco uprościć sobie to zadanie. Poniższy wiersz
powoduje, że możemy używać nazw z przestrzeni std bez dopisywania przedrostka std:::
using namespace std;
37
24. Rozdzia³ 2 - Pierwszy program w C++
Dyrektywa using powoduje, że wszystkie nazwy z przestrzeni std stają się dostępne. Obecnie
przyjmuje się, że jest to podejście zbyt wygodnickie; należy raczej udostępnić te nazwy, których
będziemy później używać, stosując inną formę dyrektywy using:
using std::cout; // udostępnienie cout
using std::endl; // udostępnienie endl
using std::cin; // udostępnienie cin
Powyższe dyrektywy mogą zostać użyte w naszym programie zamiast poniższej:
using namespace std; // przykład wygodnictwa - udostępnienie wszystkich nazw
Można będzie wtedy używać cin, cout i endl bez przedrostka std::. Jeśli jednak potrzeb-
na okaże się inna nazwa z iostream, trzeba będzie ją dodać osobną dyrektywą using. W niniej-
szej książce będziemy stosowali początkowo podejście wygodnickie — po pierwsze dlatego, że
w przypadku małych programów nie ma specjalnego znaczenia to, jak radzimy sobie z przestrze-
niami nazw, a po drugie ważniejsze są dla nas na razie inne, bardziej podstawowe elementy
języka C++. Dalej pokażemy jeszcze inne techniki obsługi przestrzeni nazw.
Wypisywanie danych — cout
Przyjrzyjmy się teraz, jak wyświetla się komunikat. W programie myfirst.cpp używamy następu-
jącej instrukcji:
cout << "Zabaw się językiem C++.";
Część w cudzysłowach to pokazywany komunikat. W C++ każdy ciąg znaków ujętych w podwój-
ne cudzysłowy to łańcuch znakowy. Zapis << oznacza wysłanie danych do cout; symbole te
wskazują kierunek przepływu informacji. A czym właściwie jest cout? Jest to predefiniowany
obiekt, który potrafi pokazywać różne rzeczy: łańcuchy, liczby, pojedyncze znaki (jak zapewne
Czytelnicy pamiętają, obiekt to konkretny egzemplarz klasy, a klasa to definicja sposobu prze-
chowywania danych i zasady ich użycia).
No cóż, omawianie teraz użycia obiektów jest dość trudne, gdyż obiektami nie będziemy zajmo-
wać się w kilku następnych rozdziałach. Jest to jedna z mocnych stron obiektowości — aby uży-
wać obiektu, nie trzeba zbyt wiele wiedzieć o jego wewnętrznej budowie. Wystarczy znać inter-
fejs obiektu, czyli wiedzieć, jak go używać. Obiekt cout ma bardzo prosty interfejs. Jeśli string
to łańcuch znakowy, aby go wyświetlić, wystarczy zapisać:
cout << string;
I tyle musimy wiedzieć o wyświetlaniu w C++ napisów, ale teraz zastanówmy się, jak ten proces
wygląda w ogólniejszej perspektywie C++. Dane wyjściowe to strumień, czyli ciąg znaków, ge-
nerowany przez program. Obiekt cout, którego właściwości opisano w iostream, reprezentuje
ten strumień. Dla obiektu cout zdefiniowano operator wstawiania (<<) wstawiający dane bez-
pośrednio do strumienia. Weźmy pod uwagę następujący fragment kodu (pamiętajmy o końco-
wym średniku):
cout << "Zabaw się językiem C++.";
38
25. C++ — pocz¹tek
Do strumienia wyjściowego wstawiany jest łańcuch „Zabaw się językiem C++.”. Zamiast zatem
mówić, że nasz program wyświetla komunikat, możemy powiedzieć, że wstawia on komunikat
do strumienia wyjściowego. Brzmi to nieco poważniej (rysunek 2.2).
Rysunek 2.2. Wyœwietlanie ³añcucha za pomoc¹ cout
Przeci¹¿anie po raz pierwszy
Osoby, które maj¹ ju¿ doœwiadczenie w jêzyku C zauwa¿y³y zapewne, ¿e operator wstawie-
nia do strumienia, <<, wygl¹da zupe³nie jak operator bitowego przesuniêcia w lewo. Jest to
przyk³ad przeci¹¿ania operatorów, dziêki któremu ten sam symbol operatora mo¿e zmieniaæ
swoje znaczenie. Kompilator na podstawie kontekstu okreœla, o które znaczenie chodzi.
Zreszt¹ sam jêzyk C ma pewne elementy przeci¹¿ania operatorów; symbol & oznacza opera-
tor adresu oraz operator bitowego AND. Symbol * oznacza mno¿enie oraz dereferencjê
(wy³uskanie). Dla nas w tej chwili wa¿ne jest nie tyle znaczenie tych operatorów, co fakt, ¿e
ten sam symbol mo¿e mieæ wiele znaczeñ i kompilator wybiera jedno z nich na podstawie
kontekstu (tak samo jak my, s³ysz¹c s³owo „pi³ka”, o czym innym myœlimy w kontekœcie
„pi³ki do drewna”, a o czym innym w przypadku „pi³ki na aucie”). Jêzyk C++ rozszerza pojê-
cie przeci¹¿ania operatorów, umo¿liwiaj¹c zmianê znaczenia operatora w odniesieniu do ty-
pów u¿ytkownika; typy takie to klasy.
Manipulator endl
Teraz zajmijmy się nieco dziwnie wyglądającym zapisem drugiej instrukcji zapisu danych do
strumienia z listingu 2.1:
39
26. Rozdzia³ 2 - Pierwszy program w C++
cout << endl;
endl to specjalny zapis w C++ oznaczający ważne pojęcie, jakim jest początek nowego wiersza.
Wstawienie endl do strumienia wyjściowego powoduje, że kursor na ekranie przechodzi na
początek następnego wiersza. Specjalne symbole, takie jak endl, mające dla cout specyficzne
znaczenie, nazywamy manipulatorami. Tak jak cout, tak i endl zdefiniowano w pliku na-
główkowym iostream w przestrzeni nazw std.
Zwróćmy uwagę na to, że cout po wypisaniu łańcucha znakowego nie przechodzi automatycz-
nie do następnego wiersza, więc pierwsza instrukcja z cout z listingu 2.1 zostawia kursor po
kropce na końcu łańcucha. Działanie każdego następnego cout zaczyna się od miejsca, w któ-
rym skończyło się działanie poprzedniego, więc pominięcie endl dałoby wynik następujący:
Zabaw się językiem C++.Nie pożałujesz!
Zwróćmy uwagę na to, że „N” jest tuż za kropką. Oto kolejny przykład. Niech dany będzie
następujący kod:
cout << "Dobry,";
cout << "zły, ";
cout << "i ukulele";
cout << endl;
Kod ten da w wyniku:
Dobry, zły, i ukulele
Tutaj też początek jednego łańcucha znajduje się zaraz za końcem poprzedniego; jeśli chcemy
napisy te oddzielić spacją, musimy tę spację włączyć do jednego z napisów (aby powyższe przy-
kłady wypróbować, trzeba umieścić je w kompletnym programie z funkcją main()).
Znak nowego wiersza
C++ ma jeszcze inny, bardziej archaiczny sposób wskazywania końca wiersza — znany z C zapis n:
cout << "Co dalej?n"; // n oznacza początek nowego wiersza
Kombinacja n jest traktowana jako pojedynczy znak, znak nowego wiersza. Jeśli wyświetlamy
łańcuch znakowy, łatwiej jest wstawić do niego znak nowego wiersza, niż dopisywać osobno endl:
cout << "Jowisz to wielka planeta.n"; // pokazuje zdanie,przechodzi
// do następnego wiersza
cout << "Jowisz to wielka planeta." << endl; // pokazuje zdanie, przechodzi
// do następnego wiersza
Z drugiej strony, jeśli chodzi o wypisanie pojedynczego znaku nowego wiersza, obie metody
wymagają tyle samo pisania, ale dla większości osób pisanie endl jest łatwiejsze:
cout << "n"; // zaczynamy nowy wiersz
cout << endl; // zaczynamy nowy wiersz
40