Приклад. змінним f,g будуть наданні значення 19 і 10 відповідно.
F=20;
g=(f--)-10;
змінним f,g будуть наданні значення 19 і 10 відповідно.
У префіксній формі операція інкременту (декрименту) має найвищийпріорітет за усі інші операції, присутні у виразі;
У постфіксній формі операція інкременту (декрименту) має найнищийпріорітет за усі інші операції, присутні у виразі;
Ще однією особливістю мови Сі є те, що вираз a=a+5; можна записувати в іншій формі, а саме: a+=5. В загальному випадку вираз a+=b; повинен сприйматись як приріст величини a на значення b. Замість знаку додавання (+) дозволяється використовувати знак довільної бінарної операції:
- збільшити на +=;
- зменшити на –=;
- збільшити в *=;
- зменшити в /=;
- знайти остачу від ділення %=.
Наприклад,ці команди ідентичні:
1) a = a + 10 та а +=10
2) b = 4 * b та b *=4
3) c = c % 5 та c %= 5
Якщо справа від операції присвоєння суміщеної з арифметичною операцією стоїть деякий вираз, то спочатку обчислюється значення цього виразу, а тоді виконується суміщена операція присвоєння. Для зміни пріорітету можна використати дужки.
Наприклад:
Математичні функції
У <math.h> описано більше двадцяти математичних функцій. Тут же приведені найбільш використовувані. Кожна з них має один або два аргументи типу double і повертає результат також типу double.
Назва ф-ції | Матем запис | Назва ф-ції | Матем запис | Назва ф-ції | Матем запис |
abs(x) | |x| | exp(x) | ex | ceil(x) | заокруглює число х до більшого цілого. Наприклад, ceil(5.7) = 6 |
cos(x) | cos x | pow10(x) | 10x | ||
sin(x) | sin x | log10(x) | lg x | floor(x) | Відкидає дробову частину числа х. Наприклад, floor(5.7) = 5 |
tan(x) | tg x | fabs(x) | |x| | ||
log(x) | ln x | acos(x) | arccos x | fmod(x,y) | Обчислює остачу від ділення числа х на число у (аналогічна операції %). Наприклад, fmod(7,3) = 1 |
pow(x,y) | xy | asin(x) | arcsin x | ||
aqrt(x) | atan(x) | arctg x |
П р и к л а д: Нехай оголошено змінні:
lnt x = -2, х1, а = 3; float рі = 3.1415926, т = 16, kut, k;
Тоді у результаті виконання команд
х1 = abs(x); a=pow10(a);
kut = cos(2 * pi);
k = pow(m, 1./4);
m = sqrt(m);
змінним x1, a, kut, k, m будуть надані наступні значення:
x1=abs(-2) = |-2| = 2;
a=pow10(3)=103 =1000;
kut= cos(2*3.1415926)=1;
k = pow(16, 1./4) = 161/4=2;
m = sqrt(16)= =4;
3. Основні логічні, порозрядні операції та операції відношення.
Операції відношення і логічні операції дають можливість будувати логічні вирази.Булеві вирази об'єднують операції відносин і логічні операції для формулювання нетривіальних умов.
Логічні операції
Знак операції | Дія, що виконується | Приклади |
&& | Кон’юнкція (логічне “і”) | якщо b=0,c=1, то a=b&&c=0 |
|| | Диз’юнкція (логічне “або”) | якщо b=0,c=1, то a=b||c=1 |
! | Інверсія (логічне “ні”) | якщо b=0, то a=!b=1 |
Кон’юнкція (логічне “і”) Диз’юнкція (логічне “або”)
Інверсія (логічне “ні”)
Порозрядні операції
Знак операції | Дія, що виконується | Приклади |
& | Порозрядна кон’юнкція | якщо b=1010,c=0110, то a=b&c=0010 |
| | Порозрядна диз’юнкція | якщо b=1010,c=0110, то a=b|c=1110 |
! | Порозрядна інверсія | якщо b=1101, то a=~b=0010 |
<< | Зсув вліво | a=b<<c,здійснюється зсув вліво на с розрядів, у розряди, що звільнились заносяться нулі. Якщо b=1001,с=2,то а=0100 |
>> | Зсув вправо | a=b>>c,здійснюється зсув ввправо на с розрядів, у розряди, що звільнились заносяться нулі для додатніх чисел і одиниці для від’ємних. Якщо b=1001,с=2,то а=0010 |
Операції відношення
== | Дорівнює | a==b, результат 1, якщо a дорівнює b 0, якщо a не дорівнює b |
> | Більше | a>b, результат 1, якщо a більше b 0 в протилежному випадку |
>= | Більше або дорівнює | a>=b, результат 1, якщо a більше або дорівнює b 0 в протилежному випадку |
< | Менше | a<b, результат 1, якщо a менше b 0 в протилежному випадку |
<= | Менше або дорівнює | a<=b, результат 1, якщо a менше або дорівнює b 0 в протилежному випадку |
!= | Не дорівнює | a!=b, результат 1, якщо a не дорівнює b 0 в протилежному випадку |
Складні вирази зазвичай містять велику кількість операцій, котрі виконуються у строгій послідовності. Величина, котра визначає перевагу виконання тієї чи іншої операції називається пріоритетом.
Операції (від вищого пріоритету до нижчого) | Порядок виконання |
( ) {} -> . | Л - П |
! ~ ++ -- - (тип) * sizeof | П - Л |
* / % | Л - П |
+ - | Л - П |
<< >> | Л - П |
< <= => > | Л - П |
== != | Л - П |
& | Л - П |
^ | Л - П |
| | Л - П |
&& | Л - П |
|| | Л - П |
? | Л - П |
= (присвоєння) += -= *= /= %= | П - Л |
, (операція кома) | Л – П |
Тема. Директива препроцесора #include.Оператор присвоєння. Ввід і вивід даних в мові С++.
ПЛАН
1. Директива препроцесора #include.
2. Оператор присвоєння.
3. Ввід даних в мові С++.
4. Вивід даних в мові С++.
1Директива препроцесора #include.
Перш ніж приступити до компіляції програми, компілятор C++ запускає спеціальну програму, яка називається препроцесором. Препроцесор шукає в програмі рядки, що починаються з символа #, наприклад #include або #define. Якщо препроцесор, наприклад, зустрічає директиву #include, він включає вказаний в ній файл у ваш початковий файл, нібито ви самі друкували вміст файла, що включається, у вашому початковому коді.
Препроцесор – це програма, яка опрацьовує директиви. Директиви препроцесора – це команди компілятора відповідної мови програмування, які виконуються на початку компіляції програми.
Директиви мови С++ починаються із символа #.
Директива #include включає в текст програми вміст вказаного файлу. Ця директива має дві форми:
#include "ім'я файлу"
#include <ім'я файлу>
Ім'я файлу повинне відповідати угодам операційної системи і може складатися або тільки з імені файлу, або з імені файлу з попереднім йому маршрутом. Якщо ім'я файлу вказане в лапках, то пошук файлу здійснюється відповідно до заданого маршруту, а при його відсутності в поточному каталозі. Якщо ім'я файлу задане в кутових дужках, то пошук файлу проводиться в стандартних директоріях операційної системи, що задаються командою PATH.
Директива #include може бути вкладеною, тобто у файлі, що включається, теж може міститися директива #include, яка замінюється після включення файлу, що містить цю директиву.
Директива #include широко використовується для включення в програму так званих заголовних файлів, що містять прототипи бібліотечних функцій, і тому більшість програм на СІ починаються з цієї директиви.
Директива #include означає, що до програми необхідно приєднати програмний код із зазначеного після неї файлу (модуля, бібліотеки).
У першому випадку бібліотека math.h є стандартною (усі стандартні бібліотеки розміщені у папці INCLUDE середовища С++). Бібліотека MyBib.h не є стандартною і знаходиться за вказаним шляхом.
Перша програма
Директива #include <iostream.h> під’єднує бібліотечний файл iostream.h.
#include <conio.h> - під’єднання бібліотеки, де знаходяться іункції Clrscr() та Getch().
Clrscr() – очищення екрана.
Getch() – затримка на екрані результату виконання програми до тих пір, поки не буде натиснута довільна клавіша на клавіатурі.
Поява директив
#include <файл_1>
#include "файл_2"
...
#include <файл_n>
призводить до того, що препроцесор підставляє на місце цих директив тексти файлів файл_1, файл_2 ..., файл_n відповідно.
На відміну від багатьох інших операторів директива Include не повинна закінчуватися крапкою з комою .
2.Оператор присвоєння.
Операція простого присвоєння використовується для заміни значення лівого операнда, значенням правого операнда. При присвоєнні проводиться перетворення типу правого операнда до типу лівого операнда за правилами, згаданими раніше. Лівий операнд повинен бути тим, що модифікується.
Приклад:
int t;
char f;
long z;
t=f+z;
Значення змінної f перетвориться до типу long, обчислюється f+z,результат перетвориться до типу int і потім присвоюється змінній t.
Окрім простого присвоєння, є ціла група операцій присвоєння, які об'єднують просте присвоєння з однією з бінарних операцій. Такі операції називаються складними операціями присвоєння і мають вигляд:
(операнд1) (бінарна операція) = (операнд2)
Складне присвоєння за результатом еквівалентний наступному простому привласненню:
(операнд1) = (операнд1) (бінарне операція) (операнд2) .
Лівим операндом операцій (+=) (-=) може бути покажчик, тоді як правий операнд повинен бути цілим числом.
Приклади:
double с ;
double b=3.0;
b+=3; /* еквівалентно b=b+3 */
с/=b+1; /* еквівалентно с=с/(b+1) */
В мові С++ можливе присвоєння значення одночасно декільком операндам:
<операнд1> = <операнд2> = ... = <операнд N> = <вираз>
Дата добавления: 2015-08-26; просмотров: 787;