Kurs C++ #2
Kurs C++ #2
|========== #02 ==========|
+-------------------------+
| K U R S C + + |
+-------------------------+
z m i e n n e
...czyli autor pokazuje, że komputer to tylko duży kalkulator.
Samo wypisywanie na ekranie z góry ustalonych tekstów nie ma najmniejszego sensu. Prawdziwe programy komputerowe zajmują się przetwarzaniem danych (czy to tekstowych, czy matematycznych, czy nawet graficznych). Jednak aby przetwarzać dane musimy je gdzieś zapisać. I właśnie do tego posłużą nam zmienne.
Co to jest zmienna?
Zmienna jest to fragment pamięci zarezerwowany na dane. Zmienne mają określony typ, np. int lub float. Naukę o zmiennych zaczniemy od typów prostych: całkowitoliczbowych oraz zmiennoprzecinkowych.
Typy całkowitoliczbowe
Pamięć w komputerze składa się z pojedynczych bitów, które są zorganizowane w bajty (1 bajt = 8 bitów). Raczej nie można zarezerwować mniej niż jeden bajt pamięci (a nawet gdyby - to po co? Jeszcze kilka lat temu liczyły się pojedyncze bity pamięci, ale dziś, przy standardowej pamięci 512 MB koment_new('Nawet dziś 512MB wymaga nienajgorszej kieszeni.','WRIM',200) - czyli 4294967296 bitów! - nie ma to sensu). Zmienne mają różne rozmiary - od jednego do ośmiu bajtów (dziesięć w przypadku typu long double). Zaczniemy od poznania typów całkowitych. Typów tych jest kilka i różnią się one wielkością, a co za tym idzie - również zakresem. Ponadto każdy typ całkowitoliczbowy występuje w dwóch wersjach - ze znakiem (signed) oraz bez znaku (unsigned). Zmienne w programie deklarujemy w następujący sposób:
signed int x; // deklaracja zmiennej x ze znakiem
unsigned short zmienna1; // deklaracja zmiennej zmienna1 bez znaku
Nazwa zmiennej może zawierać znaki (ale nie polskie!), liczby oraz znak podkreślenia (_), jednak nazwa zmiennej nie może zacząć się od liczby. Jeśli chodzi o nazwy zmiennych, nie powinno się równieź stosować zmiennych zaczynających sie od dwóch znaków podkreślenia (__x) ani od znaku podkreślenia a po nim dużej litery (_Xxx). Nie spowoduje to żadnego błędu kompilacji, jednak te nazwy zmiennych są zarezerwowane przez kompilator, więc przez przypadek można przesłonić zmienną wewnętrzną kompilatora, co może prowadzić do nieznanych błędów, czasem w zupełnie idiotycznych miejscach programu. Zmienne można używać w bardzo prosty sposób:
x = 2; // przypisz 2 do zmiennej x (ustaw wartość x na 2)
zmienna1 = x; // przypisz watość zmiennej x do zmiennej zmienna1
unsigned short z = 10; // zadeklaruj zmienną z i przypisz jej wartość 10
x = z - 10 * zmienna1; // przypisz do x wartość wyrażenia po lewej stronie (zachowuje kolejność działań)
if (x > z) ... // czy x jest większe od z? (instrukcja if (...) w części piątej kursu)
cout > z; // wczytanie z klawiatury wartości zmiennej z
Jak widać, nie jest trudno używać zmiennych. Pojawiły się tu jednak nowe zagadnienia. Może po kolei:
Operator przypisania (=) - zastępuje zawartość zmiennej po lewej stronie wartością wyrażenia po prawej stronie. Ważne jest, że po lewej stronie może stać jedynie zmienna. Nie jest więc możliwe przypisanie:
x + 5 = z; // BŁĄD!
Operatory arytmetyczne - C++ posiada podstawowe operatory arytmetyczne, a są to:
+ - dodawanie
- - odejmowanie
* - mnożenie
/ - dzielenie
% - reszta z dzielenia całkowitego (modulo)
Za pomocą tych pięciu operatorów możemy bez problemu obliczyć dowolne wyrażenie. C++ zachowuje kolejność działań, więc słynne działanie 2+2*2 da jak najbardziej prawidłowy wynik.
Operatory porównania - służą one do zwracania wartości logicznych - prawda lub fałsz. Jeśli wyrażenie jest prawdziwe, to zwracana jest wartość 1, natomiast gdy wyrażenie jest fałszywe, zwracaną wartością jest 0. W rzeczywistości C++ interpretuje każdą wartość różną od zera jako prawdę, a wartość 0 jest zawsze fałszem. Wobec tego zmienna x posiada dwie wartości - rzeczywistą (przypisaną jej) oraz logiczną (prawda lub fałsz). Istnieje sześć operatorów porównania:
> - większy od
< - mniejszy od
>= - większy bądź równy
x && z > x; powoduje ukrytą konwersję danych wprowadzanych w postaci tekstu na wartość liczbową; podobnie jest z obiektem cout. Możliwe jest również "sklejanie" danych wyjściowych (lub wejściowych), jak to pokazano na przykładzie obiektu cout. Skleając dane wejściowe, możemy od razu poprosić o podanie np. pięciu liczb.
Typy zmiennoprzecinkowe
Pewnie zdziwi was ta dziwna nazwa typu liczbowego, ale są to po prostu liczby rzeczywiste - ich nazwa pochodzi od reprezentacji danych w pamięci komputera. Tutaj również mamy kilka typów rzeczywistych, a konkretnie trzy. W typach zmiennoprzecinkowych nie ma rozróżnienia między liczbami bez znaku i ze znakiem. Sposób deklaracji i operacje na liczbach rzeczywistych wyglądają podobnie, jak w typach całkowitych. Jedyną różnicą jest część ułamkowa, którą wpisuje się po kropce. Powtarzam - po kropce, a nie po przecinku! Na liczbach rzeczywistych działają również wszystkie operatory arytmetyczne (poza % - operatorem modulo) i operatory porównania.
float f = 12.5;
f = f * 3 - 2;
bool b = f == 32;
cout
Wyszukiwarka
Podobne podstrony:
k cplk cpl2k cpl?k cplk cpl1k cpl?k cpl?k cplr08 cpl t (3)t p cplk cpl0k cpl0k cplk cplk cpl1k cplawięcej podobnych podstron