You are on page 1of 9

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE

C++. wiczenia
praktyczne. Wydanie II
Autor: Andrzej Stasiewicz
ISBN: 83-246-0619-X
Format: A5, stron: 152

ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Wkrocz w wiat programowania w C++


Poznaj rodowisko programistyczne
Napisz wasne aplikacje
Opanuj zasady programowania obiektowego
C++ to jeden z najbardziej popularnych jzykw programowania. Przyczyny jego
popularnoci to przede wszystkim niewielka liczba sw kluczowych, ogromna liczba
bibliotek umoliwiajcych zastosowanie C++ w wielu dziedzinach, a przede wszystkim
ogromne moliwoci jzyka, pozwalajce na stworzenie praktycznie dowolnej aplikacji.
Systemy operacyjne, aplikacje uytkowe, gry twrcy wszystkich tych programw
wykorzystuj wanie jzyk C++.
C++. wiczenia praktyczne. Wydanie II to kolejna edycja ksiki, ktra zyskaa
ogromn popularno wrd osb chccych nauczy si jzyka C++. Kade
z zawartych w niej wicze zapozna Ci z elementami tego jzyka programowania.
Nauczysz si tworzy aplikacje konsolowe i opanujesz zasady projektowania
obiektowego. W kadym z wicze znajdziesz rwnie informacje o najczciej
popenianych bdach i rady, jak ich unika. Nowe wydanie ksiki zostao
dostosowane do najnowszych wytycznych komitetu standaryzacyjnego jzyka C++,
dziki czemu moesz mie pewno, e wykonujc wiczenia zawarte w ksice,
poznajesz najnowsz technologi.
Konfiguracja rodowiska programistycznego
Standardowe wejcie i wyjcie
Skadnia programu
Sterowanie wykonywaniem programu
Funkcje
Typy danych
Podstawy programowania obiektowego
Po lekturze tej ksiki zdobdziesz niezbdne podstawy
do dalszej nauki i tworzenia prawdziwych aplikacji

Spis treci
Wprowadzenie

Rozdzia 1. Nasz programistyczny warsztat

11

Rozdzia 2. Nasz pierwszy program

15

Czy to dziaa?
Sposb na znikanie okienka konsoli
Podsumowanie

Rozdzia 3. Pliki rdowe w jzyku C++


Pliki jako noniki programw
Noniki programw w C++
Dyrektywa #include i scalanie plikw cpp i h
Podsumowanie

Rozdzia 4. Wicej o strumieniach cin i cout


Standardowe strumienie wejcia i wyjcia
Kaskadowe posugiwanie si strumieniami
Odrobina formatowania
Podsumowanie

Rozdzia 5. Przestrze na Twoje algorytmy


Pocztek najlepsze miejsce na dyrektywy #include
Po nagwkach dostp do biblioteki standardowej
Po bibliotece standardowej nasze wasne deklaracje
Funkcja main() centrum programu
Po funkcji main() definicje innych funkcji
Podsumowanie

15
19
21

23
23
24
25
28

29
30
33
35
39

41
41
43
44
46
48
49

C++. wiczenia praktyczne

Rozdzia 6. Algorytmy
Zwrotnica if() else
Zwrotnica switch{...}
Ptla for( ...; ...; ...)
Ptla while(...)
Ptla do {...} while(...)
Instrukcje break i continue
Podsumowanie

Rozdzia 7. Funkcje
Deklarowanie funkcji
Definiowanie funkcji
Argumenty funkcji i referencja
Podsumowanie

Rozdzia 8. Dane
Typy danych
Deklarowanie i inicjowanie prostych danych
Deklarowanie i inicjowanie danych tablicowych
Deklarowanie i inicjowanie danych wskanikowych
Operacje na danych
Podsumowanie

Rozdzia 9. Klasy i obiekty


Klasa jako nowy typ danych
Wewntrzny ustrj klasy dane
Wewntrzny ustrj klasy algorytmy
Pewien specjalny algorytm, zwany konstruktorem
Podsumowanie

Rozdzia 10. Kontenery na dane

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

Podsumowanie

149

Zakoczenie

150

