c++.-cwiczenia-praktyczne scan.pdf

(4280 KB) Pobierz
1281068611.002.png
6
C++. wiczenia praktyczne
Ptla while( ...)........................................................................................................... 52
Ptla do {...} while( ...).............................................................................................. 54
Instrukcje break i continue......................................................................................... 55
Podsumowanie........................................................................................................... 59
Rozdział 7. Funkcje...........................................................................................................................................................61
Deklarowanie funkcji ................................................................................................ 61
Definiowanie funkcji................................................................................................. 63
Argumenty funkcji i referencja.................................................................................. 68
Podsumowanie........................................................................................................... 71
Rozdział 8. Dane.................................................................................................................................................................73
Typy danych.............................................................................................................. 73
Deklarowanie i inicjowanie prostych danych............................................................ 75
Deklarowanie i inicjowanie danych tablicowych ...................................................... 77
Deklarowanie i inicjowanie danych wskaAnikowych................................................ 80
Operacje na danych ................................................................................................... 84
Podsumowanie........................................................................................................... 89
Rozdział 9. Klasy i obiekty.............................................................................................................................................91
Klasa jako nowy typ danych...................................................................................... 91
Wewntrzny ustrój klasy — dane.............................................................................. 93
Wewntrzny ustrój klasy — algorytmy..................................................................... 95
Pewien specjalny algorytm, zwany konstruktorem ................................................... 99
Podsumowanie......................................................................................................... 105
Rozdział 10. Kontenery na dane.................................................................................................................................107
Podsumowanie......................................................................................................... 115
Zako(czenie...............................................................................................................................................117
3.
Pliki ródłowe w jzyku C++
Rozdział
Pliki jako noniki programów
Tre programu komputerowego zazwyczaj umieszczamy w plikach dyskowych. Za-
warto tych plików bdzie odczytywana przez kompilator jzyka 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 przemyle spotykamy si z sytuacjami wprowadzania programu do komputera za pomoc#
odpowiedniego ustawiania mikroprzeł#czników. Kiedy powszechne było umieszczanie
programu na odpowiedniej iloci dziurkowanych kart.
Przygotowywanie programu w formie zapisów umieszczanych w plikach jest bardzo wy-
godne, 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 tekstu — mamy zatem
do czynienia z plikami tekstowymi. Rzeczywicie, program napisany w zdecydowanej
wikszoci znanych jzyków daje si otworzy i przeczyta za pomoc# zwykłego Notat-
nika. Jest to dodatkowe uproszczenie sposobu kodowania i przechowywania współczesnych
programów.
Skoro pliki /ródłowe s# zwyczajnymi plikami tekstowymi, do programowania wystarczy
najzwyklejszy edytor tekstowy — np. popularny Notatnik. Jednak wikszo współczesnych
rodowisk programistycznych udostpnia programicie własne, wbudowane edytory. S#
to edytory tekstowe, ale „znaj#ce” składni jzyka i na przykład odpowiednio koloruj#ce
niektóre frazy jzyka. Praca nad programem w takim edytorze jest prawdziw# przyjemno-
ci#! Pamitajmy jednak, *e poradzilibymy sobie tak*e dysponuj#c zwykłym Notatnikiem.
22
C++. wiczenia praktyczne
Noniki programów w C++
W jzyku C++ przyjto powszechnie konwencj, *e głównym nonikiem 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 nazwie test.h , które s# nonikami nie tyle algorytmów, ile
ich zapowiedzi lub cilej — 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 bdziemy 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 jzyka C++,
skompilowany i uruchomiony.
wiczenie 3.1.
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).
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 , nadajce si"
do uruchamiania
w systemie Windows
2. Spróbuj otworzy swoje pliki /ródłowe za pomoc# zwykłego Notatnika.
Najprostsze programy w całoci spisuje si w pliku cpp . Jeli zachodzi konieczno za-
deklarowania czegokolwiek, odpowiednie frazy umieszcza si raczej w górnej czci tego
pliku (gdzie przed zasadnicz# funkcj# ), ni* w oddzielnym pliku h . Umieszcza-
nie deklaracji w pliku nagłówkowym jest wyrazem profesjonalizmu programisty, jego
wysokiej kultury, dobrego smaku i zamiłowania do porz#dku. Jednak drobniutkie algo-
rytmy z całym spokojem mo*emy umieszcza wył#cznie w pliku cpp .
Postarajmy si zapamita, *e jzyk C++ w najlepszym, profesjonalnym wydaniu operuje
par# plików cpp i h oraz *e para ta nazywa si modułem .
1281068611.003.png 1281068611.004.png 1281068611.005.png
 
Rozdział 3. Pliki ródłowe w j zyku C++
23
Dyrektywa #include
i scalanie plików cpp i h
A oto nastpny szczegół, na który powinnimy zwróci uwag. Skoro jzyk C++ wpro-
wadza do gry dwa pliki /ródłowe, tym samym rozdzielaj#c tak zwane deklaracje (zapo-
wiedzi algorytmów) od tak zwanych implementacji (algorytmów), to w strukturze jzyka
powinna znale/ si dyrektywa ł#czenia pary takich plików w cało. Dla porównania
— w Pascalu, Fortranie czy Basicu problem ten nie wystpuje, bo zarówno deklaracje,
jak i implementacje umieszczamy w jednym i tym samym pliku.
Zazwyczaj na samej górze pliku cpp — czyli na samym pocz#tku spisywanych algoryt-
mów — pojawia si dyrektywa, nakazuj#ca kompilatorowi spojrzenie w jaki plik na-
główkowy. Przypomnijmy sobie którykolwiek z programów z poprzedniego rozdziału:
Widoczna tutaj w pierwszej linii dyrektywa nakazuje kompilatorowi przeczytanie pew-
nego innego pliku, tutaj o nazwie iostream . Co prawda plik ten nie ma oczekiwanej na-
zwy iostream.h , a tylko iostream , i jest to swego rodzaju naruszenie zasad uwiconych
tradycj#, ale dyrektywie wklejania w niczym to nie przeszkadza. Rzeczywicie — wkleja-
niu za pomoc# dyrektywy podlegaj# wszelkie pliki, nawet te o najdziwniej-
szych nazwach, czego raczej nie nale*y nadu*ywa.
Wkleja pliki nagłówkowe trzeba praktycznie zawsze. Oddzieln# spraw# jest orientowanie
si, jaki plik akurat nale*y wklei. Jeli potrzebne jest wyprowadzanie informacji na
ekran — chtnie wklejamy plik nagłówkowy iostream . Jeli potrzebujemy jakiej funkcji
matematycznej, wkleimy prawdopodobnie plik math.h zawieraj#cy zapowiedzi instrumentów
matematycznych — stałej pi , sinusa, pierwiastka czy logarytmu (porównaj rysunek 3.2).
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)
(rednikami, biblioteczne
— nawiasami ostrymi
1281068611.001.png
Zgłoś jeśli naruszono regulamin