Wkrocz w świat programowania w C++
Poznaj środowisko programistyczne
Napisz własne aplikacje
Opanuj zasady programowania obiektowego
C++ to jeden z najbardziej popularnych języków programowania. Przyczyny jego popularności to przede wszystkim niewielka liczba słów kluczowych, ogromna liczba bibliotek umożliwiających zastosowanie C++ w wielu dziedzinach, a przede wszystkim ogromne możliwości języka, pozwalające na stworzenie praktycznie dowolnej aplikacji. Systemy operacyjne, aplikacje użytkowe, gry -- twórcy wszystkich tych programów wykorzystują właśnie język C++.
'C++. Ćwiczenia praktyczne. Wydanie II' to kolejna edycja książki, która zyskała ogromną popularność wśród osób chcących nauczyć się języka C++. Każde z zawartych w niej ćwiczeń zapozna Cię z elementami tego języka programowania. Nauczysz się tworzyć aplikacje konsolowe i opanujesz zasady projektowania obiektowego. W każdym z ćwiczeń znajdziesz również informacje o najczęściej popełnianych błędach i rady, jak ich unikać. Nowe wydanie książki zostało dostosowane do najnowszych wytycznych komitetu standaryzacyjnego języka C++, dzięki czemu możesz mieć pewność, że wykonując ćwiczenia zawarte w książce, poznajesz najnowszą technologię.
Konfiguracja środowiska programistycznego
Standardowe wejście i wyjście
Składnia programu
Sterowanie wykonywaniem programu
Funkcje
Typy danych
Podstawy programowania obiektowego
Po lekturze tej książki zdobędziesz niezbędne podstawy
do dalszej nauki i tworzenia prawdziwych aplikacji.
Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TREŒCI
SPIS TREŒCI
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
KATALOG ONLINE
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
TWÓJ KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWOŒCIACH
O NOWOŒCIACH
ZAMÓW CENNIK
ZAMÓW CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
C++. Æwiczenia
praktyczne. Wydanie II
Autor: Andrzej Stasiewicz
ISBN: 83-246-0619-X
Format: A5, stron: 152
Wkrocz w œwiat programowania w C++
(cid:129) Poznaj œrodowisko programistyczne
(cid:129) Napisz w³asne aplikacje
(cid:129) Opanuj zasady programowania obiektowego
C++ to jeden z najbardziej popularnych jêzyków programowania. Przyczyny jego
popularnoœci to przede wszystkim niewielka liczba s³ów kluczowych, ogromna liczba
bibliotek umo¿liwiaj¹cych zastosowanie C++ w wielu dziedzinach, a przede wszystkim
ogromne mo¿liwoœci jêzyka, pozwalaj¹ce na stworzenie praktycznie dowolnej aplikacji.
Systemy operacyjne, aplikacje u¿ytkowe, gry — twórcy wszystkich tych programów
wykorzystuj¹ w³aœnie jêzyk C++.
„C++. Æwiczenia praktyczne. Wydanie II” to kolejna edycja ksi¹¿ki, która zyska³a
ogromn¹ popularnoœæ wœród osób chc¹cych nauczyæ siê jêzyka C++. Ka¿de
z zawartych w niej æwiczeñ zapozna Ciê z elementami tego jêzyka programowania.
Nauczysz siê tworzyæ aplikacje konsolowe i opanujesz zasady projektowania
obiektowego. W ka¿dym z æwiczeñ znajdziesz równie¿ informacje o najczêœciej
pope³nianych b³êdach i rady, jak ich unikaæ. Nowe wydanie ksi¹¿ki zosta³o
dostosowane do najnowszych wytycznych komitetu standaryzacyjnego jêzyka C++,
dziêki czemu mo¿esz mieæ pewnoœæ, ¿e wykonuj¹c æwiczenia zawarte w ksi¹¿ce,
poznajesz najnowsz¹ technologiê.
(cid:129) Konfiguracja œrodowiska programistycznego
(cid:129) Standardowe wejœcie i wyjœcie
(cid:129) Sk³adnia programu
(cid:129) Sterowanie wykonywaniem programu
(cid:129) Funkcje
(cid:129) Typy danych
(cid:129) Podstawy programowania obiektowego
Po lekturze tej ksi¹¿ki zdobêdziesz niezbêdne podstawy
do dalszej nauki i tworzenia prawdziwych aplikacji
Spis treści
Wprowadzenie
Rozdział 1. Nasz programistyczny warsztat
Rozdział 2. Nasz pierwszy program
Czy to działa?
Sposób na znikanie okienka konsoli
Podsumowanie
Rozdział 3. Pliki źródłowe w języku C++
Pliki jako nośniki programów
Nośniki programów w C++
Dyrektywa #include i scalanie plików cpp i h
Podsumowanie
Rozdział 4. Więcej o strumieniach cin i cout
Standardowe strumienie wejścia i wyjścia
Kaskadowe posługiwanie się strumieniami
Odrobina formatowania
Podsumowanie
Rozdział 5. Przestrzeń na Twoje algorytmy
Początek — najlepsze miejsce na dyrektywy #include
Po nagłówkach — dostęp do biblioteki standardowej
Po bibliotece standardowej — nasze własne deklaracje
Funkcja main() — centrum programu
Po funkcji main() — definicje innych funkcji
Podsumowanie
7
11
15
15
19
21
23
23
24
25
28
29
30
33
35
39
41
41
43
44
46
48
49
6
C++. Ćwiczenia praktyczne
Rozdział 6. Algorytmy
Zwrotnica if() … else …
Zwrotnica switch{...}
Pętla for( ...; ...; ...)
Pętla while(...)
Pętla do {...} while(...)
Instrukcje break i continue
Podsumowanie
Funkcje
Deklarowanie funkcji
Definiowanie funkcji
Argumenty funkcji i referencja
Podsumowanie
Rozdział 7.
Rozdział 8. Dane
Typy danych
Deklarowanie i inicjowanie prostych danych
Deklarowanie i inicjowanie danych tablicowych
Deklarowanie i inicjowanie danych wskaźnikowych
Operacje na danych
Podsumowanie
Rozdział 9. Klasy i obiekty
Klasa jako nowy typ danych
Wewnętrzny ustrój klasy — dane
Wewnętrzny ustrój klasy — algorytmy
Pewien specjalny algorytm, zwany konstruktorem
Podsumowanie
Rozdział 10. Kontenery na dane
Podsumowanie
Zakończenie
51
51
57
63
68
71
73
78
79
79
81
88
93
95
95
98
100
105
110
117
119
119
121
125
129
137
139
149
150
3
Pliki źródłowe
w języku C++
Pliki jako nośniki programów
Treść programu komputerowego zazwyczaj umieszczamy w plikach
dyskowych. Zawartość tych plików będzie odczytywana przez kompi-
lator języka C++ i tłumaczona na ciąg binarnych poleceń dla procesora
komputera.
Programowanie nie zawsze jest równoznaczne z zapisywaniem czegoś
w plikach — np. w przemyśle spotykamy się z sytuacjami wprowa-
dzania programu do komputera za pomocą odpowiedniego ustawiania
mikroprzełączników. Kiedyś powszechne było umieszczanie programu
na odpowiedniej ilości dziurkowanych kart.
Przygotowywanie programu w formie zapisów umieszczanych w pli-
kach jest bardzo wygodne, tanie i uniwersalne. Zawsze można taki
program odtworzyć, poprawić, zlecić jego wykonanie, zarchiwizować
na całe lata.
Zapis programu dla komputera zazwyczaj ma strukturę zwykłego tek-
stu — mamy zatem do czynienia z plikami tekstowymi. Rzeczywiście,
program napisany w zdecydowanej większości znanych języków daje
24
C++. Ćwiczenia praktyczne
się otworzyć i przeczytać za pomocą zwykłego Notatnika. Jest to do-
datkowe uproszczenie sposobu kodowania i przechowywania współ-
czesnych programów.
Skoro pliki źródłowe są zwyczajnymi plikami tekstowymi, do progra-
mowania wystarczy najzwyklejszy edytor tekstowy — np. popularny
Notatnik. Jednak większość współczesnych środowisk programistycz-
nych udostępnia programiście własne, wbudowane edytory. Są to edy-
tory tekstowe, ale „znające” składnię języka i na przykład odpowied-
nio kolorujące niektóre frazy języka. Praca nad programem w takim
edytorze jest prawdziwą przyjemnością! Pamiętajmy jednak, że pora-
dzilibyśmy sobie także, dysponując zwykłym Notatnikiem.
Nośniki programów w C++
W języku C++ przyjęto powszechnie konwencję, że głównym nośni-
kiem algorytmów jest plik o rozszerzeniu cpp, czyli np. plik o nazwie
test.cpp. Spotkamy się także z plikami o rozszerzeniu h, czyli np. o na-
zwie test.h, które są nośnikami nie tyle algorytmów, ile ich zapowiedzi
lub ściślej — deklaracji. Wiadomo, skąd pochodzi nazwa cpp, natomiast
literka h w nazwie pliku z deklaracjami wzięła się od słowa header
— nagłówek.
Swoje programy będziemy spisywać w pliku o nazwie np. test.cpp lub
przyklad.cpp, lub cokolwiek.cpp. Plik ten powinien mieć strukturę
zwykłego pliku tekstowego i mógłby być przygotowany w dowolnym
edytorze, potem odczytany przez kompilator języka C++, skompilo-
wany i uruchomiony.
Ć W I C Z E N I E
3.1
Pliki źródłowe na dysku
Pliki źródłowe naszych programów:
1. Po wykonaniu ćwiczeń z poprzedniego rozdziału na dysku
Twojego komputera powinny pojawić się ich pliki źródłowe.
Odszukaj katalog, w którym środowisko DEV zapisało te pliki
(rysunek 3.1).
2. Spróbuj otworzyć swoje pliki źródłowe za pomocą zwykłego
Notatnika.
Rozdział 3. • Pliki źródłowe w języku C++
25
Rysunek 3.1.
Oto rzut oka na katalog
roboczy — widzimy
tutaj dwa pliki źródłowe
(są to programy napisane
w poprzednim rozdziale)
i utworzone w wyniku
ich kompilacji dwa
finalne pliki exe,
nadające się
do uruchamiania
w systemie Windows
Najprostsze programy w całości spisuje się w pliku cpp. Jeśli zachodzi
konieczność zadeklarowania czegokolwiek, odpowiednie frazy umiesz-
cza się raczej w górnej części tego pliku (gdzieś przed zasadniczą funk-
cją main()) niż w oddzielnym pliku h. Umieszczanie deklaracji w pliku
nagłówkowym jest wyrazem profesjonalizmu programisty, jego wyso-
kiej kultury, dobrego smaku i zamiłowania do porządku. Jednak drob-
niutkie algorytmy z całym spokojem możemy umieszczać wyłącznie
w pliku cpp.
Postarajmy się zapamiętać, że język C++ w najlepszym, profesjonal-
nym wydaniu operuje parą plików cpp i h oraz że para ta nazywa się
modułem.
Dyrektywa #include
i scalanie plików cpp i h
A oto następny szczegół, na który powinniśmy zwrócić uwagę. Skoro
język C++ wprowadza do gry dwa pliki źródłowe, tym samym roz-
dzielając tak zwane deklaracje (zapowiedzi algorytmów) od tak zwa-
nych implementacji (algorytmów), to w strukturze języka powinna
znaleźć się dyrektywa łączenia pary takich plików w całość. Dla po-
równania — w Pascalu, Fortranie czy Basicu problem ten nie wy-
stępuje, bo zarówno deklaracje, jak i implementacje umieszczamy
w jednym i tym samym pliku.
26
C++. Ćwiczenia praktyczne
Zazwyczaj na samej górze pliku cpp — czyli na samym początku spi-
sywanych algorytmów — pojawia się dyrektywa nakazująca kompila-
torowi „spojrzeć” w jakiś plik nagłówkowy. Przypomnijmy sobie któ-
rykolwiek z programów z poprzedniego rozdziału:
#include iostream
using namespace std;
int main()
{
...
Widoczna tutaj w pierwszej linii dyrektywa nakazuje kompilatorowi
przeczytanie pewnego innego pliku, tutaj o nazwie iostream. Co praw-
da plik ten nie ma oczekiwanej nazwy iostream.h, a tylko iostream,
i jest to swego rodzaju naruszenie zasad uświęconych tradycją, ale
dyrektywie wklejania w niczym to nie przeszkadza. Rzeczywiście
— wklejaniu za pomocą dyrektywy #include podlegają wszelkie pli-
ki, nawet te o najdziwniejszych nazwach, czego raczej nie należy
nadużywać.
Wklejać pliki nagłówkowe trzeba praktycznie zawsze. Oddzielną spra-
wą jest orientowanie się, jaki plik akurat należy wkleić. Jeśli potrzebne
jest wyprowadzanie informacji na ekran — chętnie wklejamy plik na-
główkowy iostream. Jeśli potrzebujemy jakiejś funkcji matematycznej,
wkleimy prawdopodobnie plik math.h lub jego nowszą wersję cmath
zawierające zapowiedzi instrumentów matematycznych — stałej pi,
sinusa, pierwiastka czy logarytmu (porównaj rysunek 3.2).
Ć W I C Z E N I E
3.2
Dołączanie plików nagłówkowych
Teraz zrobimy coś złego. Z któregoś z poprzednich programów usuń-
my dyrektywę #include i poddajmy program kompilacji oraz uru-
chomieniu (porównaj rysunek 2.3):
//#include iostream
using namespace std;
int main()
{
cout Twoje imie i nazwisko ;
return 0;
}
Rozdział 3. • Pliki źródłowe w języku C++
27
Rysunek 3.2.
Poważniejsze
programy
intensywnie
wykorzystują
dyrektywę wklejania.
Niech nas nie
zaniepokoją
cudzysłowy zamiast
ostrych nawiasów,
jak w naszych
mikroprogramach
— jest to pozostałość
po dawnych czasach,
gdy maszyny nie
były tak szybkie
jak dzisiaj.
Ostre nawiasy
nakazują rozpoczęcie
wyszukiwania
od katalogów
bibliotecznych
kompilatora.
Kultura nakazuje,
by swoje deklaracje
wklejać w średnikach,
biblioteczne
— w nawiasach
ostrych
Pierwsza linia została poprzedzona podwójnym ukośnikiem, zatem jest
zamieniona na komentarz i nie podlega kompilacji. Czy ten program
się uruchamia? Nie. Nawet się nie kompiluje — kompilacja kończy się
komunikatem „niezadeklarowane cout”, „nie rozumiem cout”, „nie
wiem, co znaczy cout”! Widocznie w pliku iostream znajdował się
opis algorytmu cout.
Częsty błąd: zapomnienie o dyrektywie #include, dołączającej
deklaracje napisów wykorzystywanych w dalszej części programu.
Wklejanie starszej wersji plików nagłówkowych, np. math.h, zamiast
współczesnej cmath.
28
C++. Ćwiczenia praktyczne
Podsumowanie
Nośnikami współczesnych programów komputerowych są zazwyczaj
zwykłe pliki tekstowe.
Języki rezerwują sobie rozszerzenia nazw plików — i tak pliki w języ-
ku C++ mają nazwy *.cpp i *.h, pliki pascalowe nazywają się *.pas,
pliki z Fortranem *.for itd.
Zapisuj swoje algorytmy w swoich plikach i strzeż ich jak oka w głowie!
Staraj się wyrobić w sobie nawyk, by pliki każdego programu umiesz-
czać w oddzielnym katalogu. Jest to ważne, dlatego że współcze-
sne, duże programy zazwyczaj składają się z wielu plików źródło-
wych i trudno jest lokalizować je, gdy mieszają się z plikami innych
programów.
Plik *.cpp jest głównym nośnikiem algorytmów spisanych w języ-
ku C++.
Plik *.h zwyczajowo mieści deklaracje (zapowiedzi) algorytmów w ję-
zyku C++. Plik *.h jest włączany do pliku głównego *.cpp za pomocą
dyrektywy #include nazwa_pliku.h lub #include nazwa_pliku.h .
Niekiedy, szczególnie przy małych programach, pomija się plik *.h
i deklaracje umieszcza bezpośrednio w pliku *.cpp.
Deklaracje algorytmów biblioteki standardowej języka C++ zwycza-
jowo umieszcza się w plikach, w których nazwach pomijamy kropkę
i literę h, np. #include iostream . By jednak zapewnić wsteczną zgod-
ność z wcześniejszymi dialektami języka, ciągle poprawnie skompi-
luje się stara, „klasyczna” dyrektywa wklejania #include iostream.h .
Pobierz darmowy fragment (pdf)