3
Pliki rdowe
w jzyku C++
Pliki jako noniki programw
Tre programu komputerowego zazwyczaj umieszczamy w plikach
dyskowych. Zawarto tych plikw bdzie odczytywana przez kompilator jzyka C++ i tumaczona na cig binarnych polece dla procesora
komputera.
Programowanie nie zawsze jest rwnoznaczne z zapisywaniem czego
w plikach np. w przemyle spotykamy si z sytuacjami wprowadzania programu do komputera za pomoc odpowiedniego ustawiania
mikroprzecznikw. Kiedy powszechne byo umieszczanie programu
na odpowiedniej iloci dziurkowanych kart.
Przygotowywanie programu w formie zapisw umieszczanych w plikach jest bardzo wygodne, tanie i uniwersalne. Zawsze mona taki
program odtworzy, poprawi, zleci jego wykonanie, zarchiwizowa
na cae lata.
Zapis programu dla komputera zazwyczaj ma struktur zwykego tekstu mamy zatem do czynienia z plikami tekstowymi. Rzeczywicie,
program napisany w zdecydowanej wikszoci znanych jzykw daje

24

C++. wiczenia praktyczne

si otworzy i przeczyta za pomoc zwykego Notatnika. Jest to dodatkowe uproszczenie sposobu kodowania i przechowywania wspczesnych programw.
Skoro pliki rdowe s zwyczajnymi plikami tekstowymi, do programowania wystarczy najzwyklejszy edytor tekstowy np. popularny
Notatnik. Jednak wikszo wspczesnych rodowisk programistycznych udostpnia programicie wasne, wbudowane edytory. S to edytory tekstowe, ale znajce skadni jzyka i na przykad odpowiednio kolorujce niektre frazy jzyka. Praca nad programem w takim
edytorze jest prawdziw przyjemnoci! Pamitajmy jednak, e poradzilibymy sobie take, dysponujc zwykym Notatnikiem.

Noniki programw w C++


W jzyku C++ przyjto powszechnie konwencj, e gwnym nonikiem algorytmw jest plik o rozszerzeniu cpp, czyli np. plik o nazwie
test.cpp. Spotkamy si take z plikami o rozszerzeniu h, czyli np. o nazwie test.h, ktre s nonikami nie tyle algorytmw, ile ich zapowiedzi
lub cilej deklaracji. Wiadomo, skd pochodzi nazwa cpp, natomiast
literka h w nazwie pliku z deklaracjami wzia si od sowa header
nagwek.
Swoje programy bdziemy spisywa w pliku o nazwie np. test.cpp lub
przyklad.cpp, lub cokolwiek.cpp. Plik ten powinien mie struktur
zwykego pliku tekstowego i mgby by przygotowany w dowolnym
edytorze, potem odczytany przez kompilator jzyka C++, skompilowany i uruchomiony.
W I C Z E N I E

3.1

Pliki rdowe na dysku

Pliki rdowe naszych programw:


1. Po wykonaniu wicze z poprzedniego rozdziau na dysku
Twojego komputera powinny pojawi si ich pliki rdowe.
Odszukaj katalog, w ktrym rodowisko DEV zapisao te pliki
(rysunek 3.1).
2. Sprbuj otworzy swoje pliki rdowe za pomoc zwykego
Notatnika.

Rozdzia 3. Pliki rdowe w jzyku C++

25

Rysunek 3.1.
Oto rzut oka na katalog
roboczy widzimy
tutaj dwa pliki rdowe
(s to programy napisane
w poprzednim rozdziale)
i utworzone w wyniku
ich kompilacji dwa
finalne pliki exe,
nadajce si
do uruchamiania
w systemie Windows

Najprostsze programy w caoci spisuje si w pliku cpp. Jeli zachodzi


konieczno zadeklarowania czegokolwiek, odpowiednie frazy umieszcza si raczej w grnej czci tego pliku (gdzie przed zasadnicz funkcj main()) ni w oddzielnym pliku h. Umieszczanie deklaracji w pliku
nagwkowym jest wyrazem profesjonalizmu programisty, jego wysokiej kultury, dobrego smaku i zamiowania do porzdku. Jednak drobniutkie algorytmy z caym spokojem moemy umieszcza wycznie
w pliku cpp.
Postarajmy si zapamita, e jzyk C++ w najlepszym, profesjonalnym wydaniu operuje par plikw cpp i h oraz e para ta nazywa si
moduem.

Dyrektywa #include
i scalanie plikw cpp i h
A oto nastpny szczeg, na ktry powinnimy zwrci uwag. Skoro
jzyk C++ wprowadza do gry dwa pliki rdowe, tym samym rozdzielajc tak zwane deklaracje (zapowiedzi algorytmw) od tak zwanych implementacji (algorytmw), to w strukturze jzyka powinna
znale si dyrektywa czenia pary takich plikw w cao. Dla porwnania w Pascalu, Fortranie czy Basicu problem ten nie wystpuje, bo zarwno deklaracje, jak i implementacje umieszczamy
w jednym i tym samym pliku.

26

C++. wiczenia praktyczne

