LEKCJA 8. Jakich s��w kluczowych u�ywa C++. W trakcie tej lekcji dowiesz si�: * Jakie znaczenie maj� s�owa kluczowe j�zyka C++. * Jakie jeszcze dziwne s�owa mog� pojawia� si� w programach w pisanych C++. * Troch� wi�cej o wczytywaniu i wyprowadzaniu danych. * Co to jest i do czego s�u�y zmienna. _______________________________________________________________ Ka�dy j�zyk musi operowa� tzw. s�ownikiem - zestawem s��w zrozumia�ych w danym j�zyku. Jak wiesz z do�wiadczenia, komputer jest pedantem i wymaga dodatkowo (my, ludzie, tego nie wymagamy), aby znaczenie s��w by�o absolutnie jednoznaczne i precyzyjne. Aluzje, kalambury i zabawne niedom�wienia s� na razie w dialogu z komputerem niedopuszczalne. Pami�ci asocjatywne (oparte na skojarzeniach), sieci neuronowe (neural networks), tworzone bardzo cz�sto w�a�nie przy pomocy C++ - systemy expertowe, - systemy z tolerancj� b��d�w - np. OCR - systemy optycznego rozpoznawania pisma, - "rozmyta" arytmetyka i logika (fuzzy math) - logika wi�kszo�ciowa i mniejszo�ciowa - algorytmy genetyczne (genetic algorithms) i inne pomys�y matematyk�w oraz informatyk�w rozpocz�y ju� proces "humanizowania" komputerowego my�lenia. Powsta�a nawet specjalna "mutacja" neural C i neural C++, ale to temat na oddzieln� ksi��k�. Na razie traktujemy nasz komputer jako automat cyfrowy pozbawiony ca�kowicie wyobra�ni i poczucia humoru, a j�zyk C++, jako �rodek porozumiewania si� z tym "ponurakiem". Podobnie do s��w j�zyka naturalnego (rzeczownik�w, czasownik�w) i s�owa j�zyka programowania mo�na podzieli� na kilka grup r�ni�cych si� przeznaczeniem. Takie niby - s�owa czasem nazywa si� r�wnie� tokenami lub JEDNOSTKAMI LEKSYKALNYMI (leksykon - inaczej s�ownik) a sposoby tworzenia wyra�e� (expressions) nazywane s� syntaktyk� j�zyka (st�d bierze si� typowy komunikat o b��dach "Syntax Error" - b��d syntaktyczny, czyli niew�a�ciwa sk�adnia). S�ownik j�zyka C++ sk�ada si� z: * S��w kluczowych * Identyfikator�w * Sta�ych liczbowych i znakowych * Sta�ych tekstowych (�a�cuch�w znak�w - napis�w) * Operator�w (umownych znak�w operacji) * Znak�w interpunkcyjnych * Odst�p�w UWAGA: Zar�wno pojedyncza spacja czy ci�g spacji, tabulator poziomy, znak nowej linii, jak i komentarz dowolnej d�ugo�ci (!) s� traktowane przez kompilator jak pojedyncza spacja. Od zarania dziej�w informatyki tw�rcy uniwersalnych j�zyk�w programowania starali si� upodobni� s�owa tych j�zyk�w do zrozumia�ych dla cz�owieka s��w j�zyka naturalnego - niestety - angielskiego (swoj� drog�, mo�e to i lepiej, �e C++ nie wymy�lili Japo�czycy...). Najwa�niejsz� cz�ci� s�ownika s� tzw. S�OWA KLUCZOWE (keywords). S�OWA KLUCZOWE w C++. Oto pe�na lista s��w kluczowych Turbo C++ v 1.0 z kr�tkim wyja�nieniem ich znaczenia. Zaczynam od listy podstawowej wersji kompilatora, poniewa� rozwa�ania o niuansach dotycz�cych kilku specyficznych s��w kluczowych (np. friend, template) pozostawiam sobie na p�niej. Kr�tkie wyja�nienie - jak to kr�tkie wyja�nienie - pewnie nie wyja�ni wszystkiego od razu, ale na pewno pomo�e zrozumie� znaczenie wi�kszo�ci s��w kluczowych. [S] Keywords - s�owa kluczowe. asm Pozwala wstawi� kod w ASEMBLERZE bezpo�rednio do programu napisanego w C lub C++. auto - zmienna lokalna. Przyjmowane domy�lnie. break - przerwij. case - w przypadku. cdecl - spec. konwencja nazewnictwa/przekazania parametr�w zgodna ze standardem j�z. C. char - znak, typ zmiennej - pojedynczy bajt. class - klasa. const - sta�a, konstanta. continue - kontynuuj. default - przyjmij domy�lnie. delete - skasuj obiekt. do - wykonaj. double - podw�jna (d�ugo��/precyzja). else - w przeciwnym wypadku. enum - wylicz kolejno. _export - dotyczy tylko OS/2, ignorowany. extern - zewn�trzna. far - dalekie. Wska�nik - podw�jne s�owo (w zakresie do 1 MB). float - zmiennoprzecinkowy, rzeczywisty. for - dla (wskazanie zmiennej roboczej w p�tli). friend - zaprzyja�niona funkcja z dost�pem do prywatnych i ����������chronionych cz�onk�w danej klasy. goto - skocz do (skok bezwarunkowy). huge - daleki, podobnie do far. if - je�eli (pod warunkiem, �e...). inline - funkcja z rozwini�tym wstawionym kodem int - typ zmiennej, liczba ca�kowita, dwa bajty interrupt - przerwanie. _loadds - podobne do huge, ustawia rejestr DS (Data Segment). long - d�ugi. near - bliski, wska�nik o d�. 1 s�owa. Obszar max. 64 K. new - nowy, utw�rz nowy obiekt. operator - operator, okre�la nowy spos�b dzia�ania operatora. pascal - deklar. funkcji zgodnej ze standardem przekazywania parametr�w przyj�tym w Pascalu. private - prywatna, wewn�trzna, niedost�pna z zewn�trz. protected - chroniona, cz�� danych i funkcji, do kt�rych dost�p. jest ograniczony. public - publiczna, dost�pna z zewn�trz. register - zmienn� przechwaj nie w pami�ci a w rejestrze CPU. return - powr�t, zwrot warto�ci. _saveregs - save registers, zachowaj zawarto�� rejestr�w a nast�pnie odtw�rz rejestry przed powrotem. _seg - segment. short - kr�tka (ma�a ilo�� cyfr). signed - ze znakiem (+/-). unsigned - bez znaku (+/-). sizeof - podaj wielko��. static - statyczna. struct - struktura. switch - prze��cz. this - ten, wstazanie bie��cego, w�asnego obiektu (tylko C++). typedef - definicja typu. union - unia, zmienna wariantowa. virtual - wirtualna, pozorna. void - nieokre�lona. volatile - ulotna. while - dop�ki. Panuje mnienanie, �e j�zyk C++ pos�uguje si� stosunkowo skromnym zestawem s��w kluczowych. To prawda, ale nie ca�a prawda o j�zyku C++. Zauwa�y�e� zapewne, �e nie ma tu: define, include, printf i innych znanych Ci ju� s��w. To po prostu jeszcze nie ca�y s�ownik j�zyka. Zdaj�c sobie spraw� z nieprecyzyjno�ci tego por�wnania mo�esz przyj��, �e to co� na kszta�t listy czasownik�w. A s� przecie� jeszcze i inne s�owa - o innej roli i przeznaczeniu. [???]�A GDZIE SI� PODZIA�Y REJESTRY ??? Nazwy rejestr�w mikroprocesora Intel 80X86: _AX�������_AL�������_AH�������_SI�������_CS _BX�������_BL�������_BH�������_SP�������_DS _CX�������_CL�������_CH�������_BP�������_ES _DX�������_DL�������_DH�������_DI�������_SS _FLAGS Takie oznaczenia wynikaj� z architektury konkretnej rodziny mikroprocesor�w, nie mog� stanowi� uniwersalnego standardu j�zyka C++. Efekt dostosowania C++ do IBM PC to np. odnosz�ce si� do modeli pami�ci s�owa kluczowe near, far i huge. Wym�g zgodno�ci ze standardem ANSI C spowodowa�, �e w C++ nazwy rejestr�w pozostaj� nazwami o zastrze�onym znaczeniu, ale nazywaj� si� PSEUDOZMIENNYMI REJESTROWYMI (ang.: Register Pseudovariables). Pr�ba u�ycia s�owa o zastrze�onym znaczeniu w jakiejkolwiek innej roli (np. jako nazwa Twojej zmiennej) mo�e spowodowa� wadliwe dzia�anie programu lub uniemo�liwi� kompilacj�. Unikaj przypadkowego zastosowania s��w o zastrze�onym znaczeniu! [???] A SK�D MAM WIEDZIEC ? List� nazw, kt�re maj� ju� nadane �ci�le okre�lone znaczenie w C++ znajdziesz w Help. Dost�p do spisu uzyskasz przez: * Rozwini�cie menu Help [Alt]-[H]; * Wybranie z menu Help rozkazu Index (spis). Wr�ci� do edytora IDE C++ mo�esz przez [Esc]. S�OWA TYPOWE DLA PROGRAM�W OBIEKTOWYCH. W por�wnaniu z klasycznym j�zykiem C (wobec kt�rego C++ jest nadzbiorem - ang. superset), w nowoczesnych programach obiektowych i zdarzeniowych pisanych w C++ mog� pojawia� si� i inne s�owa. Przyjrzyjmy si� na troch� inn� technik� programowania - bardziej charakterystyczn� dla C++. Procesy wprowadzania i wyprowadzania danych do- i z- komputera nazywaj� si� Input i Output - w skr�cie I/O (lub bardziej swojsko We/Wy). Obs�uga We/Wy komputera to sa�a obszerna wiedza, na pocz�tek b�dzie nam jednak potrzebne tylko kilka najbardziej istotnych informacji. PROBLEM �WEJ�CIA/WYJ�CIA W PROGRAMACH - troch� bardziej og�lnie. Operacje wej�cia i wyj�cia s� zwykle kontrolowane przez pracuj�cy w�a�nie program. Je�li uruchomi�e� program, kt�ry nie korzysta z klawiatury i nie oczekuje na wprowadzenie przez u�ytkownika �adnych informacji - mo�esz naciska� dowolne klawisze - program i tak ma to w nosie. Podobnie, je�li w programie nie przewidziano wykorzystania drukarki, cho�by� "wy�azi� ze sk�ry", �adne informacje nie zostan� przes�ane do drukarki, dla programu i dla u�ytkownika drukarka pozostanie niedost�pna. Aby programy mog�y zapanowa� nad Wej�ciem i Wyj�ciem informacji, wszystkie j�zyki programowania musz� zawiera� specjalne rozkazy przeznaczone do obs�ugi Wej�cia/Wyj�cia (ang. Input/Output commands, lub I/O instructions). Bez umiej�tno�ci obs�ugi We/Wy, czyli bez mo�liwo�ci porozumiewania si� ze �wiatem zewn�trznym psu na bud� zda�by si� ka�dy j�zyk programowania. Ka�dy program musi w wi�kszym, b�d� mniejszym stopniu pobiera� informacje ze �wiata zewn�trznego do komputera i wysy�a� informacje z komputera na zewn�trz. Podobnie, jak wszystkie uniwersalne j�zyki programowania - j�zyk C++ zawiera pewn� ilo�� rozkaz�w przeznaczonych do zarz�dzania obs�ug� wej�cia i wyj�cia. Dla przyk�adu, mo�emy w j�zyku C++ zastosowa� OBIEKT cout obs�uguj�cy strumie� danych wyj�ciowych. Obiekt cout (skonstruowany przez producenta i zdefiniowany w pliku nag��wkowym IOSTREAM.H) pozwala programi�cie przes�a� dane tekstowe i/lub numeryczne do strumienia wyj�ciwego i umie�ci� tekst na ekranie monitora. Wczytaj plik �r�d�owy z programem COUT1.CPP lub wpisz samodzielnie nast�puj�cy program przyk�adowy. Progra...
lazarusp22