Pages

Tuesday, February 22, 2022

Аритметички изрази

 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