S. Prata - Język C. Szkoła programowania.pdf

(20391 KB) Pobierz
Języ
K o m p le tn e o m ó w ie n ie
n a j n o w s z e g o sta n d a rd u
jfz y k a C
^ Struktu ro p r o g r a m ó w
n a p isa n y c h w C
C> Ele m en ty ję z y k a
t> O p e r a c j e w e j id a i w yjścia
W y d a me
Helion
darmowe ebooki
aktualne czasopisma
J /
fW
ebookgiqs.com
7
SPIS TREŚCI
Zaczynamy............................................................................................... 1
Skąd C ?............................................................................................................................................1
Dlaczego C?.....................................................................................................................................1
Dokąd C ?......................................................................................................................................... 4
Korzystanie z C: Siedem kroków.................................................................................................. 4
Mechanika programowania........................................................................................................... 8
Standardy języka...........................................................................................................................14
Metody zapisu...............................................................................................................................16
Podsumowanie rozdziału..............................................................................................................17
Pytania sprawdzające....................................................................................................................17
Ćwiczenie......................................................................................................................................18
Wstęp do C ............................................................................................ 19
Prosty przykład języka C ..............................................................................................................19
Objaśnienie....................................................................................................................................20
Budowa prostego programu........................................................................................................ 28
Jak uczynić Twój program czytelnym?....................................................................................... 29
Kolejny krok..................................................................................................................................30
Wiele fonkcji.................................................................................................................................31
Usuwanie błędów......................................................................................................................... 33
Słowa kluczowe............................................................................................................................ 36
Podsumowanie rozdziału..............................................................................................................36
Pytania sprawdzające....................................................................................................................37
Ćwiczenia......................................................................................................................................38
Dane w C.................................................................................................39
Program przykładowy...................................................................................................................39
Zmienne i stałe..............................................................................................................................42
Słowa kluczowe typów danych....................................................................................................42
Typy danych w C...........................................................................................................................45
Korzystanie z typów danych........................................................................................................65
Uwaga na argumenty....................................................................................................................66
Jeszcze jeden przykład..................................................................................................................67
Podsumowanie rozdziału..............................................................................................................69
Pytania sprawdzające....................................................................................................................70
Ćwiczenia......................................................................................................................................72
Łańcuchy znakowe i formatowane wejście/wyjście........................73
Na początek... program.................................................................................................................73
Łańcuchy znakowe: Wprowadzenie........................................................................................... 74
Stałe i preprocesor C .....................................................................................................................78
Poznać i wykorzystać printf() i scanf()....................................................................................... 85
Praktyczne wskazówki................................................................................................................104
Podsumowanie rozdziału............................................................................................................105
Pytania sprawdzające..................................................................................................................105
Ćwiczenia....................................................................................................................................107
Operatory, wyrażenia i instrukcje................................................ 109
Wstęp do pętli..............................................................................................................................109
Podstawowe operatory................................................................................................................111
Niektóre inne operatory..............................................................................................................120
Wyrażenia i instrukcje................................................................................................................ 128
Konwersje typów.........................................................................................................................133
Funkcje z argumentami...............................................................................................................136
Przykładowy program.................................................................................................................139
Podsumowanie rozdziału........................................................................................................... 140
Pytania sprawdzające..................................................................................................................141
Ćwiczenia....................................................................................................................................144
Instrukcje sterujące C: Pętle........................................................ 145
Przykład.......................................................................................................................................145
Instrukcja while...........................................................................................................................148
Co jest większe: Korzystanie z operatorów i wyrażeń relacyjnych........................................ 152
Pętle nieokreślone i pętle liczące............................................................................................... 159
Pętla for........................................................................................................................................159
Inne operatory przypisania: +=, -=, *=, /=,
%=........................................................................
165
Operator przecinkowy:, .............................................................................................................166
Pętla z warunkiem wyjścia: do while.........................................................................................170
Której pętli użyć?........................................................................................................................172
Pętle zagnieżdżone......................................................................................................................173
Tablice...:......................................................................................................................................175
Przykład wykorzystujący pętlę i wartość zwracaną przez funkcję......................................... 178
Podsumowanie rozdziału............................................................................................................181
Pytania sprawdzające..................................................................................................................182
Ćwiczenia....................................................................................................................................186
Instrukcje sterujące C: Rozgałęzienia i skoki............................. 189
Instrukcja if..................................................................................................................................189
Dodajemy else.............................................................................................................................191
Bądźmy logiczni..........................................................................................................................205
Program liczący słowa................................................................................................................209
Operator warunkowy: ?:.............................................................................................................212
Dodatki do pętli: continue i break..............................................................................................214
• Wybór spośród wielu możliwości: switch i break.................................................................... 218
Instrukcja goto................... ......................................................................................................... 225
Podsumowanie rozdziału............................................................................................................228
Pytania sprawdzające..................................................................................................................229
Ćwiczenia....................................................................................................................................231
Znakowe wejście/wyjście i przekierowywanie............................. 235
Jednoznakowe we/wy: getchar() i putchar()..............................................................................235
Bufory.......................................................................................................................................... 236
Kończenie danych wprowadzanych z klawiatury.................................................................... 238
Przekierowywanie a pliki............................................................................................................241
Grafika w trybie znakowym.......................................................................................................245
Tworzenie przyjaźniejszego interfejsu użytkownika............................................................... 246
Rysowanie za pomocą znaków...................................................................................................252
Menu............................................................................................................................................256
Podsumowanie rozdziału........................................................ ...................................................262
Pytania sprawdzające................................................................................................................. 262
Ćwiczenia....................................................................................................................................263
Funkcje............................................................................................265
Przypomnienie.............................................................................................................................265
Prototypy A N SIC ...................................................................................................................... 276
Rekurencja...................................................................................................................................279
Wszystkie funkcje są równe...................................................................................................... 285
Kompilowanie programów zawierających więcej niż jedną funkcję..................................... 286
Uzyskiwanie adresów: operator & ............................................................................................ 290
Modyfikacja zmiennych w funkcji wywołującej..................................................................... 291
Wskaźniki: pierwsze spojrzenie................................................................................................ 293
Podsumowanie rozdziału............................................................................................................300
Pytania sprawdzające..................................................................................................................300
Ćwiczenia....................................................................................................................................301
Tablice i wskaźniki..........................................................................303
Tablice..........................................................................................................................................303
Wskaźniki do tablic.....................................................................................................................309
Funkcje, tablice i wskaźniki...................................................................................................... 312
Działania na wskaźnikach.......................................................................................................... 316
Ochrona zawartości tablicy........................................................................................................ 319
Tablice wielowymiarowe........................................................................................................... 323
Wskaźniki a tablice wielowymiarowe...................................................................................... 326
Planowanie programu................................................................................................................ 333
Podsumowanie rozdziału............................................................................................................338
Pytania sprawdzające................................................................................................................. 339
Ćwiczenia....................................................................................................................................341
Łańcuchy znakowe i funkcje łańcuchowe.................................... 343
Definiowanie łańcuchów............................................................................................................345
Tablice znakowe, tablice łańcuchów i inicjalizacja.................................................................. 346
Wczytywanie łańcuchów........................................................................................................... 352
Wyświetlanie łańcuchów........................................................................................................... 357
Zrób to sam..................................................................................................................................359
Funkcje łańcuchowe....................................................................................................................361
Przykład łańcuchowy: Sortowanie łańcuchów........................................................................ 375
Łańcuchy a funkcje znakowe z rodziny ctype.h....................................................................... 377
Argumenty wiersza poleceń........................................ :.............................................................379
Konwersja łańcuchów do liczb.................................................................................................. 381
Podsumowanie rozdziału............................................................................................................384
Pytania sprawdzające................................................................................................................. 385
Ćwiczenia....................................................................................................................................387
Obsługa plików................................................................................389
Wymiana informacji z plikami.................................................................................................. 389
Standardowe wejście/wyjście.................................................................................................... 392
Niewyszukany program kompresujący pliki............................................................................ 396
Plikowe wejście/wyjście: fprintf(), fscanf(), fgets() i fputsQ.................................................. 397
Przygody z dostępem swobodnym: fseek() i ftell()................................................................. 401
Za kulisami standardowego wejścia/wyjścia............................................................................ 405
Inne standardowe funkcje wejścia/wyjścia............................................................................... 405
Podsumowanie rozdziału........................................................................................................... 413
Pytania sprawdzaj ące..................................................................................................................414
Ćwiczenia................................................................................................................................... 415
Klasy zmiennych i opracowywanie programu............................ 419
Klasy i zasięg zmiennych.......................................................................................................... 419
Funkcja losująca..........................................................................................................................432
Rzut kością...................................................................................................................................435
Sortowanie liczb..........................................................................................................................437
Kwalifikatory typów ANSIC.................................................................................................... 446
Podsumowanie rozdziału............................................................................................................449
Pytania sprawdzające..................................................................................................................450
Ćwiczenia....................................................................................................................................451
Struktury i inne formy danych..................................................... 455
Przykładowy problem: Tworzenie spisu książek..................................................................... 455
Deklaracja struktury................................................................................................................... 456
Definiowanie zmiennej strukturalnej........................................................................................ 457
Uzyskiwanie dostępu do składników struktury........................................................................ 459
Tablice struktur........................................................................................................................... 460
Struktury zagnieżdżone.............................................................................................................. 463
Wskaźniki do struktur................................................................................................................ 465
Struktury a funkcje................................................ .....................................................................467
Zapisywanie zawartości struktury w pliku............................................................................... 477
Stmktury: Co dalej?................................................................................................................... 480
Unie: Szybkie spojrzenie............................................................................................................481
typedef: Szybkie spojrzenie....................................................................................................... 484
Udziwnione deklaracje................................................................................................................486
Funkcje a wskaźniki................................................................................................................... 487
Podsumowanie rozdziału........................................................................................................... 493
Pytania sprawdzające..................................................................................................................494
Ćwiczenia....................................................................................................................................496
Manipulowanie bitami................................................................... 499
Liczby binarne, bity i bajty........................................................................................................ 499
Inne systemy liczbowe................................................................................................................502
Operatory bitowe.........................................................................................................................504
Pola bitowe..................................................................................................................................512
Podsumowanie rozdziału............................................................................................................521
Pytania sprawdzające..................................................................................................................521
Ćwiczenia....................................................................................................................................523
Preprocesor i biblioteka C..............................................................525
Stałe symboliczne: #defme.........................................................................................................525
#define i argumenty.....................................................................................................................530
Makro czy funkcja?.....................................................................................................................533
Dołączanie plików: #include..................................................................................................... 534
Inne dyrektywy............................................................................................................................537
Zgłoś jeśli naruszono regulamin