Katalog książek

Wydawnictwo Helion

Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. (32) 230-98-63




© Helion 1991-2014

Lauret zaufanych opinii
Język C. Szkoła programowania. W...

Język C. Szkoła programowania. Wydanie V

Autor: 

Język C. Szkoła programowania. Wydanie V
Ocena:
   6/6  Opinie  (45)
Stron: 976
Ksiazka drukowana Druk (oprawa: twarda)

Kompletne omówienie najnowszego standardu języka C

"Język C. Szkoła programowania. Wydanie V" jest uaktualnioną wersją bestsellerowej książki wydanej pod tym samym tytułem w roku 1999 nakładem wydawnictwa Robomatic. Podręcznik ten w czytelny sposób prezentuje kolejne tematy, ilustrując je przykładowymi programami. Każdy rozdział kończą pytania sprawdzające wraz z odpowiedziami oraz zadania programistyczne.

W książce znajdziemy pełny opis standardu (C99) języka C, w tym m.in. szczegółową charakterystykę:

  • rozszerzonych typów całkowitych i zbiorów znaków,
  • tablic o zmiennej długości (VLA),
  • złożonych literałów,
  • rozszerzonych zbiorów znaków oraz typów logicznych,
  • funkcji wplatanych (inline),
  • inicjalizatorów oznaczonych struktur.

Autor nie ogranicza się do opisu instrukcji języka C. Ujawnia także techniki efektywnego programowania oraz przedstawia wybrane algorytmy i struktury danych.

Potwierdzeniem jakości książki jest sukces, jaki odniosła w Stanach Zjednoczonych -- pięć wydań i ponad 400 tys. sprzedanych egzemplarzy. Na rynku amerykańskim zaliczana jest już do klasyki.

Przedmowa (19)
O autorze (21)
Rozdział 1. Zaczynamy (23)
  • Skąd C? (23)
  • Dlaczego C? (24)
    • Cechy użytkowe (25)
    • Efektywność (25)
    • Przenośność (25)
    • Moc i elastyczność (25)
    • Ukierunkowanie na programistę (26)
    • Słabe strony (26)
  • Dokąd zmierza C? (26)
  • Co robią komputery? (28)
  • Języki wysokiego poziomu i kompilatory (29)
  • Korzystanie z C: siedem kroków (29)
    • Krok 1: określenie celów programu (30)
    • Krok 2: projektowanie programu (30)
    • Krok 3: pisanie kodu (31)
    • Krok 4: kompilacja (31)
    • Krok 5: uruchomienie programu (32)
    • Krok 6: testowanie i usuwanie błędów (32)
    • Krok 7: "Pielęgnowanie" i modyfikacja programu (33)
    • Komentarz (33)
  • Mechanika programowania (33)
    • Pliki kodu obiektowego, pliki wykonywalne i biblioteki (34)
    • UNIX (36)
    • Linux (38)
    • Zintegrowane środowiska programistyczne (Windows) (38)
    • Kompilatory DOS-owe dla komputerów IBM PC (40)
    • Język C a Macintosh (40)
  • Standardy języka (40)
    • Standard ANSI/ISO C (41)
    • Standard C99 (42)
  • Jak zorganizowano tę książkę (43)
  • Metody zapisu (43)
    • Czcionka (43)
    • Tekst na ekranie (43)
  • Podsumowanie rozdziału (45)
  • Pytania sprawdzające (45)
  • Ćwiczenie (45)
Rozdział 2. Wstęp do C (47)
  • Prosty przykład języka C (47)
  • Objaśnienie (48)
    • Podejście 1: szybkie streszczenie (48)
    • Podejście 2: szczegóły (50)
  • Budowa prostego programu (59)
  • Jak uczynić Twój program czytelnym? (60)
  • Kolejny krok (60)
    • Dokumentacja (61)
    • Wielokrotne deklaracje (61)
    • Mnożenie (61)
    • Wyświetlanie wielu wartości (62)
  • Wiele funkcji (62)
  • Usuwanie błędów (64)
    • Błędy składniowe (64)
    • Błędy semantyczne (65)
    • Stan programu (67)
  • Słowa kluczowe (67)
  • Kluczowe zagadnienia (68)
  • Podsumowanie rozdziału (69)
  • Pytania sprawdzające (69)
  • Ćwiczenia (70)
Rozdział 3. Dane w C (73)
  • Program przykładowy (74)
    • Co nowego? (75)
  • Zmienne i stałe (76)
  • Słowa kluczowe typów danych (76)
    • Typy całkowite a typy zmiennoprzecinkowe (77)
    • Liczba całkowita (78)
    • Liczba zmiennoprzecinkowa (79)
  • Typy danych w C (80)
    • Typ int (80)
    • Inne typy całkowite (84)
    • Korzystanie ze znaków: typ char (89)
    • Typ _Bool (95)
    • Typy przenaszalne: inttypes.h (96)
    • Typy float, double i long double (98)
    • Typy zespolone i urojone (103)
    • Inne typy (103)
    • Rozmiary typów (105)
  • Korzystanie z typów danych (107)
  • Uwaga na argumenty (107)
  • Jeszcze jeden przykład (109)
    • Co się dzieje (110)
    • Potencjalny problem (111)
  • Kluczowe zagadnienia (111)
  • Podsumowanie rozdziału (112)
  • Pytania sprawdzające (113)
  • Ćwiczenia (115)
