Sztuka dobrego programowania - Helion
ISBN: 978-8-3011-9047-7
stron: 236, Format: ebook
Data wydania: 2016-12-01
Księgarnia: Helion
Cena książki: 39,20 zł (poprzednio: 48,40 zł)
Oszczędzasz: 19% (-9,20 zł)
Książka przeznaczona jest dla programistów, którzy chcą, aby ich programy działały dobrze, czyli szybko zwracały wyniki, zużywały mało pamięci i obejmowały szeroki zakres danych wejściowych. Programista początkujący znajdzie tutaj wyjaśnienia podstawowych elementów języka C, a czytelnik zaawansowany dowie się, jak może udoskonalić swój warsztat. Czytelnik tej książki nauczy się pisać funkcje działające oszczędnie i wydajnie, np. funkcję, która znajduje liczby pierwsze 56 razy większe niż przykłady podawane w standardowych kursach programowania, a przy tym czyni to 7 razy szybciej. Dowie się, jak poprawnie tworzyć programy sterowane argumentami wywołania. Nauczy się, jak zautomatyzować proces budowania programów złożonych. Będzie potrafił przetwarzać wyrażenia regularne, czy też stworzyć interpreter poleceń podanych w języku naturalnym. Stanie się dobrym programistą.
Osoby które kupowały "Sztuka dobrego programowania", wybierały także:
- JavaScript. Kurs video. Programowanie funkcyjne i reaktywne 99,00 zł, (29,70 zł -70%)
- Zostań programistą. Kurs video. Fundamentalne zasady i koncepcje programistyczne 79,00 zł, (23,70 zł -70%)
- F# 4.0 dla zaawansowanych. Wydanie IV 96,45 zł, (29,90 zł -69%)
- Systemy reaktywne. Wzorce projektowe i ich stosowanie 65,31 zł, (20,90 zł -68%)
- Scratch. Komiksowa przygoda z programowaniem 36,06 zł, (11,90 zł -67%)
Spis treści
Sztuka dobrego programowania eBook -- spis treści
- Okładka
- Strona tytułowa
- Strona redakcyjna
- Spis treści
- Wstęp
- Przygotowanie środowiska pracy
- Instalacja systemu Linux
- Pobranie OpenSUSE
- Przygotowanie instalacji
- Instalacja
- Uruchamianie programów
- Edycja kodu źródłowego
- Przejście do trybu tekstowego
- Skompilowanie programu
- Uruchomienie programu
- Instalacja systemu Linux
- Polecane źródła w Internecie
- Przygotowanie środowiska pracy
- Część I
- Lekcja 1. Optymalizowanie funkcji
- Elementy matematyki
- Podstawy języka C
- Program, instrukcja
- Komentarze
- Identyfikatory
- SÅ‚owa kluczowe
- Białe znaki
- Podstawowe typy numeryczne
- Zmienne i operator przypisania
- Operatory
- Instrukcja warunkowa
- Instrukcje pętli
- Pętla while
- Pętla do while
- Pętla for
- Funkcje
- Funkcje rekurencyjne
- RozwiÄ…zanie zadania
- Krok 1. Pierwsze zadanie pomocnicze
- Krok 2. Rachunki matematyczne
- Krok 3. Drugie zadanie pomocnicze
- Krok 4. Uogólnienie rachunków
- Krok 5. Pierwsza wersja kodu funkcji rozwiÄ…zujÄ…cej zadanie
- Krok 6. Dodanie warunku zakończenia rekurencji
- Krok 7. Optymalizacja liczby operacji
- Krok 8. Optymalizacja liczby zmiennych
- Krok 9. Usunięcie rekurencji
- Krok 10. Sprawdzenie poprawności argumentów
- Wnioski
- Polecane źródła w Internecie
- Lekcja 2. Działania na bitach
- Sito Eratostenesa
- Podstawy Języka C
- Operacje na bitach
- Operacja and
- Operacja or
- Operacja xor
- Operacja not
- Przesunięcie bitowe w lewo
- Przesunięcie bitowe w prawo
- Rzutowanie
- Dyrektywy preprocesora
- Tablice
- Adresy zmiennych
- Wskaźniki
- Wskaźniki a tablice
- Alokowanie pamięci dla tablicy
- Operacje na bitach
- RozwiÄ…zanie zadania
- Krok 1. Podejście standardowe
- Krok 2. Zmniejszenie liczby operacji
- Krok 3. Oszczędność pamięci
- Krok 4. Poprawa efektywności algorytmu
- Wnioski
- Polecane źródła w Internecie
- Lekcja 3. Alokowanie pamięci
- Podstawy informatyki
- Podstawy języka C
- Funkcja malloc()
- Funkcja calloc()
- Funkcja realloc()
- Funkcja free()
- Przykład zarządzania pamięcią
- Zmienne automatyczne i statyczne
- RozwiÄ…zanie zadania
- Wnioski
- Polecane źródła w Internecie
- Lekcja 1. Optymalizowanie funkcji
- Część II
- Lekcja 4. Program główny
- Podstawy języka C
- Funkcja main()
- Funkcja exit ()
- Standardowe strumienie wejścia i wyjścia
- Napisy
- Konwersja napisu do liczby
- RozwiÄ…zanie zadania
- Krok 1. Zadanie pomocnicze
- Krok 2. Unikanie prostych błędów
- Krok 3. Zastosowanie nazwy programu
- Krok 4. Obsługa opcji
- Krok 5. Wyświetlenie komunikatu o błędzie
- Krok 6. Zastosowanie zmiennych środowiskowych
- Wnioski
- Polecane źródła w Internecie
- Podstawy języka C
- Lekcja 5. Przetwarzanie opcji
- Podstawy języka C
- Przekazywanie argumentów funkcji
- Instrukcja wielokrotnego wyboru: switch
- Standardowe opcje programu
- RozwiÄ…zanie zadania
- Wnioski
- Polecane źródła w Internecie
- Podstawy języka C
- Lekcja 6. Przetwarzanie parametrów wejściowych plików
- Podstawy języka C
- Odczyt i zapis do pliku
- Trójargumentowy operator warunkowy
- Sterowanie preprocesorem
- Prototyp funkcji
- Atrybut extern
- Kompilacja programu
- RozwiÄ…zanie zadania
- Krok 1. Rozdzielenie kompetencji między funkcje
- Krok 2. Rozdzielenie kompetencji między pliki
- Krok 3. Utworzenie plików nagłówkowych
- Krok 4. Przetwarzanie danych wejściowych
- Krok 5. Kompilacja
- Aneks
- Polecane źródła w Internecie
- Podstawy języka C
- Lekcja 4. Program główny
- Część III
- Lekcja 7. Debugowanie programu
- Na czym polega debugowanie
- Podstawy języka C
- Buforowanie
- Wyrażenie przecinkowe
- Funkcja char()
- RozwiÄ…zanie zadania
- Krok 1. Wydruki kontrolne w kodzie programu
- Krok 2. Zastosowanie makra
- Krok 3. Makro ze zmienną liczbą parametrów
- Krok 4. Debugowanie wybierane dynamicznie
- Krok 5. Obsługa parametru wywołania +d
- Wnioski
- Aneks
- Modyfikacje w funkcji set_opt()
- Modyfikacje w funkcji main()
- Modyfikacja wypisywania pomocy rozszerzonej
- Polecane źródła w Internecie
- Lekcja 8. Budowanie złożonych programów
- Podstawy teoretyczne
- Struktura pliku Makefile
- RozwiÄ…zanie zadania
- Krok 1. Tworzenie pliku Makefile
- Deklaracje zmiennych
- Reguły kompilacji
- Krok 2. Optymalizacja pliku Makefile
- Krok 3. Realizowanie celów specjalnych
- make clean
- make distclean
- make dist
- make install
- Krok 4. Sprawdzenie poprawności listy zależności
- Krok 1. Tworzenie pliku Makefile
- Wnioski
- Polecane źródła w Internecie
- Podstawy teoretyczne
- Lekcja 9. Udostępnianie programu
- Narzędzia do udostępniania programów
- Krok 1. Skanowanie katalogu
- Krok 2. Edytowanie pliku configure.ac
- Krok 3. Edytowanie pliku config.h.in
- Krok 4. Edytowanie pliku makefile.in
- Krok 5. Wywołanie programu autoconf
- Krok 6. Uruchomienie programu configure
- Krok 7. Korzystanie z pliku config.h
- Krok 8. Budowanie programu
- Krok 9. Dystrybucja
- Wnioski
- Polecane źródła w Internecie
- Narzędzia do udostępniania programów
- Lekcja 7. Debugowanie programu
- Część IV
- Lekcja 10. Dynamiczne struktury danych
- Funkcje rekurencyjne
- Rekurencyjne struktury danych
- Dynamiczne struktury danych
- Listy
- Drzewa binarne
- Porównanie przetwarzania list i drzew
- Realizacja dynamicznych struktur danych w języku C
- Struktury
- RozwiÄ…zanie zadania
- Reprezentacja węzła drzewa
- Krok 1. Tworzenie drzewa
- Krok 2. Wstawianie elementu na poczÄ…tek i na koniec listy
- Krok 3. Zamiana drzewa na listÄ™
- Krok 4. Zamiana listy na drzewo
- Krok 5. Wypisywanie zawartości drzewa
- Krok 6. Wyszukiwanie informacji w drzewie
- Krok 7. Optymalizacja wyszukiwania
- Krok 8. Baza z wieloma kluczami
- Wnioski
- Polecane źródła w Internecie
- Lekcja 11. Wyrażenia regularne
- Automaty skończone
- Wyrażenia regularne
- Metaznaki
- Rozpoznawanie wyrażeń regularnych
- RozwiÄ…zanie zadania
- Krok 1. Sformułowanie zadania dla konkretnego zastosowania
- Krok 2. Budowanie tablicy sterujÄ…cej
- Wnioski
- Polecane źródła w Internecie
- Lekcja 12. Interpreter poleceń
- Gramatyki formalne
- Narzędzia informatyczne
- Generator parsera yacc
- Deklaracje języka C
- Deklaracje parsera
- Reguły gramatyki
- Kod dodatkowy
- Generator leksera lex
- Reguły leksykalne
- Generator parsera yacc
- RozwiÄ…zanie zadania
- Krok 1. Tworzenie pliku mag.y
- Krok 2. Generowanie parsera
- Krok 3. Tworzenie pliku mag.l
- Krok 4. Generowanie analizatora leksykalnego
- Krok 5. Tworzenie prostego programu głównego
- Krok 6. Modyfikacja pliku Makefile
- Krok 7. Wywołanie funkcji yyparse() w pętli
- Krok 8. Sterowanie reakcjami systemu
- Modyfikacja leksera
- Modyfikacja funkcji main()
- Modyfikacja parsera
- Krok 9. Rozwijanie interpretera
- Krok 10. Rozwiązywanie konfliktów
- Wnioski
- Polecane źródła w Internecie
- Lekcja 10. Dynamiczne struktury danych
- Pliki towarzyszące książce