Zmienne w języku C++

Zmienna jest obiektem przechowującym dane określonego typu. Przed pierwszym użyciem zmienną należy zdefiniować:

 

typ_zmiennej  nazwa_zmiennej;

 

Definicja ma na celu określenie rodzaju przechowywanej przez zmienną informacji oraz sposobu dostępu do tej informacji z wnętrza programu. Rodzaj informacji określa typ zmiennej. Na dzisiejszej lekcji będziemy potrzebować następujące typy zmiennych:


int
- zmienna całkowita. Przechowuje liczby w zakresie +/- 2 mld.
double - zmienna zmiennoprzecinkowa o podwójnej precyzji. Przechowuje liczby rzeczywiste z dokładnością do 15 cyfr.
 

Dostęp do przechowywanych przez zmienną danych uzyskujemy poprzez nazwę zmiennej. W języku C++ nazwy zmiennych mogą być tworzone z małych i dużych liter (są rozróżniane), cyfr oraz znaku podkreślenia. Pierwszym znakiem nazwy nie może być cyfra.

 

int a,b,c; // definiowane są 3 zmienne, przechowujące liczby całkowite
double x;  // definiowana jest zmienna przechowująca liczbę rzeczywistą

 

Definicja może również zawierać instrukcję przypisania zmiennej wartości początkowej:

 

int a = 5, b = 3,c,d;


Powyższa definicja tworzy 4 zmienne o nazwach a, b, c i d. W zmiennej a umieszczona zostaje liczba 5, w zmiennej b umieszczona jest liczba 3. Zmienne c i d nie posiadają zdefiniowanej zawartości - mogą zawierać śmieci, czyli dane z poprzednich wykonań innych programów.

Informację w zmiennej można umieścić przy pomocy instrukcji przypisania:

 

nazwa_zmiennej = wyrażenie;

 

Komputer wylicza wartość wyrażenia i wynik umieszcza w zmiennej. Drugim sposobem jest wykorzystanie strumienia wejściowego cin:

 

cin >> nazwa_zmiennej;

 

W tym przypadku komputer odczytuje dane z klawiatury i umieszcza je w podanej zmiennej.

 

Programy

// Przeliczanie stopni Celsjusza
// na stopnie Fahrenheita
// (C)2008 Koło informatyczne w I LO w Tarnowie
// Kurs programowania w C++ dla początkujących
//--------------------------------------------

#include <iostream>

using namespace std;

int main()
{
  double c,f;
  
  cout << "Podaj temperature w stopniach Celsjusza:\n\n";

// odczytujemy dane

  cout << "T[\370C] = "; cin >> c;
  
  cout << endl;
  
// wykonujemy obliczenia

  f = ((9 * c) / 5.0) + 32;
  
// wypisujemy wynik

  cout << c << "[\370C] = " << f << "[\370F]\n\n";
  
  system("pause");    
  return 0;   
}
Podaj temperature w stopniach Celsjusza:

T[°C] = 36.7

36.7[°C] = 98.06[°F]

Aby kontynuować, naciśnij dowolny klawisz . . .

 

// Rozwiązywanie równania liniowego
// (C)2008 Koło informatyczne w I LO w Tarnowie
// Kurs programowania w C++ dla początkujących
//--------------------------------------------

#include <iostream>

using namespace std;

int main()
{
  double a,b,c,x;
  
  cout << "Obliczanie pierwiastka rownania:\n\n"
          "ax + b = c\n\n"
          "Podaj kolejne wspolczynniki\n\n";

// odczytujemy współczynniki równania

  cout << "a = "; cin >> a;
  cout << "b = "; cin >> b;
  cout << "c = "; cin >> c;
  
// obliczamy pierwiastek

  x = (c - b) / a;
  
// wypisujemy wynik

  cout << "\nx = " << x << endl << endl;
  
  system("pause");    
  return 0;   
}
Obliczanie pierwiastka rownania:

ax + b = c

Podaj kolejne wspolczynniki

a = 12.5
b = -3
c = -1

x = 0.16

Aby kontynuować, naciśnij dowolny klawisz . . .

 

