Jezyk_C_Szkola_programowania_Wydanie_V_jcszpr.pdf

(624 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREœCI
Jêzyk C. Szko³a
programowania. Wydanie V
Autor: Stephen Prata
T³umaczenie: Tomasz Szynalski, Grzegorz Joszcz
ISBN: 83-246-0291-7
Tytu³ orygina³u:
C Primer Plus (5th Edition)
Format: B5, stron: 976
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOœCIACH
ZAMÓW CENNIK
„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.
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
SPIS TREŚCI
5
SPIS TREŚCI
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
6
JĘZYK C. SZKOŁA PROGRAMOWANIA
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
SPIS TREŚCI
7
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
8
JĘZYK C. SZKOŁA PROGRAMOWANIA
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
Zgłoś jeśli naruszono regulamin