Rozdział 4. Łańcuchy znakowe i formatowane wejście/wyjście (117)
  • Na początek... program (118)
  • Łańcuchy znakowe: wprowadzenie (119)
    • Tablice typu char i znak zerowy (119)
    • Korzystanie z łańcuchów (120)
    • Funkcja strlen() (121)
  • Stałe i preprocesor C (123)
    • Modyfikator const (127)
    • Stałe standardowe (127)
  • Poznać i wykorzystać printf() i scanf() (129)
    • Funkcja printf() (130)
    • Korzystanie z printf() (130)
    • Modyfikatory specyfikatorów konwersji dla printf() (132)
    • Znaczenie konwersji (138)
    • Korzystanie z funkcji scanf() (144)
    • Modyfikator * w funkcjach printf() i scanf() (150)
  • Praktyczne wskazówki (151)
  • Kluczowe zagadnienia (152)
  • Podsumowanie rozdziału (153)
  • Pytania sprawdzające (154)
  • Ćwiczenia (156)
Rozdział 5. Operatory, wyrażenia i instrukcje (159)
  • Wstęp do pętli (160)
  • Podstawowe operatory (162)
    • Operator przypisania: = (162)
    • Operator dodawania: + (164)
    • Operator odejmowania: - (165)
    • Operatory znaku: - i + (165)
    • Operator mnożenia: * (166)
    • Operator dzielenia: / (168)
    • Priorytet operatorów (169)
    • Priorytet i kolejność obliczeń (171)
  • Niektóre inne operatory (172)
    • Operator sizeof i typ size_t (172)
    • Operator modulo: % (173)
    • Operatory inkrementacji i dekrementacji: ++ i -- (175)
    • Dekrementacja -- (179)
    • Priorytet (180)
    • Nie próbuj być zbyt sprytny (181)
  • Wyrażenia i instrukcje (182)
    • Wyrażenia (182)
    • Instrukcje (183)
    • Instrukcje złożone (bloki) (186)
  • Konwersje typów (188)
    • Operator rzutowania (190)
  • Funkcje z argumentami (192)
  • Przykładowy program (194)
  • Zagadnienia kluczowe (195)
  • Podsumowanie rozdziału (196)
  • Pytania sprawdzające (197)
  • Ćwiczenia (200)
Rozdział 6. Instrukcje sterujące C: Pętle (203)
  • Przykład (204)
    • Komentarz (205)
    • Pętla odczytująca w stylu C (207)
  • Instrukcja while (207)
    • Zakończenie pętli while (208)
    • Kiedy kończy się pętla? (208)
    • while jako pętla z warunkiem wejścia (209)
    • Wskazówki dotyczące składni (210)
  • Co jest większe: korzystanie z operatorów i wyrażeń relacyjnych (211)
    • Czym jest prawda? (213)
    • Co jeszcze jest prawdą? (214)
    • Problemy z prawdą (215)
    • Nowy typ _Bool (218)
    • Priorytet operatorów relacyjnych (219)
  • Pętle nieokreślone i pętle liczące (221)
  • Pętla for (222)
    • Elastyczność pętli for (224)
  • Inne operatory przypisania: +=, -=, *=, /=, %= (228)
  • Operator przecinkowy: , (229)
    • Zenon z Elei kontra pętla for (231)
  • Pętla z warunkiem wyjścia: do while (233)
  • Której pętli użyć? (236)
  • Pętle zagnieżdżone (237)
    • Omówienie (238)
    • Inny wariant (238)
  • Tablice (239)
    • Współpraca tablicy i pętli for (240)
  • Przykład wykorzystujący pętlę i wartość zwracaną przez funkcję (242)
    • Omówienie programu (245)
    • Korzystanie z funkcji zwracających wartości (246)
  • Zagadnienia kluczowe (246)
  • Podsumowanie rozdziału (247)
  • Pytania sprawdzające (248)
  • Ćwiczenia (252)
Rozdział 7. Instrukcje sterujące C: Rozgałęzienia i skoki (257)
  • Instrukcja if (258)
  • Dodajemy else (260)
    • Kolejny przykład: funkcje getchar() i putchar() (262)
    • Rodzina funkcji znakowych ctype.h (264)
    • Wybór spośród wielu możliwości: else if (266)
    • Łączenie else z if (269)
    • Więcej o zagnieżdżonych instrukcjach if (271)
  • Bądźmy logiczni (275)
    • Zapis alternatywny: plik nagłówkowy iso646.h (277)
    • Priorytet (277)
    • Kolejność obliczeń (278)
    • Zakresy (279)
  • Program liczący słowa (280)
  • Operator warunkowy: ?: (284)
  • Dodatki do pętli: continue i break (286)
    • Instrukcja continue (286)
    • Instrukcja break (289)
  • Wybór spośród wielu możliwości: switch i break (291)
    • Korzystanie z instrukcji switch (293)
    • Pobieranie tylko pierwszego znaku w wierszu (294)
    • Etykiety wielokrotne (295)
    • Switch a if else (298)
  • Instrukcja goto (298)
    • Unikanie goto (298)
  • Zagadnienia kluczowe (301)
  • Podsumowanie rozdziału (302)
  • Pytania sprawdzające (303)
  • Ćwiczenia (306)