Zazwyczaj na samej grze pliku cpp czyli na samym pocztku spisywanych algorytmw pojawia si dyrektywa nakazujca kompilatorowi spojrze w jaki plik nagwkowy. Przypomnijmy sobie ktrykolwiek z programw z poprzedniego rozdziau:
#include <iostream>
using namespace std;
int main()
{
...

Widoczna tutaj w pierwszej linii dyrektywa nakazuje kompilatorowi


przeczytanie pewnego innego pliku, tutaj o nazwie iostream. Co prawda plik ten nie ma oczekiwanej nazwy iostream.h, a tylko iostream,
i jest to swego rodzaju naruszenie zasad uwiconych tradycj, ale
dyrektywie wklejania w niczym to nie przeszkadza. Rzeczywicie
wklejaniu za pomoc dyrektywy #include podlegaj wszelkie pliki, nawet te o najdziwniejszych nazwach, czego raczej nie naley
naduywa.
Wkleja pliki nagwkowe trzeba praktycznie zawsze. Oddzieln spraw jest orientowanie si, jaki plik akurat naley wklei. Jeli potrzebne
jest wyprowadzanie informacji na ekran chtnie wklejamy plik nagwkowy iostream. Jeli potrzebujemy jakiej funkcji matematycznej,
wkleimy prawdopodobnie plik math.h lub jego nowsz wersj cmath
zawierajce zapowiedzi instrumentw matematycznych staej pi,
sinusa, pierwiastka czy logarytmu (porwnaj rysunek 3.2).
W I C Z E N I E

3.2

Doczanie plikw nagwkowych

Teraz zrobimy co zego. Z ktrego z poprzednich programw usumy dyrektyw #include i poddajmy program kompilacji oraz uruchomieniu (porwnaj rysunek 2.3):
//#include <iostream>
using namespace std;
int main()
{
cout << "Twoje imie i nazwisko";
return 0;
}

Rozdzia 3. Pliki rdowe w jzyku C++

27

Rysunek 3.2.
Powaniejsze
programy
intensywnie
wykorzystuj
dyrektyw wklejania.
Niech nas nie
zaniepokoj
cudzysowy zamiast
ostrych nawiasw,
jak w naszych
mikroprogramach
jest to pozostao
po dawnych czasach,
gdy maszyny nie
byy tak szybkie
jak dzisiaj.
Ostre nawiasy
nakazuj rozpoczcie
wyszukiwania
od katalogw
bibliotecznych
kompilatora.
Kultura nakazuje,
by swoje deklaracje
wkleja w rednikach,
biblioteczne
w nawiasach
ostrych

Pierwsza linia zostaa poprzedzona podwjnym ukonikiem, zatem jest


zamieniona na komentarz i nie podlega kompilacji. Czy ten program
si uruchamia? Nie. Nawet si nie kompiluje kompilacja koczy si
komunikatem niezadeklarowane cout, nie rozumiem cout, nie
wiem, co znaczy cout! Widocznie w pliku iostream znajdowa si
opis algorytmu cout.
Czsty bd: zapomnienie o dyrektywie #include, doczajcej
deklaracje napisw wykorzystywanych w dalszej czci programu.
Wklejanie starszej wersji plikw nagwkowych, np. math.h, zamiast
wspczesnej cmath.

28

C++. wiczenia praktyczne

Podsumowanie
Nonikami wspczesnych programw komputerowych s zazwyczaj
zwyke pliki tekstowe.
Jzyki rezerwuj sobie rozszerzenia nazw plikw i tak pliki w jzyku 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 gowie!
Staraj si wyrobi w sobie nawyk, by pliki kadego programu umieszcza w oddzielnym katalogu. Jest to wane, dlatego e wspczesne, due programy zazwyczaj skadaj si z wielu plikw rdowych i trudno jest lokalizowa je, gdy mieszaj si z plikami innych
programw.
Plik *.cpp jest gwnym nonikiem algorytmw spisanych w jzyku C++.
Plik *.h zwyczajowo mieci deklaracje (zapowiedzi) algorytmw w jzyku C++. Plik *.h jest wczany do pliku gwnego *.cpp za pomoc
dyrektywy #include "nazwa_pliku.h" lub #include <nazwa_pliku.h>.
Niekiedy, szczeglnie przy maych programach, pomija si plik *.h
i deklaracje umieszcza bezporednio w pliku *.cpp.
Deklaracje algorytmw biblioteki standardowej jzyka C++ zwyczajowo umieszcza si w plikach, w ktrych nazwach pomijamy kropk
i liter h, np. #include <iostream>. By jednak zapewni wsteczn zgodno z wczeniejszymi dialektami jzyka, cigle poprawnie skompiluje si stara, klasyczna dyrektywa wklejania #include <iostream.h>.

You might also like