Modyfikacja zmiennej

Modyfikacja jest zmianą zawartości zmiennej uwzględniająca to, co zmienna zawierała przed operacją. Najczęstszą modyfikacją jest zwiększenie lub zmniejszenie zawartości zmiennej o 1. Do tego celu język C++ posiada dwa operatory:

++   - operator inkrementacji, czyli zwiększania o 1
--   - operator dekrementacji, czyli zmniejszania o 1

Operatory te można stosować na dwa sposoby:

zmienna++    lub    ++zmienna
zmienna--    lub    --zmienna

Jeśli zwiększanie lub zmniejszanie zawartości zmiennej będzie samodzielną instrukcją, to nie ma znaczenia, który z tych sposobów użyjemy:

#include <iostream>

using namespace std;

int main()
{
  int a1,a2,b1,b2;

  a1 = a2 = b1 = b2 = 5;

  ++a1;
  a2++;
  --b1;
  b2--;

  cout << a1 << " " << a2 << endl
       << b1 << " " << b2 << endl << endl;

  system("pause");
  return 0;
}
6 6
4 4

Różnica pojawia się, gdy operatory zwiększania lub zmniejszania zostaną użyte wewnątrz wyrażenia. Wtedy otrzymują następujące znaczenie:

++zmienna - zawartość zmiennej zostaje powiększona o 1, po czym jest zwracana jako wartość tego wyrażenia:
a = 5;
b = ++a;  // a i b zawierają teraz liczbę 6
zmienna++ - wynikiem wyrażenia jest bieżąca zawartość zmiennej, po czym zostaje ona zwiększona o 1:
a = 5;
b = a++; // w b jest 5, w a jest 6
--zmienna - zawartość zmiennej zostaje zmniejszona o 1, po czym jest zwracana jako wartość tego wyrażenia:
a = 10;
b = --a;  // a i b zawierają teraz liczbę 9
zmienna-- - wynikiem jest bieżąca zawartość zmiennej, po czym zostaje ona zmniejszona o 1:
a = 10;
b = a--;  // w b jest 10, w a jest 9

W języku C++ istnieją również inne operatory modyfikacji:

zmienna += wyrażenie; - wartość wyrażenia zostaje dodana do zawartości zmiennej
a += 5;     // w a jest o 5 więcej
b += a - c; // do b zostaje dodana różnica a - c
zmienna -= wyrażenie; - wartość wyrażenia zostaje odjęta od zawartości zmiennej
a -= 5;      // w a jest o 5 mniej
b -= a + c;  // od b zostaje odjęta suma a + c
zmienna *= wyrażenie; - zawartość zmiennej zostaje wymnożona przez wartość wyrażenia
a *= 5;     // a jest pomnożone przez 5
a *= a;     // a jest podniesione do kwadratu
a *= b + c; // a jest pomnożone przez sumę b + c
zmienna /= wyrażenie; - zawartość zmiennej zostaje podzielona przez wartość wyrażenia
a /= 2;     // a jest podzielone przez 2
a /= b * c; // a jest podzielone przez iloczyn b * c
zmienna %= wyrażenie; - zawartość zmiennej staje się resztą z dzielenia tej zmiennej przez wartość wyrażenia
a %= 2;  // w a jest reszta z dzielenia a przez 2
a %= 10; // w a jest wartość ostatniej cyfry zapisu dziesiętnego poprzedniej zawartości a

Ponieważ w języku C++ operacja przypisania zwraca wartość, to operatory modyfikacji mogą wystąpić w wyrażeniach:

a = b += 5;  // b zostaje zwiększone o 5, po czym wynik trafia do a
a = b *= 2;  // b zostaje pomnożone przez 2, po czym wynik trafia do

Chociaż oferuje to kuszące możliwości pisania efektywnego kodu, odradzałbym częste stosowanie operatorów modyfikacji wewnątrz innych wyrażeń, gdyż prowadzi to do niezrozumiałego kodu, który trudno analizować i zrozumieć:

a += b -= c *= 2 + a++ * (b /= 3 - --c);

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2023 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

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