C++ подржува 5 бинарни аритметички оператори: оператор за собирање (+), оператор за одземање (-), оператор за множење (*), оператор за делење (/) и оператор за пресметка на остаток од делење (%). Следнава табела ги содржи основните информации за гореспоменатите аритметичките оператори:
операција | оператор | форма |
---|---|---|
собирање | + | a+b |
одземање | - | a-b |
множење | * | a*b |
делење | / | a/b |
остаток (модул) | % | a%b |
Операциите собирање, одземање и множење го имаат стандардното математичко значење. Доколку операциите (важи за сите аритметички операции) се извршуваат врз операнди од ист тип, резултатот е операнд од истиот тој тип (доколку, во изразот "a+b", а и b се променливи од тип int, и резултатот ќе биде од тип int). Доколку, барем една од променливите е од тип на податок кој овозможува чување на вредности кои се децимални (реални) броеви, тогаш и резултатот ќе биде од тип кој овозможува чување на децимални броеви (доколку, во изразот "a+b", а е променлива од тип int, а b е променлива од тип double, тогаш резултатот ќе биде од тип double). Ова не важи за операторот '%' - тој може да се извршува само врз податоци кои се цели броеви.
Доколку двата податока се цели броеви, тогаш резултатот од извршување на операцијата делење (a/b) ќе биде цел број. На пример, 5/2 ќе врати вредност 2 (иако 5/2 e 2.5). Доколку барем еден од податоците е реален (децимален) број, резултатот од извршувањето на операцијата делење ќе биде реален (децимален) број. На пример, 5.8/2 ќе врати вредност 2.9 (бидејќи операндот 5.8 е реален број). Делење со 0 (или 0.0) не е дозволено.
Операторот '%' може да се примени само врз целобројни податоци. Резултатот од извршувањето на операцијата a%b е остатокот од делењето на бројот a со b. На пример, 10%3 е еднакво на 1 (10/3 e 3, со остатокот 1 - бидејќи 10=3*3 + 1), 25%7 е еднакво на 4 (25/7 е 3, со остаток 4 - бидејќи 25=7*3+4). Операторот '%' најчесто се користи при проверка на тоа дали еден цел број е делив со друг - во тој случај изразот a%b треба да е еднаков на 0 (бидејќи доколку b го дели а, нема да се појави остаток при нивното делење).
Следната програма го демонстрира ефектот на секој од аритметичките оператори споменати погоре:
Програма 8.3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <iostream> using namespace std; int main() { int a=1, b=2, c=3; //a=1 b=2 c=3 a=b+c; //a=5 b=2 c=3 a=c-b; //a=1 b=2 c=3 a=b*c; //a=6 b=2 c=3 b=10; //a=6 b=10 c=3 c=5; //a=6 b=10 c=5 a = b/c; //a=2 b=10 c=5 a = b%c; //a=0 b=10 c=5 b=8; //a=0 b=8 c=5 a = b/c; //a=1 b=8 c=5 a = b%c; //a=3 b=8 c=5 cout << a << endl; //pechati '3' return 0; }
|
No comments:
Post a Comment