Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемСвятослав Дурасов
1 Вирази та операції Вираз – послідовність операндів, обєднаних знаками операцій та круглими дужками. Операнди – обєкти, над якими виконуються операції; операції – задають дії над операндами. Приклад: 0.5*(z+w)>=(z-u)/(w-u) kor=sin(x)-2*exp(x-0.7) Класифікація операцій: 1) за кількістю операндів - Унарні (-A) –Бінарні (A+B) –Тринарні ((A)?B:C)
2 2) за видом дій - арифметичні –операції присвоювання; –операції відношення; –логічні; –порозрядні( побітові), інші. 3)за приоритетом поділяють на 16 рівнів. Найвищій мають операції звертання до функції, до елементу масиву, структури; потім – інкремент та декремент,…., арифметичні,.., відношення,.., кома Порядок виконання – за приоритетом та залежно від асоціативності. Порядок можно змінювати за допомогою круглих дужок. Приклад: x<=5.7*(x-y)/(cos(y)-sin(x))
3 Арифметичні операції
4 Приклад int b=7, g=3 b/g => 2 g/b =>0 b%g =>1 -b => -7 Щоб частка була дійсною, дйісним має бути хоча б один операнд 7.0/3 (double)b/3 Операція явного перетворення типу (тип) - унарна арифметична операція зміни знака Порозрядні операції (побітові) виконуються тільки над операндами цілих типів і дають змогу працювати з окремими бітами даних (можливості асемблера)
5 Операції присвоювання Група з 15 операцій: унарних (++ --) та бінарних. Змінюють значення свого операнда: у разі бінарних операцій лівий операнд набуває значення виразу, записаного справа; у разі унарних операцій змінюється початкове значення операнда. Операнд, якому присвоюється значення повинен бути L-value (змінною або розадресованим вказівником). Для бінарних операцій присвоєння виконується справа наліво. Унарні операції присвоювання ++ інкремент (збільшує значення на 1) -- декремент ( зменшує на 1) ++ К (префіксна форма) К++ (постфіксна форма) Приклад: sum+=n (sum=sum+n); k+=1 (k++ або k=k+1) В мові Сі допускаються присвоювання виду : a=(b=c=1)+1; Приклад: int data1, data2, data3; data1=data2=data3=68;
6 Бінарні операції присвоювання
7
Операції порівняння В мові Сі немає логічного типу (булевого), тому результатом умовного виразу є цілочисельне арифметичне значення. "Істинно" - це ненульова величина, а "хибно" - це нуль. Приклади: #include x
8 Логічні операції
9 Операндами логічних операцій є логічні дані (найчастіше це вирази з операціями порівняння) Приклад !(x>a && x
10 Операція слідування (кома) Операція "кома" (,) називається операцією слідування, яка "зв'язує" два довільних вирази. Список виразів, розділених між собою комами, обчислюються зліва направо. Наприклад, фрагмент тексту a=4; b=a+5; можна записати так : a=4, b=b+5; Приклад1: int a[10],sum,i; /*... */ sum=a[0]; for (i=1;i<10;i++) sum+=a[i]; Приклад 2: int a[10],sum,i; /*... */ for (i=1,sum=a[0];i<10;sum+=a[i],i++) ;
11 Умовна операція ?: Синтаксис: умова ? вираз_1 : вираз_2 Спочатку обчислюється вираз умови. Якщо цей вираз має ненульове значення, то обчислюється вираз_1. Результатом операції ?: в даному випадку буде значення виразу_1. Якщо вираз умови рівний нулю, то обчислюється вираз_2 і його значення буде результатом операції. В будь-якому випадку обчислюється тільки один із виразів (вираз_1 або вираз_2). Наприклад, дану операцію зручно використати для знаходження найбільшого з двох чисел x і y: max=(x>y)?x:y; Можна замінити умовний оператор Приклад: Z=(0.1-sin(x))?(x*sin(x)):(x*cos(x)); Якщо 0.1-sin(x)=0, то z=x*sin(x). Инакше - z=x*cos(x).
12 Операція sizeof() Дана операція обчислює розмір пам'яті, необхідний для розміщення в ній виразів або змінних вказаних типів. Операція має дві форми : 1.ім'я_типу А; sizeof А; 2.sizeof (ім'я_типу); Операцію sizeof() можна застосовувати до констант, типів або змінних, у результаті чого буде отримано число байт, що відводяться під операнд. Приміром, sizеof(int) поверне число байт для розміщення змінної типу int.
13 Узгодження типів у виразах Якщо операнди бінарної операції мають різні арифметичні типи, то компілятор перевіряє сумісність і встановлює спільний тип. 1) Перетворення типів в операціях присвоєння: тип виразу справа від знака = до типу змінної (чи L-операнда). Якщо тип змінної старший, то тип виразу підтягується до типу змінної. Якщо тип змінної молодший, то значення перетворюється (обтинається) до типу змінної (можливі помилки !) Приклад: int m; m=2.1; /* m=2 */ m=2.9; /* m=2*/ вираз з використанням явного перетворення типу, що повертає цілочисельне значення, найближче до дійсного Х (з діапазону доп. значень типу int ) x>0 ?(int)(x+0/5):(int)(x-0/5) 2) Арифметичні перетворення типів: встановлено таку ієрархію типів
14 Приклад
15 Стандартні математичні функції Підключення бібліотеки директивою препроцесора # include Всі функції мають тип double. Аргумент теж типу double. Приклад Y=sin(0.5*x)+sqrt(0.3e-2)*pow(2.0,x-1); Можливо створювати макроси з параметрами (не плутати з функціями!), що оброблюються препроцесором. Приклад #define ABS(x) ((x)<0 ? -(x) :(x)) /* абсолютне значення*/ Основні математичні функції
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.