reklama - zainteresowany?

Programowanie w j - Helion

Programowanie w j
ebook
Autor: Bogus
Tłumaczenie: Krzysztof Kapustka, Wojciech Fenrich
ISBN: 9788301229061
stron: 732, Format: ebook
Data wydania: 2023-03-15
Księgarnia: Helion

Cena książki: 111,20 zł (poprzednio: 139,00 zł)
Oszczędzasz: 20% (-27,80 zł)

Dodaj do koszyka Programowanie w j

Wyj

Dodaj do koszyka Programowanie w j

 

Osoby które kupowały "Programowanie w j", wybierały także:

  • Windows Media Center. Domowe centrum rozrywki
  • Podręcznik startupu. Budowa wielkiej firmy krok po kroku
  • Ruby on Rails. Ćwiczenia
  • Scrum. O zwinnym zarz
  • Prawa ludzkiej natury

Dodaj do koszyka Programowanie w j

Spis treści

Programowanie w języku C++ eBook -- spis treści

  • Okładka
  • Strona tytułowa
  • Strona redakcyjna
  • Spis treści
  • Przedmowa
  • Podziękowania
  • Podziękowania do wydania polskiego
  • Wykaz skrótów
  • 1. Wprowadzenie
    • 1.1. Struktura książki
    • 1.2. Konwencje formatowania
    • 1.3. O kodzie i projektach
  • 2. Wprowadzenie do programowania
    • 2.1. Model sprzętowy
    • 2.2. Ekosystem tworzenia oprogramowania
    • 2.3. Etapy tworzenia oprogramowania
    • 2.4. Reprezentacja i uruchamianie algorytmów
      • 2.4.1. Reprezentowanie algorytmów
      • 2.4.2. Korzystanie z kompilatorów dostępnych w Internecie
      • 2.4.3. Struktura programu w C++
      • 2.4.4. Analiza kodu
      • 2.4.5. Budowa linuksowej postaci wykonywalnej
    • 2.5. Przykładowy projekt kalkulator procentu składanego
      • 2.5.1. Analiza procentu składanego
      • 2.5.2. Implementacja kalkulatora procentu składanego
      • 2.5.3. Budowanie i uruchamianie oprogramowania
    • 2.6. Przykładowy projekt zliczanie wystąpień znaków w tekście
      • 2.6.1. Analiza problemu i implementacja
      • 2.6.2. Uruchomienie kodu C++ za pomocą kompilatora dostępnego w Internecie
      • 2.6.3. Kod histogramu wyjaśnienie
    • 2.7. Podsumowanie
      • Pytania i ćwiczenia
  • 3. Podstawy C++
    • 3.1. Stałe i zmienne wbudowane typy danych, ich zakres oraz inicjalizacja
    • 3.2. Przykładowy projekt zbieranie ocen studentów
    • 3.3. Nasz przyjaciel debugger
    • 3.4. Podstawowa struktura danych std::vector
    • 3.5. Przykładowy projekt implementowanie macierzy w postaci wektora wektorów
    • 3.6. Specjalny wektor do przechowywania tekstu std::string
    • 3.7. Słowo kluczowe auto oraz decltype do automatycznej dedukcji typu
    • 3.8. Popularne algorytmy standardowe
    • 3.9. Struktury: zbieranie obiektów różnego typu
    • 3.10. Tablice o stałym rozmiarze
      • 3.10.1. Wielowymiarowe tablice o stałym rozmiarze
    • 3.11. Referencje
    • 3.12. Wskaźniki
      • 3.12.1. Dostęp do obiektów za pomocą wskaźników
    • 3.13. Instrukcje
      • 3.13.1. Bloki instrukcji oraz dostęp do zmiennych rola nawiasów klamrowych
      • 3.13.2. Instrukcje C++
        • 3.13.2.1. Instrukcje warunkowe
        • 3.13.2.2. Instrukcje pętli
        • 3.13.2.3. Instrukcje pomocnicze continue oraz break
        • 3.13.2.4. Instrukcja goto
        • 3.13.2.5. Strukturalna obsługa wyjątków instrukcja try-catch
    • 3.14. Funkcje
      • 3.14.1. Anatomia funkcji w C++
      • 3.14.2. Przekazywanie argumentów do i z funkcji
        • 3.14.2.1. Przekazywanie argumentów przez kopię (semantyka wartości)
        • 3.14.2.2. Pośrednie przekazywanie argumentów przez referencję
        • 3.14.2.3. Przekazywanie przez wskaźnik
      • 3.14.3. Mechanizm wywoływania funkcji i funkcje wbudowane
      • 3.14.4. Funkcje rekurencyjne i stos wywołań
      • 3.14.5. Przeciążanie funkcji rozwiązywanie widoczności za pomocą przestrzeni nazw
      • 3.14.6. Funkcje lambda
      • 3.14.7. Więcej na temat funkcji lambda
      • 3.14.8. Wskaźniki do funkcji
      • 3.14.9. Funkcje w środowisku obiektowym
    • 3.15. Przykładowy projekt opakowywanie obiektów strukturą z konstruktorem
      • 3.15.1. EMatrix w środowisku obiektowym
      • 3.15.2. Podstawowe operacje z użyciem EMatrix
      • 3.15.3. Operacje wejścia i wyjścia na EMatrix
      • 3.15.4. Proste operacje matematyczne na macierzy EMatrix
      • 3.15.5. Organizowanie plików projektu i uruchamianie aplikacji
      • 3.15.6. Rozszerzanie inicjalizacji macierzy za pomocą prostego generatora liczb losowych
    • 3.16. Przykładowy projekt reprezentowanie równań kwadratowych
      • 3.16.1. Definicja klasy do reprezentowania wielomianów kwadratowych
      • 3.16.2. Implementacja składowych TQuadEq
      • 3.16.3. TQuadEq w akcji
    • 3.17. Przykładowy projekt krotki i powiązania strukturalne do konwertowania liczb rzymskich
      • 3.17.1. Więcej o std::tuple i powiązaniu strukturalnym
      • 3.17.2. Jak napisać test jednostkowy oprogramowania
      • 3.17.3. Automatyzowanie testów jednostkowych z użyciem standardowej biblioteki liczb losowych
    • 3.18. Projekt przykładowy tworzenie komponentu kalkulatora walutowego
      • 3.18.1. Analiza problemu wymiany walut
      • 3.18.2. Projekt oprogramowania CurrencyCalc   219
      • 3.18.3. Klasa TCurrency reprezentująca rekordy walut
        • 3.18.3.1. Manipulatory wejścia/wyjścia C++
      • 3.18.4. Klasa TCurrencyExchanger do wymiany walut
      • 3.18.5. Łączenie wszystkiego w całość kompletny program wymiany walut
    • 3.19. Operatory
      • 3.19.1. Podsumowanie operatorów C++
      • 3.19.2. Dalsze uwagi na temat operatorów
    • 3.20. Podsumowanie
      • Pytania i ćwiczenia
  • 4. Zgłębianie programowania obiektowego
    • 4.1. Podstawowe reguły oraz filozofia projektowania i programowania obiektowego
    • 4.2. Anatomia klasy
      • 4.2.1. Konwencja nazewnictwa i samodokumentujący się kod
    • 4.3. Reguły uzyskiwania dostępu do składowych klasy  
    • 4.4. Przykładowy projekt klasa TComplex do przeciążania operatorów
      • 4.4.1. Definicja klasy TComplex
      • 4.4.2. Definicja składowych klasy TComplex
      • 4.4.3. Funkcje testujące dla klasy TComplex
    • 4.5. Więcej o referencjach
      • 4.5.1. Referencje prawostronne i przekazywania
      • 4.5.2. Referencje kontra wskaźniki
      • 4.5.3. Pułapki z referencjami
    • 4.6. Przykładowy projekt opanowywanie składowych klasy z użyciem klasy TheCube
      • 4.6.1. Automatyczna kontra jawna definicja konstruktorów
      • 4.6.2. Układ i semantyka obiektu TheCube
      • 4.6.3. Semantyka kopiowania płytkiego i głębokiego
      • 4.6.4. Semantyka konstruktora przenoszącego i przypisania przenoszącego
      • 4.6.5. Implementacja operatorów strumieniowania dla TheCube
      • 4.6.6. Sprawdzanie TheCube
    • 4.7. Projekt przykładowy przenoszenie EMatrix do klasy
      • 4.7.1. Definicja klasy EMatrix
      • 4.7.2. Implementacja operatorów strumieniowania klasy
      • 4.7.3. Implementacja operatorów arytmetycznych
      • 4.7.4. Testowanie operacji na macierzach
    • 4.8. Wprowadzenie do szablonów i programowania uogólnionego
      • 4.8.1. Uogólnianie klasy przy użyciu szablonów
      • 4.8.2. span class="c-10"> Specjalizacje szablonów
      • 4.8.3. Funkcje szablonowe i sprawdzanie typu
    • 4.8.4. Przykładowy projekt projektowanie klas szablonowych przy użyciu TStack
      • 4.8.4.1. Projekt i implementacja klasy TStackFor
      • 4.8.4.2. Testowanie TStack
    • 4.8.5. Szablonowe funkcje składowe
    • 4.9. Relacje między klasami zna, ma oraz jest
    • 4.10. Przykładowy projekt rozszerzanie funkcjonalności poprzez dziedziczenie klas z użyciem TComplexQuadEq
    • 4.11. Funkcje wirtualne i polimorfizm
    • 4.12. Więcej na temat mechanizmu wirtualnego
    • 4.13. Ciekawie rekurencyjny wzorzec szablonu i statyczny polimorfizm
    • 4.14. Klasy domieszki
    • 4.15. Przykładowy projekt klasa TLongNumberFor do wydajnego przechowywania liczb o dowolnej długości
      • 4.15.1. Reprezentacja Binary-Coded Decimal
      • 4.15.2. Kolejność bajtów
      • 4.15.3. Definicja klasy TLongNumberFor
        • 4.15.3.1. Operacje konwersji typu
        • 4.15.3.2. Funkcja testująca TLongNumberFor
      • 4.15.4. Projektowanie klas dla numeru PESEL
        • 4.15.4.1. Agregowanie klasy PESEL
        • 4.15.4.2. Odziedziczona klasa PESEL
        • 4.15.4.3. Organizacja projektu LongNumber
      • 4.15.5. Rozszerzanie funkcjonalności klasy TLongNumberFor z użyciem wzorca pełnomocnika
        • 4.15.5.1. Definicja klasy Proxy
        • 4.15.5.2. Testowanie funkcjonalności klasy TLongNumberFor z użyciem wzorca pełnomocnika
    • 4.16. Silne typy
    • 4.17. Podsumowanie
      • Pytania i ćwiczenia
  • 5. Zarządzanie pamięcią
    • 5.1. Rodzaje magazynów danych
    • 5.2. Dynamiczny przydział pamięci jak unikać wycieków pamięci
      • 5.2.1. Wprowadzenie do inteligentnych wskaźników i zarządzania zasobami
        • 5.2.1.1. RAII i odwijanie stosu
    • 5.3. Inteligentne wskaźniki omówienie z przykładami
      • 5.3.1. Więcej o std::unique_ptr
        • 5.3.1.1. Kontekst użycia std::unique_ptr
        • 5.3.1.2. Wzorzec projektowy metody wytwórczej
        • 5.3.1.3. Niestandardowe usuwanie unique_ptr
        • 5.3.1.4. Konstrukcje do unikania podczas korzystania z unique_ptr
      • 5.3.2. Więcej o shared_ptr i weak_ptr
    • 5.4. Podsumowanie
      • Pytania i ćwiczenia
  • 6. Zaawansowane programowanie obiektowe
    • 6.1. Obiekty funkcyjne
    • 6.2. Projekt przykładowy rozszerzanie o wyszukiwanie walut w plikach XML oraz korzystanie z maszyny stanów i wyrażeń regularnych za pomocą biblioteki regex
      • 6.2.1. Dopasowywanie do wzorca za pomocą biblioteki wyrażeń regularnych
      • 6.2.2. Wzorzec maszyny stanów
      • 6.2.3. Implementowanie klasy rozszerzonej
      • 6.2.4. Rozszerzenie projektu wczytywanie informacji o walutach z internetu
      • 6.2.5. Uruchamianie rozszerzonej wersji CurrencyCalc
      • 6.2.6. Tworzenie biblioteki statycznej
      • 6.2.7. System plików C++
      • 6.2.8. Interfejs użytkownika
        • 6.2.8.1. Definicja klasy CC_GUI
        • 6.2.8.2. Definicje składowych klasy CC_GUI i mechanizm wywołania zwrotnego
        • 6.2.8.3. Uruchamianie aplikacji z GUI
    • 6.3. Zegary systemowe i pomiar czasu
    • 6.4. Mierzenie czasu wykonywania funkcji
    • 6.5. Klasa Range
      • 6.5.1. Programowanie funkcyjne i biblioteka std::ranges
    • 6.6. Przykładowy projekt parsowanie wyrażeń
      • 6.6.1. Definiowanie wyrażeń języka i zasad gramatyki formalnej
      • 6.6.2. Projektowanie biblioteki przetwarzania wyrażeń
      • 6.6.3. Pierwszy interpreter poleceń
      • 6.6.4. Budowanie drzewa składniowego z użyciem wzorca projektowego kompozytu
        • 6.6.4.1. Wzorzec projektowy kompozytu do definiowania węzłów drzewa
        • 6.6.4.2. Implementacja hierarchii TNode i współpraca z wizytatorami
        • 6.6.4.3. Implementacja klasy ValueLeafNode
        • 6.6.4.4. Implementacja klasy BinOperator
        • 6.6.4.5. Implementacja klasy PlusOperator
        • 6.6.4.6. Głębokie kopiowanie obiektów węzła mechanizm prototypowania
      • 6.6.5. Interpreter do budowy drzew składniowych
      • 6.6.6. Stos dla inteligentnych wskaźników
      • 6.6.7. Przechodzenie po drzewach za pomocą wzorca projektowego wizytatora
        • 6.6.7.1. Wizytator ewaluujący wyrażenie
        • 6.6.7.2. Wizytator wypisujący wyrażenie
      • 6.6.8. Testowanie interpreterów
      • 6.6.9. Reprezentowanie wyrażeń na stosie w odwrotnej notacji polskiej
        • 6.6.9.1. Odwrócona notacja polska
        • 6.6.9.2. Algorytm do ewaluowania wyrażenia RPN
    • 6.7. Podsumowanie
      • Pytania i ćwiczenia
  • 7. Arytmetyka komputerowa
    • 7.1. Reprezentacja wartości całkowitej
      • 7.1.1. Algorytm konwersji podstawy
      • 7.1.2. Reprezentacje szesnastkowe i ósemkowe
      • 7.1.3. Dodawanie binarne
      • 7.1.4. Wartości ujemne i odejmowanie
    • 7.2. Operacje przesunięcia binarnego
      • 7.1.5. Flagi kontroli arytmetycznej
      • 7.1.6. Reprezentowanie ułamków
    • 7.2. Operacje przesunięcia binarnego
    • 7.3. Przykładowy projekt model programowy dla reprezentacji stałoprzecinkowej
      • 7.3.1. Liczby stałoprzecinkowe i ich arytmetyka
      • 7.3.2. Definicja klasy FxFor   579
      • 7.3.3. Wybrane metody klasy FxFor   587
      • 7.3.4. Zastosowania dla FxFor
    • 7.4. Reprezentacje liczb zmiennoprzecinkowych
      • 7.4.1. Reprezentacja liczb w formacie zmiennoprzecinkowym
      • 7.4.2. Rozkład liczb zmiennoprzecinkowych i konsekwencje obliczeniowe
      • 7.4.3. Błąd przybliżenia wartości rzeczywistej przy użyciu reprezentacji zmiennoprzecinkowej
      • 7.4.4. Standard IEEE 754 dla arytmetyki zmiennoprzecinkowej
      • 7.4.5. Standardowy model operacji zmiennoprzecinkowych
      • 7.4.6. Obliczenia ze świadomością o błędach numerycznych
      • 7.4.7. Przykładowy projekt ewaluacja algorytmów sumujących
      • 7.4.8. Przykładowy projekt metoda Newtona do znajdywania miejsc zerowych funkcji
        • 7.4.8.1. Funkcja do obliczania pierwiastka kwadratowego na podstawie iteracji Newtona
    • 7.5. Podsumowanie
      • Pytania i ćwiczenia
  • 8. Podstawy programowania równoległego
    • 8.1. Podstawowe zagadnienia związane z obliczeniami równoległymi
    • 8.2. Dodawanie równoległości do algorytmów standardowych
    • 8.3. Uruchamianie zadań asynchronicznych
    • 8.4. Zrównoleglanie za pomocą biblioteki OpenMP
      • 8.4.1. Uruchamianie zespołu wątków i zapewnianie ochrony wyłącznego dostępu
      • 8.4.2. Równoległa pętla for i operacje redukcji
      • 8.4.3. Równoległość dla dużych ilości danych
    • 8.5. Podsumowanie
      • Pytania i ćwiczenia
  • Dodatek
    • A.1. Dyrektywy preprocesora
    • A.2. Krótkie wprowadzenie do języka C
      • A.2.1. Tablice wbudowane
        • A.2.1.1. Wielowymiarowe tablice o stałym rozmiarze
      • A.2.2. Przekazywanie tablic do funkcji funkcja main
      • A.2.3. Struktury C
      • A.2.4. Funkcje i operacje wejścia/wyjścia w C
      • A.2.5. Unie
      • A.2.6. Operacje wykonywane na pamięci i ciągach znaków
      • A.2.7. Łączenie kodu C i C++
    • A.3. Łączenie i organizacja binarna obiektów C/C++
    • A.4. Graficzny interfejs użytkownika i interfejs sieci Web dla projektów C++
    • A.5. Konwertowanie wartości bin, oct, dec i hex za pomocą FixBinCalc
    • A.6. Zestaw narzędzi programistycznych
      • A.6.1. Narzędzie do generowania projektów (CMake)
      • A.6.2. Systemy kontroli wersji i repozytoria
      • A.6.3. Profiler
    • A.7. Testowanie oprogramowania
    • A.8. Podsumowanie
      • Pytania i ćwiczenia
  • Bibliografia
  • O Autorze
  • Przypisy

Dodaj do koszyka Programowanie w j

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2023 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.