Запись выражений на языке С++. Операторы присваивания, ввода, вывода


Порядок выполнения операций: приоритеты операций и ассоциативность



Download 147 Kb.
bet5/9
Sana23.02.2022
Hajmi147 Kb.
#157076
1   2   3   4   5   6   7   8   9
Bog'liq
000d2eb0-8b725edf

Порядок выполнения операций: приоритеты операций и ассоциативность
Когда над одним и тем же операндом может быть выполнено несколько операций, C++ руководствуется правилами старшинства или приоритетов, чтобы определить, какая операция должна быть выполнена первой. Арифметические операции выполняются в соответствии с алгебраическими правилами, согласно которым умножение, деление и нахождение остатка от деления выполняются раньше операций сложения и вычитания. Поэтому выражение 3 + 4*5 следует читать как 3+ (4 * 5), но не (3 + 4) * 5. Таким образом, результатом этого выражения будет 23, а не 35. Конечно, чтобы обозначить свои приоритеты, вы можете заключать операнды и операции в скобки.
Значит, запись на языке С++ следующих выражений:
,

Однако знания только лишь приоритетов операций не всегда бывает достаточно. Взгляните на следующий оператор:


float logs = 120 /4*5; // каким будет результат: 150 или 6?
И в этом случае над операндом 4 могут быть выполнены две операции. Однако операции /и * имеют одинаковый уровень приоритета, поэтому программа нуждается в уточняющих правилах, чтобы определить, нужно сначала 120 разделить на 4 либо 4 умножить на 5. Поскольку результатом первого варианта является 150, а второго — 6, выбор здесь очень важен. В том случае, когда две операции имеют одинаковый уровень приоритета, C++ анализирует их ассоциативность: слева направо или справа налево.


Различные результаты, получаемые после деления
Давайте продолжим рассмотрение особенностей операции деления (/). Поведение этой операции зависит от типа операндов. Если оба операнда являются целочисленными, то C++ выполнит целочисленное деление. Это означает, что любая дробная часть результата будет отброшена, приводя результат к целому числу. Если один или оба операнда являются значениями с плавающей точкой, то дробная часть остается, поэтому результатом будет число с плавающей точкой. В действительности, при комбинировании смешанных типов C++ преобразует их к одному типу.
Язык C++ довольно либерален, разрешая присваивание числового значения одного типа переменной другого типа. Всякий раз, когда вы это делаете, значение преобразуется к типу переменной, которая его получает.
Примечание: Результат деления целого числа на целое имеет целый тип, причем дробная часть результата просто отбрасывается. Например: 17/3=5, 99/10=9, (9/4)*4=8.

// изменение типа при инициализации


#include
int main ()
{
using namespace std;
float a = 3; // int преобразован в float
int b = 3.9832; // float преобразован в int
int c = 7.2E12; .// результат не определен в C++
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
return 0;
}



Download 147 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish