Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych Autor artykułu: mgr Jerzy Wałaszek |
©2014 mgr
Jerzy Wałaszek
|
Zmienne
Zwykle chcemy przetwarzać w programie pewne dane. Do ich przechowywania
służą zmienne (ang. variables). Zmienna jest
fragmentem pamięci komputera, w którym program przechowuje określoną
informację. Przed pierwszym użyciem zmiennej musimy ją zadeklarować, czyli
określić rodzaj przechowywanej w niej informacji oraz nazwę, poprzez którą
będziemy się odwoływali w programie do tej informacji. Deklaracja zmiennej w
języku C++ jest następująca:
typ_danych nazwa_zmiennej;
Przykłady deklaracji zmiennych:
int a; // zmienna a jest zmienną U2 int a,b,c,d; // w jednej definicji można umieścić kilka zmiennych unsigned int x1,x2,wynik; // zmienne NBC
Często informacja jest wprowadzana do zmiennych z klawiatury komputera. W ten sposób użytkownik może podać dane, które komputer następnie przetworzy w programie. Odczytu danych z klawiatury dokonujemy w języku C++ przy pomocy strumienia cin (ang. console input – wejście konsoli). Składnia jest następująca
cin >> nazwa_zmiennej;
W jednym rozkazie można odczytywać informacje do kilku różnych zmiennych:
cin >> a >> b >> c; // Odczyt kolejno do zmiennej a, b i c
|
|||||||
Operator przypisania
Do przetwarzania danych w programie C++ używany jest operator przypisania
(ang. assignement operator). Posiada ona następującą postać:
zmienna = wyrażenie;
Komputer oblicza wartość wyrażenia i wynik umieszcza w podanej zmiennej. Znaku = nie traktuj jako równość matematyczną, jest to symbol operacji przypisania.
Wyrażenie z operatorem przypisania posiada wartość równą wartości wyrażenia po prawej stronie operatora. Przykład:
cout << (a = 5) << endl; Wynikiem wykonania tej instrukcji jest liczba 5, ponieważ to stoi po prawej stronie operatora =. Dzięki tej własności możemy w języku C++ przypisać tę samą wartość do kilku zmiennych. Zamiast pisać:
a = 5; b = 5; c = 5;
możemy zapisać prościej:
a = b = c = 5;
|
|||||||
Instrukcje modyfikacji zmiennej
Język C++ posiada dwa użyteczne operatory do zwiększania i zmniejszania
zawartości zmiennej:
++ - zwiększa zawartość zmiennej o 1-- - zmniejsza zawartość zmiennej o 1
Operatory te można stosować na dwa sposoby:
++ zmienna lub
zmienna ++ lub
zmienna --
Jeśli operacja zwiększania zmiennej jest samodzielną instrukcją, to nie ma znaczenia, który z tych sposobów użyjemy. Poniższe dwa programy dają identyczne wyniki:
W obu programach tworzone są dwie zmienne a i b. Zmiennej a nadajemy wartość 125, a zmiennej b 30. Następnie program zwiększa zawartość zmiennej a o 1 do 126, a zawartość zmiennej b zmniejsza o 1 do 29. Na koniec zawartości zmiennych są kolejno wyświetlane i otrzymujemy liczby 126 i 29. W pierwszym programie operatory ++ i -- stosujemy przed zmiennymi, a w drugim po zmiennych. Jeśli operator zwiększania ++ lub zmniejszania -- zastosujemy do zmiennej użytej w wyrażeniu, to bardzo istotne jest, którą z form wybierzemy:
++ zmienna, -- zmienna : najpierw modyfikuje zawartość zmiennej, a
następnie wynik jest używany do obliczeń w wyrażeniuzmienna ++, zmienna -- : w wyrażeniu stosowana jest bieżąca
zawartość zmiennej, a następnie po wyliczeniu wyrażenia zmienna jest
modyfikowana.
Przykład:
Poniższe dwa programy dają różne wyniki:
Programy różnią się jedynie sposobem umieszczenia operatorów ++ oraz -- w
stosunku do modyfikowanej zmiennej. W obu przypadkach zmienna a
przyjmuje na końcu wartość 126, a zmienna b 29. Jednakże w
pierwszym programie do zmiennej c trafi 126 i do d 29,
a w drugim do c trafi 125, a do
d 30. W pierwszym programie zmienna a w wyrażeniu Na opisane wyżej zjawisko należy bardzo uważać w programach C++, gdyż często prowadzi ono do trudno wykrywalnych błędów. Najbezpieczniej jest modyfikować zmienną poza wyrażeniami, lecz często robi się to wewnątrz wyrażeń w celu optymalizacji kodu. Wybór jest twój - zostałeś ostrzeżony.
Poza prostymi operatorami zwiększania lub zmniejszania o 1 zawartości zmiennej, język C++ posiada bogatą gamę operatorów modyfikacji:
zmienna += wyrażenie; - zwiększa zawartość zmiennej o wartość
wyrażenia:
Podane powyżej operatory modyfikacji (jak również instrukcje przypisania) mogą wystąpić w wyrażeniach, lecz odradzamy takie rozwiązania poza szczególnymi wyjątkami - prowadzą one do bardzo zawiłych kodów, które trudno później analizować:
a = 1; b = 2; c = 3; a = c + (b += 5 * (c *= 3 + b)); // odpowiedz bez uruchamiania, jaki będzie wynik w a?
|
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe