Варіанти індивідуальних завдань



1. 1) 2) double x = 3.125; int c = 10, sm = 'B', k = (int)x;2.1) x > c/3 ? sm + c%3 : sm - c%3 2.2) k ^ 5 | c & 0x3f
 

3) Написати вираз, що повертає ціле число, значення якого дорівнює двом найстаршим цифрам дробової частини заданого дійсного числа.

2. 1) 2) int d = -5, m = 8; double z = 37.42; 2.1) (d + m)* (int)(z+0.5) % 100 /10 >= m 2.2) d & 1 ? ~d << 6 : d ^ 0321
 

3) Задано символ. Написати вираз, який перевіряє, чи цей символ є одним із знаків булевих операцій мови С.

3. 1) 2) int v = -5, d = -7* v; unsigned m = 0xade5;2.1) d % 10 + d /2 – (v << 2) 2.2) m & 255 < m >> 8 ? "лівий" : "правий"
 

3) Задано два дійсні числа. Написати вираз, що повертає дві наймолодші цифри числа, яке є резуль­татом округлення до ближчого цілого більшого з цих двох дійсних чисел.

4. 1) 2) unsigned c = 0245, f = 13, q = 0xf1a5; double y = 0.8276e2; 2.1) (int)(2*y-1) == c ? ++f /3 : --f % 72.2) q >> 8 | ~q << 4 & 0xf3
 

3) Задано точку Q з координатами (xq, yq) і пряму, що описується рівнянням y = ax +k (xq, yq, a та k – дійсні числа). Записати вираз, що визначає, як розташована ця точка – над прямою чи під прямою.

5. 1) 2) int b = -9, x = 15, c = 013, m=0;2.1) x >= b && x <= c || !m 2.2) ~b | x << 3 & 0XF3E5
 

3) Задано певний рік. Визначити, чи цей рік високосний. Підказка: висо­кос­­ним вважається рік, що цілочислово ділиться на 4, але не ділиться на 100, крім років, що діляться на 400 (2000 рік високосний, а 1900 – ні).

6. 1) 2) long nb = 0X3A12FB; int c = '5', q = -17;2.1) (nb >> 15)/10 + -q % 2 == c -'1'2.2) nb & 3 ? nb ^ ~q : nb & 035
 

3) Задано певний символ. Написати вираз, який перевіряє, чи цей символ належить до символів 16-х цифр.

7. 1) 2) int c = 3, sm = '5'; double z = 11.75; 2.1) (int)z/3 <= c ? sm – 5*c%4 : sm - c 2.2) (int)(z+0.5)| 013 ^ c & sm
 

3) Задано два цілі числа. Написати вираз, який перевіряє, чи остання цифра меншого з цих чисел дорівнює 3.

8. 1) 2) double z = 185.6E-2; int b = -4, c = 12, m = 0x31, x = 1;2.1) c -= m / 10 +((int)z % 3 ? x << 4 : m)2.2) !(x < b || x > c) && m & 1
 

3) Написати вираз, який перевіряє, чи найближче до заданого дійсного числа більше ціле є числом, дві останні цифри якого дорівнюють 26.

9. 1) 2) int h = 022, q = 7; double x = 17.82; 2.1) (int)(x+0.5)% 100 /5 > (h + q)/q 2.2) h & 3 ? ~h >> 3 & 0xf7 : h | 0x3d1
 

3) Задано чотирицифрове ціле число. Написати вираз, який перевіряє, чи збігаються дві середні цифри цього числа.

10. 1) 2) double w = 3.77E1; int ch = 'D', d = -6, k = (int)(w+0.5);2.1) k/2 == -d*3 ? ch + k%3 : ch - k%3 2.2) d & 0x1f3 | k ^ 13
 

3) Задано три дійсні числа. Написати вираз, який повертає значення найменшого з цих чисел.

11. 1) 2) long nb = 0631256; int h = nb >> 12, c = '9';2.1) h /10 + -h % 2 *( c -'1')2.2) ( h & 0xf ) != 13 ? 037 ^ ~h : h & c
 

3) Задано двобайтове беззнакове ціле число. Написати вираз, який формує нове число, в якому старший і молодший байти заданого числа переставлені місцями, і перевіряє, чи значення нового числа більше за значення заданого.

12. 1) 2) int a = 15, d = 017, m = 0x1a6; long double z = 852.16e-2; 2.1) d *= m % 5 +((int)z ? a >> 2 : a/2)2.2) !(a >= d) || ~m & 15
 

3) Задано дійсне число. Написати вираз, який перевіряє, чи найближче до даного числа ціле є числом, що закінчується цифрою 7.

13. 1) 2)  double z = 33.8461; int b = -11, c = (int)z, g = 0x21;2.1) !(g >= c || b <= g && b == -c/3) 2.2) ~b ^ 0375 | c << 3
 

3) Задано довге ціле число. Написати вираз, який буде істинним, якщо значення молодшого байта цього числа щонайменше вдвічі більше за значення його найстаршого байта.

14. 1) 2) float p = 17.45; int k = (int)(p+0.5), n = -3;2.1) -n/5 < ++k % 5 ? 'n' : 'k' 2.2) n & k | ~n << 5 ^ 126
 

3) Записати вираз, який повертає найстаршу цифру дробової частини меншого з двох заданих дійсних чисел.

15. 1) 2) unsigned c = 30, f = 13, p = 03175; double y = 0.5676e2; 2.1) (int)y /2 >= c ? ++f /3 : --f % 7 * 22.2) p >> 5 & 0x1f | ~p << 4 & 0xf7
 

3) Задано два цілі беззнакові числа. Написати вираз, який перевіряє, чи менше з цих чисел є дільником більшого.

16. 1) 2) double r = 23.8; int k = -14, f = 3; 2.1) (k + f)*(int)(r +0.5)% 100 /10 <= f 2.2) (~k ^ 0xf)==5 ? k << 4 : k & 0321
 

3) Написати вираз, який перевіряє, чи точка з координатами (x, y) потра­пляє у частину круга з радіусом R , що розташо­вана в другому квадранті (центр круга в точці початку координат).

17. 1)   2) long m = 0x1a2b3f; int vb = '1', t = -61;2.1) -t % 10 + (m >> 14)/10!= '9'- vb2.2) (char)m & 10 ? m ^ ~t : m & t
 

3) Задано рівняння прямої y = kx +c (коефіцієнти k та c дійсні числа) і точку площини P з координатами (xP, yP). Написати вираз, який визначає, де розташована ця точка відносно прямої (над прямою чи під нею).

18. 1) 2) double y = 73.846E-2; int b = -11, h = 015, c = 13;2.1) !(int)(y+0.5) && (h >= b || h != c) 2.2) ~b | h << 10 ^ 0x53ed
 

3) Задано дві точки, кожна з яких описується своїми координатами (x1, y1) та (x2, y2). Написати вираз, що визначає, яка з точок (перша чи друга) роз­та­шована ближче до точки початку координат.

19. 1) 2) int b = -7, sm = 'Q'; double x = 7.32; 2.1) x > -b%10 ? sm + b >> 2 : sm – b << 1 2.2) b & 0134 | (int)(x+0.5)^ 255
 

3) Задано чотирицифрове ціле число. Написати вираз, який перевіряє, чи серед цифр цього числа є 0.

20. 1) 2) int b = -5, c = 15, m = 0236, x = 2; float z = 185.6E-1; 2.1) b+-= m % 10 +((int)z % 3 ? c : x << 4)2.2) !(x < b || x > c) && ~m & 1
 

3) Записати вираз, який визначає, чи старша цифра дробової частини заданого дійсного числа непарна.

21. 1)   2) unsigned a = 25, k = 19, c = 017563; double q = 128.276e-1; 2.1) (int)(2*q-1)/2 == a ? ++k : --k % 72.2) ~c << 4 & 0xf0 ^ c >> 8
 

