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]. [S] 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]+[O] 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 [O]. 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 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ć następujący rozkaz: A:\PIERWSZY.EXE lub krócej A:\PIERWSZY a jeśli chcesz się przekonać, czy Twój program jest tam, gdzie powinien być, możesz go zobaczyć. Napisz rozkaz DIR A:\ lub DIR A:\*.EXE Aby upewnić się całkowicie, że to właśnie ten program, zwróć uwagę na datę i czas utworzenia pliku. Jeśli masz prawidłowo ustawiony zegar w swoim komputerze, data powinna być dzisiejsza a czas - kilka minut temu. Jeśli coś jest nie tak, powinieneś przy pomocy rozkazów systemu DOS: DATE i TIME zrobić porządek w swoim systemie. O takich drobiazgach warto pamiętać. Pozwoli Ci to w przyszłości odróżnić nowsze i starsze wersje programów, uniknąć pomyłek i zaoszczędzić wiele pracy. [Z] 1. - Propozycja zadania - ćwiczenia do samodzielnego wykonania. ------------------------------------------------------------------- Spróbuj odszukać plik żródłowy .CPP i plik wynikowy .EXE wychodząc "na chwilę" z IDE przy pomocy rozkazu File | DOS Shell. ------------------------------------------------------------------- A teraz zajrzyjmy do środka do pliku PIERWSZY.EXE. Jeśli korzystasz z programu Norton Commander, to masz do dyspozycji opcje [F3] - View (przeglądanie) i [F4] - Edit (edycja). Jeśli nie korzystasz z NC, musisz wydać następujący rozkaz: TYPE A:\PIERWSZY.EXE | C:\DOS\MORE lub C:\DOS\EDIT A:\PIERWSZY.EXE Jak widzisz na ekranie, napisy zawarte w programie pozostały czytelne, ale to co widać dookoła nie wygląda najlepiej. Na podstawie tego co widzisz, można (na razie ostrożnie) wysnuć wniosek, że ani Viewer (przeglądarka), ani Edytor, które doskonale spisują się przy obróbce plików tekstowych, nie nadają się do analizy i obróbki programów w wersji *.EXE. Narzędziami, które będziemy musieli stosować, mogą być programy typu DEBUGGER, PROFILER, LINKER (konsolidator), kompilator i in.. Mam nadzieję, że czujesz się w środowisku IDE już trochę swobodniej, a więc bierzemy się za drugi program. __________________________________________________________ EOF