Professional Documents
Culture Documents
Trofymenko Algorithmization & Programming СР1
Trofymenko Algorithmization & Programming СР1
Самостійна робота № 1
Запис математичних виразів мовою С++
Мета роботи: набути практичних навиків записування арифметичних ви-
разів мовою С++.
Теоретичні відомості
1. Алфавіт мови С++
Алфавіт мови – набір символів, які можна використовувати для запису-
вання програмного коду: це великі та малі літери латиниці, цифри, знаки опе-
рацій та спеціальні символи. Кожен зокрема чи в комбінаціях знаки операцій і
спеціальні символи дозволяють задавати лексеми, вирази. Список усіх операцій
у порядку спадання їхніх пріоритетів наведено у додатку В.
Змінна – іменована ділянка оперативної пам’яті, застосовувана для збері-
гання даних під час роботи програми. При оголошенні змінної для неї резерву-
ється певна ділянка пам’яті, розмір якої залежить від конкретного типу змінної.
Значення змінної – фактичне значення, яке міститься у цій ділянці пам’яті.
Ім’я (ідентифікатор) змінної може складатися з літер латиниці, цифр та
символу «_» (підкреслювання), але неодмінно має розпочинатися з літери чи
символу підкреслювання. Великі й малі літери розрізнюються, тобто мова С++
є чутливою до регістру, наприклад – а та А – це два різних об’єкти. Ідентифіка-
тор створюється на етапі оголошення змінної, функції, структури тощо. Після
цього його можна використовувати в командах розроблюваної програми.
Коментарі застосовуються лише для пояснень і жодних дій у програмі не
спричинюють, тому що ігноруються компілятором. Текст коментарів розміщу-
ють поміж знаків /* та */. Наприклад:
/* Коментар до програми
може займати кілька рядків */
Окрім символів /* та */ для невеликих коментарів в один рядок у С++
використовують знак //.
// Текст після цього символу і до кінця рядка є коментарем.
Також, окрім пояснень, доволі часто коментарі використовують при нала-
годженні для тимчасового «вимкнення» певного фрагмента програми.
Тип змінної – вид і розмір даних, які змінна може зберігати. Кожен тип
даних зберігається й опрацьовується за певними правилами. Слід зауважити,
що розмір одного й того самого типу даних може відрізнятися на комп’ютерах
різних платформ, а також залежить від налагоджень компілятора.
Усі типи мови С++ поділяють на дві групи: основні типи та структурова-
ні. Список основних типів даних С++ із зазначенням діапазону та прикладами
можливих значень змінних наведено в табл. 1.1.
До основних (базових) типів можна віднести char, int, float та double, а
також їхні варіанти зі специфікаторами short (короткий), long (довгий), signed
(зі знаком) та unsigned (без знака).
Структуровані (похідні) типи базуються на основних, до них належать
масиви будь-яких типів, вказівники, функції, класи, файли, структури,
об’єднання, перерахування тощо.
Таблиця 1.1
Основні типи даних С++
Приклади
Розмір, Типи
Тип Назва Діапазон можливих
байт чисел
значень
char символьний 1 –128…127 'a', '\n', '9'
(знаковий)
unsigned беззнаковий 1 0…255 1, 233
char символьний
short короткий цілий 2 –32 768…32 767 1, 153, –349
unsigned беззнаковий 2 0…65 535 0, 4, 65 000
цілі
short короткий
int цілий –2 147 483 648… –30 000, 0, 690
4*
(знаковий) …2 147 483 647
unsigned беззнаковий 4 0…4 294 967 295 2 348, 60 864
int цілий
long цілий 4 –2 147 483 648… –30 000, 0, 690
(знаковий) …2 147 483 647
float дійсний одинарної 4 3.4·10–38…3.4·1038 3.23, –0.2
точності 100.23, 12,
дійсні
Для подання цілих чисел використовують типи char, short, int, long. Спе-
цифікатор unsigned застосовують при роботі з додатними числами (без знака), а
специфікатор signed – для яких завгодно чисел як додатних, так і від’ємних. За
замовчуванням призначається знаковий тип, а тому специфікатор signed зазна-
чати необов’язково.
Типи float і double визначають дійсні змінні розміром у 32 і 64 біти від-
повідно, а long double – 80 бітів. В С++ для відокремлення цілої частини числа
від дійсної застосовується десяткова крапка. Окрім звичної форми, дійсні
константи можна записувати у формі з рухомою крапкою. Наприклад: 2.38е3
(яке дорівнює 2.38 103 = 2380), 3.61е–4 (яке дорівнює 3.61 10–4 = 0.000361).
Число перед символом “е” називається мантисою, а після символу “е” – поряд-
ком, тобто замість основи 10 використовується літера “e”, після якої ставиться
показник степеня, наприклад: 1е3 (1 103 = 1000), –2.7е–4 (–2.7 10–4 = 0.00027).
Отже, на базових типах (char, int, float, double) будується решта типів
даних за допомогою специфікаторів:
signed (знаковий – за замовчуванням) та unsigned (беззнаковий) – до ці-
лих типів char та int;
long (довгий), short (короткий) – до типів double та int.
Наприклад:
unsigned int n;
int c; // Інтерпретується як signed int c
short а; // Інтерпретується як signed short int а
unsigned d; // Інтерпретується як unsigned int d
signed f; // Інтерпретується як signed int f
При оголошуванні змінних їм можна присвоювати початкові значення,
які надалі може бути змінено. У прикладі
int i, j = 1, q = 0xFFF;
ціла змінна i не є ініціалізована; j – ініціалізована значенням 1; q – ініціалізо-
вана шістнацятковим значенням 0xFFF (десяткове 4095).
При ініціалізації змінних їм можна присвоювати арифметичні вирази:
long MB=1024*1024;
Наведемо ще кілька прикладів оголошення змінних:
char tol='а'; // Символьна змінна tol ініціалізується символом 'а'
char х, c='\n'; // х не є ініціалізований, с – ініціалізований символом <Enter>
char *s="Одеса"; // Рядок символів
Якщо при оголошенні числові змінні не ініціалізовано, то їхні значення є
невизначені (випадкові).
Тип void (порожній, без значення) використовують для зазначення типу
функцій, які не повертають жодного результату, а всі дії та обчислення вико-
нуються всередині цих функцій. Також цей тип застосовують для зазначення
порожнього списку аргументів функції.
Для визначення розміру пам’яті, займаної змінною, існує операція
sizeof(), яка повертає значення довжини зазначеного типу, наприклад:
a = sizeof(int); // a = 4
b = sizeof(long double); // b = 10
Запис математичних виразів мовою С++ 17
3. Константи
6. Оператори присвоювання
7. Зведення типів
(
Приклад 3. V= lg5 x 3 ln 6 (x 2 + 1.7 ) + e x
)− arctg 3
x + tg 3 x 8
V=pow(log10(x*x*x*pow(log(x*x+1.7),6)+exp(sqrt(x))),5)-
atan(fabs(pow(x,1.0/3)+pow(tan(pow(x,8)),3)));
Запис математичних виразів мовою С++ 21
Таблиця 1.4
Варіанти арифметичних виразів
№ Арифметичний № Арифметичний № Арифметичний
вар. вираз вар. вираз вар. вираз
2t + y cos t 0.5n + 4.8 k + 2.6 p sin k
1 Z= 2 D= y +
2
3 Q=
y + 4.831 sin y x −d3
3.5d 2 + 1 sin(2t + 1) + 0.3 3t 2 + 4
2
4 F = ln(d ) + 5 R= 6 L = cos c +
2
Таблиця 1.5
Варіанти арифметичних виразів
№ Арифметичний № Арифметичний
вар. вираз вар. вираз
3 .5 x 2 + 1
F = cos(x + 2 ) +
2 x + b − a + ln( x)
1 2 T=
cos 2 y ctg (b + a )
sin(x 2 + a ) + 4.3a K − arx − a 6 − cos(3ab)
3
3 R= 4 D=
cos3 x 4 sin 2 (a arcsin x + ln y )
2x2 + 5 ln(x3 + y ) − y 4
5 L = ctg c +
2
6 U=
c+t e y + 5.4k 3
a + arccos(a + x 3 ) − sin 4 ( y − c)
5
tg ( y 3 − h 4 ) + h 2
7 P= 8 A=
sin3 ( x + y ) + x − y sin 3 h + y
(2 + y ) 2 + 7 sin( y + 5) cos2 y + 2.4d
R= y
e + ln(sin 2 x + 6 )
9 F= 10
ln( x + 1) − y 3
tg( x 4 − 6) − cos3 ( z + xy) x + cos3 x + z 4
11 G= 12 F=
cos 4 x 3c 2 ln x − arcsin(bx − a)
tg y + sin x b − c
3 5
cos(x 3 + 6) − sin( y − a)
13 U= 14 D=
a −b+c ln x 4 − 2 sin5 x
a + sin 4 ( y − c)
5
tg ( x 4 − 6) − cos3 x ( z + x 3 y)
15 P= 3 16 G=
sin ( x + y ) + x − y cos2 x 3 + c 2
cos3 y + 2 x d 4.351y 3 + 2t ln(t )
R= y S=
e + ln(sin 2 x + 7.4)
17 18
cos 2 y + 1
e x + (cos2 x − 4)
3
5
z + zx
19 U= 20 N=
arctg x + 5.2 y e + a 5arctgx
x
Таблиця 1.6
Варіанти арифметичних виразів
№ вар. Арифметичний вираз
1 V1 = x2 + ( arctg x − e 2
sin 2 (x 3 + 1.8) + 2.8 ) 4
x
3 (
V3 = x 2.8 cos2 (x3 − 1.5) +
4
)
x − arctg(x ln x )
5
4 V4 = sin (x − 5 4 3
lg4 (x 2 − ln2 (x − 1.8)) + arctg2 x )
5 V5 = (15.4 x − x 3.9 ) x 2 + lg2 ln3 x 3 − 1.8 + 95.3
(
lg3 x 2 −1.8 )3
6 V6 = e + x 4.5 arctg( x 2 + a 2 ) 4 − x3.2
7 V7 = (cos3 x1.5 + sin 2 x 3 )
4
(lg ( x + e
2 3
x +1.8
)+ x )
8 ( (
V8 = lg4 ln3 x 2 + x ) (x 3
+ ex )
3 5
) −x 3. 5
sin 2 (x 3 + 1.8)
9 (
V9 = cos5 x 2 + arctg x − 1.8 sin2 (x 2 + 1.5) + 3 x3.5 ) 5
10 (
V10 = arctg5 sin3 (x 2 + 1.8) − x − e3.8 x 4.5 +
5
) 4
( ) x
) ( 3
x
− x)
5
13
14 V14 = 3
x + x 3 + 1.3 cos 2 x 3 (1 + x ) ( 4
) e x
− x 7 .5
15 V15 = sin 5 ( x + cos3 (x 2 + 5.4) − arctg e x + 5.83.7 ) ( )
16 (
V16 = x 2 + sin 2 x − ln (x 2 − 3) lg 2 x + 3 5.5 x + ln x − e 2.5+ x ) ( ) 2
17 ( ) (
V17 = cos2 x 2 + x + 2 sin x 2 + x + ln2 x lg x + e ) ( x
)
18 V18 = x2 + sin( x + 2 x ) − e 2 x+ x
(cos 2
x + lg2 (ln x ))
19 V19 = 3
x + cos2 x + sin x 2 + lg x x 2 + ln2 x3 − e ( x
)
20 V20 = x + x + x + sin 2 x cos(x 2
+ ln 2 1 + e ( x
))
21
(
V21 = x 2 + cos x + ln x 3 + 1.8 + x lg x + e
2
) x
25 ( (
V25 = arctg 2 x 2 + cos x + x 2 − e x / lg 2 (x 3 − sin x ) ) )
26 (
V26 = sin2 x 2 + 3 x + cos2 x ) ln ( 2
x − arctg2 x )
2
29 ( ( )
V29 = cos3 arctg2 x + 3 x + sin 2 x sin lg2 (x + 2.8) )
30 (
V30 = lg5 x 3 ln 6 (x 2 + 1.7 ) + e x
)− arctg 3
x + tg 3 x 8