Wszystko o C++ - 48 LEKCJI! 9689 5

O temacie

Autor TheSnajper

Zaczęty 12.11.2008 roku

Wyświetleń 9689

Odpowiedzi 5

TheSnajper

TheSnajper

Użytkownicy
posty51
  • Użytkownicy
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. 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 ?
________________________________________________________________
LEKCJA 3. Główne menu i inne elementy IDE.  
________________________________________________________________
W trakcie tej lekcji dowiesz się jak poruszać się w  
zintegrowanym środowisku (IDE) Turbo C++.
________________________________________________________________
 
Najważniejszą rzeczą w środowisku IDE jest GŁÓWNE MENU (ang.
MENU BAR), czyli pasek, który widzisz w górnej części ekranu.  
Działa to podobnie, jak główne menu w programie Norton Commander
(dostępne tam przez klawisz [F9]).
 
KRÓTKI PRZEGLĄD GŁÓWNEGO MENU.  
 
Przyciśnij klawisz [F10].  
Główne menu stało się aktywne. Teraz przy pomocy klawiszy  
kursora (ze strzałkami [<-], [->]) możesz poruszać się po menu i
 
wybrać tę grupę poleceń, która jest Ci potrzebna. A oto nazwy  
poszczególnych grup:  
 
[S!]€GRUPY POLECEŃ - NAZWY POSZCZEGÓLNYCH "ROZWIJANYCH" MENU.
 
=   Bez nazwy (menu systemowe).  
File   Operacje na plikach.  
Edit   Edycja plików z tekstami źródłowymi programów.  
Search   Przeszukiwanie.  
Run   Uruchomienie programu.  
Compile   Kompilacja programu.
Debug   "Odpluskwianie", czyli wyszukiwanie błędów w  
   programie.  
Project   Tworzenie dużych, wielomodułowych programów.  
Options   Opcje, warianty IDE i kompilatora.  
Window   Okna (te na ekranie).  
Help   Pomoc, niestety po angielsku.  
 
UWAGA:  
__________________________________________________________
W niektórych wersjach kompilatora na pasku głównego menu pojawi  
się jeszcze Browse - przeglądanie (funkcji, struktury klas i  
obiektów). Zwróć uwagę, że w okienkowych wersjach niektóre  
rozkazy "zmieniają" menu i trafiają do  
Browse, Debug, Project.  
W BC++ 4 menu Run brak (!). Tworzenie aplikacji sprowadza się  
tam do następujących kroków:  

Project | Open project       lub      | AppExpert  
Debug | Run
 

ROZWIJAMY MENU.  
 
Z takiego kręcenia się w kółko po pasku (a propos, czy  
zauważyłeś, że pasek podświetlenia może być "przewijany w  
kółko"?) jeszcze niewiele wynika. Robimy więc następny krok.  
 
Wskaż w menu głównym nazwę "File" i naciśnij [Enter].  
Rozwinęło się menu File zawierające listę rozkazów dotyczących  
operacji na plikach. Po tym menu też możesz się poruszać przy  
pomocy klawiszy kursora ze strzałkami górę lub w dół. Masz do  
wyboru dwie grupy rozkazów rozdzielone poziomą linią:  
 
€[S!]  
______________________________________________________________
Open   - Otwórz istniejący już plik z programem (np. w celu  
   dopisania czegoś nowego).  
New   - Utwórz nowy plik (zaczynamy tworzyć nowy program).  
Save   - Zapisz bieżący program na dysk. Pamiętaj: Pliki z  
   dysku nie znikają po wyłączeniu komputera. Zawsze  
   lepiej mieć o jedną kopię za dużo niż o jedną za mało.
 
oraz  
Print   - Wydrukuj program.  
Get Info€€   - Wyświetl informacje o stanie IDE.  
Dos Shell   - Wyjście "na chwilę" do systemu DOS z możliwością  
   powrotu do IDE przez rozkaz EXIT.  
Quit   - Wyjście z IDE Turbo C++ i powrót do DOSa. Inaczej -  
   KONIEC PRACY.  
_______________________________________________________________
 
Skoro już wiemy jak rozpocząć pracę nad nowym programem,  
zacznijmy przygotowanie do uruchomienia naszego pierwszego  
programu.  
 
Wybierz z menu File rozkaz Open... (otwórz plik). Ponieważ  
rozkaz taki jest niejednoznaczny, wymaga przed wykonaniem  
podania dodatkowych informacji. Gdyby Twój komputer mówił,  
zapytałby w tym momencie "który plik mam otworzyć?". Pytanie  
zadać musi, będzie więc prowadził dialog z Tobą przy pomocy  
OKIENEK DIALOGOWYCH. Jeśli wybrałeś z menu rozkaz OPEN i  
nacisnąłeś [Enter], to masz właśnie na ekranie takie okienko  
dialogowe. Okienko składa się z kilku charakterystycznych  
elementów:  
 
OKIENKO TEKSTOWE - (ang. Text Box lub Input Box) w którym możesz
 
   pisać (klawisz BackSpace [<-] pozwoli Ci  
   skasować wprowadzony tekst, jeśli się  
   rozmyślisz). Okienko to zawiera tekst "*.C".
 
OKIENKO Z LISTĄ - (ang. List Box) zawiera listę plików, z której
    możesz wybrać plik z programem.  

KLAWISZE OPCJI/POLECEŃ - (ang. Command Button) kiedy już  
   dokonasz wyboru, to możesz wskazując  
   taki klawisz np. potwierdzić [OK],  
   zrezygnować [Cancel], otworzyć plik  
   [Open] itp..  
 
Pomiędzy elementami okienka dialogowego możesz poruszać się przy
pomocy klawiszy kursora i klawisza [Tab] lub kombinacji klawiszy
 
[Shift]-[Tab] (spróbuj!).

Możesz także posługiwać się myszką.  
Więcej o okienkach i menu dowiesz się z następnych lekcji, a na  
razie wróćmy do naszego podstawowego zadania - tworzenia  
pierwszego programu.
 
Zanim zaczniemy tworzyć program włóż do kieszeni napędu A: (lub  
B:) dyskietkę dołączoną do niniejszej książki. Może ona stać się
Twoją dyskietką roboczą i pomocniczą zarazem na okres tego  
kursu.  
 
Jeżeli zainstalowałeś zawartość dyskietki na dysku - przejdź do  
stosownego katalogu - C:\C-BELFER (D:\C-BELFER) i odszukaj tam  
programy przykładowe. Jeśli nie - możesz nadal korzystać z  
dyskietki (jest na niej trochę miejsca).  
 
Wpisz do okienka tekstowego nazwę A:\PIERWSZY (lub odpowiednio  
np. C:\C-BELFER\PIERWSZY). Rozszerzeniem możesz się nie  
przejmować - zostanie nadane automatycznie. Plik roboczy z Twoim
programem zostanie utworzony na dyskietce w napędzie A:.
 
Wskaż klawisz [Open] w okienku dialogowym i naciśnij [Enter] na  
klawiaturze.  
 
UWAGA!  
_________________________________________________________________
Dopóki manipulujesz okienkiem tekstowym i okienkiem z listą  
klawisz polecenia [Open] jest wyróżniony (podświetlony) i  
traktowany jako tzw. OPCJA DOMYŚLNA (ang. default). W tym  
stadium aby wybrać [Open] WYSTARCZY NACISNĄĆ [Enter].
__________________________________________________________________

 
Wróciliśmy do IDE. zmieniło się tyle, że w nagłówku okna edytora
zamiast napisu

"NONAME00.CPP"            (ang. no mame - bez nazwy)

jest teraz nazwa Twojego programu - PIERWSZY.CPP. Kursor miga w lewym
górnym rogu okna edytora. Możemy zaczynać.  
 
Pierwsze podejście do programu zrobimy trochę "intuicyjnie".  
Zamiast wyjaśniać wszystkie szczegóły posłużymy się analogią do  
konstrukcji w Pascalu i Basicu (zakładam, że napisałeś już  
choćby jeden program w którymś z tych języków). Szczegóły te  
wyjaśnię dokładniej począwszy od następnej lekcji.
 
 
WPISUJEMY PROGRAM "PIERWSZY.CPP".  
 
Wpisz następujący tekst programu:  
 
/* Program przykładowy - [P-1] */
 
#include <stdio.h>
main()
{
  printf("Autor: ...........");         /*tu wpisz imie Twoje!*/
  printf(" TO JA, TWOJ PROGRAM - PIERWSZY.CPP");
  printf("...achoj !!!");  
}
 
I już. Jak widzisz nie jest to aż takie straszne. Gdyby nie to,  
że zamiast znajomego PRINT"TO JA...", albo writeln(".."); jest  
printf("...");, byłoby prawie całkiem zrozumiałe. Podobny  
program w Pascalu mógłby wyglądać np. tak:  
 
# include <stdio.h>                 uses Crt;
main()  /* początek */              program AHOJ; {początek}
{            Begin
printf("Autor");      write('Autor');
printf("TO JA");       write('TO JA');
printf("ahoj");       write('ahoj');
}         end.
 

a w BASICU:  
 
10 PRINT "Autor" : REM Początek  
20 PRINT "TO JA"  
30 PRINT "ahoj"  
40 END  
 

€[!!!]UWAGA
______________________________________________________________  
Zwróć uwagę, że działanie funkcji:  
PRINT (Basic),  
printf() (C++),  
Write i Writeln (Pascal)  
nie jest identyczne, a TYLKO PODOBNE.
________________________________________________________________
 
Sprawdzimy, czy program działa. Tam, gdzie są kropki wpisz Twoje
imię - np. Ewa, Marian, Marcin. Pamiętaj o postawieniu na końcu  
znaków cudzysłowu ("), zamknięciu nawiasu i średniku (:[  na  
końcu linii (wiersza).
 
Naciśnij kombinację klawiszy [Alt]-[R]. Jest to inny, niż  
opisano poprzednio sposób dostępu do menu. Kombinacja klawiszy  
[Alt]-[Litera] powoduje uaktywnienie tego menu, którego nazwa  
zaczyna się na podaną literę. Przy takiej konwencji litera nie  
musi być zawsze pierwszą literą nazwy opcji. Może to być także  
litera wyróżniona w nazwie przez podkreślenie lub wyświetlenie  
np. w innym kolorze. I tak:  
 
[Alt]+[F]   menu File                   (Plik)
[Alt]+[C]   menu Compile               (Kompilacja
[Alt]+[R]   menu Run                    (Uruchamianie)
[Alt]+[W]   menu Window                 (Okna)
itd., itd..  
 
Kombinacja [Alt]+[R] wybiera więc menu Run (uruchomienie  
programu). Menu Run daje Ci do wyboru następujące polecenia:
 
[S!]
________________________________________________________________
Run   - Uruchomienie programu (Utwórz plik .EXE i Wykonaj).
Program Reset - "Wyzerowanie" zmiennych programu.
Go to Cursor - Wykonanie programu do miejsca wskazanego kursorem
       w tekście.
Trace Into - Uruchom śledzenie programu.
Step Over - Śledzenie programu z możliwością pominięcia funkcji.
 
            (dosł. tzw. "Przekraczanie" funkcji).
Arguments - Uruchom program z zadanymi argumentami.
________________________________________________________________
 
Wybierz "Run". Jeśli nie zrobiłeś żadnego błędu, program  
powinien się skompilować z komentarzem "Success" i wykonać  
(kompilacja zakończona sukcesem; napis mignie tak szybko, że  
możesz tego nie zauważyć). Jeśli chcesz spokojnie obejrzeć  
wyniki działania swojego programu powinieneś wykonać  
następujące czynności:
 
1. Rozwiń menu Window naciskając klawisze [Alt]-[W].  
2. Wybierz z menu rozkaz User screen (ekran użytkownika).  
Możesz wykonać to samo bez rozwijania menu naciskając kombinację
 
klawiszy [Alt]-[F5].  
3. Po przejrzeniu wydruku naciśnij [Enter]. Wrócisz do okna  
edytora.
 
Jeśli zrobiłeś błędy - kompilacja się nie uda i program nie  
zostanie wykonany, w okienku natomiast pojawi się napis "Errors"
 
(czyli "Błędy"). Jeśli tak się stało naciśnij [Enter]  
dwukrotnie. Popraw ewentualne niezgodności i spróbuj jeszcze  
raz.  
 
Błędów zwykle bywa nie więcej niż dwa. Najczęściej jest to brak  
lub przekłamanie którejś litery (w słowie main lub printf) i  
brak średnika na końcu linii. W okienku komunikatów (Message)  
mogą pojawić się napisy - np.:  
 
Error: Statement missing ;  
(Błąd: Zgubiony znak :P  
 
Error Messages - Komunikaty o błędach.
________________________________________________________________
Najczęściej w komunikatach o błędach będą na początku pojawiać  
się następujące słowa:  
 
Error - błąd  
Warning - ostrzeżenie  
Syntax - składnia (składniowy)  
Expression - wyrażenie  
never used - nie użyte (nie zastosowane)  
assign - przypisywać, nadawać wartość/znaczenie  
value - wartość  
statement - operator, operacja, wyrażenie
________________________________________________________________
 
€[???] Co z tym średnikiem?  
 
________________________________________________________________
Zwróć uwagę, że po pdświetleniu komunikatu o błędzie (pasek  
wyróżnienia podświetlenia możesz przesuwać po liście przy pomocy
klawiszy ze strzałkami w górę i w dół) i po naciśnięciu [Entera]
kompilator pokaże ten wiersz programu, w którym jego zdaniem  
jest coś nie w porządku. Brak średnika zauważa zwykle dopiero po
przejściu do następnego wiersza (i tenże wiersz pokaże), co bywa
na początku trochę mylące.
________________________________________________________________
 
 
[???] CZEGO ON JESZCZE CHCE ?  
________________________________________________________________
Nawet po usunięciu wszystkich błędów C++ nie "uspokoi się"  
całkiem i będzie wyświetlał ciągle komunikat ostrzegawczy:  
 
* w OKIENKU KOMPILACJI:           (bardzo typowa sytuacja)

Errors:         0         (Błędy: 0)  
Warnings:   1      (Ostrzeżenia:   1)


* W OKIENKU KOMUNIKATÓW - (Messages - tym w dolnej części  
ekranu):  

*WARNING A:\PIERWSZY.C 4: Function should return a value in  
function main  

(Uwaga: Funkcja main powinna zwrócić wartość.)
 
Na razie zadowolimy się spostrzeżeniem, że:  
* Błędy UNIEMOŻLIWIAJĄ KOMPILACJĘ i powodują komunikat ERRORS.  
* Ostrzeżenia NIE WSTRZYMUJĄ KOMPILACJI i powodują komunikat  
WARNINGS.  
 
Jaki jest sens powyższego ostrzeżenia i jak go uniknąć dowiesz  
się z następnych lekcji.
________________________________________________________________
 
Pozostaje nam w ramach tej lekcji:  
* Zapisać Twój pierwszy program na dysku i  
* Wyjść z IDE C++.  
 
JAK STĄD WYJŚĆ ?  
 
Aby zapisać plik PIERWSZY.CPP z Twoim programem (końcową  
ostateczną wersją) na dysk należy wykonać następujące czynności:
 
1. Naciśnij klawisz [F10].  
W głównym menu pojawi się pasek wyróżnienia sygnalizując, że  
menu stało się aktywne.  
 
2. Naciśnij klawisz [F].  
Pasek wyróżnienia przesunie się podświetlając menu File  
(operacje na plikach). Rozwinie się menu File.
 
3. Naciśnij klawisz - wybierz polecenie Save (jeśli chcesz  
zapisać program w bieżącym katalogu i pod bieżącą nazwą) lub  
rozkaz Save As... (zapisz jako...), podaj nowy dysk/katalog i  
nową nazwę pliku.  
 
Tekst Twojego programu został zapisany na dysku/dyskietce. Teraz
 
możemy wyjść z C++.  
 
Aby to zrobić, wykonaj następujące czynności:  
 
1. Naciśnij klawisz [F10]. Uaktywni się główne menu.  
2. Rozwiń menu File naciskając klawisz [F].  
3. Wybierz z menu polecenie "Exit/Quit" i naciśnij [Enter].  
 
€[!!!] SAVE szybciej.  
________________________________________________________________
Zwróc uwagę, że zamiast rozwijać kolejne menu, możesz korzystać  
z kombinacji klawiszy, które pozwalają Ci wydać rozkaz bez  
rozwijania menu. Takie kombinacje klawiszy (ang. hot keys lub  
shortcut keys) znajdziesz w menu obok rozkazu, np.:  
 
[Alt]-[X]      - Quit/Exit  
[F2]           - Save  
[F3]           - Open  
[Alt]-[F5]     - User screen (Podglądanie działania programu) itp.  
________________________________________________________________
 
€[Z]
________________________________________________________________
1. Spróbuj napisać i uruchomić kilka własnych programów  
wypisujących różne napisy. W swoich programach zastosuj funkcję  
printf() według następującego wzoru:  
 
printf("....tu wpisz napis do wydrukowania...");  
 
zastosuj znaki przejścia do nowego wiersza według wzoru:  
 
printf("...napis...\n");  
 
porównaj działanie.
 
Swoim programom staraj się nadawać łatwe do rozpoznania nazwy  
typu PIERWSZY, DRUGI, ADAM1, PRZYKLAD itp.
 
€[???] NIE CHCE DZIAŁAĆ ?  
________________________________________________________________
Pamiętaj, że dla języka C i C++ (w przeciwieństwie np. do  
Basica) PRINTF i printf to nie to samo! Słowa kluczowe i nazwy  
standardowych funkcji  
MUSZĄ BYĆ PISANE MAŁYMI LITERAMI !!!  
________________________________________________________________
 
€[???] GDZIE MOJE PROGRAMY ?  
________________________________________________________________
Bądź spokojny. Zapisz wersje źródłowe programów na dyskietkę  
(dysk). Swoje programy skompilowane do wykonywalnej wersji *.EXE
znajdziesz najprawdopodobniej w katalogu głównym tego dysku, na  
którym zainstalowany został C++ lub w katalogu  
\BORLANDC\BIN\.... Jeśli ich tam nie ma, zachowaj zimną krew i  
przeczytaj uważnie kilka następnych stron.
________________________________________________________________


€ PAMIĘTAJ:  
________________________________________________________________
Jeśli masz oryginalny tekst programu, nazywany WERSJĄ ŹRÓDŁOWĄ  
PROGRAMU, zawsze możesz uzyskać ten program w wersji "roboczej",
tzn. skompilować go na plik wykonywalny typu *.EXE (ang.  
EXEcutable - wykonywalny).  
________________________________________________________________
 
 
€[S!]  printf() - PRINTing Function - Funkcja DRUKująca  
________________________________________________________________
na ekranie (dokładniej - na standardowym urządzeniu wyjścia).  
Odpowiednik PRINT w Basicu lub write w Pascalu. Dla ułatwienia  
rozpoznawania nazw funkcji w tekście większość autorów pisząca o
języku C++ umieszcza zawsze po nazwie funkcji parę nawiasów (tak
też musi ją stosować programista w programach w C++). Ja także  
będę stosować dalej tę zasadę.
________________________________________________________________
 
 
€[???] A JEŚLI NIE MA C++ ???  
________________________________________________________________
W przeciwieństwie do INTERPRETERÓW (np. QBasic), które muszą być
obecne, by program zadziałał, KOMPILATORY tworzą wersje  
wykonywalne programów, które mogą pracować niezależnie. W  
katalogu głównym tego dysku, na którym jest zainstalowany Twój  
BORLAND/Turbo C++ znajdziesz swoje programy PIERWSZY.EXE,  
DRUGI.EXE itp. Aby te programy uruchomić nie musisz uruchamiać  
kompilatora C++. Wystarczy:  

1. Przejść na odpowiedni dysk przy pomocy polecenia:  
D:   (E: lub F:)  

2. Przejść do odpowiedniego katalogu - np. głównego:  
CD \  

3. Wydać polecenie:  
PIERWSZY[Enter]  
________________________________________________________________
 
€[!!!]UWAGA:  
________________________________________________________________
Jeśli nie jesteś jedynym użytkownikiem kompilatora C++ i na tym  
samym komputerze pracuje jeszcze ktoś inny, sprawdź, czy inny  
użytkownik nie ustawił inaczej katalogu wyjściowego (Options |  
Directories | Output Directory). Katalog wyjściowy (ang. output  
directory) to ten katalog, w którym C++ zapisuje pliki *.EXE po  
wykonaniu kompilacji. Jeśli jesteś skazany na własne siły -  
patrz - następne lekcje.
________________________________________________________________
 

SPECJALNE KLAWISZE, które warto poznać.  
 
Oto skrócona tabela z najważniejszymi kombinacjami klawiszy  
służącymi do "nawigacji" (czyli prościej - poruszania się) w  
środowisku IDE kompilatorów BORLAND C++ i Turbo C++.  
 
Przydatne w Borland C++ i Turbo C++ kombinacje klawiszy.  
________________________________________________________________
Wybór rozkazów z menu:  
Alt+F    Rozwinięcie menu File (operacje na plikach)  
Alt+E    Rozwinięcie menu Edit (edycja tekstu programu)  
Alt+S    Rozwinięcie menu Search (przeszukiwanie)  
Alt+R    Rozwinięcie menu Run (uruchamianie programu)  
Alt+C    Rozwinięcie menu Compile (kompilacja)  
Alt+D    Rozwinięcie menu Debug (diagnostyka i błędy)  
Alt+P    Rozwinięcie menu Project (program wielomodułowy)  
Alt+O    Rozwinięcie menu Option (opcje, konfiguracja)  
Alt+W    Rozwinięcie menu Window (zarządzanie oknami)  
Alt+H    Rozwinięcie menu Help (pomoc)  
Alt+B    Rozwinięcie menu przeglądarki - Browse (Win)
Alt+X    Wyjście z kompilatora DOS'owskiego - Exit  
Alt+F4   Wyjście z kompilatora dla Windows
________________________________________________________________
 
 
Rozkazy w trybie edycji tekstu programu:  
________________________________________________________________
Shift+Delete    Wytnij wybrany blok tekstu (Cut) i umieść w  
                 przechowalni (Clipboard)  
Shift+Insert     Wstaw blok tekstu z przechowalni (Paste)  
Ctrl+Insert      Skopiuj zaznaczony blok tekstu do przechowalni  
                 (Copy)  
Ctrl+Y           Skasuj wiersz tekstu (Delete a line)  
Ctrl+Delete      Skasuj zaznaczony blok tekstu  
Shift+[-->]      Zaznaczanie bloku tekstu w prawo  
Shift+[<--]      Zaznaczanie bloku tekstu w lewo  
Shift+[Down Arrow]  Zaznaczanie bloku tekstu w dół (strzałka w  
                 dół)  
Shift+[Up Arrow]  Zaznaczanie bloku tekstu w górę (strzałka w  
                 górę)  
Alt+Backspace    Anuluj ostatnią operację (Undo)  
Ctrl+L           Powtórz przeszukiwanie (Repeat search)  
________________________________________________________________
 
 
Rozkazy ogólnego przeznaczenia:
________________________________________________________________
F1              Wyświetl pomoc - Help screen  
F2              Zapisz bieżący stan tekstu na dysk (Save)  
F3              Otwórz nowy plik (Open)  
F4              Uruchom i wykonaj program do pozycji wskazanej  
                kursorem  
F5              Powiększ (maximize) bieżące aktywne okno  
F6              Przejdź do następnego okna (next window)  
F7              Wykonaj program krok-po-kroku  
F8              Wykonaj program krok-po-kroku z pominięciem  
                śledzenia funkcji  
F9              Skompiluj i skonsoliduj program (Compile/Make)  
F10             Uaktywnij pasek głównego menu  
Shift+F1        Wyświetl spis treści Help - tzw. Help index  
Shift+F2        Wybierz rozkaz Arguments... z menu Run  
                (uruchamianie programu z parametrami w  
                DOS'owskim wierszu rozkazu)  
Ctrl+F1         Podpowiedzi kontekstowe (help topic search)  
Ctrl+F2         Wyzeruj bieżący program  
Ctrl+F5         Zmień pozycję aktywnego okna  
Ctrl+F7         Wyświetl okienko dialogowe "Add Watch"  
Ctrl+F8         Zaznacz punkt krytyczny (Toggle breakpoint)  
Ctrl+F9         Uruchom program (Run)
Ctrl+PgUp       Skocz na początek pliku  
Ctrl+PgDn       Skocz na koniec pliku  
Alt+F1          Pokaż poprzedni ekran Help  
Alt+F2          Zmniejsz okno  
Alt+F3          Zamknij aktywne okno  
Alt+F4          Dokonaj inspekcji (inspect)  
Alt+F5          Pokaż DOS'owski ekran roboczy (User screen)  
Alt+F7          Przejdź do poprzedniego błędu (previous error)  
Alt+F8          Przejdź do następnego błędu (next error)  
________________________________________________________________
LEKCJA 4. Jeszcze o IDE C++ .
 
_______________________________________________________________  
W trakcie tej lekcji:  
1. Dowiesz się więcej o menu i okienkach w środowisku IDE.  
2. Poznasz trochę technik "myszologicznych".
3. Napiszesz i uruchomisz swój drugi program.  
________________________________________________________________
 
 
W dolnej części ekranu jest podobny pasek do paska menu,  
niemniej ważny, choć o innym przeznaczeniu. Pasek ten jest to  
tzw. WIERSZ STATUSOWY (ang. Status Line). Jak wynika z nazwy w  
tym wierszu wyświetlane są informacje dotyczące bieżącego stanu  
(i bieżących możliwości) środowiska IDE. Zaryzykuję tezę, że  
często jeden prosty, własny eksperyment może być więcej wart niż
 
wiele stron opisów. Poeksperymentujmy zatem chwilę z wierszem  
statusowym.  
 
[???] NIE CHCE SIĘ URUCHOMIĆ ???  
________________________________________________________________
Jeśli przy starcie kompilatora C++ nastąpi komunikat:  
 
               System Message
          Disk is not ready in drive A
            [Retry]      [Cancel]  
 
(Komunikat systemu C++: Dyskietka w napędzie A nie gotowa do  
odczytu; Jeszcze raz? Zrezygnować?)  
 
to znaczy, że C++ nie może odtworzyć ostatniego ekranu  
roboczego, ponieważ nie udostępniłeś mu dyskietki z programami,  
nad którymi ostatnio pracowałeś.
________________________________________________________________
 
 
W wierszu statusowym wyjaśnione jest działanie klawiszy  
funkcyjnych F1, F2, itd. Mogą tam również pojawiać się  
krótkie napisy-wyjaśnienia dotyczące np. rozkazu wyróżnionego  
właśnie w menu. Powinien tam być napis:  
 
F1 Help  F2 Save  F3 Load  AltF9 Compile  F9 Make  F10 Menu  
 
znaczy to:  
 
[F1] - Pomoc  
[F2] - Zapamiętanie bieżącego pliku na dysku pod bieżącą nazwą  
       (nawet jeśli tą nazwą jest NONAME01.CPP, tzn. została nadana  
       automatycznie i znaczy - o ironio - "BEZNAZWY01.CPP") i w  
       bieżącym katalogu.  
[F3] - Załadowanie do okienka edycyjnego nowego pliku tekstowego
       (np. nowego programu).  
[Alt]-[F9] - Kompilacja w trybie "Compile".  
[F9] - Kompilacja w trybie "Make" (jednoczesnej kompilacji i  
       konsolidacji).
[F10] - Uaktywnienie głównego menu.  
 
 
JAK ZROBIĆ PORZĄDEK?  
 
W trakcie uruchamiania kompilator korzysta z plików  
zewnętrznych. C++ stara się być USER FRIENDLY (przyjazny wobec  
użytkownika) i odtworzyć taki stan ekranu, w jakim ostatnio  
przerwałeś pracę, co nie zawsze jednak jest korzystne. W wierszu
 
statusowym pojawiają się napisy informujące o tym (np:

Loading  Desktop File . . .

- ładuję plik zawierający konfigurację  ostatniego ekranu
roboczego...). Jeśli chcesz by na początku  
sesji z C++ ekran był "dziewiczo" czysty, powinieneś:  
 
* zmienić nazwę pliku [D:]\BORLANDC\BIN\TCDEF.DSK  
 
na dowolną inną, np. STARY.DSK lub STARY1.DSK, stosując  
polecenie systemu DOS RENAME. [D:] oznacza odpowiedni dla  
Twojego komputera dysk. C++ wystartuje wtedy z czystym ekranem i
 
utworzy nowy plik TCDEF.DSK.  
 
* Plików TCDEF nie należy usuwać. Kiedy nabierzesz trochę wprawy
 
pliki te znacznie przyspieszą i ułatwią Ci pracę z C++.  
 
Aby zamknąć zbędne okna możesz zastosować również rozkaz Close  
(ang. Close - zamknij) z menu Window (okna). Zwróć uwagę, że  
polecenie Close odnosi się do bieżącego okna wyróżnionego przy  
pomocy podwójnej ramki. Aby zamknąć bieżące okno, powinieneś:  
 
1. Nacisnąć klawisze [Alt]-[W]  
   Rozwinie się menu Windows.  
2. Wybrać z menu rozkaz Close - [C].  
 
Może pojawić się okienko z ostrzeżeniem:  
 
WARNING: A:\PIERWSZY.CPP not saved. Save?  
(UWAGA: plik A:\PIERWSZY.CPP nie zapisany na dysku. Zapisać ?).
 
[???] ZNIKNĄŁ PROGRAM ???
________________________________________________________________
C++ chce Cię uchronić przed utratą programu, ale uważaj! Jeśli  
odpowiesz Yes - Tak ([Y] lub [Enter]), to nowa wersja programu  
zostanie nadpisana na starą!
________________________________________________________________
 
[!!!] ZAMYKANIE OKIEN.  
________________________________________________________________
Możesz szybciej zamknąć okno naciskając kombinację klawiszy  
[Alt]-[F3].
________________________________________________________________
 
[!!!]UWAGA  
________________________________________________________________
Bądź ostrożny podejmując decyzję o zapisie wersji programu na  
dysk. Okienko z ostrzeżeniem pojawi się za każdym razem przed  
zamknięciem okna edycyjnego z tekstem programu. Jeśli przy  
zamykaniu okna nie pojawi się ostrzeżenie, to znaczy, że program
w tej wersji, którą widzisz na ekranie został już zapisany na  
dysk.
________________________________________________________________
 
 
A JEŚLI NIE CHCĘ ZAMYKAĆ OKIEN?
 
W porządku, nie musisz. W menu Window ([Alt]-[W]) masz do  
dyspozycji rozkaz Next (następne okno). Możesz go wybrać albo  
naciskając klawisz [N], albo przy pomocy klawiszy kursora. Każde
z okien na Twoim roboczym ekranie ma nazwę - nagłówek - np.  
NONAME00.CPP, PIERWSZY.CPP, ale nie tylko. Pierwsze dziesięć  
okien ma również swoje numery - podane blisko prawego - górnego  
rogu okna w nawiasach kwadratowych - np. [1], [2] itd.  
Posługując się tym rozkazem możesz przechodzić od okna do okna  
nie zamykając żadnego z okien. Spróbuj!
 
Jest jeszcze inny sposób przejścia od okna do okna. Jeśli chcesz
przejść do okna o numerze np. [1], [2], [5] itp. powinieneś  
nacisnąć kombinację klawiszy [Alt]-[1], [Alt]-[5] itp..  
Niestety, tylko pierwsze 9 okien ma swoje numerki.  
 
Możesz korzystać z listy okien (Window | List) lub klawisza  
funkcyjnego [F6].
 
ACTIVE WINDOW - AKTYWNE OKNO.  
________________________________________________________________
Na ekranie może się znajdować jednocześnie wiele okien, ale w  
danym momencie tylko jedno z nich może być AKTYWNE. Aktywne  
okno, to to, w którym miga kursor i w którym aktualnie  
pracujesz. Aktywne okno jest dodatkowo wyróżnione podwójną  
ramką.  
________________________________________________________________
 
 
[???] Robi "na szaro"?  
________________________________________________________________
 
Zwróć uwagę, że dopóki bieżącym aktywnym oknem jest okienko  
komunikatów (Message - to w dolnej części ekranu), nie możesz  
np. powtórzyć kompilacji programu. Rozkazy Compile | Compile i  
Run | Run będą "zrobione na szaro" (ang. grayed out) - czyli  
nieaktywne. Najpierw trzeba przejść do okna edycji tekstu  
programu (np. poprzez kliknięcie myszką).  
________________________________________________________________
 
 
Rozwiń menu Options (opcje).
Możesz to zrobić na wiele sposobów. Najszybciej chyba naciskając:

[Alt]+


Rozwinęło się menu,  udostępniając następującą listę poleceń:  
 
FULL MENUs - Pełne Menu ("s" oznacza, że chodzi o "te" menu w  
             liczbie mnogiej, a nie o pojedyncze menu).  
COMPILER -   Kompilator.  
MAKE... -    dosł. "ZRÓB", dotyczy tworzenia "projektów" (zwróć  
             uwagę na wielokropek [...]).  
DIRECTORIES... - KATALOGI (znów wielokropek !).  
ENVIRONMENT... - OTOCZENIE lub inaczej ŚRODOWISKO.  
SAVE -           ZAPAMIĘTAJ     (UWAGA: To jest zupełnie inne SAVE niż
                 w menu  File. Nie wolno mylić tych poleceń.
                 Pomyłka grozi utratą tekstu programu!).  
 
Popatrz na linię statusową. Jeśli będziesz poruszać się po menu  
Option, podświetlając kolejne rozkazy, w wierszu statusowym  
będzie wyświetlany krótki opis działania wskazanego rozkazu. I  
tak, powinieneś zobaczyć kolejno następujące napisy:  
 
Full Menus [Off/On]- Use or don't use full set of menu commands.

(Stosuj lub nie stosuj pełnego zestawu rozkazów w menu -  
domyślnie przyjmowane jest Off/Nie).  
 
Compiler - Set compiler defaults for code generation, error  
messages and names.  

(Ustaw domyślne parametry pracy kompilatora dotyczące  
generowania kodu programu, komunikatów o błędach i nazw).  
 
Make... - Set condition for project-makes.  
(Ustawianie warunków do tworzenia projektu).  
 
Directories... - Set path for compile, link and executable  
files.  
(Wybierz katalogi i ustaw ścieżki dostępu dla kompilacji,  
konsolidacji i WSKAŻ MIEJSCE - GDZIE ZAPISAĆ PLIK TYPU *.EXE po  
kompilacji).  
 
Environment... - Make environment wide settings (eg, mouse  
settings).  
(Ustawienie parametrów rozszerzonego otoczenia, np. parametrów  
pracy myszki).  
 
Save - Save all the settings you've made in the Options menu.  

(Powoduje zapamiętanie na dysku wszystkich zmian parametrów  
roboczych IDE, które ustawiłeś, korzystając z rozkazów  
dostępnych za pośrednictwem menu Options.).  

Ten rozkaz pozwala Ci ustawić konfigurację IDE "raz na zawsze".  
 
Przygotujmy się do powtórzenia kompilacji programu PIERWSZY.CPP.
 
Jeśli masz na ekranie rozwinięte menu Options, wybierz z menu  
polecenie Directories... .  
 
KOMPILACJA ZE WSKAZANIEM ADERSU.
 
1. Wskaż w menu polecenie Directories i naciśnij [Enter].
Po poleceniu umieszczony jest wielokropek. Znaczy to, że rozkaz  
nie zostanie wykonany, zanim komputer nie uzyska od Ciebie  
pewnych dodatkowych informacji. Wiesz już, że praktycznie  
oznacza to dla Ciebie konieczność "wypełnienia" okienka  
dialogowego. Po wybraniu polecenia Directories ukazało się  
okienko dialogowe już "wstępnie wypełnione". Takie "wstępne  
wypełnienie" okienka daje Ci pewne dodatkowe informacje. Wynika  
z niego mianowicie JAKIE PARAMETRY SĄ PRZYJMOWANE DOMYŚLNIE  
(default).  
 
W okienku dialogowym masz trzy okienka tekstowe:  
 
* Include Directories (Katalog zawierający pliki nagłówkowe, np.
 
STDIO.H, CONIO.H, GRAPHICS.H itp. dołączane do programów).  
 
* Library Directories (Katalog zawierający gotowe biblioteki,  
zawarte w plikach typu *.LIB,).  
 
* Output Directory (Katalog wyjściowy, w którym po kompilacji  
będą umieszczane Twoje programy w wersji *.EXE).  
 
Pierwsze dwa zostawimy w spokoju.
 
2. Naciśnij dwukrotnie klawisz [Tab]. Kursor wskazuje teraz  
okienko tekstowe Output Directory.
 
3. Wpisz do okienka tekstowego Output Directory:
A:\ lub C:\C-BELFER
 
znaczy to, że od teraz po wykonaniu kompilacji i utworzeniu  
pliku wykonywalnego typu *.EXE, plik taki zostanie zapisany we  
wskazanym katalogu i na wskazanym dysku/dyskietce.
 
UWAGA:
________________________________________________________________
* Jeśli zainstalowałeś zawartość dyskietki na dysku i wolisz  
posługiwać się własnym katalogiem roboczym - wpisz tam  
odpowiednią ścieżkę dostępu - np. C:\C-BELFER. Jeśli Twój  
katalog zagnieżdżony jest głębiej (np. w przypadku użytkowników  
sieci Novell) - podaj pełną ścieżkę dostępu - np.:  
F:\USERS\ADAM\C-BELFER  
* Wszędzie, gdzie w treści książki odwołuję się do dyskietki A:  
możesz konsekwentnie po zainstalowaniu stosować odpowiedni  
katalog na dysku stałym, bądź na dysku sieciowym.
________________________________________________________________
 
4. Naciśnij [Enter].
 
Spróbuj teraz, znaną z poprzedniej lekcji metodą, wczytać do  
okienka edytora Twój pierwszy program. Musisz wykonać  
następujące czynności:  
 
1. Włóż do napędu A: dyskietkę z programem PIERWSZY.CPP (jeśli  
jeszcze jej tam nie ma).
2. Rozwiń menu File, naciskając kombinację klawiszy [Alt]-[F].  
3. Wybierz z menu rozkaz Open, naciskając klawisz
  • .  

Pojawi się znane Ci okienko dialogowe. Zwróć uwagę na wiersz  
statusowy. Napis:  
 
Enter directory path and file mask  
znaczy:  
Wpisz ścieżkę dostępu do katalogu i "wzorzec" nazwy pliku.  
 
Użyte słowo "wzorzec" oznacza, że wolno Ci wpisać do okienka  
tekstowego także nazwy wieloznaczne, zawierające znaki "*" i  
"?", np.:  
 
*.C  
A:\???.C  
D:\BORLANDC\SOURCE\P*.*  
 
itp. (Spróbuj!, zawsze możesz się wycofać lub zmienić zdanie,  
posługując się klawiszami [BackSpace], [Shift], [Tab] i [Esc].).
 
Klawisz [Tab] umożliwia Ci skok od okienka do okienka "do  
przodu", a [Shift]-[Tab] - "do tyłu". Zgodnie z nazwą (ang.  
ESCape - uciekać), klawisz [Esc] pozwala Ci wycofać się z  
niewygodnych sytuacji - np. zamknąć okienko dialogowe lub zwinąć
rozwinięte menu bez żadnej akcji.
 
Jeśli wpiszesz wzorzec nazwy, to w okienku z listą zobaczysz  
wszystkie pliki wybrane z podanego dysku i z podanego katalogu  
według zadanego wzorca. Aby wybrać plik z listy należy klawiszem
 
[Tab] przejść do okienka z listą, klawiszami kursora wskazać  
potrzebny plik i nacisnąć [Enter].  
 
4. Wpisz do okienka tekstowego  
A:\PIERWSZY.CPP  
5. Naciśnij [Enter].  
 
[!!!]FAST START - SZYBKI START.  
________________________________________________________________
Jeśli chcesz by C++ automatycznie wczytał Twój program do  
okienka edytora, to możesz zadać nazwę pliku z tekstem programu  
jako parametr w wierszu polecenia, uruchamiając C++ np. tak:  
 
BC A:\PIERWSZY.CPP  
 
Jeśli korzystasz z programu Norton Commander, to możesz dodać do
 
pliku NC.EXT następujący wiersz:  
 
C: TC !.!  
cpp: bc !.!  
 
wówczas wystarczy tylko wskazać odpowiedni plik typu *.C lub  
.CPP z tekstem programu i nacisnąć [Enter].  
________________________________________________________________
 
Kompilatory Borlanda mogą w różnych wersjach nazywać się różnie:
 
TC.EXE, BC.EXE, BCW.EXE (dla Windows), itp.. Sprawdź swoją  
wersję kompilatora i wpisz właściwe nazwy dodając ewentualnie  
ścieżki dostępu - np.:  
 
C:      D:\BORLANDC\BIN\BC !.!  
CPP:    WIN C:\BORLANDC\BIN\BCW !.!
 
[!!!]UWAGA  
________________________________________________________________
Rozkazy uruchamiające kompilator mogą być złożone nawet z 4  
parametrów - np.:  
 
WIN /3 C:\BORLANDC\BIN\BCW C:\C-BELFER\PROGRAMY\P027.CPP  
 
spowoduje:  
* uruchomienie Windows w trybie rozszerzonym 386  
* uruchomienie kompilatora w wersji dla Windows - BCW.EXE  
* załadowanie pliku z programem - P27.CPP z wskazanego katalogu
________________________________________________________________
 

[P002.CPP]
 
Dokonaj w swoim programie następujących zmian:  
________________________________________________________________
#include (stdio.h>  
#include <conio>  
 
main()  
{  
  printf("\n");
  printf("Autor: np. Antoni Kowalski\n");  
  printf("program: PIERWSZY.CPP \n - wersja II \n");  
  getch();  
}
________________________________________________________________

******Uwaga: Jeśli pracujesz w Windows - Z TEGO MIEJSCA********

przy pomocy rozkazów Edit | Copy
możesz przenieść program do okna kompilatora
poprzez schowek Windows (Clipboard).
W oknie kompilatora należy:
1. Otworzyć nowe okno edytora tekstowego:
File | New
2. Wstawić plik ze schowka:
Edit | Paste
--- To okno (AM-Edit) i całego BELFRA możesz w tym czasie zredukować
--- Do ikonki.------------------------------------------------------
********************************************************************
 
Dzięki dodaniu do tekstu programu funkcji getch(), program nie  
powinien już tak szybko mignąć na ekranie i zniknąć. Zatrzyma  
się teraz i zaczeka na przyciśnięcie klawisza. Funkcja getch(),  
działa podobnie do:  
 
10 IF INKEY$="" GOTO 10  
 
w Basicu lub Readln w Pascalu.  
 
Nazwa pochodzi od GET CHaracter (POBIERZ ZNak, z klawiatury).
 
Skompiluj program PIERWSZY.CPP. Aby to zrobić, powinieneś:  
 
1. Rozwinąć menu Compile - [Alt]-[C].  
2. Wybrać z menu rozkaz Compile - [C].  
 
Ostrzeżenie WARNING na razie ignorujemy.  
 
Wykonaj kompilację programu powtórnie przy pomocy rozkazu Run z  
menu Run. Naciśnij kolejno klawisze:  
 
[Alt]-[R], [R]  
lub  
[Alt]-[R], [Enter]  
 
Ten sam efekt uzyskasz naciskając kombinację klawiszy  
[Ctrl]-[F9].
 
Uruchom program powtórnie naciskając kombinację klawiszy  
[Alt]-[R], [R]. Zwróć uwagę, że teraz kompilacja nastąpi  
znacznie szybciej. Tak naprawdę C++ stwierdzi tylko, że od  
ostatniej kompilacji nie dokonano żadnych zmian w programie i  
odstąpi od zbędnej kompilacji. Takie właśnie znaczenie ma  
komunikat "Checking dependences" (sprawdzam zależności, który  
mignie w okienku kompilacji. Po korekcie programu napisy  
wyglądają znacznie przyzwoiciej, prawda? Po obejrzeniu napisów  
naciśnij [Enter].
 
Możemy teraz wyjść z programu C++. Rozwiń menu File naciskając  
klawisze [Alt]-[F] i wybierz z menu rozkaz Quit. Pojawi się  
okienko z ostrzeżeniem:  
 
WARNING: A:\PIERWSZY.CPP not saved. Save?  
(UWAGA: plik A:\PIERWSZY.CPP nie zapisany na dysku. Zapisać ?).
 
W ten sposób C++ ZNOWU chce Cię uchronić przed utratą programu,  
ale uważaj! Jeśli odpowiesz Tak ([Y] lub [Enter]), to nowa  
wersja programu zostanie nadpisana na starą! Jeśli odpowiesz Nie
 
[N]

na dysku pozostanie stara wersja programu a nowa  
zniknie.
 
Po wyjściu z C++ znajdziesz się w jego katalogu roboczym, lub w  
tym katalogu bieżącym, z którego wydałeś rozkaz uruchomienia  
kompilatora C++. Aby uruchomić swój program musisz zatem wydać
 
Gothic jest stary i ograniczony. Nie zajmuję się już moddingiem tej gry i obchodzi mnie ona tyle, co zeszłoroczny śnieg!

Retsked

Retsked

Użytkownicy
Jam jest 444
posty1533
Propsy61
  • Użytkownicy
  • Jam jest 444
Skąd to skopiowałeś?
 

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
tekst wygląda na dziesięcioletni albo starszy. lepiej poszukać nowszych źródeł.
 

Lavius

Lavius

Użytkownicy
posty96
  • Użytkownicy
No faktycznie - nazbyt świeże to nie jest... Poza tym bardzo mało czytelne. Z tekstów godniejszych polecenia to "Symfonia C++" i "Od zera do gier kodera".

Na nich opierałem moje początkowe wyczyny z C++, teraz opieram się na własnych eksperymentach i wyszukiwaniu ciekawych funkcji które mogą się kiedyś przydać - a co! xDD
 

DzikiBen

DzikiBen

Użytkownicy
Niewielki Mistrz Gothica
posty638
Propsy602
ProfesjaSkrypter
  • Użytkownicy
  • Niewielki Mistrz Gothica
Jeśli kopiujesz wyłączaj emoty, ponieważ wcinają się w poszczególne przykładny :) .
 

TheSnajper

TheSnajper

Użytkownicy
posty51
  • Użytkownicy
Tam jest tego full więcej...fakt że to ma parenaście lat:/  Niektóre z tych sam napisałem jak chodźby ten początek a reszte tłumaczyłem...jeżeli ktoś chce wszystkie 48 lekcji niech pisze na gg:605529 a dam mu linka do ściągnięcia.
 
Gothic jest stary i ograniczony. Nie zajmuję się już moddingiem tej gry i obchodzi mnie ona tyle, co zeszłoroczny śnieg!


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry