Wprowadzenie (11)
- Adresaci książki (12)
- Co wyróżnia tę książkę na tle konkurencji (12)
- Elementy wizualne (12)
- Co ciekawego można zrobić przy użyciu języka C? (13)
- Co dalej? (13)
CZĘŚĆ I. PODSTAWY
1. Na czym polega programowanie w języku C i czemu powinno Cię to obchodzić (15)
- Co to jest program (16)
- Co jest potrzebne do pisania programów w języku C (17)
- Proces programowania (20)
- Posługiwanie się językiem C (20)
2. Pierwszy program w języku C (23)
- Prosty przykład kodu (24)
- Funkcja main() (26)
- Rodzaje danych (27)
- Znaki w języku C (27)
- Liczby w języku C (28)
- Jeszcze jeden przykład w ramach podsumowania (30)
3. Do czego to służy? Objaśnianie kodu za pomocą komentarzy (33)
- Dodawanie komentarzy do kodu (34)
- Definiowanie komentarzy (35)
- Białe znaki (36)
- Inny rodzaj komentarzy (37)
4. Światowa premiera - wysyłanie wyników działania programu na ekran (39)
- Funkcja printf() (40)
- Format funkcji printf() (40)
- Drukowanie łańcuchów (41)
- Cytowanie znaków (41)
- Znaczniki konwersji (43)
- Przykład podsumowujący (45)
5. Zmienne (47)
- Rodzaje zmiennych (48)
- Nadawanie zmiennym nazw (49)
- Definiowanie zmiennych (50)
- Zapisywanie danych w zmiennych (51)
6. Dodawanie słów do programu (55)
- Znak końca łańcucha (56)
- Długość łańcucha (57)
- Tablice znaków - listy znaków (57)
- Inicjowanie łańcuchów (59)
7. Dyrektywy #include i #define (63)
- Dołączanie plików (64)
- Miejsce dyrektywy #include (66)
- Definiowanie stałych (66)
- Tworzenie pliku nagłówkowego i programu (67)
8. Interakcja z użytkownikiem (71)
- Funkcja scanf() (72)
- Odbieranie danych za pomocą funkcji scanf() (72)
- Problemy z funkcją scanf() (74)
CZĘŚĆ II. WYRAŻENIA I OPERATORY JĘZYKA C
9. Obliczenia matematyczne (77)
- Podstawowe działania arytmetyczne (78)
- Kolejność wykonywania operatorów (80)
- Łamanie zasad za pomocą nawiasów (82)
- Operator przypisania (82)
10. Modyfikowanie wartości zmiennych za pomocą instrukcji przypisania (85)
- Złożony operator przypisania (86)
- Uważaj na kolejność (89)
- Rzutowanie typów (89)
11. Na rozstajach dróg - wybieranie ścieżki na podstawie warunków (91)
- Testowanie danych (92)
- Instrukcja if (93)
- W przeciwnym razie..., czyli instrukcja else (95)
12. Wspieranie procesu decyzyjnego za pomocą operatorów logicznych (99)
- Operatory logiczne (100)
- Unikanie negacji (103)
- Kolejność wykonywania operatorów logicznych (105)
13. Jeszcze kilka operatorów do użytku w programach (109)
- Żegnaj, konstrukcjo if...else, i witaj, operatorze warunkowy (110)
- Operatory zmiany wartości o jeden ++ i -- (112)
- Operator sizeof() (114)
CZĘŚĆ III. KONSTRUKCJE STERUJĄCE
14. Oszczędzanie czasu i energii dzięki użyciu pętli (117)
- Pętla while (118)
- Przykład użycia instrukcji while (119)
- Sposób użycia instrukcji do...while (120)
15. Inne rodzaje pętli (123)
- Pętla for (124)
- Praca z pętlą for (125)
16. Jak wyrwać się z zaklętego kręgu (131)
- Przerywanie pętli (132)
- Kontynuacja wykonywania (134)
17. Instrukcja switch i klauzula case (137)
- Instrukcja switch (138)
- Instrukcje break i switch (140)
- Kwestie wydajności (141)
18. Inne sposoby zwracania i pobierania danych (147)
- Funkcje putchar() i getchar() (148)
- Rozwiązanie problemu ze znakiem nowego wiersza (150)
- Przyspieszanie programu za pomocą funkcji getch() (151)
19. Jak optymalnie wykorzystać łańcuchy (153)
- Funkcje do testowania znaków (154)
- Mała czy duża (154)
- Funkcje do zmiany wielkości liter (157)
- Funkcje łańcuchowe (157)
20. Matematyka zaawansowana (ale dla komputera) (161)
- Funkcje matematyczne (162)
- Inne rodzaje konwersji (163)
- Trygonometria i inne skomplikowane zagadnienia (164)
- Liczby losowe (166)
CZĘŚĆ IV. ZAPISYWANIE I PRZECHOWYWANIE DANYCH
21. Tablice (171)
- Powtórzenie wiadomości o tablicach (172)
- Wstawianie wartości do tablic (174)
22. Przeszukiwanie tablic (177)
- Wstawianie wartości do tablic (178)
- Techniki przeszukiwania tablic (178)
23. Alfabetyczne układanie i porządkowanie (185)
- Wielkie porządki (186)
- Szybkie metody wyszukiwania (190)
24. Rozwiązanie zagadki wskaźników (195)
- Adresy pamięci (196)
- Definiowanie zmiennych wskaźnikowych (196)
- Operator dereferencji * (198)
25. Tablice i wskaźniki (203)
- Nazwy tablic są wskaźnikami (204)
- Przeglądanie listy (205)
- Znaki i wskaźniki (205)
- Uwaga na długość łańcucha (206)
- Tablice wskaźników (208)
26. Optymalizacja wykorzystania pamięci (213)
- Czym jest sterta (214)
- Do czego służy sterta (215)
- Alokacja pamięci na stercie (216)
- Postępowanie w przypadku, gdy na stercie brakuje miejsca (218)
- Zwalnianie pamięci na stercie (219)
- Alokowanie wielu obszarów na stercie (219)
27. Zapisywanie informacji w strukturach (225)
- Definiowanie struktury (226)
- Zapisywanie danych w zmiennych strukturalnych (229)
CZĘŚĆ V. PLIKI I FUNKCJE
28. Zapisywanie plików sekwencyjnych na komputerze (233)
- Pliki na dysku (234)
- Otwieranie pliku (234)
- Korzystanie z plików sekwencyjnych (236)
29. Zapisywanie plików o dostępie swobodnym na dysku (241)
- Swobodne otwieranie plików (242)
- Poruszanie się po pliku (243)
30. Organizacja struktury programu za pomocą funkcji (249)
- Budowa programu na bazie funkcji (250)
- Zmienne globalne czy lokalne (252)
31. Przekazywanie zmiennych do funkcji (257)
- Przekazywanie argumentów (258)
- Metody przekazywania argumentów (258)
- Przekazywanie argumentów przez wartość (259)
- Przekazywanie przez adres (261)
32. Zwracanie danych przez funkcje (267)
- Zwracanie wartości (268)
- Zwrotny typ danych (270)
- Ostatni krok - prototyp (271)
- Podsumowanie (272)
DODATKI
A. Tabela znaków ASCII (275)
B. Gra w pokera dobieranego (281)
Skorowidz (289)