Програмування – Лекція 5
Лекція 5
Оператори мови С
1. Загальні відомості про оператори
програми на мові С склд з операторів, а аоператори склд з виразів і оперцій. опреатор це інструкція яка наказує комп виконати дію. в програмах на мові С, оператори пишуться по 11 в рядку, хоча деякі мооужт займати декілька рядків. оператори мові завжд закінчуються ;, за винятків дериктив препроцесора. порожній оператор - це оператор який склд тільки з ;, він не виконує жодних дій) він може буи в будь-якумо місці програми, де згідно правил синстаксису потрібен оператор. в мові С є оператори які потребуюить згідно синстаксису , навністю їх тіні хочаб 1 оператора.склаедний або блок представляє собою групу з 2-хабо більше операторі в мови , взятих в фігурні дужки.
{
<оператор1>
…
<операторn>
}
Складений опратор може застосуваватисьв програмі там де може бути будь який програмний операто. фігурні дужки можна розміщати по різному, але рекомендують в окремих рядках для наочності. Комплітор мови С ігнонрує вілний простір. Кооли компілятор зчитує оператор з початкового коду то він рзпузнає символи щ яких він складається та шукає завершаючу ; ігноруючт прицьому всі проміжні символи. це дозвроляє дуже гнучко і по різному оформляти початковий текст програми. виняток літеральні константи
2. Вирази
будь яку сукупність елементів яка втрезультаті утв числове значенння. наймпростіший вираз склд з 1елемента, з мінної числового типи, літеральної або символічної константи.
PI |
символічна константа, визначена в програмі |
|
|
20 |
літеральна константа |
|
|
rate |
змінна |
|
|
-1.25 |
літеральна константа |
|
|
скаладені вирази склд з більш простих виразів з»єжнаних оперпціями. якщо вираз містить декілька знаків операцій, то порядок ого обчислення залежить від пріорітету операцій
1.75/12+7*rate+rate/cost
x=2+3 - числа 2 і 3 додаються, а потім резульат присвоюється змінній х. якщо x=a+10- тоді спочатку обчислюється значення виразу і результат присвоюється змінній х. крім того увсе апарат присвоювання х=а+10 , теж є виразом
x= y= a+10 - який = значенню змінної зліва від знаку рівності. тому можна записати оператор який присвобжє значення виразу а+10 відразу 2 змінним х і у;
x=6+(y=4+5) - допускається і такий запис; в результаті у=9, х=15; таку форму не рекомендують використовувати. операція присвоювання позначається «=«, але запис х=у означає що значеннб х присвоюється значення у.
Знак операції це символ який наказує компілятору мови С виконати певні дії(оперпції), над 2 або більше операндами. ОПЕРАНД - це об»єкт в програмі, над яким виконується операція. В мові С всі операндиє виразами. Операції поділяються на: присвоювання, арефметичні, операції відношення, логічні операції.
Арефметичні операції мають 2 одномісних і 5 двох місних операцій. одномісними - операції в яких аргументом є 1 операнд.
Операції можна здійснювати тільки над змінними, але не над константами. префексну і постіфіксну форму. в префіксній формі, ці операції викон над операдом перед тим як його значення буде викор в іншому включаючому виразі. Постфіксі форми - викон наж операндом піля того як його значення буо викор у вкл його виразі.
Таблиця 5.1
Операція |
Знак |
Дія |
Формат |
|
|
|
|
Інкремент |
++ |
збільшує операнд |
++ x, x++ |
на одиницю |
|||
|
|
|
|
|
|
|
|
Декремент |
-- |
зменшує операнд |
-- x, x-- |
на одиницю |
|||
|
|
|
|
|
|
|
|
++ x; x=x+1;
-- y; y=y-1;
Приклади: x=10; y=x++;
#include <stdio.h>
int main(void)
{
int y, x; x = 10; y = x++;
printf("x=%d y=%d ", x, y); return 0
x=10;
y=++x;
#include <stdio.h>
int main(void)
{
int y, x; x = 10; y = ++x;
printf("x=%d y=%d ", x, y); return 0;
}
Результати
х=11, y=10; х=11, y=11
Двох місні фрифметичні операції викон над 2 аргуметами.
Таблиця 5.2
Операція |
Знак |
|
|
Дія |
Приклад |
|||
Додавання |
+ |
|
додавання двох операндів |
x+y |
||||
Віднімання |
- |
|
віднімання другого операнду від |
x-y |
||||
|
першого |
|
|
|||||
|
|
|
|
|
|
|
||
Множення |
* |
|
множення двох операндів |
x*y |
||||
Ділення |
/ |
|
ділення першого операнду на другий |
x/y |
||||
Ділення за |
% |
|
утворює остачу від ділення першого |
x%y |
||||
модулем |
|
операнда на другий |
||||||
|
|
|
|
|||||
Таблиця 5.3 |
|
порядок викон операцій суворо регламентово назв приорітетом оперпацій |
|
|
|
|||
|
|
|
|
|
|
|
||
|
|
|
Операції |
Відносний пріоритет |
|
|
||
|
|
|
|
|
|
|
||
|
|
|
++ -- |
1 |
|
|
||
|
|
|
|
|
|
|
||
|
|
|
* / % |
2 |
|
|
||
|
|
|
|
|
|
|
||
|
|
|
+ - |
3 |
|
|
||
|
|
|
|
|
|
|
||
Наприклад: w*x/++y+z/y
якщо вираз містить декілька дій, то вони викон в порядку їх появи у виразі. для наочності виконання операцій потріно викор ( ), навіть якщо вони не потрібні для зміни приорітету. (Приклад зверху)
В миві С не вказано що раніше обчислюється ліва частина чи права. тоді резуьтат даного виразу відрізнятиметься. операції відношення викор для порівняння виразів:
Таблиця 5.4
Операція |
Знак |
Означення |
Приклад |
|
|
|
|
Дорівнює |
== |
Чи рівні два операнди? |
x==y |
|
|
|
|
Більше |
> |
Чи більше перший операнд за другий? |
x>y |
|
|
|
|
Менше |
< |
Чи менше перший операнд за другий? |
x<y |
|
|
|
|
Більше або |
>= |
Чи перший операнд більший або |
x>=y |
дорівнює |
|
дорівнює другому? |
|
|
|
|
|
Менше або |
<= |
Чи перший операнд менше або дорівнює |
x<=y |
дорівнює |
|
другому? |
|
|
|
|
|
Не |
!= |
Чи перший операнд не дорівнює |
x!=y |
дорівнює |
|
другому? |
|
|
|
|
|
Таблиця 5.5
Вираз |
Результат |
|
|
5==1 |
0 (false) |
|
|
5>1 |
1 (true) |
|
|
5!=1 |
1 (true) |
|
|
(5+10)==(3*5) |
1 (true) |
|
|
Приорітет операцій відношення
всі операції відношення маютьь більш нижчий, ніж арифметичні операції
Таблиця 5.6
Операції |
Відносний пріоритет |
|
|
|
|
< <= |
> >= |
4 |
|
|
|
!= |
== |
5 |
|
|
|