3) Написати вираз, який повертає наймолодшу цифру числа, що форму­ється як результат округлення до ближчого цілого меншого з двох заданих дійсних чисел.

22. 1) 2) float z = 185.6e-2; int d = 015, a = 13, nc = 0X1B6;2.1) d *= nc % 5 +((int)z ? a >> 3 : a/2)2.2) !(a >= d) || (~nc & 7)== 2
 

3) Задано дійсне число. Написати вираз, який перевіряє, чи найближче до нього більше ціле є парним числом.

23. 1) 2) double sq = 1.428e2; int t = (int)(sq + 0.5), u = -t/10;2.1) (int)sq % 10 > ++t /10 ? "так" : "ні" 2.2) u ^ t | ~n << 5  &  0x2d6c
 

3) Задано символ. Написати вираз, який перевіряє, чи цей символ є одним із знаків арифметичних операцій мови С.

24. 1) 2)  int b = -15, s = '3'; long nb = 02346710;2.1) (nb >> 15)/10 + s -'0' < -b % 82.2) nb & 19 ? nb & 0XA3D : nb ^ ~b
 

3) Задано ціле трицифрове число. Написати вираз, який перевіряє, чи сума цифр цього числа дорівнює 10.

25. 1) 2) double z = 3.78; int g = 012, m = -7; 2.1) (g - m)* (int)z % 10 >= 3 * g /22.2) m & 1 ? g << 6 : ~g ^ 0X3A00C7F9
 

3) Задано дійсне число. Написати вираз, який перевіряє, чи найближче до цього числа ціле є числом кратним 5.

26. 1) 2) int b = 015, x = 13, nc = 0x5ef; double u = 13.56E-3; 2.1) b /= nc % 10 +((int)u ? x / 2 : x >> 3)2.2) !(x > b) && ~nc & 3
 

3) Записати вираз, який повертає найстаршу цифру дробової частини більшого з двох заданих дійсних чисел.

27. 1) 2) double y = 1287E-2; int c = '3', h = 11, m = (int)y;2.1) y > h/3 ? c + h%3 : c - h%3 2.2) ~m & 013 | h ^ 0X3B7
 

3) Задано довге ціле число. Записати вираз, що визначає, який з двох середніх байтів цього числа (лівий чи правий) має більше значення.

28. 1) 2) long w = 0xa53b2f; int s = 'Z', b = -14;2.1) -b/3 +( w >> 16)%100 / 10 >= s -'A'2.2) b & 3 ? w ^ ~b : w & 0xd3f
 

3) Задано три цілі числа. Написати вираз, який перевіряє, чи є серед них таке число, що може бути дільником двох інших.

29. 1) 2) int b = -8, k = 0x21; double x = 0.2361e2; 2.1) b == -(int)x /3 && 10 <= k || k%10 > b 2.2) b << 3 | ~k ^ 0614
 

3) Задано символ. Написати вираз, який перевіряє, чи цей символ належить до символів ідентифікаторів мови С.

30. 1) 2) int q = -6, v = 11; double w = 9.71; 2.1) (v - 2*q)/(int)w % 10 >= v /32.2) ~q & 1 ? q << 4 : q ^ 0x21e
 

3) Задано довге беззнакове ціле число. Написати вираз, який перевіряє, чи сума значень найстаршого і наймолодшого байтів цього числа перевищує 500.

Лабораторна робота № 8

 ФОРМАТНЕ ВИВЕДЕННЯ ТА ВВЕДЕННЯ ДАНИХ

Мета роботи:  Ø практично закріпити знання про організацію форматного виведення і введення даних у С-програмах;  Ø навчитись застосовувати специфікації виведення стандартної бібліотечної функції printf() для наочного відображення даних на екрані;  Ø отримати навики введення числової та іншої інформації через бібліотечну функцію scanf().

Завдання лабораторної роботи

