- •Алгоритмічні мови та програмування Методичні вказівки
- •Алгоритмічні мови та програмування Методичні вказівки
- •03056, Київ, вул..Політехнічна, 12, корп. 17
- •Практичне заняття № 1 Системи числення та формати зображення чисел у еом Завдання
- •Практичне заняття № 2
- •Завдання
- •Додаток 1 Пріоритети та асоціативність операцій
- •Примітка
- •Опис операцій
- •4.Операції зсувів
- •8.Умовний вираз
- •9. Операції та вирази присвоювання
- •10.Складене присвоювання
- •11. Операція „кома” або операція послідовного обчислення
- •Додаток 2
- •Практичне заняття № 3 Вивчення умовних переходів Завдання
- •Список завдань
- •Практичне заняття № 4 Вивчення циклічних обчислювальних процесів Завдання
- •Практичне заняття № 5 Розробка алгоритмів та їх графічне зображення Завдання
- •Практичне заняття № 6 Розрахунок значень числових рядів Завдання
- •Приклад виконання завдання
- •Практичне заняття № 8 Робота з функціями Завдання
- •Приклад виконання завдання
- •Опис алгоритму і програми
- •Практичне заняття № 9 Робота з цілими числами Завдання
- •Додаток
Додаток 1 Пріоритети та асоціативність операцій
Операції |
Асоціативність |
Коментар |
( ) [ ] . |
|
Первинні вирази |
++ -- sizeof (тип) - ~ ! * & |
|
Унарні операції |
* / % |
à |
Арифметичні мультипликативні |
+ - |
à |
адитивні |
<< >> |
à |
зсуви |
< > <= >= |
à |
Відношення 1 |
== != |
à |
Відношення 2 |
& |
à |
Побітове І |
^ |
à |
Побітове виключне або |
| |
à |
Побітове або |
&& |
à |
Логічна І |
|| |
à |
Логічна або |
? : |
ß |
Умовна |
= += -= *= …. |
ß |
Присвоювання |
, |
à |
Послідовне обчислення |
Примітка
à -виконання операцій одного рівня пріоритету зліва направо ,
ß - виконання операцій одного рівня пріоритету справа наліво .
У таблиці операції розташовані у порядку зменшення пріоритету.
Опис операцій
1.Первинні вирази :
24.5 (значення 24.5 типу double) ;
x (значення , неявна операція „ добути значення „ ) ;
тип у описі змінних ;
у[5] (визначення індексу елемента масиву ) ;
( операція у дужках) ;
k.x k x (значення елемента структури ) .
2.Унарні операції та вирази
2.1. ++ , -- збільшення – зменшення на 1 ;
вирази ++ операнд ,- - операнд (операнд спочатку змінюється ,а потім використовується) ,
вирази операнд++ , операнд— ( операнд спочатку використовується,а потім змінюється ).
Програмний приклад:
int x = 0, y = 0, z = 0, w = 0;
z = x++; // z = 0 x = 1
w = ++y; //y = 1 w =1
2.2. sizeof (тип) , sizeof вираз (визначення розміру типу виразу у байтах)
int x; x = sizeof (long); //x = 4
x = sizeof ‘A’ ; //x =1
- арифметичне заперечення ( зміна знака ) ,
+ ( без зміни знака).
~ побітове логічне заперечення ,інверсія бітів , побітове NOT
int x = 0x0039,j;
j = ~ x; //j = 0xFFC6
2.5. ! логічна операція заперечення , NOT
! true false , !false true
!(ненульове значення) à 0
!( нульове значення ) à 1
2.6. & взяти адресу
2.7. * взяти значення за адресою
Приклади:
int x = 5 , w; // опис простих змінних
int *ptr; // опис вказівника на змінну цілого типу
ptr = &x; // вказівник отримує адресу змінної х
w = * ptr; // w отримує значення за адресою у
// вказівникові ,w = 5 ,це еквівалент w=x;
2.8. тип(значення) приведення типу
int (5.3) à 5
2.9. new тип визначення місця у динамічній пам’яті
Приклад:
int *ptr; // опис вказівника на змінну цілого типу
ptr = new int; // вказівник отримує місце у динамічній пам’яті
ptr = new int [12]; // вказівник отримує місце у динамічній
// пам’яті для масиву із 12 елементів
2.10. delete ім’я вказівника звільнення місця у динамічній пам’яті
Приклад:
delete ptr;
delete [12] ptr;
3. Бінарні операції та вирази
3.1. * множення (контроль переповнення та зникнення порядку);
/ ділення (контроль ділення на нуль, цілочислове ділення цілих чисел , округлення у напрямку 0 ) ;
% остача від ділення (порівняння за модулем ) (остача від ділення першого операнда на другий , знак остачі як у діленого , контроль ділення на нуль).
Приклади:
10/3 à 3 5%3 à остача 2 -5%3 à остача -2
5%-3 à остача 2 -5%-3 à остача -2
3.2. + додавання ;
- віднімання (переповнення і втрата значущості контролюється тільки для плаваючих типів, для цілих ні ) .
Приклади:
a) int a = 30000 , b = 30000 , c ;
c = a + b ; // c = - 5536 , переповнення ,60000 – 65536=-5536
b) int a = 32767 , b = 32767 , c ;
c = a + b ; //c = -2
на двійковому рівні
0111111111111111 32767
+
0111111111111111 32767
___________________
1111111111111110 -2 ,у доповняльному коді , сума двох додатних чисел від’ємна à переповнення
