LEKCJA8.TXT

(28 KB) Pobierz
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...
Zgłoś jeśli naruszono regulamin