ABC programowania w C.pdf

(344 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREŒCI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ABC programowania
w C++
Autor: Jan Rusek
ISBN: 83-7197-558-9
Format: B5, stron: oko³o 200
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOŒCIACH
ZAMÓW CENNIK
Czêœæ pierwsza ksi¹¿ki jest rodzajem samouczka programowania. Prezentuje elementy
jêzyka C oraz oparte na klasach, dziedziczeniu i polimorfizmie rozszerzenia obiektowe
w³aœciwe dla C++. Takie konstrukcje jêzyka jak pêtle, ³añcuchy znakowe, tablice,
funkcje czy konstruktory klas przedstawiono na mo¿liwie krótkich przyk³adach.
Dla ka¿dego z nich podano kod Ÿród³owy, opis dzia³ania, wydruk i zrzut ekranu
z wynikami. Szczególn¹ uwagê zwrócono na wyrobienie u Czytelnika sprawnoœci
w pos³ugiwaniu siê wskaŸnikami do ³añcuchów, tablic i funkcji. Omówiono
przydzielanie i zwalnianie pamiêci na stercie przy u¿yciu operatorów new i delete.
Uwzglêdniono tworzenie przemieszczalnych okienek w trybie tekstowym oraz grafiki
punktowej przy wykorzystaniu funkcji oferowanych przez interfejs BGI.
W czêœci drugiej podano kody Ÿród³owe i opisy bardziej zaawansowanych programów.
Szeœæ z nich pracuje w trybie tekstowym a cztery w trybie graficznym. Przyk³adowo,
program Piano symuluje organy a program Mousebox wyœwietla sterowane mysz¹
przemieszczalne listy wyboru. W programie City na uwagê zas³uguje funkcja takeStr
umo¿liwiaj¹ca wpis, przewijanie i modyfikacje ³añcucha znakowego d³u¿szego ni¿
widoczne na ekranie okienko wpisowe. Program Zegar prezentuje dwa przesuwalne
strza³kami zegary, z mo¿liwoœci¹ w³¹czania i wy³¹czania melodii. Program Drawthru
pokazuje u¿ycie myszy do narysowania kilku krzywych wykresu, a nastêpnie do
wskazania mysz¹ jednej z nich. W sumie, lektura obydwu czêœci ksi¹¿ki winna
przybli¿yæ Czytelnikowi zasady tworzenia programów tak tekstowych jak i graficznych.
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Część I
Rozdział 1.
Rozdział 2.
Rozdział 3.
Rozdział 4.
Wprowadzenie do języka C++..........................................7
Wprowadzenie..................................................................................9
Kompilator Borland C++ .................................................................11
Kompilator Microsoft Visual C++ ....................................................15
Podstawowe elementy programu ....................................................19
Funkcja główna main........................................................................................ 19
Funkcje i zbiory nagłówkowe........................................................................... 23
Wskaźnik do łańcucha znaków......................................................................... 25
Strumień wyjścia cout....................................................................................... 28
Wydruk na ekran............................................................................31
Funkcja clrscr w środowisku Borland C++ ...................................................... 31
Zmienne predefiniowane .................................................................................. 33
Kolor wydruku .................................................................................................. 36
Formatowanie wydruku .................................................................................... 39
Formatowany wpis do łańcucha ....................................................................... 42
Odczyt z pliku ................................................................................................... 45
Funkcje .........................................................................................49
Przekaz parametrów przez referencję ............................................................... 49
Odczyt z klawiatury .......................................................................................... 51
Zwrot wskaźnika przez funkcję ........................................................................ 55
Wskaźnik do funkcji ......................................................................................... 57
Tablica wskaźników do funkcji ........................................................................ 59
Tablice wielowymiarowe typów int ................................................................. 61
Tablice wielowymiarowe typów char............................................................... 63
Wskaźnik do wskaźnika.................................................................................... 65
Wskaźnik do funkcji na liście argumentów...................................................... 68
Argument domniemany .................................................................................... 70
Instrukcja continue............................................................................................ 72
Przeładowanie funkcji....................................................................................... 73
Rozdział 5.
Rozdział 6.
C:\Andrzej\PDF\ABC programowania w C++\!spis tresci.doc
3
4
ABC programowania w C++
Rozdział 7.
Klasy i struktury.............................................................................77
Konstruktor ....................................................................................................... 77
Konstruktor domniemany ................................................................................. 80
Operatory new i delete...................................................................................... 83
Konstruktor w roli konwertera.......................................................................... 85
Kopiowanie głębokie ........................................................................................ 89
Przeładowanie operatorów................................................................................ 92
Lista inicjalizatorów ......................................................................................... 96
Tablice obiektów definiowanych...................................................................... 98
Dziedziczenie.................................................................................................. 100
Dziedziczenie dwóch klas............................................................................... 102
Funkcja wirtualna ........................................................................................... 103
Typ enum i instrukcja typedef ........................................................................ 106
Wskaźnik this.................................................................................................. 109
Grafika tekstowa .........................................................................113
Wskazanie pola wyboru kursorem.................................................................. 113
Wskazanie pola wyboru tabulatorem.............................................................. 116
Wskazanie pola wyboru myszą....................................................................... 121
Pozycjonowanie pola prostokątnego za pomocą myszy................................. 125
Grafika punktowa.........................................................................131
Okno lokalne................................................................................................... 131
Pozycjonowanie obiektu za pomocą myszy ................................................... 137
Kopiowanie wycinków obrazu do pamięci..................................................... 143
Rozdział 8.
Rozdział 9.
Rozdział 10. Argumenty wywołania programu i zmienne środowiskowe ..............151
Rozdział 11. Kompilacja programu złożonego z kilku plików ..............................155
Część II
Przykłady ...................................................................159
Rozdział 12. Program FACT.cpp obliczający silnię N = n!...................................161
Rozdział 13. Program COSI.cpp obliczający wartość cos(x)...............................165
Rozdział 14. Program CITY.cpp do wpisu par miast i ich odległości ...................173
Rozdział 15. Program PIANO.cpp do symulacji organów ....................................187
Rozdział 16. Program ZEGAR.cpp do symulacji 2 zegarów ................................195
Rozdział 17. Program DYNATREE.cpp do tworzenia
binarnego drzewa dynamicznego ...................................................209
Rozdział 18. Program REGRE.cpp kreślący prostą regresji
dla punktów odczytanych z pliku zewnętrznego .............................217
Rozdział 19. Program MOUSEBOX.cpp do przesuwania myszą okien wyboru ......229
Rozdział 20. Program DRAWTHRU.cpp do rysowania myszą kilku linii
oraz do wybrania i podświetlenia jednej z nich...............................243
4
C:\Andrzej\PDF\ABC programowania w C++\!spis tresci.doc
Spis treści
5
Dodatki .......................................................................................257
Dodatek A
Dodatek B
Kody ASCII ..................................................................................259
Kody klawiatury rozszerzonej ........................................................263
C:\Andrzej\PDF\ABC programowania w C++\!spis tresci.doc
5
Rozdział 9.
Okno lokalne
Współrzędne punktu na ekranie mo na opisywać w układzie bezwzględnym dotyczącym
całego ekranu lub w podoknie (viewport) posiadającym lokalny układ współrzędnych,
tak jak ma to miejsce w programie
p9_1.cpp.
W programie tym na początku funkcji
OCKP
uruchamiamy tryb graficzny pracy monitora. Mo na to uczynić na dwa sposoby:
przez dołączenie (wlinkowanie) sterowników grafiki, tak aby sterowniki te stanowiły
integralną część naszego programu, lub przez pozostawienie tych sterowników poza
naszym programem i korzystanie z nich, w sposób automatyczny, w czasie wykonywa-
nia programu. W tym drugim przypadku, u ywane w programie sterowniki grafiki muszą
być obecne na platformie, na której wykonujemy nasz program. Sterowników tych do-
starcza środowisko
Borland
w pliku
Bgi.
Uruchomienie trybu graficznego dla tego
przypadku realizuje (w naszym programie) funkcja
UVCTV)
. Druga mo liwość (z „wlin-
kowaniem”, czyli trwałym dołączeniem sterowników grafiki) realizowana jest (w na-
szym programie) przez funkcję
)9NKPMQYCPC
, którą obecnie unieruchamiamy poprzez
objęcie jej symbolami
. Ten sposób odwoływania się do sterowników grafiki
pokazany zostanie w drugiej części tego podrozdziału.
W funkcji
OCKP
utworzymy dwa prostokątne podokna poprzez dwukrotne wywołanie
konstruktora klasy
1MPQ
. Na liście argumentów tego konstruktora przekazujemy mu
parametry
N
,
V
,
T
,
D
, czyli współrzędne wierzchołków: lewego górnego i prawego dolne-
go kreowanego okna. W obu wywołaniach współrzędne te są ró ne, tak aby uzyskać
wzajemne przesunięcie podokien, jak jest to pokazane na rysunku 9.1. Współrzędne
wierzchołków podajemy jako liczby względne odniesione do maksymalnych wymia-
rów, odpowiednio — w kierunku poziomym i pionowym. Te maksymalne wymiary
uzyskujemy z funkcji
IGVOCZZ
oraz
IGVOCZ[
. Klasa
1MPQ
posiada funkcję własną
82QTV
,
w której za pomocą funkcji bibliotecznej
UGVXKGYRQTV
, ustalamy lokalne układy odnie-
sienia dla obiektów klasy
1MPQ
: pierwszego, noszącego nazwę
#
i drugiego, wskazy-
wanego przez wskaźnik
R$
. Klasa
1MPQ
posiada dwie dalsze funkcje własne:
'NKRU
(do
kreślenia elipsy) oraz
.KPKC
(do wykreślenia prostej). Na rzecz obiektu
#
wywołamy
funkcję
'NKRU
, co spowoduje wykreślenie w pierwszym podoknie (viewport) elipsy
C:\Andrzej\PDF\ABC programowania w C++\r09.doc
131
Zgłoś jeśli naruszono regulamin