Jezyk_C_Solidna_wiedza_w_praktyce_Wydanie_VIII_jcsol8.pdf

(4795 KB) Pobierz
Tytuł oryginału: C How to Program (8th Edition)
Tłumaczenie: Robert Górczyński
ISBN: 978-83-283-6286-4
Authorized translation from the English language edition, entitled C HOW TO PROGRAM, 8th
Edition by DEITEL, PAUL J.; DEITEL, HARVEY, published by Pearson Education, Inc, publishing as
Pearson, Copyright © 2016, 2013, 2010 Pearson Education, Inc., Hoboken, NJ 07030.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information storage
retrieval system, without permission from Pearson Education, Inc.
POLISH language edition published by Helion SA, Copyright © 2020.
Microsoft® and Windows® are registered trademarks of the Microsoft Corporation in the U.S.A. and
other countries.
DEITEL, the double-thumbs-up bug and DIVE INTO are registered trademarks of Deitel and
Associates, Inc.
Apple, Xcode, Swift, Objective-C, iOS and OS X are trademarks or registered trademarks of Apple, Inc.
Java is a registered trademark of Oracle and/or its affiliates.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych
w książce.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/jcsol8
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/jcsol8.zip
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
Wprowadzenie ................................................................................................................................. 19
Rozdział 1. Wprowadzenie do informatyki, internetu i sieci ......................................................... 31
1.1.
1.2.
Wprowadzenie ................................................................................................................................ 32
Hardware i software ....................................................................................................................... 32
1.2.1. Prawo Moore’a ...........................................................................................................................................32
1.2.2. Organizacja komputera ............................................................................................................................33
1.3.
1.4.
1.5.
1.6.
1.7.
1.8.
Hierarchia danych .......................................................................................................................... 35
Język maszynowy, język asemblera i język wysokiego poziomu .............................................. 37
Język programowania C ................................................................................................................ 38
Biblioteka standardowa C ............................................................................................................. 40
C++ i inne oparte na C języki programowania .......................................................................... 41
Technologia obiektowa .................................................................................................................. 42
1.8.1.
1.8.2.
1.8.3.
1.8.4.
1.8.5.
1.8.6.
1.8.7.
1.8.8.
Samochód jako obiekt ...............................................................................................................................42
Metoda i klasa .............................................................................................................................................42
Tworzenie egzemplarza ............................................................................................................................42
Wielokrotne używanie klasy ....................................................................................................................43
Komunikat i wywołanie metody ............................................................................................................43
Atrybut i zmienna egzemplarza ..............................................................................................................43
Hermetyzacja i ukrywanie informacji ...................................................................................................43
Dziedziczenie ..............................................................................................................................................43
Faza 1. — tworzenie programu ...............................................................................................................45
Fazy 2. i 3. — przetwarzanie i kompilowanie programu ...................................................................45
Faza 4. — linkowanie programu .............................................................................................................45
Faza 5. — wczytywanie programu .........................................................................................................46
Faza 6. — wykonywanie programu .......................................................................................................46
Problemy, które mogą pojawić się podczas wykonywania programu ...........................................46
Standardowe strumienie wejścia, wyjścia i błędów ............................................................................46
1.9.
Typowe środowisko programowania w języku C ...................................................................... 44
1.9.1.
1.9.2.
1.9.3.
1.9.4.
1.9.5.
1.9.6.
1.9.7.
1.10. Przykładowa aplikacja w języku C utworzona na platformach Windows, Linux i macOS ... 46
1.10.1. Uruchomienie aplikacji napisanej w C w oknie wiersza poleceń systemu Windows .................47
1.10.2. Uruchomienie aplikacji napisanej w C za pomocą GNU C w systemie Linux ............................50
1.10.3. Uruchomienie aplikacji napisanej w C za pomocą okna narzędzia Terminal
w systemie macOS .....................................................................................................................................52
Kup książkę
Poleć książkę
1.11. System operacyjny ...........................................................................................................................54
1.11.1. Windows — własnościowy system operacyjny ...................................................................................55
1.11.2. Linux — otwarty system operacyjny .....................................................................................................55
1.11.3. Systemy firmy Apple — macOS dla komputerów Mac,
iOS dla urządzeń mobilnych iPhone, iPad i iPod touch ....................................................................55
1.11.4. System Android firmy Google ................................................................................................................56
1.12. Internet i sieć WWW ......................................................................................................................56
1.12.1.
1.12.2.
1.12.3.
1.12.4.
1.12.5.
Internet — sieć sieci ...................................................................................................................................57
Sieć WWW — internet przyjazny użytkownikowi ............................................................................57
Usługa sieciowa ..........................................................................................................................................57
AJAX .............................................................................................................................................................59
Internet rzeczy ............................................................................................................................................59
1.13. Wybrana kluczowa terminologia związana z oprogramowaniem ...........................................59
1.14. Na bieżąco z technologiami informatycznymi ...........................................................................62
Rozdział 2. Wprowadzenie do programowania w języku C ..........................................................67
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
Wprowadzenie .................................................................................................................................68
Prosty program w języku C — wyświetlenie wiersza tekstu .....................................................68
Następny prosty program w języku C — dodawanie dwóch liczb całkowitych ....................72
Koncepcje dotyczące pamięci ........................................................................................................77
Arytmetyka w języku C ..................................................................................................................78
Podejmowanie decyzji — operatory równości i relacji ..............................................................82
Bezpieczne programowanie w języku C .......................................................................................86
Rozdział 3. Programowanie strukturalne w języku C .....................................................................99
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
3.7.
3.8.
3.9.
3.10.
3.11.
3.12.
3.13.
Wprowadzenie ...............................................................................................................................100
Algorytm ........................................................................................................................................100
Pseudokod ......................................................................................................................................100
Struktury kontrolne ......................................................................................................................101
Polecenie wyboru if .......................................................................................................................102
Polecenie wyboru if-else ...............................................................................................................103
Polecenie iteracji while .................................................................................................................107
Studium przypadku tworzenia algorytmu 1 — iteracja kontrolowana przez licznik ...........108
Studium przypadku tworzenia algorytmu 2 — iteracja kontrolowana przez wartownik ....111
Studium przypadku tworzenia algorytmu 3 — zagnieżdżone polecenia kontrolne .............117
Operatory przypisania ..................................................................................................................121
Operatory inkrementacji i dekrementacji .................................................................................121
Bezpieczne programowanie w języku C .....................................................................................124
Rozdział 4. Struktury warunkowe programu w języku C ..............................................................143
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.
4.9.
Wprowadzenie ...............................................................................................................................144
Podstawy iteracji ...........................................................................................................................144
Iteracja oparta na liczniku ...........................................................................................................144
Konstrukcja for ..............................................................................................................................146
Konstrukcja — uwagi i obserwacje .............................................................................................149
Przykłady użycia polecenia for ....................................................................................................150
Konstrukcja switch umożliwiająca wybór spośród wielu możliwości ...................................153
Konstrukcja do-while ...................................................................................................................159
Polecenia break i continue ...........................................................................................................160
6
SPIS TREŚCI
Kup książkę
Poleć książkę
4.10.
4.11.
4.12.
4.13.
Operatory logiczne ....................................................................................................................... 162
Mylenie operatorów równości (==) i przypisania (=) ............................................................. 165
Podsumowanie programowania strukturalnego ...................................................................... 166
Bezpieczne programowanie w języku C .................................................................................... 171
Rozdział 5. Funkcje w języku C ..................................................................................................... 187
5.1.
5.2.
5.3.
5.4.
5.5.
Wprowadzenie .............................................................................................................................. 188
Modularyzacja programów w języku C ..................................................................................... 188
Funkcje biblioteki matematycznej ............................................................................................. 189
Funkcje ........................................................................................................................................... 191
Definicja funkcji ........................................................................................................................... 191
5.5.1. Funkcja square() ......................................................................................................................................191
5.5.2. Funkcja maximum() ...............................................................................................................................195
5.6.
5.7.
5.8.
5.9.
5.10.
5.11.
5.12.
5.13.
5.14.
5.15.
5.16.
5.17.
Więcej o prototypie funkcji ......................................................................................................... 196
Stos wywołań funkcji i stos ramek ............................................................................................. 199
Nagłówki ........................................................................................................................................ 202
Przekazywanie argumentów przez wartość i przez referencję ............................................... 203
Generowanie liczb losowych ....................................................................................................... 204
Przykład — gra hazardowa i wprowadzenie typu enum ........................................................ 208
Klasy przechowywania ................................................................................................................. 211
Reguły dotyczące zasięgu ............................................................................................................. 213
Rekurencja ..................................................................................................................................... 216
Przykład użycia rekurencji — ciąg Fibonacciego ..................................................................... 220
Rekurencja kontra iteracja .......................................................................................................... 223
Bezpieczne programowanie w języku C .................................................................................... 225
Rozdział 6. Tablice w języku C ...................................................................................................... 245
6.1.
6.2.
6.3.
6.4.
Wprowadzenie .............................................................................................................................. 246
Tablica ............................................................................................................................................ 246
Definiowanie tablicy .................................................................................................................... 247
Przykłady tablic ............................................................................................................................. 248
6.4.1. Definiowanie tablicy i stosowanie pętli do przypisania wartości elementom .............................248
6.4.2. Inicjalizowanie tablicy w definicji za pomocą listy inicjalizacyjnej ...............................................249
6.4.3. Określenie wielkości tablicy za pomocą stałej symbolicznej
i inicjalizowanie elementów tablicy na podstawie wyniku obliczeń .............................................250
6.4.4. Sumowanie elementów tablicy .............................................................................................................251
6.4.5. Stosowanie tablicy do podsumowania wyników ankiety ................................................................252
6.4.6. Wizualizacja wartości elementów tablicy za pomocą histogramu ................................................254
6.4.7. Rzut kością 60 000 000 razy i podsumowanie wyników za pomocą tablicy ...............................255
6.5.
Stosowanie tablicy znaków do przechowywania ciągów tekstowych i operowania na nich ......256
6.5.1.
6.5.2.
6.5.3.
6.5.4.
6.5.5.
6.5.6.
Inicjalizacja tablicy znaków za pomocą ciągu tekstowego ..............................................................256
Inicjalizacja tablicy znaków za pomocą listy znaków .......................................................................256
Uzyskiwanie dostępu do znaków ciągu tekstowego .........................................................................256
Umieszczanie danych wejściowych w tablicy znaków .....................................................................257
Wyświetlanie tablicy znaków przedstawiającej ciąg tekstowy ........................................................257
Przykład użycia tablicy znaków ............................................................................................................257
6.6.
6.7.
6.8.
Statyczna i automatyczna tablica lokalna .................................................................................. 258
Przekazywanie funkcji argumentu w postaci tablicy ............................................................... 260
Sortowanie tablicy ........................................................................................................................ 264
Kup książkę
SPIS TREŚCI
7
Poleć książkę
Zgłoś jeśli naruszono regulamin