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) 

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: 

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!"). 

Program (1) 

main() 

printf("Hello World\n"); 



Program (2) 

#include <windows.h> 
#include <iostream.h> 

LPSTR p = "Hello World\n"; 

main(void) 

cout << "Hello World" << endl; 
MessageBox(0, p, "Aplikacja dla Windows", MB_OK); 
return (0); 


C≤┐ za uderzaj▒ce podobie±stwo, prawda? Ale ┐arty na bok. Je╢li 
zaistnieje jaki╢ problem, zawsze mamy co najmniej trzy wyj╢cia. 
Mo┐emy: 

1. Udawaµ, ┐e go nie ma. 
Tak postΩpuje wielu autor≤w podrΩcznik≤w na temat C/C++. 
2. Krzyczeµ, ┐e nam siΩ to nie podoba. 
Mamy pe│ne prawo obraziµ siΩ i wr≤ciµ do Basica lub Pascala. 
3. Spr≤bowaµ poruszaµ siΩ w tym g▒szczu. 

Wyj╢cie trzecie ma jedn▒ wadΩ - jest najtrudniejsze, ale i 
efekty takiego wyboru s▒ najbardziej obiecuj▒ce. 

Je╢li chcesz zaryzykowaµ i wybraµ wyj╢cie trzecie, spr≤bujmy 
zrobiµ pierwszy krok w tej "d┐ungli". Wyja╢nijmy kilka nazw, 
pojΩµ i zasad gry obowi▒zuj▒cych w tym obszarze. 

JΩzyki programowania pos│uguj▒ siΩ pewnymi specyficznymi grupami 
s│≤w i symboli. S▒ to m. in.: 

* s│owa kluczowe 
(tu pomiΩdzy wersjami C++ rozbie┐no╢ci s▒ niewielkie), 

* operatory (po prostu znaki operacji - np. +), 
(tu zgodno╢µ jest niemal 100 %-owa) 

* dyrektywy 
(polecenia dla kompilatora JAK tworzyµ program wynikowy; 
tu ju┐ jest gorzej, szczeg≤lnie dyrektywa #pragma w ka┐dej 
wersji kompilatora C++ jest inna) 

* nazwy funkcji 
(z tym gorzej, bo ka┐dy producent ma w│asne funkcje i w│asne 
upodobania) 

* nazwy sta│ych 
(gdyby chodzi│o tylko o PI i e - wszystko by│oby proste) 

* nazy zasob≤w (FILE, PRN, CONSOLE, SCREEN itp. itd) 
(tu jest lepiej, ale te┐ rozbie┐no╢ci s▒ zauwa┐alne) 

Autor programu mo┐e jeszcze nadawaµ zmiennym (liczbom, zmiennym 
napisom, obiektom, itp.) w│asne nazwy, wiΩc czasem nawet 
wytrawny programista ma k│opoty ze zrozumieniem tekstu 
┐r≤d│owego programu... 

W jΩzyku C a nastΩpnie C++ przyjΩto pewne maniery nadawania nazw 


- identyfikator≤w u│atwiaj▒ce rozpoznawanie tych grup s│≤w: 

* nazwa() - funkcja 
* s│owa kluczowe i nazwy zmiennych - ma│ymi literami 
* STAúE - nazwy sta│ych najczΩ╢ciej du┐ymi literami 
* long/LONG - typy danych podstawowe/predefiniowane dla Windows 
_NAZWA - nazwy sta│ych predefiniowanych przez producenta 
__nazwa lub __nazwa__ - identyfikatory charakterystyczne dla 
danej wersji kompilatora 

itp., kt≤rych to zwyczaj≤w i ja postaram siΩ przestrzegaµ w 
tek╢cie ksi▒┐ki. 

Ameryka±ski Instytut Standard≤w ANSI od lat prowadzi walkΩ z 
wiatrakami. Stoi na stra┐y jednolitego standardu jΩzyka, kt≤ry 
nazywa siΩ standardem ANSI C i ANSI C++. Wielcy producenci od 
czasu do czasu organizuj▒ konferencje i spotkania gdzie╢ w 
ciep│ych krajach i uzgadniaj▒ niekt≤re standardy - czyli wsp≤lne 
dla nich i zalecane dla innych normy, ale niekt≤rzy bywaj▒ 
zazdro╢ni o w│asne tajemnice i nie publikuj▒ wszystkich 
informacji o swoich produktach. Dlatego wszelkie "s│uszne i 
uniwersalne" standardy typu ODBC, Latin 2, Mazovia, LIM, OLE, 
DDE, BGI, itp., itd. maj▒ niestety do dzi╢ ograniczony zakres 
stosowalno╢ci a wszelkie zapewnienia producent≤w o ca│kowitej 
zgodno╢ci ich produktu z... (tu wpisaµ odpowiednie) nale┐y 
niestety nadal traktowaµ z pewn▒ rezerw▒. 

W niniejszej ksi▒┐ce zajmiemy siΩ kompilatorem Borland C++ w 
jego wersjach 3.0 do 4.5, jest to bowiem najpopularniejszy w 
Polsce kompilator jΩzyka C/C++ przeznaczony dla komputer≤w IBM 
PC. Nie bez znaczenia dla tej decyzji by│ tak┐e fakt, ┐e Borland 
C++ i Turbo C++ bez konflikt≤w wsp≤│pracuje z: 

* Turbo Pascal i Borland Pascal; 
* Assemblerami: TASM, BASM i MASM; 
* Turbo Debuggerem i Turbo Profilerem; 
* bibliotekami Turbo Vision, ObjectVision, Object Windows 
Library, Database Tools, itp. 
* pakietami innych producent≤w - np. Win/Sys Library, Object 
Professional, CA-Visual Objects, Clipper, itp. 

i in. produktami "ze stajni" Borlanda popularnymi w╢r≤d 
programist≤w. Programy TASM/BASM, Debugger, Profiler a tak┐e 
niekt≤re biblioteki (np. Object Windows Library, Turbo Vision 
Library, itp. wchodz▒ w sk│ad pakiet≤w instalacyjnych BORLANDA, 
ale UWAGA - niestety nie wszystkich). Borland C++ 4+ pozwala, 
dziΩki obecno╢ci specjalnych klas VBX w bibliotece klas i 
obiekt≤w Object Windows Library na wykorzystanie program≤w i 
zasob≤w tworzonych w ╢rodowisku Visual Basic'a. Podobnie 
kompilatory C++ firmy Microsoft (szczeg≤lnie Visual C++) 
bezkonfliktowo wsp≤│pracuj▒ z zasobami innych aplikacji - np. 
Access, Excel, itp.. 

Warto tu zwr≤ciµ uwagΩ na jeszcze jeden czynnik, kt≤ry mo┐e staµ 
siΩ Twoim, Czytelniku atutem. Je╢li znasz ju┐ kompilatory Turbo 
Pascal, b▒d╝ Borland Pascal, zwr≤µ uwagΩ, ┐e wiele funkcji 
zaimplementowanych w Turbo Pascal 6.0. czy 7.0 ma swoje 
odpowiedniki w BORLAND C++ i Turbo C++. Odpowiedniki te zwykle 
dzia│aj▒ dok│adnie tak samo, a r≤┐ni▒ siΩ najczΩ╢ciej 
nieznacznie pisowni▒ nazwy funkcji. Wynika to z b│ogos│awie±stwa 
"lenistwa" (ponoµ homo sapiens najwiΩcej wynalazk≤w pope│nia│ 
w│a╢nie ze strachu, b▒d╝ z lenistwa...). Firmie Borland "nie 
chcia│o siΩ" wymy╢laµ od nowa tego, co ju┐ sprawdzi│o siΩ 
wcze╢niej i do czego przyzwyczaili siΩ klienci! I odwrotnie. 
Poznawszy Borland/Turbo C++ z │atwo╢ci▒ zauwa┐ysz te same 
funkcje w Borland/Turbo Pascalu. 

[!!!]UWAGA! 
________________________________________________________________ 

O Kompilatorach BORLAND C++ 4 i 4.5 napiszΩ nieco p≤┐niej, 
poniewa┐ s▒ bardziej skomplikowane i wymagaj▒ trochΩ wiΩkszej 
znajomo╢ci zasad tworzenia i uruchamiania program≤w (projekty). 

To prawda, ┐e zawieraj▒ narzΩdzia klasy CASE do automatycznego 
generowania aplikacji i jeszcze kilka innych u│atwie±, ale miej 
trochΩ cierpliwo╢ci... 
________________________________________________________________ 

[???] C.A.S.E. 
________________________________________________________________ 

CASE - Computer Aided Software Engineering - in┐ynieria 
programowa wspomagana komputerowo. Najnowsze kompilatory C++ 
wyposa┐one s▒ w narzΩdzia nowej generacji. W r≤┐nych wersjach 
nazywaj▒ siΩ one AppExpert, ClassExpert, AppWizard, VBX 
Generator, itp. itd, kt≤re pozwalaj▒ w du┐ym stopniu 
zautomatyzowaµ proces tworzenia aplikacji. Nie mo┐na jednak 
zaczynaµ kursu pilota┐u od programowania autopilota - a kursu 
programowania od automatycznych generator≤w aplikacji dla 
Windows... 
________________________________________________________________ 