Rozdział 8. Znakowe wejście/wyjście i przekierowywanie (309)
  • Jednoznakowe we/wy: getchar() i putchar() (310)
  • Bufory (311)
  • Kończenie danych wprowadzanych z klawiatury (313)
    • Pliki, strumienie i dane wprowadzane z klawiatury (313)
    • Koniec pliku (314)
  • Przekierowywanie a pliki (317)
    • Przekierowywanie w systemach UNIX, Linux i DOS (318)
  • Tworzenie przyjaźniejszego interfejsu użytkownika (322)
    • Współpraca z buforowanym wejściem (322)
    • Łączenie wejścia liczbowego i znakowego (325)
    • Sprawdzanie poprawności danych wejściowych (328)
    • Analiza programu (332)
    • Strumienie wejściowe a liczby (333)
  • Menu (334)
    • Zadania (334)
    • W kierunku sprawnego działania (335)
    • Łączenie danych znakowych i numerycznych (337)
  • Zagadnienia kluczowe (340)
  • Podsumowanie rozdziału (340)
  • Pytania sprawdzające (341)
  • Ćwiczenia (342)
Rozdział 9. Funkcje (345)
  • Przypomnienie (345)
    • Tworzenie i korzystanie z prostej funkcji (347)
    • Analiza programu (347)
    • Argumenty funkcji (350)
    • Definiowanie funkcji pobierającej argument: argumenty formalne (351)
    • Prototyp funkcji pobierającej argumenty (352)
    • Wywoływanie funkcji pobierającej argumenty: argumenty faktyczne (353)
    • Punkt widzenia czarnej skrzynki (354)
    • Zwracanie wartości przy pomocy instrukcji return (354)
    • Typy funkcji (357)
  • Prototypy ANSI C (358)
    • Problem (359)
    • ANSI na ratunek! (360)
    • Brak argumentów a argumenty nieokreślone (361)
  • Potęga prototypów (362)
  • Rekurencja (362)
    • Rekurencja bez tajemnic (363)
    • Podstawy rekurencji (364)
    • Rekurencja końcowa (365)
    • Rekurencja i odwracanie kolejności działań (367)
    • Za i przeciw rekurencji (369)
  • Kompilowanie programów zawierających więcej niż jedną funkcję (371)
    • UNIX (371)
    • Linux (371)
    • DOS (kompilatory wiersza poleceń) (372)
    • Kompilatory Windows i Macintosh (372)
    • Korzystanie z plików nagłówkowych (372)
  • Uzyskiwanie adresów: operator & (376)
  • Modyfikacja zmiennych w funkcji wywołującej (377)
  • Wskaźniki: pierwsze spojrzenie (379)
    • Operator dereferencji: * (380)
    • Deklarowanie wskaźników (381)
    • Wykorzystanie wskaźników do komunikacji pomiędzy funkcjami (382)
  • Kluczowe zagadnienia (386)
  • Podsumowanie rozdziału (387)
  • Pytania sprawdzające (387)
  • Ćwiczenia (388)
Rozdział 10. Tablice i wskaźniki (391)
  • Tablice (391)
  • Inicjalizacja (392)
    • Użycie const z tablicami (393)
    • Uwaga o klasach zmiennych (394)
    • Oznaczona inicjalizacja (C99) (397)
    • Przypisywanie wartości do tablic (398)
    • Zakres tablic (398)
    • Określanie rozmiaru tablicy (400)
  • Tablice wielowymiarowe (401)
  • Inicjalizacja tablicy dwuwymiarowej (404)
    • Więcej wymiarów (405)
  • Wskaźniki do tablic (405)
  • Funkcje, tablice i wskaźniki (408)
    • Korzystanie z argumentów wskaźnikowych (411)
    • Komentarz: wskaźniki i tablice (414)
  • Działania na wskaźnikach (414)
  • Ochrona zawartości tablicy (419)
    • Zastosowanie słowa kluczowego const w parametrach formalnych (420)
    • Więcej o const (421)
  • Wskaźniki a tablice wielowymiarowe (423)
    • Wskaźniki do tablic wielowymiarowych (426)
    • Zgodność wskaźników (428)
    • Funkcje a tablice wielowymiarowe (429)
    • Tablice o zmiennym rozmiarze (VLA, ang. variable - length array) (433)
    • Złożone literały (437)
  • Zagadnienia kluczowe (439)
  • Podsumowanie rozdziału (440)
  • Pytania sprawdzające (441)
  • Ćwiczenia (443)
