Przejdź do głównej zawartości

Operacje na zmiennych

W tej lekcji nauczysz się wykonywać różne operacje z użyciem zmiennych. Będziemy:

  • Zapisywać do nich wartości,
  • Modyfikować je z użyciem wyrażeń matematycznych,
  • Wyświetlać ich zawartość w konsoli.

Dowiesz się też jak pozwolić użytkownikowi na prostą interakcję z programem.

Interakcja z użytkownikiem

Nasze programy będą nieco ciekawsze, gdy pozwolimy użytkownikowi wpisać coś do konsoli. Zrobimy to za pomocą instrukcji cin (ang: character input):

#include <iostream>

int main()
{
std::cout << "Podaj swój wiek: ";

int age;
std::cin >> age;

std::cout << "Masz " << age << "lat.\n";
}

cin pozwala nam zapisać zawartość tzw. standardowego wejścia (stdin) do zmiennej, którą podajemy po znakach >>. Umożliwia to zapisanie wartości, którą użytkownik wpisze w konsoli do zmiennej.

Zwróć uwagę, że:

  • cout używa operatora <<
  • cin używa operatora >>

Oprócz tego, możesz zobaczyć, że nie przypisaliśmy zmiennej age wartości początkowej. Nie jest to potrzebne, bo od razu po jej stworzeniu, używamy std::cin aby zapisać do niej wartość taką, jaką użytkownik wpisze z klawiatury.

Zapamiętaj

Możesz zapamiętać kierunek znaczków w tym operatorze w prosty sposób

  • cout - tekst idzie do konsoli - << skierowane w strone cout
  • cin - tekst idzie do zmiennej - >> skierowane w stronę zmiennej

Działania matematyczne

Zmienne, które zawierają liczby można dowolnie modyfikować za pomocą typowych znaków (operatorów) matematycznych:

OperacjaZnaczenie
puba + bDodaje a i b
puba - bOdejmuje b od a
puba * bMnoży a i b
puba / bDzieli a przez b
puba % bReszta z dzielenia a przez b
Uwaga

To nie są wszystkie operatory matematyczne, o reszcie powiemy kiedy indziej.

uwaga

Symbol ^ nie oznacza potęgowania!

Wykorzystajmy te operatory w praktyce:

#include <iostream>

int main()
{
std::cout << "Podaj swój wiek: ";

int age;
std::cin >> age;

std::cout << "Za 10 lat, będziesz mieć: " << (age + 10) << " lat\n";
std::cout << "5 lat temu, miałeś/aś: " << (age - 5) << " lat\n";
std::cout << "Jak będziesz 2x starszy/a, będziesz mieć: " << (age * 2) << " lat\n";
std::cout << "Ktoś dwa razy młodszy ma :" << (age / 2) << " lat\n";
std::cout << (age % 10) << " lat temu Twój wiek był podzielny przez 10";
}
Wyrównanie

Zwróć uwagę, że dla kompilatora nie ma znaczenia czy użyjemy jednej spacji, czy wyrównamy kod z użyciem klawisza Tab.

Bardzo istotnym faktem jest to, że użycie wyżej wymienionych operatorów, nie zmienia zawartości zmiennej age.

Wpisując wiek 20, uzyskamy następujący wynik:

Konsola
Za 10 lat, będziesz mieć: 30 lat
5 lat temu, miałeś/aś: 15 lat
Jak będziesz 2x starszy/a, będziesz mieć: 40 lat
Ktoś dwa razy młodszy ma: 10 lat
0 lat temu Twój wiek był podzielny przez 10
Opis
(age: 20 => + 10 = 30)
(age: 20 => - 5 = 30)
(age: 20 => * 2 = 40)
(age: 20 => / 2 = 10)
(age: 20 => % 10 = 0)

Jak widzimy, na każdym etapie wartość zmiennej age pozostała ta sama (20). Dzieje się tak dlatego, że w zapisie:

a + b

to samo wyrażenie a + b ma pewną wartość, a zawartość zmiennych zostaje nietknięta.

Zmiana wartości zmiennych

Często będziemy chcieli zmienić wartość zmiennej, nadając jej nową. Możesz po prostu użyć operatora przypisania = ponownie na zmiennej, aby nadać jej nową wartość.

W poniższym przykładzie, zmienna age jest początkowo tworzona z wartością 20. Następnie, przypisujemy do niej nową wartość 37.

int age = 20;
age = 37;

Jeśli np. chcemy zwiększyć zmienną o 10, to musimy przypisać wynik wyrażenia dodawania w taki sposób:

age = age + 10;

Z uwagi na to, że wykorzystywanie operatora na tej samej zmiennej jest częstą operacją, C++ udostępnia skrócony zapis:

age += 10;

Zobacz jak to działa na przykładzie:

main.cpp
#include <iostream>

int main()
{
std::cout << "Podaj swój wiek: ";

int age;
std::cin >> age;

std::cout << "Teraz masz: " << age << " lat\n";
age += 30;
std::cout << "Za 30 lat, będziesz mieć: " << age << " lat";
}
Wynik
Teraz masz: 20 lat
Za 30 lat, będziesz mieć: 50 lat

Przeanalizujmy w koljne kroki, jakie wykonał ten program. Rozważmy zmienną age:

  • Linia 7 definiuje zmienną o nazwie age typu int bez wartości początkowej.
  • Kiedy linia 8 jest wykonywana, program czeka w tym miejscu aż użytkownik wpisze coś i naciśnie Enter.
    • Po otrzymaniu danych wejściowych, std::cin umieszcza odczytaną wartość w age. Ponieważ wpisaliśmy 20, age ma teraz wartość 20.
  • Kiedy linia 10 jest wykonywana, std::cout wypisuje wartość age, która nadal wynosi 20.
  • Linia 11 zmienia wartość zmiennej na wynik 20 + 30, czyli 50. age ma teraz wartość 50.
  • W końcu, linia 12 jest wykonywana, wyświetlając wartość 50.

Oprócz operatora += przedstawionego powyżej, dostępnych jest wiele innych operatorów które modyfikują zawartość zmiennych; oto najczęściej spotykane z nich:

Shorthand OperatorEquivalent To
puba += ba = a + b
puba -= ba = a - b
puba *= ba = a * b
puba /= ba = a / b

Prezentacja pokazująca działanie tych operatorów w akcji:

Poniżej prezentacja działania programu, po wpisaniu liczby 20.

Więcej o możliwościach zmiennych dowiesz się z następnych części kursu.

Operacje na zmiennych

W tej lekcji nauczysz się wykonywać różne operacje z użyciem zmiennych. Będziemy:

  • Zapisywać do nich wartości,
  • Modyfikować je z użyciem wyrażeń matematycznych,
  • Wyświetlać ich zawartość w konsoli.

Dowiesz się też jak pozwolić użytkownikowi na prostą interakcję z programem.

Interakcja z użytkownikiem

Nasze programy będą nieco ciekawsze, gdy pozwolimy użytkownikowi wpisać coś do konsoli. Zrobimy to za pomocą instrukcji cin (ang: character input):

#include <iostream>

int main()
{
std::cout << "Podaj swój wiek: ";

int age;
std::cin >> age;

std::cout << "Masz " << age << "lat.\n";
}

cin pozwala nam zapisać zawartość tzw. standardowego wejścia (stdin) do zmiennej, którą podajemy po znakach >>. Umożliwia to zapisanie wartości, którą użytkownik wpisze w konsoli do zmiennej.

Zwróć uwagę, że:

  • cout używa operatora <<
  • cin używa operatora >>

Oprócz tego, możesz zobaczyć, że nie przypisaliśmy zmiennej age wartości początkowej. Nie jest to potrzebne, bo od razu po jej stworzeniu, używamy std::cin aby zapisać do niej wartość taką, jaką użytkownik wpisze z klawiatury.

Zapamiętaj

Możesz zapamiętać kierunek znaczków w tym operatorze w prosty sposób

  • cout - tekst idzie do konsoli - << skierowane w strone cout
  • cin - tekst idzie do zmiennej - >> skierowane w stronę zmiennej

Działania matematyczne

Zmienne, które zawierają liczby można dowolnie modyfikować za pomocą typowych znaków (operatorów) matematycznych:

OperacjaZnaczenie
puba + bDodaje a i b
puba - bOdejmuje b od a
puba * bMnoży a i b
puba / bDzieli a przez b
puba % bReszta z dzielenia a przez b
Uwaga

To nie są wszystkie operatory matematyczne, o reszcie powiemy kiedy indziej.

uwaga

Symbol ^ nie oznacza potęgowania!

Wykorzystajmy te operatory w praktyce:

#include <iostream>

int main()
{
std::cout << "Podaj swój wiek: ";

int age;
std::cin >> age;

std::cout << "Za 10 lat, będziesz mieć: " << (age + 10) << " lat\n";
std::cout << "5 lat temu, miałeś/aś: " << (age - 5) << " lat\n";
std::cout << "Jak będziesz 2x starszy/a, będziesz mieć: " << (age * 2) << " lat\n";
std::cout << "Ktoś dwa razy młodszy ma :" << (age / 2) << " lat\n";
std::cout << (age % 10) << " lat temu Twój wiek był podzielny przez 10";
}
Wyrównanie

Zwróć uwagę, że dla kompilatora nie ma znaczenia czy użyjemy jednej spacji, czy wyrównamy kod z użyciem klawisza Tab.

Bardzo istotnym faktem jest to, że użycie wyżej wymienionych operatorów, nie zmienia zawartości zmiennej age.

Wpisując wiek 20, uzyskamy następujący wynik:

Konsola
Za 10 lat, będziesz mieć: 30 lat
5 lat temu, miałeś/aś: 15 lat
Jak będziesz 2x starszy/a, będziesz mieć: 40 lat
Ktoś dwa razy młodszy ma: 10 lat
0 lat temu Twój wiek był podzielny przez 10
Opis
(age: 20 => + 10 = 30)
(age: 20 => - 5 = 30)
(age: 20 => * 2 = 40)
(age: 20 => / 2 = 10)
(age: 20 => % 10 = 0)

Jak widzimy, na każdym etapie wartość zmiennej age pozostała ta sama (20). Dzieje się tak dlatego, że w zapisie:

a + b

to samo wyrażenie a + b ma pewną wartość, a zawartość zmiennych zostaje nietknięta.

Zmiana wartości zmiennych

Często będziemy chcieli zmienić wartość zmiennej, nadając jej nową. Możesz po prostu użyć operatora przypisania = ponownie na zmiennej, aby nadać jej nową wartość.

W poniższym przykładzie, zmienna age jest początkowo tworzona z wartością 20. Następnie, przypisujemy do niej nową wartość 37.

int age = 20;
age = 37;

Jeśli np. chcemy zwiększyć zmienną o 10, to musimy przypisać wynik wyrażenia dodawania w taki sposób:

age = age + 10;

Z uwagi na to, że wykorzystywanie operatora na tej samej zmiennej jest częstą operacją, C++ udostępnia skrócony zapis:

age += 10;

Zobacz jak to działa na przykładzie:

main.cpp
#include <iostream>

int main()
{
std::cout << "Podaj swój wiek: ";

int age;
std::cin >> age;

std::cout << "Teraz masz: " << age << " lat\n";
age += 30;
std::cout << "Za 30 lat, będziesz mieć: " << age << " lat";
}
Wynik
Teraz masz: 20 lat
Za 30 lat, będziesz mieć: 50 lat

Przeanalizujmy w koljne kroki, jakie wykonał ten program. Rozważmy zmienną age:

  • Linia 7 definiuje zmienną o nazwie age typu int bez wartości początkowej.
  • Kiedy linia 8 jest wykonywana, program czeka w tym miejscu aż użytkownik wpisze coś i naciśnie Enter.
    • Po otrzymaniu danych wejściowych, std::cin umieszcza odczytaną wartość w age. Ponieważ wpisaliśmy 20, age ma teraz wartość 20.
  • Kiedy linia 10 jest wykonywana, std::cout wypisuje wartość age, która nadal wynosi 20.
  • Linia 11 zmienia wartość zmiennej na wynik 20 + 30, czyli 50. age ma teraz wartość 50.
  • W końcu, linia 12 jest wykonywana, wyświetlając wartość 50.

Oprócz operatora += przedstawionego powyżej, dostępnych jest wiele innych operatorów które modyfikują zawartość zmiennych; oto najczęściej spotykane z nich:

Shorthand OperatorEquivalent To
puba += ba = a + b
puba -= ba = a - b
puba *= ba = a * b
puba /= ba = a / b

Prezentacja pokazująca działanie tych operatorów w akcji:

Poniżej prezentacja działania programu, po wpisaniu liczby 20.

Więcej o możliwościach zmiennych dowiesz się z następnych części kursu.