Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л_4_Операции_и_выражения.doc
Скачиваний:
11
Добавлен:
05.11.2018
Размер:
660.99 Кб
Скачать

Арифметические операции

знак операции

действие (операнды целые и вещественные, результат - в соответствии с типом операндов)

- +

изменение/сохранение знака (унарные)

+

сложение

-

вычитание

*

умножение

/

деление (если применяется к целочисленным операндам – целочисленное деление с отбрасыванием остатка: 5/2 = 2;)

%

деление по модулю (остаток целочисленного деления: 14%3 = 2;)

знак операции

п

Операции одинакового приоритета выполняются:

Для изменения порядка выполнения операций используются ( )

риоритет

унарные + -

высший

* / %

+ -

низший

Примеры арифметических операций:

5/4=1; 5/2=2; 2/5=0; 6/3=2; 7/4=1; 7./4.=1.75; 7./4=1.75;

5%4=1; 2%5=2; 5%2=1; 5%0 = ошибка деления

13%4 = 1; (-13)%4 = -1;

13%(-4) = 1; (-13)%(-4)=-1;

При ненулевом делителе всегда выполняется соотношение:

(a/b)*b + a%b равно a.

Операция нахождения остатка целочисленного деления:

#include <iostream>

#include <conio.h>

using namespace std;

int main() {

cout << 6 % 8 << endl // 6

проверка числа A на кратность числу k: if (A%k ==0)… или if (!(A%k))…

<< 7 % 8 << endl // 7

<< 8 % 8 << endl // 0

<< 9 % 8 << endl // 1

<< 10 % 8 << endl; // 2

_getch();

return 0;

}

Вычисление арифметических выражений

ix= -3+4*5-6; printf (“%d \n”, ix);

((-3) + (4*5))-6=11

ix= -3+4%5-6; printf (“%d \n”, ix);

(3+(4%5))-6=1

ix= -3*4%-6/5; printf (“%d \n”, ix);

((-3)*4)%(-6)/5=0

ix= (7+6)%5/2 ; printf (“%d \n”, ix);

((13))%5/2=1

Примеры использования арифметических операций Выделение цифр в целом числе

Операции целочисленного деления и нахождения остатка целочисленного деления применяются при необходимости выделения цифр целого числа.

Например, дано четырехзначное натуральное n (abcd). Верно ли, что это число содержит более двух одинаковых цифр?

#include <stdio.h>

#include <conio.h>

int main(){

int n, a, b, c, d;

printf ("input n(abcd):\n");

scanf ("%i", &n);

d = n % 10;

c = n / 10 % 10;

b = n / 100 % 10;

a = n / 1000;

if (int(a == b)+int(a == c)+ int(a==d)+ int(b==c)+ int(b==d)+ int(c==d) > 1 ) printf ("> 2\n");

else printf ("<=2\n");

_getch();

return 0;

}

Выделение цифр в вещественном числе

Операции целочисленного деления и нахождения остатка целочисленного деления применяются при необходимости выделения цифр дробной части вещественного числа.

Например, определить, есть ли среди первых двух цифр дробной части заданного положительного вещественного числа x=ab.cd, цифра 7.

#include <stdio.h>

#include <conio.h>

int main()

{double x;

int ix, c, d;

printf (" input x(ab.cd):\n");

scanf ("%lf", &x);

ix= static_cast<int>(x*100); //приведение типа double к int

d = ix % 10;

c = ix /10 % 10;

if ((c==7) || (d==7))

printf ("yes\n");

else printf ("no\n");

_getch();

return 0;

}