Rozdział 11. Łańcuchy znakowe i funkcje łańcuchowe (447)
    • Reprezentacja łańcuchów i łańcuchowe wejście/wyjście (447)
  • Definiowanie łańcuchów (449)
    • Stałe łańcuchowe (449)
    • Tablice łańcuchów i inicjalizacja (450)
    • Tablica a wskaźnik (452)
    • Tablice łańcuchów znakowych (455)
    • Wskaźniki a łańcuchy (456)
  • Wczytywanie łańcuchów (458)
    • Tworzenie miejsca (458)
    • Funkcja gets() (459)
    • Funkcja fgets() (461)
    • Funkcja scanf() (462)
  • Wyświetlanie łańcuchów (464)
    • Funkcja puts() (464)
    • Funkcja fputs() (465)
    • Funkcja printf() (466)
  • Zrób to sam (466)
  • Funkcje łańcuchowe (469)
    • Funkcja strlen() (469)
    • Funkcja strcat() (471)
    • Funkcja strncat() (472)
    • Funkcja strcmp() (473)
    • Funkcje strcpy() i strncpy() (478)
    • Funkcja sprintf() (483)
    • Inne funkcje łańcuchowe (484)
  • Przykład użycia: sortowanie łańcuchów (486)
    • Sortowanie wskaźników zamiast łańcuchów (487)
    • Algorytm sortowania przez selekcję (488)
  • Łańcuchy a funkcje znakowe z rodziny ctype.h (489)
  • Argumenty wiersza poleceń (491)
    • Argumenty wiersza poleceń w środowiskach zintegrowanych (493)
    • Argumenty linii poleceń w systemie Macintosh (493)
  • Konwersja łańcuchów do liczb (494)
  • Zagadnienia kluczowe (497)
  • Podsumowanie rozdziału (497)
  • Pytania sprawdzające (498)
  • Ćwiczenia (501)
Rozdział 12. Klasy zmiennej, łączność i zarządzanie pamięcią (503)
  • Klasy zmiennych (503)
    • Zasięg zmiennej (504)
    • Łączność zmiennej (506)
    • Czas trwania zmiennej (507)
    • Zmienne automatyczne (507)
    • Zmienne rejestrowe (512)
    • Zmienne statyczne o zasięgu blokowym (513)
    • Zmienne statyczne o łączności zewnętrznej (514)
    • Zmienne statyczne o łączności wewnętrznej (519)
    • Programy wieloplikowe (520)
    • Specyfikatory klasy zmiennych (521)
  • Klasy zmiennych a funkcje (524)
    • Którą klasę wybrać? (524)
  • Funkcje pseudolosowe i zmienne statyczne (525)
  • Rzut kostką (528)
  • Przydział pamięci: funkcje malloc() i free() (532)
    • Znaczenie funkcji free() (536)
    • Funkcja calloc() (537)
    • Dynamiczny przydział pamięci a tablice o zmiennym rozmiarze (538)
    • Klasy zmiennych a dynamiczny przydział pamięci (539)
  • Kwalifikatory typu ANSI C (540)
    • Kwalifikator typu const (540)
    • Kwalifikator typu volatile (543)
    • Kwalifikator typu restrict (544)
    • Stare słowa kluczowe w nowych miejscach (545)
    • Kluczowe zagadnienia (546)
  • Podsumowanie rozdziału (547)
  • Pytania sprawdzające (548)
  • Ćwiczenia (550)
Rozdział 13. Obsługa plików (553)
  • Wymiana informacji z plikami (553)
    • Czym jest plik? (554)
    • Poziomy wejścia/wyjścia (555)
    • Pliki standardowe (556)
  • Standardowe wejście/wyjście (556)
    • Sprawdzanie argumentów wiersza poleceń (557)
    • Funkcja fopen() (558)
    • Funkcje getc() i putc() (559)
    • Znak końca pliku EOF (ang. end of file) (560)
    • Funkcja fclose() (561)
    • Wskaźniki do plików standardowych (562)
  • Niewyszukany program kompresujący pliki (562)
  • Plikowe wejście/wyjście: fprintf(), fscanf(), fgets() i fputs() (564)
    • Funkcje fprintf() i fscanf() (564)
    • Funkcje fgets()i fputs() (565)
  • Przygody z dostępem swobodnym: fseek() i ftell() (568)
    • Jak działają funkcje fseek() i ftell()? (569)
    • Tryb binarny a tryb tekstowy (571)
    • Przenośność (571)
    • Funkcje fgetpos() i fsetpos() (572)
  • Za kulisami standardowego wejścia/wyjścia (573)
  • Inne standardowe funkcje wejścia/wyjścia (574)
    • Funkcja int ungetc(int c, FILE *fp) (574)
    • Funkcja int fflush() (574)
    • Funkcja int setvbuf() (575)
    • Binarne wejście/wyjście: fread() i fwrite() (575)
    • Funkcja size_t fwrite (577)
    • Funkcja size_t fread(void *ptr, size_t size, size_t nmemb, FILE *fp) (578)
    • Funkcje int feof(FILE *fp) oraz int ferror(FILE *fp) (578)
    • Przykład (578)
    • Dostęp swobodny w binarnym wejściu/wyjściu (581)
  • Zagadnienia kluczowe (583)
  • Podsumowanie rozdziału (583)
  • Pytania sprawdzające (584)
  • Ćwiczenia (586)
