jezyk-c.-szkola-programowania.-wydanie-v pełna wersja.pdf

(20638 KB) Pobierz
887729711.001.png
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
SPIS TREŚCI
9
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
Zgłoś jeśli naruszono regulamin