- •Алгоритмічні мови та програмування Методичні вказівки
- •Алгоритмічні мови та програмування Методичні вказівки
- •03056, Київ, вул..Політехнічна, 12, корп. 17
- •Практичне заняття № 1 Системи числення та формати зображення чисел у еом Завдання
- •Практичне заняття № 2
- •Завдання
- •Додаток 1 Пріоритети та асоціативність операцій
- •Примітка
- •Опис операцій
- •4.Операції зсувів
- •8.Умовний вираз
- •9. Операції та вирази присвоювання
- •10.Складене присвоювання
- •11. Операція „кома” або операція послідовного обчислення
- •Додаток 2
- •Практичне заняття № 3 Вивчення умовних переходів Завдання
- •Список завдань
- •Практичне заняття № 4 Вивчення циклічних обчислювальних процесів Завдання
- •Практичне заняття № 5 Розробка алгоритмів та їх графічне зображення Завдання
- •Практичне заняття № 6 Розрахунок значень числових рядів Завдання
- •Приклад виконання завдання
- •Практичне заняття № 8 Робота з функціями Завдання
- •Приклад виконання завдання
- •Опис алгоритму і програми
- •Практичне заняття № 9 Робота з цілими числами Завдання
- •Додаток
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