Rozdział 14. Struktury i inne formy danych (589)
  • Przykładowy problem: tworzenie spisu książek (590)
  • Deklaracja struktury (591)
  • Definiowanie zmiennej strukturalnej (592)
    • Inicjalizacja struktury (593)
  • Uzyskiwanie dostępu do składników struktury (594)
    • Inicjalizatory oznaczone struktur (595)
  • Tablice struktur (596)
    • Deklarowanie tablicy struktur (598)
    • Wskazywanie składników tablicy struktur (599)
    • Szczegóły programu (599)
  • Struktury zagnieżdżone (600)
  • Wskaźniki do struktur (602)
    • Deklaracja i inicjalizacja wskaźnika do struktury (603)
    • Dostęp do składników za pomocą wskaźnika (604)
  • Struktury a funkcje (604)
    • Przekazywanie składników struktur (605)
    • Korzystanie z adresu struktury (606)
    • Przekazywanie struktury jako argumentu (607)
    • Więcej o nowym, ulepszonym statusie struktury (607)
    • Struktury czy wskaźniki do struktur? (611)
    • Tablice znakowe lub wskaźniki do znaków w strukturze (612)
    • Struktury, wskaźniki i funkcja malloc() (613)
    • Literały złożone i struktury (C99) (615)
    • Elastyczne składniki tablicowe (C99) (617)
    • Funkcje korzystające z tablic struktur (619)
  • Zapisywanie zawartości struktury w pliku (620)
    • Omówienie programu (624)
  • Struktury: co dalej? (625)
  • Unie: szybkie spojrzenie (625)
  • Typy wyliczeniowe (628)
    • Stałe enum (629)
    • Wartości domyślne (630)
    • Przypisywane wartości (630)
    • Użycie enum (630)
    • Współdzielona przestrzeń nazw (632)
  • typedef: szybkie spojrzenie (632)
  • Udziwnione deklaracje (635)
  • Funkcje a wskaźniki (637)
  • Kluczowe zagadnienia (644)
  • Podsumowanie rozdziału (644)
  • Pytania sprawdzające (645)
  • Ćwiczenia (648)
Rozdział 15. Manipulowanie bitami (653)
  • Liczby binarne, bity i bajty (654)
    • Binarne liczby całkowite (654)
    • Liczby całkowite ze znakiem (655)
    • Binarne liczby zmiennoprzecinkowe (656)
  • Inne systemy liczbowe (657)
    • System ósemkowy (657)
    • System szesnastkowy (657)
  • Operatory bitowe (659)
    • Bitowe operatory logiczne (659)
    • Zastosowanie: maski (660)
    • Zastosowanie: włączanie bitów (661)
    • Zastosowanie: wyłączanie bitów (662)
    • Zastosowanie: odwracanie bitów (662)
    • Zastosowanie: sprawdzenie wartości bitu (663)
    • Bitowe operatory przesunięcia (663)
    • Przykład (665)
    • Kolejny przykład (666)
  • Pola bitowe (668)
    • Przykład (670)
    • Pola bitowe a operatory bitowe (673)
  • Kluczowe zagadnienia (680)
  • Podsumowanie rozdziału (680)
  • Pytania sprawdzające (681)
  • Ćwiczenia (683)
Rozdział 16. Preprocesor i biblioteka C (685)
    • Pierwsze kroki w translacji programu (686)
  • Stałe symboliczne: #define (687)
    • Żetony (691)
    • Przedefiniowywanie stałych (691)
  • #define i argumenty (692)
    • Argumenty makr w łańcuchach (695)
    • Łącznik preprocesora: operator ## (696)
    • Makra o zmiennej liczbie argumentów: ... i __VA_ARGS__ (697)
  • Makro czy funkcja? (698)
  • Dołączanie plików: #include (699)
    • Pliki nagłówkowe: przykład (700)
    • Zastosowania plików nagłówkowych (702)
  • Inne dyrektywy (704)
    • Dyrektywa #undef (704)
    • Zdefiniowany: z perspektywy preprocesora C (705)
    • Kompilacja warunkowa (705)
    • Makra predefiniowane (710)
    • #line i #error (711)
    • #pragma (712)
    • Funkcje wplatane (inline) (713)
  • Biblioteka języka C (715)
    • Uzyskiwanie dostępu do biblioteki C (716)
    • Korzystanie z opisów funkcji (716)
  • Biblioteka funkcji matematycznych (718)
  • Biblioteka narzędzi ogólnego użytku (720)
    • Funkcje exit() i atexit() (721)
    • Funkcja qsort() (723)
    • Korzystanie z funkcji qsort() (725)
    • Definicja funkcji porownaj() (726)
  • Biblioteka assert.h (728)
    • Funkcje memcpy() i memmove() z biblioteki string.h (729)
  • Zmienna liczba argumentów: stdarg.h (731)
    • Zagadnienie kluczowe (734)
  • Podsumowanie rozdziału (734)
  • Pytania sprawdzające (735)
  • Ćwiczenia (736)
Rozdział 17. Zaawansowana reprezentacja danych (739)
  • Poznajemy reprezentację danych (740)
    • Listy łączone (743)
    • Abstrakcyjne typy danych (ATD) (751)
  • Kolejki (767)
    • Definicja kolejki jako abstrakcyjnego typu danych (767)
    • Symulowanie za pomocą kolejki (778)
    • Lista łączona czy tablica? (784)
    • Drzewa binarne (788)
    • Co dalej? (812)
    • Zagadnienia kluczowe (813)
  • Podsumowanie rozdziału (813)
  • Pytania sprawdzające (814)
    • Ćwiczenia (815)
Dodatek A Odpowiedzi na pytania sprawdzające (817)
Dodatek B Podsumowanie (855)
  • I. Lektura uzupełniająca (855)
  • II. Operatory w języku C (859)
  • III. Podstawowe typy i klasy zmiennych (865)
  • IV. Wyrażenia, instrukcje i przepływ sterowania w programie (870)
  • V. Standardowa biblioteka ANSI C oraz rozszerzenia standardu C99 (876)
  • VI. Rozszerzone typy całkowite (922)
  • VII. Obsługa rozszerzonych zbiorów znaków (926)
  • VIII. Efektywniejsze obliczenia numeryczne w standardzie C99 (932)
  • IX. Różnice między C a C++ (936)
Skorowidz (943)
6
(37)
5
(7)
4
(1)
3
(0)
2
(0)
1
(0)

Liczba ocen: 45

Średnia ocena
czytelników

  


okladka
  Ocena : 6 

Wszystko jest "cacy" poza jedną rzeczą - brak ebooka ! Mam nadzieję , że helion wyda w końcu wersje elektroniczną.
  Ocena : 6 

Bardzo dobra książka, chyba całkowicie omawia język C, od podstaw, wraz z przykładami, które są przejrzyste i zrozumiałem. Na końcu każdego rozdziału są ćwiczenia do wykonania, także po sumiennym przestudiowaniu całości jest się wykonywać wiele programów i dodatkowych ćwiczeń programistycznych. Gorąco polecam na start!
  Ocena : 6 

Super dla początkujących.
  Ocena : 6 

Najlepsza książka do nauki C, jaką miałem okazję przeczytać a przeczytałem ich kilka. W prosty i przystępny sposób wprowadza w zagadnienia programowania, zarówno te podstawowe jak i zaawansowane. Polecam w szczególności tym, którzy interesują się programowaniem w systemie Linuks, Unix i podobnych, bez wiedzy zawartej w tej książce trudno jest zrozumieć (jeżeli jest to możliwe) zasady działania tych systemów, które w większości zostały napisane właśnie w C.
  Ocena : 6 

Od tej książki rozpoczęła się moja przygoda z programowaniem kilka lat temu. Pozycja - genialna i obowiązkowa !!!
  Ocena : 6 

Książka doskonała. O jej zaletach wspomniano już wyżej więc ja jednak wypiszę wady: zbyt gruba, bardzo niewygodnie się czyta, ogromnie ciężka, mała czcionka, zbyt wysoka cena. Mimo tego uważam, że książka jest wybitna i nie żałuję jej zakupu. To zdecydowanie najlepsza pozycja do C na Polskim rynku. Polecam serdecznie wszystkim.
  Ocena : 6 

Genialna! Wybitna! Muszę szczerze przyznać, że nigdy nie lubiłem języka C. Moja nauka sprowadzała się do odwiedzania w necie stron poświęconych C, ale w końcu kiedyś trzeba było nabyć potrzebną wiedzę... Wszystko zmieniło się po przeczytaniu tej książki. Wspaniale opracowana, dużo niezbędnych informacji, dzięki którym usystematyzowałem swoją wiedzę - i czego się nie spodziewałem - pokochałem ten znienawidzony C! Pozycja OBOWIĄZKOWA dla wszystkich programistów. Jeśli szukasz książki do C, nie wahaj się wybrać "Szkoły programowania" S. Praty!
  Ocena : 6 

Zdecydowanie jedna z najlepszych książek do nauki języka C.
  Ocena : 6 

  Ocena : 6 

TOP3 tej pozycji i TOP10 autora (C++) o czymś świadczy. Książka wybitna ;)
  Ocena : 6 

Mimo paru błędów, książka jest po prostu ideałem dla początkujących programistów, szczególnie jeżeli jest to ich pierwszy język. Każde zagadnienie jest dokładnie i prosto opisane. Najlepsza o C z jaką się spotkałam.
  Ocena : 6 

Znakomita książka!
  Ocena : 6 

Świetna książka. Pierwsze wydanie zawierało trochę błędów, jednak nie wpłynęły one znacząco na jakość przekazywanej wiedzy. Polecam wszystkim.
  Ocena : 6 

Student Informatyki. Korzystałem z niej przez cały semestr kiedy miałem C jako przedmiot na studiach. Od zera nauczyłem się języka, myślę że dosyć dobrze, dodatkowo dzięki przerobieniu jej całej zdałem egzamin bez problemu, także polecam bardzo każdemu początkującemu, bo wszystko tłumaczone jest od zera. Jedyny drobny minus w niej to według mnie Abstrakcyjne Typy Danych, których z książki nie zrozumiałem zbyt dobrze, a w każdym razie wydaje mi sie że na zajęciach miałem je lepiej wytłumaczone niż, ale to tylko moje subiektywne odczucie.
  Ocena : 6 

  Ocena : 6 

Świetna książka, wielki plus za to, że nie zakłada z góry, iż początkujący adept zna jakikolwiek język programowania.
  Ocena : 6 

Chyba najlepsza książka do nauki C dla początkujących, ale także i bardziej zaawansowani znajdą coś dla siebie.
  Ocena : 6 

Najlepsza książka do C.
  Ocena : 6 

Pod każdym względem książka wybitna. Dla początkujących programistów jest nieocenioną pomocą w nauce. Jeżeli zaczynasz studia informatyczne, a nie miałeś wcześniej kontaktu z programowaniem to książka Stephena Praty jest najlepszym wyborem. Z chęcią dałbym 7/6 gwiazdek, ale pozostanę przy 6 gwiazdkach. Polecam!
  Ocena : 6 

Najlepsza książka do nauki programowania i to nie tylko na PC. Jestem studentem elektroniki i swoją przygodę rozpocząłem od książek w którym był opisany język C i programowanie mikrokontrolerów, ale takie książki niestety nie opisują języka C w całości, są pomijane m. in. tematy dotyczące funkcji na łańcuchach i plikach. A każdy elektronik kiedyś i tak będziesz musiał w końcu napisać program na PC lub Linuksa w systemie embedded, więc od razu lepiej kupić tą książkę i się zacząć uczyć ;)
  Ocena : 6 

Książka warta wydania 99 zł, jeśli jesteś początkującym, to z tej książki na pewno dużo się nauczysz, jest napisana prostymi słowami, co ważne autor nie narzuca na ciebie od razu wszystkiego tylko z czasem czytania jej dowiadujesz się o nowych rzeczach ma kilka błędów, które będę zgłaszał z czasem, ale naprawdę POLECAM!!!
  Ocena : 6 

Książka wręcz znakomita. To zresztą nowe, kolejne już wydanie znakomitej pozycji Stephena Praty (starsze wydanie opublikował kiedyś Robomatic). Książka opisuje nowinki standardu C, dużo ciekawostek na temat preprocesora i standardowej biblioteki C. Napisana prostym przystępnym językiem. Zdecydowanie najlepsza pozycja Helionu na temat języka C.
  Ocena : 6 

Świetna książka! Autor udowadnia tym podręcznikiem, że język C znakomicie nadaje się dla osób zaczynających programowanie. Bardzo dobrze pokazane kolejne etapy w poszczególnych rozdziałach, właściwe i łagodne stopniowanie poziomu trudności kolejnych zagadnień. Już po pierwszych dwóch rozdziałach miałem pewność, że idąc krok po kroku nie natrafię na dużą gradację poziomu trudności. Do nauki programowania podchodziłem wcześniej wielokrotnie, ale wiele książek niestety ten entuzjazm mi odbierało, ta jest pierwszą, która zachęciła mnie do pokonywania tej drogi i dała dobre podstawy do nauki C++, PHP, a wiem, że i Java niestraszna będzie na kolejnym roku.
  Ocena : 6 

Studiuje zaocznie informatykę. Na książki (dotyczące tylko języka C) wydałem ponad 450 zł. Ale żadna z tych książek nie pomogła mi tak bardzo w zaliczeniu semestru i zaliczeniu egzaminu jak "Szkoła programowania - język c". Szczerze polecam wszystkim tę książkę. To najlepsza książka (dotycząca języka c), jaką miałem w rękach.
  Ocena : 6 

Książka to istne kompendium języka C. Osoby, które dopiero co uczą się tego języka na pewno znajdą mnóstwo przydatnych informacji, a ci, którzy znają go dobrze mogą z powodzeniem traktować ją jako źródło przypomnienia zapomnianych informacji. Słowem, dobra na początek i na zawsze :). Bardzo fajny jest też rozdział o różnicach pomiędzy C a C++. Poza tym jest tu dużo informacji na czasie, związanych ze standardami języka C. Każdy rozdział jest poprzedzony spisem zagadnień, co bardzo ułatwia korzystanie z książki, a liczne dodatki powodują, iż z książki można po prostu korzystać jak z encyklopedii. Zachęcam wszystkich do lektury!
  Ocena : 6 

Rewelacja!
  Ocena : 6 

To więcej niż książka. Precyzja, logika, doskonała konstrukcja wykładu w wykonaniu autora dają wręcz doskonały podręcznik do nauki.
  Ocena : 6 

Książka o wiele lepsza niż "Practical C Programming" z OReilly. Dogłębnie, szczegółowo i na prawdę przystępnie omówione tematy.
  Ocena : 6 

  Ocena : 6 

  Ocena : 6 

Wspaniała książka do nauki języka C. Autor bardzo dokładnie opisuje zarówno proste aspekty takie jak zmienne czy operatory, jak i te zaawansowane np. kolejki i drzewa. Zabrakło mi jedynie zobrazowania działania specyfikatora %g w funkcji printf oraz trybu otwarcia r+ w funkcji fopen. Pod koniec każdego rozdziału jest zestaw ćwiczeń, pozwalających sprawdzić w praktyce zdobytą wiedzę oraz ją utrwalić. Przerobiłem je w 100 procentach i mogę stwierdzić, że doskonale systematyzują omawiany materiał. Po przeczytaniu tej książki, nauka pozostałych języków programowania przebiega dużo sprawniej. Pozycja warta polecenia
  Ocena : 6 

Książka naprawdę rewelacja!!! Nigdy mi nie przyszło do głowy, że będę pisał w C a dzięki tej książce jest nadzieja!!!
  Ocena : 6 

Jestem w trakcie czytania, ale już mogę stwierdzić, że jest to najlepsza pozycja do C jaką miałem przyjemność czytać. Zaczynam tak naprawdę kolejny raz przygodę z C i do tej pory zawszę się zniechęcałem, bo zawsze coś wypadło, że nie rozumiałem. Dzięki tej pozycji jest inaczej :) Zakup okazał się strzałem w 10 i czuję, że następnym zakupem będzie C++ tego autora.
  Ocena : 6 

Lepsza niż "Ansi C" K&R
  Ocena : 6 

Genialna książka!
  Ocena : 6 

Bardzo dobra książka. Praktycznie wszystko czego może oczekiwać początkujący programista chcący nauczyć się C.
  Ocena : 6 

Chcesz rozpocząć naukę programowania? Rozpocznij od C. Szukasz najlepszej książki do rozpoczęcia? Nie szukaj dalej - kup tą.
  Ocena : 5 

Książka bardzo dobra. Obszernie i zrozumiale tłumaczy zagadnienia języka C. Zdecydowanie pozycja dla początkujących. Zaawansowany programista języka C nie znajdzie tam zbyt wiele informacji. Drobny minus to obszerność. Zresztą jak większość publikacji dt. programowania, wydawcy zapominają, że prócz zawartości książki liczy się wygoda jej użytkownika. Przydałoby się podział na dwa tomy.
  Ocena : 5 

  Ocena : 5 

Książka bardzo dobra, w sam raz na początek. Jeden minus - powód dla którego nie daje 6 gwiazdek: książka jest momentami zbyt "rozlazla". Tzn - powtarzanie tego samego po kilka razy, poza tym za dużo listingów, zamiast 3 przykładowych podobnych do siebie programów możnaby umieścić jeden nieco rozszerzony, zamiast ok. 800 stron treści merytorycznej dałoby się to samo wytlumaczyć w około 600. Książka jest bardzo dobra dla kogoś, kto nigdy nie programował, natomiast jeśli ktoś ma już jakieś choćby minimalne doświadczenie to zdecydowanie lepszą książką jest "Język C nowoczesne programowanie" autorstwa K.N. Kinga
  Ocena : 5 

Książka bardzo dobra, ktoś kto nie miał zetknięcia z C jest w stanie wiele się nauczyć z niej. Niestety najnowsze wydanie posiada więcej błędów nie poprzednie, które są bardzo irytujące.
  Ocena : 5 

Książka bardzo dobrze uczy programować! Podoba mi sie w niej przyjazny i zrozumiały dla czytelnika język. Nauka z tej ksiazki jest dosc przyjemna. Dużo ćwiczeń po każdym rozdziałem... warto je wykonywać gdyż one uczą najwięcej! To były plusy... Minus to- literówki, i pomyłki małe w zadaniach. Polecam tą książkę!
  Ocena : 5 

Pozycja idealna dla osób chcących rozpocząć swoją współpracę z C, lub też.. odświeżyć pamięć. Autor przystępnym językiem prowadzi użytkownika dosłownie "za rękę" przez wszystkie etapy tworzenia aplikacji, oraz sposoby na jej dalszy rozwój.
  Ocena : 5 

świetna do nauki podstaw
  Ocena : 4 

Książka traktuje o języku C nie wymagając od czytelnika zbyt wiele wiedzy, a nawet nie wymaga jej wcale. Jeżeli jesteś już średnio zaawansowanym użytkownikiem i potrzebujesz książki, która pozwoli Ci wejść w nowy język , to ta pozycja będzie dla Ciebie najprawdopodobniej zbyt "rozlazła" i będziesz czytał co któryś akapit. Werdykt dobra książka dla początkujących, dla średnio zaawansowanych już raczej nie.