Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АМК_практ_зан.docx
Скачиваний:
4
Добавлен:
20.11.2019
Размер:
530.41 Кб
Скачать

8.Умовний вираз

тернарна умовна операція ? : ,

умовний вираз операнд1 ? операнд2 : операнд3 ( якщо операнд1 має значення true або ненульове значення , то значення умовного виразу визначає операнд2 , якщо операнд1 має значення false або нульове значення , то значення умовного виразу визначає операнд3 ).

Приклади:

max = ( a > b ) ? a : b ; // вибір найбільшого

min = (a < b ) ? a : b ; // вибір найменшого

9. Операції та вирази присвоювання

бінарна операція = ,

вираз присвоювання операнд1 = операнд2; (операнд1 - L вираз : імена змінних та вказівників , вирази вибору елементів у структурах , масивах ,.., вираз вибору значення за адресою *ptr ; тип результату визначає операнд1 ; значення операнда2 приводиться до типу операнд1 ( неявне перетворення типів) і становиться значенням операнд1; операнд2 – будь-який вираз).

Приклади:

int a ; float x ; double y ;

a = 5; x = 7.34 ; y = 1.12345678912345;

a = x ; // a =7

x = y ;

// x = 1.123456 , формат double перетворюється у формат float

a = x = y = 7 ;

a = x + ( y = 5) ;

10.Складене присвоювання

операція складеного присвоювання : бінарна_ операція =

*= /= %= += -= <<= >>= &= |= ^=

вираз присвоювання операнд1 бінарна_ операція = операнд2 ;

може трактуватися як скорочений запис наступного виразу

операнд1 = операнд1 бінарна_ операція операнд2 ;

Приклади:

S = S + a ;  S += a ;

n = n + 5 ;  n += 5 ;

sum = sum + a[i] ;  sum += a[i] ;

p = p * b[i] ;  p *= b[i] ;

11. Операція „кома” або операція послідовного обчислення

вираз , вираз , вираз ( результат – тип та значення останнього виразу)

Приклади:

int x; float y ; double z ;

x = 5 , y = 7 , z = 3 // результат операції - значення 3 типу //double ,але змінні отримують свої значення

Додаток 2

Приклад програми для перевірки результатів розрахунків

#include <iostream.h>

#include <conio.h>

main()

{

int z = 0, a = 13 , b = 5, c = 14, d = 1,l;

z = 5 - 7/3 - 5*3%7 + 15 << 2*3 >> 4 - d++;

l = a > b || a < c && a < 40 || b < 7 && c == 14;

cout << " z=" << z << " l=" <<l;

getch();return 0;

}

Результат : z = 136 l = 1

Поопераційне виконання обчислень виразів вручну

1.

z = 5- 7/3 -5*3%7+15<<2*3>>4-d++;

z = 5- 2 -5*3%7+15<<2*3>>4-d++;

z = 3 - 5*3%7+15<<2*3>>4-d++;

z = 3 - 15 %7+15<<2*3>>4-d++;

z = 3- 1 +15<<2*3>>4-d++;

z = 2 +15<<2*3>>4-d++;

z = 17 <<6>>4-d++;

z = 1088 >>4-d++; //17*64=1088

z = 1088 >> 3;

z = 136 //1088/8=136

2.

l = a > b || a < c && a < 40 || b < 7 && c == 14;

l = 13>5 || 13<14 && 13<40 || 5<7 && 14 ==14;

l = true || true && true || 5<7 && 14 ==14;

l = true || true || 5<7 && 14 ==14;

l = true || 5<7 && 14 ==14;

l = true || true && 14 ==14;

l = true || true && true;

l = true // l = 1