Zaczynamy zatem od rzeczy najprostszych, maj▒c jedynie tΩ 
krzepi▒c▒ ╢wiadomo╢µ, ┐e gdy ju┐ przyst▒pimy do pisania 
aplikacji konkurencyjnej wobec Worda, QR-Tekst'a, czy Power 
Point'a - mo┐e nas wspomagaµ system wspomaganina CASE do│▒czony 
do najnowszych wersji BORLAND C++ 4 i 4.5. Je╢li mamy ju┐ gotowe 
aplikacje w Visual Basic'u - Borland C++ 4+ pozwoli nam 
skorzystaµ z element≤w tych program≤w (ale pracowaµ te aplikacje 
po przetransponowaniu do C++ bΩd▒ od kilku do kilkuset razy 
szybciej).

LEKCJA 2

LEKCJA 2. Jak korzystaµ z kompilatora BORLAND C++? 

___________________________________________________________ 
W trakcie tej lekcji poznasz sposoby rozwi▒zania typowych 
problem≤w wystΩpuj▒cych przy uruchomieniu kompilatora Borland 
C++. 
________________________________________________________________ 

UWAGA: 
Z A N I M rozpoczniesz pracΩ z dyskietk▒ do│▒czon▒ do niniejszej 
ksi▒┐ki radzimy Ci SPORZíDZI╞ ZAPASOWí KOPI╩ DYSKIETKI przy 
pomocy rozkazu DISKCOPY, np. 

DISKCOPY A: A: lub DISKCOPY B: B: 

Unikniesz dziΩki temu byµ mo┐e wielu k│opot≤w, kt≤rych mo┐e Ci 
narobiµ np. przypadkowy wirus lub kropelka kawy. 

INSTALACJA DYSKIETKI. 

Na dyskietce do│▒czonej do niniejszej ksi▒┐ki, kt≤r▒ najlepiej 
zainstalowaµ na dysku sta│ym (z dyskiem pracuje siΩ znacznie 
szybciej, a pr≤cz tego jest tam znacznie wiΩcej miejsca), w jej 
katalogu g│≤wnym znajduje siΩ programik instalacyjny o nazwie: 

INSTALUJ.BAT 

napisany jako kr≤tki plik wsadowy w jΩzyku BPL (Batch 
Programming Language - jΩzyk programowania wsadowego). Aby 
zainstalowaµ programy z dyskietki na w│asnym dysku powiniene╢: 

* sprawdziµ, czy na dysku (C:, D:, H: lub innym) jest co 
najmniej 2 MB wolnego miejsca, 
* w│o┐yµ dyskietkΩ do napΩdu i wydaµ rozkaz: 

<-- patrz tekst ksiazki 

* po naci╢niΩciu [Entera] rozpocznie siΩ nstalacja. O 
zako±czeniu instalacji zostaniesz poinformowany napisem na 
ekranie. 

UWAGI: 
* Je╢li korzystasz z napΩdu dyskietek B:, lub chcesz 
zainstalowaµ programy z dyskietki na innym dysku ni┐ C: - 
wystarczy napisaµ rozkaz - np. B:\INSTALUJ AMC48 D: i nacisn▒µ 
[Enter]. 
* Program instalacyjny zadzia│a poprawnie tylko wtedy, gdy masz 
system operacyjny DOS 6+ (6.0 lub nowszy) na dysku C: w katalogu 

C:\DOS. 
* Mo┐esz zainstalowaµ programy z dyskietki z poziomu ╢rodowiska 
Windows. W oknie Mened┐era Program≤w: 
- rozwi± menu Plik 
- wybierz rozkaz Uruchom... 
- do okienka wpisz <-- patrz tekst ksi▒┐ki 

Program instalacyjny utworzy na wskazanym dysku katalog 
\C-BELFER 
i tam skopiuje ca│▒ zawarto╢µ dyskietki oraz dokona dekompresji 
(rozpakowania) plik≤w. Je╢li chcesz skopiwaµ zawarto╢µ dyskietki 
do w│asnego katalogu roboczego, wystarczy "wskazaµ" programowi 
instalacyjnemu w│a╢ciwy adres: 

<-- patrz tekst ksi▒┐ki 

Zostanie utworzony katalog: F:\USERS\ADAM\TEKSTY\C-BELFER 

UWAGA: 
Pr≤cz przyk│ad≤w opisanych w ksi▒┐ce dyskietka zawiera dodatkowo 
kilka przyk│adowych aplikacji, na kt≤re zabrak│o miejsca, miΩdzy 
innymi: 

WYBORY95 - prosta gra zrΩczno╢ciowa (dla Windows) 
FOR*.CPP - przyk│ady zastosowania pΩtli 
BGI*.CPP - przyk│ady grafiki DOS/BGI 
oraz programik u│atwiaj▒cy kurs - MEDYT.EXE wyposa┐ony w 
dodatkowe pliki tekstowe. 

I. URUCHOMIENIE KOMPILATORA. 

Aby uruchomiµ kompilator, powiniene╢ w linii rozkazu po 
DOS'owskim znaku zachΩty (zwykle C> lub C:\>) wydaµ polecenie: 

BC 

i nacisn▒µ [Enter]. 
(UWAGA: w r≤┐nych wersjach kompilator≤w mo┐e to byµ np.: 
BC, TC, a dla Windows np. BCW - sprawd╝ swoj▒ wersjΩ) 

Je╢li Tw≤j komputer odpowiedzia│ na to: 

Bad command or file name 

* na Twoim komputerze nie ma kompilatora BORLAND C++: 
ROZWIíZANIE: Zainstaluj C++. 

* w pliku AUTOEXEC.BAT nie ma ╢cie┐ki dostΩpu do katalogu, w 
kt≤rym zainstalowany jest kompilator C++. 

ROZWIíZANIE: 

1. Zmieniµ bie┐▒cy katalog (i ewentualnie dysk) na odpowiedni, 
np.: 
D:[Enter] 
CD D:\BORLANDC\BIN[Enter]. //UWAGA: Podkatalog \BIN 
Albo 

2. Ustawiµ ╢cie┐kΩ dostΩpu przy pomocy rozkazu np: 
PATH C:\BORLANDC\BIN 
(lub D:\TURBOC\BIN stosownie do rozmieszczenia plik≤w na Twoim 
komputerze; najlepiej zasiΩgnij rady lokalnego eksperta). 

[???] NIE CHCE USTAWI╞ ªCIE»KI ? 
________________________________________________________________ 
Tak czasem siΩ zdarza - zwykle wtedy, gdy pracujesz w DOS-ie z 
programem Norton Commander. Musisz pozbyµ siΩ "na chwilΩ" 
programu NC. Naci╢nij [F10] - Quit i potwierd╝ przez [Y] lub 
[Enter]. Po ustawieniu ╢cie┐ek mo┐esz powt≤rnie uruchomiµ NC. 
________________________________________________________________ 

Albo 

3. Dodaµ do pliku AUTOEXEC.BAT dodatkow▒ ╢cie┐kΩ. Jest to 
wyj╢cie najlepsze. Na ko±cu linii ustawiaj▒cej ╢cie┐ki - np.: 

PATH C:\; C:\DOS; C:\NC; C:\WINDOWS 

dodaj ╢cie┐kΩ do kompilatora C++, np.: 

PATH C:\; C:\DOS; C:\NC; D:\BORLANDC\BIN; 

Za│atwi to problem "raz na zawsze". Po uruchomieniu komputera 
╢cie┐ka bΩdzie odt▒d zawsze ustawiana automatycznie. 
Poniewa┐ kompilator C++ wymaga w trakcie pracy otwierania i 
│▒czenia wielu plik≤w, r≤┐ne wersje (program instalacyjny 
INSTALL.EXE podaje tΩ informacjΩ w okienku pod koniec 
instalacji) wymagaj▒ dodania do pliku konfiguracyjnego 
CONFIG.SYS wiersza: 

FILES = 20 

(dla r≤┐nych wersji warto╢µ ta wacha siΩ w granicach od 20 do 
50). Najbezpieczniej, je╢li nie masz pewno╢ci dodaµ 50. Je╢li 
wybra│e╢ wariant trzeci i ewentualnie zmodyfikowa│e╢ sw≤j 
CONFIG.SYS, wykonaj prze│adowanie systemu [Ctrl]-[Alt]-[Del]. 
Teraz mo┐esz wydaµ rozkaz 

BC[Enter] 

Mam nadziejΩ, ┐e tym razem siΩ uda│o i oto jeste╢my w IDE 
Borland C++. Je╢li nie jeste╢ jedynym u┐ytkownikiem, na ekranie 
rozwinie siΩ ca│a kaskada okienek roboczych. Skonsultuj z 
w│a╢cicielem, kt≤re z nich mo┐na pozamykaµ a kt≤re pliki mo┐na 
skasowaµ lub przenie╢µ. PamiΩtaj "primo non nocere" - przede 
wszystkim nie szkodziµ! 

€[S!] IDE = Integrated Development Environment, 

IDE, czyli Zintegrowane ªrodowisko Uruchomieniowe. Bardziej 
prozaicznie - po│▒czony EDYTOR i KOMPILATOR. Zapewne znasz ju┐ 
co╢ podobnego z Pascala lub Quick Basica. Od dzi╢ bΩdzie to 
Twoje ╢rodowisko pracy, w kt≤rym bΩdziesz pisaµ, uruchamiaµ i 
modyfikowaµ swoje programy. 

€[???] DISK FULL! 
________________________________________________________________ 
Co robiµ, je╢li przy pr≤bie uruchomienia kompilator C++ 
odpowiedzia│ Ci: 

Disk full! Not enough swap space. 

Program BC.EXE (TC.EXE) jest bardzo d│ugi. Je╢li wydasz rozkaz 
(wariant 1: Turbo C++ 1.0, ni┐ej BORLAND C++ 3.1): 

DIR TC.EXE 
uzyskasz odpowied╝, jak poni┐ej: 

C:>DIR TC.EXE 
Directory of D:\TC\BIN 

TC EXE 876480 05-04-90 1:00a 
1 file(s) 876480 bytes 
17658880 bytes free 

C:>DIR BC.EXE 
Directory of C:\BORLANDC\BIN 

BC EXE 1410992 06-10-92 3:10a 
1 file(s) 1410992 bytes 
18926976 bytes free 


Poniewa┐ plik kompilatora nie mie╢ci siΩ w 640 K pamiΩci musi 
dokonywaµ tzw. SWAPOWANIA i tworzy na dysku dodatkowy plik 
tymczasowy (ang. swap file). Na dysku roboczym powinno 
pozostawaµ najmniej 500 KB wolnego miejsca. Je╢li mo┐esz, 
pozostaw na tym dysku wolne nie mniej ni┐ 1 MB. U│atwi to i 
przyspieszy pracΩ. 
________________________________________________________________ 

Tworzony tymczasowo plik roboczy wygl▒da tak: 

Volume in drive D has no label 
Directory of D:\SIERRA 

TC000A SWP 262144 12-13-94 5:42p (13-XII to dzi╢!) 
1 file(s) 262144 bytes 
11696320 bytes free 

€[!!!] UWAGA: 

Kompilator C++ bΩdzie pr≤bowa│ tworzyµ plik tymczasowy zawsze w 
bie┐▒cym katalogu, tzn. tym, z kt≤rego wyda│e╢ rozkaz 
TC lub BC. 

II. WNIOSKI PRAKTYCZNE. 

* Lepiej nie uruchamiaµ C++ "siedz▒c" na dyskietce, poniewa┐ 
mo┐e mu tam zabrakn▒µ miejsca na plik tymczasowy. 
* Dla u┐ytkownik≤w Novella: Uruchamiajcie kompilator C++ tylko 
we w│asnych katalogach - do innych mo┐ecie nie mieµ praw zapisu. 

Plik .SWP jest tworzony tylko podczas sesji z kompilatorem C++ i 

usuwany natychmiast po jej zako±czeniu. Mo┐esz go zobaczyµ tylko 

wychodz▒c "na chwilΩ" do systemu DOS przy pomocy rozkazu DOS 
Shell (menu File). 

€[S!] SWAP - Zamiana. 
________________________________________________________________ 
Je╢li wszystkie dane, potrzebne do pracy programu nie mieszcz▒ 
siΩ jednocze╢nie w pamiΩci operacyjnej komputera, to program - 
"w│a╢ciciel", (lub system operacyjny - DOS, OS2, Windows) mo┐e 
dokonaµ tzw. SWAPOWANIA. Polega to na usuniΩciu z pamiΩci 
operacyjnej i zapisaniu na dysk zbΩdnej w tym momencie czΩ╢ci 
danych, a na ich miejsce wpisaniu odczytanej z dysku innej 
czΩ╢ci danych, zwykle takich, kt≤re s▒ programowi pilnie 
potrzebne do pracy w│a╢nie teraz. 
________________________________________________________________ 


€[Z] - Propozycje zada± do samodzielnego wykonania.
---------------------------------------------------------------- 

1.1 Sprawd╝ ile bajt≤w ma plik .EXE w tej wersji kompilatora 
C++, kt≤rej u┐ywasz. 
1.2. Pos│uguj▒c siΩ rozkazem DOS Shell z menu File sprawd╝ gdzie 
znajduje siΩ i jakiej jest wielko╢ci plik tymczasowy .SWP. Ile 
masz wolnego miejsca na dysku ? 
________________________________________________________________ 
EOF

AUTOR NIEZNANY :(