16. Детально ознайомитися із функціональ­ними можливостями стандартних бібліотечних функцій форматного виведення і введення даних printf()та scanf(). Розглянути структуру полів кожної із специфікацій формату і продумати, у яких випадках доцільно їх застосовувати.

2. Проаналізувати виклик функції printf(), записаний в п. 1 індиві­дуального завдання. Уважно розглянути її параметри: специфікації рядка формату та вирази, значення яких виводяться на екран. Розрахувати значення кожного з цих виразів для заданих типів і значень змінних – всі розрахунки мають бути наведені в звіті. Визначити, в якій формі, з якою точністю, в яких позиціях екрану тощо відображатиметься кожне значення (у специфікаціях формату не плутати малу латинську літеру l з цифрою 1). Потім програмно реалізувати задану функціюprintf() і порівняти отримані результати з прогнозованими. Якщо виявлено відмінності, то встановити їхню причину та зробити відповідні висновки.

3. У п. 2 індиві­дуального завдання наведено оголошення двох змінних. Написати програму (краще дві окремі програми), в якій реалізувати різні можливі форми виведення значень цих змінних, використовуючи відповідні специфікації формату. Програма має складатися із набору (послідовності) операторів виклику printf() з різними допустимими для відповідного типу специфікаціями формату. До значень цілочислових типів треба застосувати кожну зі специфікацій: d, i, x, X, o, с з необхідними модифікаторами і можли­вими прапорцями; до значень дійсних типів застосувати специфікації:
f, e, E, g, G, задаючи різну точність зображення чисел. Результати виведення у звіті подати парами: <специфікація> – <виведене значення> (зазначити обов’язкові пробіли перед числом або за ним). Для зручності перегляду та аналізу результатів можна встановити затримку програми наприкінці її роботи. Найпростіше це зробити через виклик функції getchar().

4. Написати коротку програму, в якій перевірити правильність розрахун­ків значень виразів з п. 2 індиві­дуального завдання лабораторної роботи №7. Для цього реалізувати наочне та зручне для сприйняття виведення результату –виокремити його порожніми рядками, вивести супроводжуючий текст, вибрати відповідну специфікацію формату (числову, символьну чи текстову) тощо. Значення булевих виразів найкраще спочатку вивести в шістнадцятковій формі (щоби легше було порівняти з результатами попередніх розрахунків), а потім вказати їхні десяткові значення. Значення логічних виразів можна вивести як числові, але краще доповнити їх умовною операцією і вивести відповідну текстову інформацію.

5. Розробити ще одну програму, в якій реалізувати виведення значення виразу, заданого в п. 3 індиві­дуального завдання попередньої лабораторної роботи. Оголосити необхідні змінні та організувати введення з клавіатури їхніх значень (попередньо треба вивести на екран відповідну підказку). Для введення використати функцію scanf(), вказавши коректну для типу кожної змінної специфікацію та задавши адреси змінних у списку введення. Записати функцію  printf(), в якій розроблений вираз має бути елементом виведення. Рекомендації: 1) бажано, щоб окрім значення виразу в printf()виводилися також значення змінних, для яких обчислю­ється цей вираз (див. приклад нижче); 2) якщо вираз використовує побітові операції, то для введення даних і виведення результату найкраще використати 16-ві форми подання значень;
3) якщо вираз має дати відповідь на поставлене в умові запитання, то доцільно щоб значенням виразу був символьний рядок (див. приклад). Виконати програму для різних значень змінних, проаналізувати і записати результати.

Приклад. Фрагмент програми для перевірки виразу з попередньої лабораторної роботи, який визначає менше з двох заданих дійсних чисел.

printf ("\n\n З двох чисел: %.2f та %.2f менше - %s \n ",
       fst, scnd, fst < scnd ? "перше" : "друге );

6. У звіті до лабораторної роботи треба для кожного пункту записати завдання, навести відповідні розрахунки і /або тексти розроблених програм, а також результати реалізацій цих програм та зроблені висновки.


Дата добавления: 2018-04-15; просмотров: 2539; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!