14 czerwca 2012

Działania arytmetyczne

W C++ istnieje, jak w każdym innym języku programowania, możliwość wykonywania działań arytmetycznych na zmiennych i liczbach. Oto i one:

Symbole stosowane w języku C++

+
Dodawanie
-
Odejmowanie
*
Mnożenie
/
Dzielenie
++
Inkrementacja (zwiększenie wartości zmiennej o 1)
--
Dekrementacja (zmniejszenie wartości zmiennej o 1)
%
Dzielenie modulo (podaje resztę z dzielenia liczby przez liczbę, działa tylko na liczbach całkowitych)
=
Przypisanie (lewa strona przyjmuje wartość prawej)
Każdy kto zna podstawy matematyki, nie powinien mieć problemów ze zrozumieniem tego materiału, ale rzeczy, które mogą sprawić kłopot postaram się wytłumaczyć przy użyciu małych programików.

#include <iostream>
#include <cstdlib>

using namespace std;

main(void)

{

int a;

a=5;

int b=2;

cout<<"5 / 2="<<a/b;

system("pause");

return 0;

}
Jak widać zastosowane w tym przykładzie dzielenie bez reszty, zachowuje się nieco dziwnie (5/2=2?!). Najprościej wytłumaczyć to tym, że liczby typu całkowitego nie mogą przechowywać ułamków i przechowują tylko ich część całkowitą(w tym przypadku 2), ale gdyby dzielić dwie liczby rzeczywiste to wynik byłby normalnym ułamkiem,(np. jeżeli a i b zdefiniujemy jako float, a=5 b=2 to a/b=2.5).

#include <iostream>
#include <cstdlib>

using namespace std;

main(void)

{

int b=2;

b++;

cout<<"b="<<b<<"\n";

cout<<"5 podzielic na 3="<<5/b<<endl;

cout<<"5 modulo 3="<<5%b;

system("pause");

return 0;

}
Bardzo przydatną rzeczą są natomiast operatory: inkrementacji (zastosowany w powyższym przykładzie b++) i dekrementacji, będące odpowiednikami zwiększenia i zmniejszenia o 1 (b++ to odpowiednik b=b+1). Inkrementacja oznacza, że zmienna przyjmuje wartość równą poprzedniej swej wartości powiększonej o 1. Analogicznie jest z dekrementacją(b=b-1). Wykorzystuje się je tam, gdzie często następuję zmiana o 1 wartości zmiennej. Ciekawostką jest możliwość wykorzystania inkrementacji przed i po nazwie zmiennej. Powoduje to dwa różne efekty:
int x=5;
cout<<x++;//wyświetli 5 i zwiększy wartość zmiennej
x=5;
cout<<++x;//zwiększy wartość zmiennej i wyświetli 6
Kolejnym dziwactwem (na pierwszy rzut oka) jest operator reszty z dzielenia % (8%3=2), który w wyniku daje całkowitą liczbę stanowiącą resztę z dzielenia tych liczb przez siebie(8/3=2*3 i 2 reszty).
A teraz duży przykład, będący ilustracją dla całego rozdziału.
Kod:

#include <iostream>
#include <cstdlib>

using namespace std;

main(void)

{

int a,b;

a=8;
//a przyjmuje wartość 8
b=3;

cout << "a=” << a <<” b=” << b << endl;

cout << "a+b=” << a+b << endl;

cout << "a-b=” << a-b << endl;

cout << "a*b=” << a*b << endl;

cout << "a/b=” << a/b << endl;
//dzielenie całkowite bez reszty
cout << "a modulo b=” << a%b << endl;
//reszta z dzielenia(modulo)
a++;

cout << „a++=” << a << endl;

b--;

cout << „b--=” << b << endl;

system("pause");

return 0;

}
Wynik:
a = 8 b = 3
a+b = 11
a-b = 5
a*b = 24
a/b = 2
a modulo b = 2
a++ = 9
b-- = 2
Należy pamiętać, o kolejności działań matematycznych i możliwości wykorzystania nawiasów do wpływania na ich kolejność.



Zadanie:
Napisz program, który wykona te same działania, co nasz główny program, z wyjątkiem reszty z dzielenia, z tą różnicą, że jako wartości zmiennych użyjemy liczb 2.5 i 4.2.

Brak komentarzy:

Prześlij komentarz