Programowanie w C++.pdf

(1248 KB) Pobierz
Programowanie w C++ Borland Builder
Programowanie
w C i C++
BORLAND C++
- 1-
Spis Treści
Lekcja 1. Co o C i C++ każdy wiedzieć powinien.
3
Lekcja 2. Jak korzystać z kompilatora Borland C++?
8
Lekcja 3. Główne menu i inne elementy IDE.
11
Lekcja 5. Działania przy pomocy myszki i błędy w programie.
24
Lekcja 6. Następny program - komputerowa arytmetyka.
29
Lekcja 7. Z czego składa się program.
33
Lekcja 8. Jakich słów kluczowych używa C++.
42
Lekcja 9. O sposobach odwoływania się do danych.
51
Lekcja 10. Jakie operatory stosuje C++.
59
Lekcja 11. Jak deklarować zmienne. Co to jest wskaźnik.
65
Lekcja 12. Wskaźniki i tablice w C i C++.
74
Lekcja 13. Jak tworzyć w programie pętle i rozgałęzienia.
82
Lekcja 14. Jak tworzyć i stosować struktury.
90
Lekcja 15. Jak posługiwać się funkcjami.
97
Lekcja 16. Asembler tasm i basm.
108
Lekcja 17. Trochę szczególów technicznych.
115
Lekcja 18. O łańcuchach tekstowych
123
Lekcja 19. Kilka innych przydatnych funkcji.
131
Lekcja 20. Jeśli program powinien uruchomić inny program...
135
Lekcja 21. Kilka procesów jednocześnie.
141
Lekcja 22. Na zdrowy chłopski rozum programisty.
148
Lekcja 23. Co nowego w C++?
153
Lekcja 24. Skąd wzięły się klasy i obiekty w c++.
164
Lekcja 25. Przykład obiektu.
171
Lekcja 26. Co to jest konstruktor.
176
Lekcja 27. O dziedziczeniu.
185
Lekcja 28. Dziedziczenie złożone.
188
Lekcja 29. Funkcje i overloading.
193
Lekcja 30. Wymiana danych między obiektami.
197
Lekcja 31. Przekazanie obiektów jako argumentów do funkcji.
205
Lekcja 32. Wskaźniki do obiektów.
210
Lekcja 33. Overloading operatorów.
212
Lekcja 34. O zastosowaniu dziedziczenia.
222
Lekcja 35. Funkcje wirtualne i klasy abstrakcyjne.
227
Lekcja 36. Kaźdy dysk jest za mały, a kaźdy procesor zbyt wolny.
232
Lekcja 37. O C++, Windows i małym Chińczyku.
236
Lekcja 38. Korzystamy ze standardowych zasobów Windows.
242
Lekcja 39. Struktura programu proceduralno - zdarzeniowego
248
Lekcja 40. Jak tworzy się aplikację dla Windows?
254
Lekcja 41. Kompilatory "specjalnie dla Windows".
259
Lekcja 42. Elementy sterujące i zarządzanie programem.
265
Lekcja 43. O okienkach dialogowych.
272
Lekcja 44. Dołączanie zasobów - menu i okienka dialogowe.
275
Lekcja 45. O programach obiektowo - zdarzeniowych.
280
Lekcja 46. Aplikacja obiektowa - rysowanie w oknie.
290
Lekcja 47. O pakietach Borland C++ 4/4.5.
294
Plik zostal sciagniety ze strony BINBOY'a
http://www.binboy.w.pl
mail: karol@binboy.w
http://binboy.koti.com.pl
binboy@binboy.koti.com
- 2-
Lekcja 4. Jeszcze o IDE C++ .
18
Lekcja 1. Co o C i C++ każdy wiedzieć powinien.
________________________________________________________________
W trakcie tej lekcji dowiesz się, dlaczego pora na C++.
________________________________________________________________
Język C++ jest uniwersalnym, nowoczesnym językiem programowania.
Stosowane przez USA i inne kraje wobec Polski wieloletnie
embargo COCOM'u (przeszkody w dostępie do nowoczesnej
technologii) sprawiły m. in., że popularność OS2, UNIXa i C/C++
jest w Polsce do dziś nieproporcjonalnie mała, a Basica, Pascala
i DOSa nieproporcjonalnie duża. W USA C++ już od kilku lat
stanowi podstawowe narzędzie programistów.
Już słyszę oburzenie (A co mnie obchodzi historia
"komputerologii" i koligacyjki!). Otóż obchodzi, bo wynikają z
niej pewne "grzechy pierworodne" języka C/C++, a dla Ciebie,
szanowny Czytelniku - pewne wnioski praktyczne.
Grzech Pierwszy:
* Kompilator języka C/C++ jest standardowym wyposażeniem systemu
operacyjnego UNIX.
Skutki praktyczne:
Każdy PC jest w momencie zakupu (co często wchodzi w cenę zakupu
komputera) wyposażany w system operacyjny DOS - np. DR DOS, PC
DOS, PTS DOS lub MS DOS. Standardowo w zestaw systemu MS DOS
wchodzi interpreter języka BASIC (w MS-DOS - QBasic.EXE). Możesz
więc być pewien, że jeśli jest DOS, to musi być i BASIC.
Podobnie rzecz ma się z C/C++. Jeśli jest na komputerze system
UNIX (za wyjątkiem najuboższych wersji systemu XENIX), masz tam
do dyspozycji kompilator C/C++, za to BASICA ani Pascala prawie
na pewno tam nie ma. Podobnie coraz popularniejszy OS/2
wyposażony jest w kompilator (całkiem niezły) C++ i dodatkowo
jeszcze w pewne gotowe-firmowe biblioteki.
Grzech drugi:
* Język C/C++ powstał jeszcze zanim wymyślono PC, DOS, GUI
(Graficzny Interfejs Użytkownika), Windows i inne tym podobne.
Dwa najważniejsze skutki praktyczne:
I. W założeniach twórców język C++ miał być szybki (i jest) i
zajmować mało miejsca w pamięci (bo ówczesne komputery miały jej
bardzo mało!). Zawiera więc różne, niezrozumiałe dla nas z
dzisiejszego punktu widzenia skróty. Np. to co w Pascalu czy
Basicu wygląda zrozumiale:
i:=i+1; (Pascal)
10 I=I+1 lub inaczej NEXT I (Basic)
- 3-
to w języku C++ wygląda dziwacznie:
i++; albo jeszcze dziwniej ++i;
Tym niemniej zwróć uwagę, że w Pascalu zajmuje to 7 znaków, w
Basicu - 8 znaków (spacja to też znak!), a w C++ tylko 4.
Inny przykład:
X=X+5 (Basic, 5 znaków),
X:=X+5 (Pascal, 6 znaków),
X+=5 (C++, tylko 4 znaki).
Z takiej właśnie filozofii wynika i sama nazwa - najkrótsza z
możliwych. Jeśli bowiem i++ miało znaczyć mniej więcej tyle samo
co NEXT I (następne I) to C++ znaczy mniej więcej tyle samo co
"NASTĘPNA WERSJA C".
II. Nie ma nic za darmo. W języku C/C++, podobnie jak w
samochodzie wyścigowym formuły I, za szybkość i skuteczność
płaci się komfortem. Konstrukcje stosowane w języku C/C++ są
maksymalnie dostosowane do "wygody" komputera. Pozwala to na
uzyskiwanie ˙niezwykle szybkich "maszynowo-zorientowanych" kodów
wykonywalnych programu, ale od programisty wymaga
przyzwyczajenia się do "komputerowo-zorientowanego sposobu
myślenia".
Grzech Trzeci (i chyba najcięższy):
* Jest najlepszy. Ostrożniej - jest najchętniej stosowanym
narzędziem profesjonalnych programistów.
Ma oczywiście konkurentów. Visual Basic (do małych aplikacji
okienkowych), Turbo Pascal (do nauki podstaw - elementów
programowania sekwencyjnego, proceduralno-strukturalnego),
QuickBasic (programowanie strukturalne w środowisku DOS),
Fortran 90, ADA, SmallTalk, itp, itd.
Sam wielki Peter Norton przyznaje, że początkowe wersje swojego
słynnego pakietu Norton Utilities pisał w Pascalu, ale dopiero
przesiadka na C/C++ pozwoliła mu doprowadzić NU do dzisiejszej
doskonałości. Jakie są programy Petera Nortona - każdy widzi...
Zapewne masz na swoim komputerze kilka różnych aplikacji (np.
TAG, QR-Tekst, Word, itp.) - jeśli zajrzysz do nich do środka
(View), możesz sam przekonać się, że większość z nich została
napisana właśnie w C++ (Kompilatory C++ pozostawiają w kodzie
wynikowym .EXE swoją wizytówkę zwykle czytelną przy pomocy
przeglądarki; przekonasz się o tym także zaglądając przez [View]
do własnych programów); stosowane narzędzia możesz rozpoznać
także po obecności dynamicznych bibliotek - np. BWCC.DLL -
biblioteka elementów sterujących - klawiszy, itp - Borland
Custom Controls for Windows).
Skutki praktyczne:
- 4-
Nauczywszy się języka C/C++ możesz nie bać się ani systemu
UNIX/XENIX a ich środowiska okienkowego - X Windows, ani OS2,
ani Windows 95 (dotychczasowe testy starych 16-bitowych
aplikacji wykazały b. wysoki stopień kompatibilności), ani
stacji roboczych, ani dużych komputerów klasy mainframe. Język
C/C++ dosłużył się bowiem ogromnej ilości tzw. implementacji
czyli swoich odmian, przeznaczonych dla różnych komputerów i dla
różnych systemów operacyjnych. Windows NT i Windows 95 również
zostały napisane w C++.
Czytając prasę (np. Computer World, PC-Kurier i in.) zwróć
uwagę, że najwięcej ofert pracy jest właśnie dla programistów
posługujących się C++ (i tak zapewne będzie jeszcze przez kilka
lat, póki nie wymyślą czegoś lepszego - np. jakiegoś C+++).
Z Grzechu Trzeciego (choć nie tylko) wynika także pośrednio
Grzech Czwarty.
Języka C++ Grzech Czwarty - ANSI C, C++, czy Turbo C++, Visual
C++, czyli mała wieża BABEL.
Nie jestem pewien, czy "wieża BABEL" jest określeniem
trafniejszym niż "kamień filozoficzny", bądź "perpetuum mobile".
To co w ciągu ostatnich lat stało się z językiem C++ ma coś
wspólnego z każdym z tych utopijnych symboli. A w dużym
uproszczeniu było to tak.
Podobnie, jak mechanikom od zarania dziejów marzyło się
perpetuum mobile, tak informatykom zawsze marzyło się stworzenie
jednego SUPER-UNIWERSALNEGO języka programowania. Takiego, który
byłby zupełnie niezależny od sprzętu tzn., aby program napisany
w takim języku mógł być przeniesiony BEZ ŻADNYCH ZMIAN na
dowolny komputer I DZIAŁAŁ. Do takiej roli pretendowały kolejno
FORTRAN, Algol a potem przyszła pora na C/C++. Gdyby informatycy
nie okazali się zbyt zachłanni, może coś by z tego wyszło. Ale,
jak to w życiu, programiści (podobnie jak żona rybaka z bajki "O
rybaku i złotej rybce") chcieli wszystkiego naraz:
* żeby program dał się przenieść na komputer innego typu i
działał,
* żeby działał szybko i optymalnie wykorzystywał sprzęt,
* żeby umiał wszystko, co w informatyce tylko wymyślono (tj. i
grafika, i obiekty, i obsługa peryferii i...).
I stało się. W pomyślanym jako uniwersalny języku zaczęły
powstawać odmiany, dialekty, mutacje, wersje itp. itd.
Jeśli C++ nie jest Twoim pierwszym językiem, z pewnością
zauważyłeś Czytelniku, że pomiędzy GW Basic a Quick Basic są
pewne drobne różnice. Podobnie Turbo Pascal 7.0 trochę różni się
od Turbo Pascala 5.0. Mimo to przykład poniżej pewnie Cię trochę
zaskoczy. Dla zilustrowania skali problemu przedstawiam poniżej
dwie wersje TEGO SAMEGO PROGRAMU napisanego w dwu różnych
wersjach TEGO SAMEGO JĘZYKA C++. . Obydwa programy robią
dokładnie to samo. Mają za zadanie wypisać na ekranie napis
"Hello World" (czyli "Cześć świecie!").
- 5-
Zgłoś jeśli naruszono regulamin