Тема 2. Структурне програмування. Оператори в мові С



Кібернетико-технічний коледж

А.В. Книшук, С.О.Улічев

Збірник практичних та лабораторних завдань

З програмування на мові С

Кіровоград, 2007

Зміст

  Стор
Вступ Тема 1. Тема 2. Тема 3. Тема 4. Тема 5. Тема 6. Тема 7. Тема 8.   Список літератури Додаток 1. Зразок оформлення лабораторної роботи Додаток 2. Робота з тестовою програмою ISPYT  

Вступ

В посібнику запропоновано відповідно до лекційних тем навчального плану дисципліни теоретичні питання та завдання лабораторних робіт.

Вимоги до оформлення лабораторної роботи.

Звіт щодо виконаної роботи повинен містити наступні відомості:

· опис програм (їх призначення та функції)

· постановку та хід розв‘язання індивідуальних завдань

· опис розроблених (або використаних) математичних моделей та алгоритмів

· Довідка користувача (відомості про те, як користуватись програмою)

· тестовий приклад та результати його обробки програмою

· тексти розроблених програм

Всі матеріали також подаються у електронному вигляді (на дискеті) разом зі звітом.

Звіт оформлюють на аркушах формату А4, аркуші нумерують, скріплюють і подають для підпису викладача практики.

 

Питання тестів є питаннями іспиту з дисципліни “Алгоритмічні мови та програмування”.

Також запропоновано збірку задач для виконання на практичних заняттях. Задачі розташовані в міру зростання складності.

 

 

Тема 1. Основні поняття мови С. Введення/виведення даних

 

Запитання до теми

1. Які символи входять до алфавіту мови С?

2. Які знаки використовуються для позначення коментарів?

3. Що таке ідентифікатор ?

4. Чи є ідентифікатори MONTH, Month, month, MoNtH однаковими, якщо ні – то чому?

5. Які з наступних символів можуть бути використаними при створенні ідентифікатора: “\”, ” ”, ”6”, ”_”?

6. Які з арифметичних операції визначені лише на множинні цілих чисел? Наведіть приклади.

7. Який розмір в байтах займають змінні базових типів?

8. Яку функцію виконують модифікатори типу ?

9. Що таке вираз?

10. Якого значення набуде вираз:

(x&&y) || z, якщо

x ‑ істина                         z=0                    z=0

y – не істина                   x=1                    y=0

z ‑ істина                          y=1                    x=1

11. Що більше: 17/6 чи 17%6?

12. Доберіть операції для цілочислених аргументів: 17, 6, 3, щоб одержати результат 15.

13. Як за допомогою стандартних функцій С обчислити ctg(x)?

14. В якому заголовному файлі описані функції printf(), scanf()?

15. Що таке форматоване виведення та як воно реалізоване в мові С?

16. Чи можна за допомогою одного оператора виводу вивести на екран інформацію в декілька рядків, наведіть приклад?

17. Що таке ширина поля виводу? Як її задати?

18. Яку кількість аргументів може мати функція printf()?

19. Перелічити специфікатори формату виведення в С.

20. Чи можна використовувати обчислення безпосередньо у функції виводу?

21. Яка Esc-послідовність використовується для виводу звукового сигналу?

22. Які функції, крім printf(), використовуються для виведення інформації?

23. Яку функцію потрібно використати, щоб ввести з клавіатури дві цілочислені змінні х1 та х2?

24. Яку інформацію містить рядок управління в функції scanf()?

25. Які функції, крім scanf(), використовуються для введення інформації?

 


Задачі для практичних робіт

 

1. Бабусею на депозит в банк було покладено 1000 грн. під 12% річних. Дідусь спочатку обміняв таку ж суму на $ за курсом продажу 5.1 грн/$ й поклав на валютний рахунок під 9% річних. По закінченню річного строку курс покупки $ становив 5.25 грн./$. Визначити в гривневому еквіваленті різницю між фінансовими станами бабусі та дідуся.

2. Перше січня 2005 року було суботою. Визначити, яким за номером днем тижня був N-ий день цього року.

3. Тваринник на початку кожної зими підвищує відпускну ціну на молоко на p%, а кожного літа – знижує на стільки ж відсотків. Чи зміниться ціна на молоко і якщо так, то яким чином і наскільки через n років?

4. Обчислити значення функції z=sin3 b+lgxa-y, якщо y=a/lnx, x=a–eb та a=1,1, b=0,3.

5. Обчислити значення похідної функції y=xx в заданій точці x=a (a>0).

6. Для заданого a обчислити корінь рівняння ln(ctg x-1)=a, що належить інтервалу (p, 2p).

7. Обчислити дробову частину середнього геометричного трьох заданих додатних чисел.

8. Обчислити довжину кола, площу круга та об’єм кулі одного й того ж заданого радіуса.

9. Знайти добуток цифр заданого чотиризначного числа.

10. Визначити число, отримане виписуванням цифр заданого числа у зворотному порядку.

11. Визначити тривалість руху тіла, що вільно падає із заданої висоти H.

12. За введеною швидкістю та кутом кидання визначити дальність польоту тіла, кинутого під кутом до горизонту.

13. За шкалою Реомюра температурі плавлення льоду відповідає 0°R, а температурі кипіння води – 80°R. Записати програму переведення температури, що задана за шкалою:

а) Реомюра у температуру за шкалою Цельсія; 

б) Цельсія у температуру за шкалою Реомюра.

14. Визначити період коливань математичного маятника, довжина підвісу якого становить 156.8 см.

15. Задати рівняння двох прямих на площині: y=k1х+b1 і y=k2х+b2, що перетинаються та визначити кут (в градусах та мінутах) між ними. Використати формулу:


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

Тема:Обчислювальні програми з використанням функцій форматованого вводу / виведення.

Мета: навчитись створювати лінійні програми обчислювального характеру з введенням даних з клавіатури і виведенням результату на екран

Завдання

1. Обчислити значення виразу, ввівши необхідні дані з клавіатури та використавши допоміжні змінні. Результат вивести на екран у вказаному форматі.

2. Обчислити площу заштрихованої фігури. Необхідні параметри ввести самостійно.

Скласти звіт.

 

варіант

завдання 1

завдання 2
Вираз ширина поля точність фігура
1 , де b=2.1 10 4  
2 , де y=3.75 8 3  
3 , де y=0.94 9 5  
4 , де x=0.31 8 4  
5 , де y=0.02 12 2  
6 , де a=1.71, x=-1.1 10 5  
7 , де y=2.44 12 5  
8 , де y=1.18 9 2  
9 , де b=1.04 12 4    
10 , де b=0.9 11 5  
11 , де y=6, x=1.13 14 6    
12 , де b=3.5 8 2  
13 , де a=4.7 10 3  
14 , де c=2.4, t=5.18 9 3  
15 , де b=1.96 8 4  
16 , де c=0.7 12 3  
17 , де k=2.71, w=1.1 14 2  
18 , де x=-3.3 10 3  
19 , де x=6.2 11 4  
20 , де a=1.45 9 2  
21 , де φ=1.75 10 4  
22 , де a=2 8 2  
23 , де y=4, b=1 9 3  
24 , де x=1.5 12 4  
25 14 5  

 


Тестові завдання

1. Вкажіть правильне твердження: а) арифметичні операції *, /, %, + – мають однаковий пріоритет; б) операція взяття за модулем може використовуватись тільки з цілими операндами; в) імена змінних thisisasuperduperlongname1234567 і thisisasuperduperlongname123456 ідентичні у всіх системах С, що задовольняють стандарту ANSI; г) операція / використовується лише з цілими операндами
2. Який із перерахованих нижче операторів відповідає рівнянню y = ax3 + 7 ? а) y = a * (x * x * x) + 7;        в) y = pow (a*x, 3) + 7; б) y = a * x * x * (x + 7);        г) y = a * pow (x + 7, 3);
3. Який діапазон значень змінної типу "int"? а) -128 .. 127                 в) 0 .. 65 535 б) -32 768 .. 32 767       г) 1..65 526
4. Який діапазон значень змінної типу "char" ? а) -128 .. 127;               в) -255 .. 0. б) 0 .. 255;                     г) 1 .. 256
5. Вкажіть правильний порядок пріоритету операцій: а) +, ++, %, *              в) ++, *, %, + б) *, %, ++, +               г) %, *, ++, +
6. Арифметична операція “++” це: а) збільшення на одиницю;      в) множення. б) збільшення на саме себе;     г) піднесення до квадрату
7. Операція відношення “!=” відповідає математичному: а) дорівнює        в) не дорівнює б) більше            г) менше
8. При використанні операції присвоювання вираз m -= 20 аналогічний запису: а) m – 20             в) m = m % 20 б) m = m – 20      г) m < 20
9. Вкажіть правильне твердження: а) функція printf завжди починає друкувати з початку нового рядка; б) коментарі при виконанні програми виводяться на екран; в) всі змінні повинні бути об’явленими до їх використання; г) C не розрізняє великі і малі букви.
10. Що видасть на екран наступний фрагмент програми: x=5; printf(x=%d”, x++); ? а) х = 5         в) х = 5++ б) х = 6         г) х = %6.
11. Керуючий символ %d указує на: а) читання символу б) читання 10-вого цілого в) читання числа типу float г) введення даних у форматі відсотків
12. Оцінити значення виразу 4<<2: а) 8   в) 16 б) 2   г) 1
13. Оцінити значення виразу5>>2: а) 10   в) 20 б) 2     г) 1
14. Вказати групу операцій, що відносяться до однієї категорії: а) +, %, --, ^  в) !, &&, çç, –> б) <, =, !=, >  г) *=, +=, %=, ^=
15. Вкажіть невірне твердження.  В алфавіт мови С входять наступні символи: а) #, %, @, & в) ~, &, ^, ? б) ?, !, $, #     г) {, ~, &, $
16. Аналогом виразу x+++b є: а) (x++)+b     в) (x+1)+b б) x+(++b)     г) вираз містить помилку
17. Оцінити значення виразу17 % 6 / 2: а) 1     в) 2      б) 2.5     г) 0
18. Оцінити значення виразу-3<x<-1, якщо intx=-2: а) 1      в) true б) 0      г) вираз містить помилку
19. Оцінити результат виконання фрагменту програми: intx=8; printf(“z=%3.1f”, pow(x,1/3)); а) z=2.0      в) 0.0 б) z=1.0      г) фрагмент містить помилку
20. Оцінити результат виконання фрагменту програми: intx=2; printf(“z=%3.1f”, exp(log(x/3))); а) z=0.6      в) 1.0 б) z=0.7      г) помилка виконання програми

 


Тема 2. Структурне програмування. Оператори в мові С

 

Запитання до теми

1. Що таке складний оператор ?

2. Чим відрізняється складний оператор від блоку?

3. Де може здійснюватись опис змінних в мові С?

4. Які оператори розгалуження існують в мові С ?

5. Як застосовується оператор безумовного переходу?

6. Чим відрізняється повна форма оператора вибору від скороченої форми?

7. Що таке складна умова ?

8. Зобразіть блок-схеми повної та скороченої форми умовного оператору if?

9. Запишіть за допомогою операторів С наступну структуру: “якщо к>0 або к=0, то к=к*к; якщо к<0, то к=-к”.

10. Яке обмеження накладається на керуючу змінну оператора вибору switch ?

11. Яке завдання оператору break в конструкції switch…?

12. Яка роль оператора default в конструкції switch…?

13. Чи є помилкою відсутність оператора default в конструкції switch…?

14. До якого заголовного файлу відноситься функція генерування випадкового числа rand() ?

15. Напишіть оператор, що згенерує число з діапазону [-350;50].

16. Для чого використовується функція randomize(), як можна досягти того ж ефекту без використання randomize()?

17. В чому відмінність між циклами з перед- та післяумовою?

18. Що є тілом циклу?

19. Порівняти організацію роботи циклу з післяумовою в мовах Паскаль та С.

20. Назвіть особливості циклу for у мові С.

21. Який цикл називають порожнім?

22. Що таке "зациклювання" циклів?

23. Яке призначення операторів breakта continue в циклах?

24. Що означає поняття “вкладені цикли”?

25. Як перевіряються на прикладах алгоритми з циклами?

 


Задачі для практичних робіт

1. На конференцію приїхало N чоловік. Для їх перевезення виділили автомобілі місткістю K та M чоловік. Визначити найменшу необхідну кількість автомобілів для перевезення всіх делегатів конференції.

2. Задати число х та вивести в порядку зростання числа chx, 1+ïxï й (1+x2)x.

3.Тіло має масу m кг та об’єм V. Визначити, чи буде тіло плавати у воді?

4.Нумізмат через збиральну лінзу, фокусна відстань якої 5 см, вивчає монету. Яким буде зображення монети, якщо відстань від лінзи до неї d см?

5. Створити програму, що за введеною датою народження визначає відповідний знак Зодіаку.

6. Створити програму тестування знань з географії. Кількість питань не менше 5.

7.Трикутник задано довжинами сторін: a,b,c. Визначити вид трикутника (гострокутний, прямокутний чи тупокутний).

8. Для заданого числа a знайти корінь рівняння f(x)=0, де

9.Перевірити, чи належить коло (x-a1)2 + (x-b1)2 = r12 повністю колу

(x-a2)2 + (x-b2)2 = r22 або навпаки.

10. Визначити, чи може куля радіусу r пролізти через ромбоподібний отвір з діагоналями u й w.

11.Для введеного номеру дня тижня вивести його назву.

12. Перевести задане двоцифрове число в систему римського числення, якщо римські цифри позначаються наступними латинськими буквами: 1 – І, 5 – V, 10 – Х, 50 – L, причому для позначення попереднього чи наступного грає місце розташування букв (наприклад 4 – ІV, а 6 – VI)

13. На шаховій дошці знаходяться чорний король та білий король і ферзь. Перевірити, чи є шах чорному королю? Якщо так, то перевірити ситуацію на факт перемоги білих.

14. Гра доміно починається з викладання камінця “1:1”. Змоделювати подальші три ходи гравців, враховуючи унікальність кожного камінця.

15. Добовий раціон корови становить x кг сіна, y кг силосу та z кг комбікорму. В господарстві, що має поголів’я із k корів, залишилося s центнерів сіна, r тон силосу й p мішків комбікорму по 50 кг. Скільки ще діб господарство зможе годувати худобу згідно повного раціону? Який із кормів закінчиться раніше інших?

16.Гравець підкидає дві гральні кості та підсумовує очки, що випали. Аналогічні дії виконує комп’ютер. Переможцем стає той, хто набрав найбільшу кількість очок, не перевищивши 21.

17. Підприємець купив партію товару в кількості 100 одиниць за оптовою ціною p1. Потім він цей товар продав за роздрібною ціною p2. Податок становив 14% від продажу. На виручені кошти закуповується новий товар. Скласти програму для визначення кількості торгових циклів при умові отримання коштів, що перевищують початкову вкладену суму в 10 разів.

18.Обчислити: а) y=sin 1 + sin 1.1 + sin 1.2 + … + sin 2.

б)  із вказаною точністю.

19. Скласти програму обчислення значення математичної константи е із вказаною точністю, використавши формулу:

20. Перевірити першу чудову границю , задавши х значення 1; 1/2; 1/4; 1/8; … до тих пір, поки ліва частина рівності не буде відрізнятись від правої менше ніж на задану похибку e.

21.Обчислити суму квадратів усіх цілих чисел, що належать проміжку (ln x , ex) для 1<х>10.

22.Надрукувати таблицю істинності для логічної функції

F=(A і B) або не (B або C)

в наступному вигляді:

A B C F
0 0 0  
     
1 1 1  

23. Визначити, скільки із 20 дійсних чисел введеної послідовності перевищує своїх “сусідів”, тобто попереднє та наступне числа.

24. Визначити, чи є два задані числа a та b взаємопростими, тобто такими, що окрім 1 не мають спільних дільників?

25.Отримати число, що є дзеркальним відображенням введеного цілого числа n.

26.Число Армстронга – таке число із k цифр, для якого сума k-их степенів його цифр дорівнює самому числу, наприклад: 153=13+53+33. Знайти всі числа Армстронга, що не перевищують 10000.

27. Добовий раціон корови становить x0 кг сіна, y0 кг силосу та z0 кг комбікорму. В господарстві, що має поголів’я із N корів, залишилося X кг сіна, Y кг силосу й Z кг комбікорму. Щоденно гине pN% корів; pX% сіна згниває; pY% силосу розкрадається колгоспниками, pZ% комбікорму розпродує завфермою. Коли господарство не зможе годувати худобу, що залишиться згідно повного раціону? Який із кормів закінчиться раніше інших?

28.Відомий час початку та закінчення (наприклад 6:00 та 24:00) роботи деякого приміського автобусного маршруту з одним автобусом на лінії, а також протяжність маршруту в хвилинах (в один кінець) та час відпочинку на кінцевих зупинках. Скласти добовий розклад цього маршруту (моменти відправлення з кінцевих пунктів) без врахування часу на обід та перезміну.

29. Підприємство щорічно на протязі n років закуповувало устаткування вартістю відповідно s1, s2, …,sn грн. (числа вводяться й обробляються послідовно). Щорічно в результаті зношення й морального старіння (амортизації) все наявне устаткування уціняється на p%. Яка загальна вартість устаткування за n років.

30. Реалізувати гру за такими правилами: на екрані з випадковим розташуванням з’являються три випадкові цифри; користувач за допомогою клавіш-“стрілок” керує положенням на екрані символу “*”, при проходженні якого через цифри відбувається їх підсумовування. Період випадання цифр – 3 с, незібрані цифри зникають. Сеанс гри триває 30 с.

 


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

Тема: Обчислювальні програми з використанням операторів розгалуження.

Мета: Навчитися створювати алгоритм та програми обчислювального характеру з використанням умовного оператору if...else.

Завдання

1. Скласти програму розв’язування задачі обчислення значення функції з використанням складної структури розгалуження, та виводом результату на екран. Аргументи вводяться з клавіатури.

 

2. Скласти логiчний вираз для опису складних областей точок в системi координат X-Y. Виявити належність цій області точки, координати якої вводяться з клавіатури.

 

Скласти звіт.

 

варіант завдання 1 завдання 2
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15
16
17
18
19
20
21
22
23
y
x
4
24

 
25  

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

Тема: Обчислювальні програми з використанням операторів циклу.

Мета: Навчитися створювати алгоритм та програми обчислювального характеру з використанням операторів повторення for, while, do-while.

 

Завдання

1. Протабулювати функцію, використавши цикл з передумовою. Аргументи і результати вивести на екран у вигляді таблиці (для значень х, в яких функція не існує вивести "—" і використати оператор переходу на наступну ітерацію).

 

2. Написати програму знаходження суми:

а) n членів ряду для заданого х за допомогою циклу з параметром;

б) членів ряду з точністю ε для заданого х  та їх кількість, використавши цикл з післяумовою.

в) членів ряду з точністю ε для заданої послідовності х. У зовнішньому циклі для подачі аргументу х використати оператор циклу з передумовою, у внутрішньому – обчислити суму для конкретного х з точністю до ε, використовуючи оператор циклу з післяумовою; вивести на друк значення S, х, n.

 

Скласти звіт.

 

варіант завдання 1 завдання 2
1   для х=-1..1.5, Δx=0.25 а) n=6, х=0.1;  б) x=0.1, ε=0.0001; в) х=0.1 ...0.6, h=0,1, e=10-3  
2. ,   для х=-1.5..4, Δx=0.5   а) n=8, x=0.5; б) х=0.5, ε=0.0001; в) x=0.1 .. 0.5, h=0.2, ε=10-4  
3.   для х=-2..1, Δx=0.25   а ) n=7, x=0.7;   б) x=0.7, ε=10-5 в) x=0.1 ...0.5, h=0.1, ε=10-5  
4.   для х=0..2, Δx=0.1   а) n=7, x=0.4;  б) x=0.4, ε=10-3; в) x=0.1 ...0.7, h=0.15, ε=10-3.
5.   для х=-3..0, Δx=0.5   а) n=6, x=0.3;  б) x=0.3, ε=10-4; в) x=0.2 ...0.7, h=0.1, ε=10-4  
6.   для х=-4..1, Δx=0.2 а ) n=6, х=0.6; б) х=0.6, ε=10-5 в) х=0.2...1, h=0.2, ε=10-5
7.   для х=-1.4..3.4, Δx=0.4   а) n=6, x=0.4; б) x=0.4 ,ε=10-3 в) x=0.1 ...0.7, h=0.2, ε=10-3  
8.   для х=1.. 2.5, Δx=0.25   а) n=6, x=0.5; б) x=0.5, ε=10-3 в) x=0.15 ...0.75, h=0.2, ε=10-3.
9.   для х=-2.6..-0.6, Δx=0.1 а) n=15, x=0.2;  б) x=0.2, ε=10-4; в) x=0.1 ...0.4, h=0.1, ε=10-4.
10.   для х=-0.5.. 2.5, Δx=0.25   а) n=15, x=0,6;  б) x=0.6, ε=10-5. в) x=0.3 ...0.7, h=0.1, ε=10-5.
11.   для х=-1.2.. 1.4, Δx=0.2   а) n=10, x=0.7;  б) x=0.2, ε=10-4; в) x=0.5...0.9, h=0.2, ε=10-3
12.   для х=-1.. 6.5, Δx=0.5   а) n=5,x=0.5;  б) x=0.3, ε=10-4 в) x=0.1...0.7, h=0.3, ε=10-4.
13.   для х=-4.. 0, Δx=0.4   а) n=10, x=-0.6;  б) x=-0.4, ε=10-3 в) x=-0.8…-0.2, h=0.3, ε=10-3
14.   для х=-0.4.. 1.6, Δx=0.2   а) n=8, x=-0.5;  б) x=0.2, ε=10-5 в) x=0.1 .. 0.5, h=0.1, ε=10-5
15   для х=-0.1.. 0.5, Δx=0.05     а) n=7, x=-0.5;  б) x=1.8, ε=10-5 в) x=1.4...1.9, h=0.1, ε=10-4
16   для х=0.. 3, Δx=0.5   а) n=9, x=0.4;  б) x=0.3, ε=10-5; в) x=0.4...0.8, h=0.2, ε=10-3
17   для х=0.4.. 1, Δx=0.2   а) n=6, x=0.25;  б) x=0.3, ε=10-6; в) x=0.4...0.7, h=0.1, ε=10-4
18   для х=-1.4.. 0.2, Δx=0.2   а) n=5, x=0.5;  б) x=0.6, ε=10-4; в) x=0.2...0.6, h=0.1, ε=10-3
19   для х=-3.. 1, Δx=0.5   а) n=8, x=0.2;  б) x=0.4, ε=10-5; в) x=0.3...0.9, h=0.3, ε=10-4
20   для х=-10.. -6, Δx=0.4   а) n=7, x=0.2;  б) x=0.5, ε=10-3; в) x=0.1...0.5, h=0.2, ε=10-5
21   для х=-1.4..-0.2, Δx=0.1     а) n=5, x=0.4;  б) x=0.7, ε=10-6; в) x=0.15...0.6, h=0.15, ε=10-5
22   для х=-2..1, Δx=0.2   а) n=7, x=0.5;  б) x=0.4, ε=10-4 в) x=0.5...0.8, h=0.1, ε=10-3
23   для х=-2..1, Δx=0.4 а ) n=4, х=2.1; б) х=2.2, ε=10-4 в) х=2.2...2.6, h=0.2, ε=10-5
24   для х=1.. 4.5, Δx=0.5   а) n=5, x=0.25; б) x=0.4 ,ε=10-4 в) x=0.2 ...0.4, h=0.05, ε=10-3
25   для х=1.. 2.2, Δx=0.15   а) n=8, x=0.15;  б) x=0.24, ε=10-5; в) x=0.2...0.3, h=0.02, ε=10-4

Тестові завдання

1. Яке з наведених нижче тверджень хибне? Фігурні дужки {} в мові С використовуються для: а) Виділення коментарів; б) Відокремлення блоків; в) Відокремлення складного оператора; г) Аналог begin-end мови Pascal.
2. Скільки достатньо використати операторів if, якщо слід виконати один із десяти можливих варіантів дій? а) 9        в) 11; б) 10        г) не більше 10.
3. Вказати, які серед заданих фрагментів програм містять помилки: 1) if (v==1) scanf(“%.4f”,&value); 2) if (gender==1) printf(“\n Woman”) else printf(“\n Man”); 3) if (age >=65); printf(“\n Пенсіонер”); else printf(“\n Працівник”) 4) if (x>0) y=x; {else y=-x; printf(“\n y=%f”,y);} а) 1 і 2        в) 2,3 і 4; б) 2 і 3        г) у всіх випадках.
4. Що буде результатом виконання наступних операторів: int a=1, b=2, c=3; if (a=b=c<2==0) printf(“1”); else printf(“2”); а) “1”       в) помилка при компіляції; б) “2”        г) помилка при виконанні.
5. Керуюча змінна оператора виборуswitchможе мати тип: а) int та char; б) int, floatта char; в) тільки int; г) всі перераховані
6. Вибрати вислів, для якого будет істинним наступний логічний вираз: (x<0) і (y³0) і (z³0) або (y<0) і (x³0) і (z³0) або (z<0) і (x³0) і (y³0) а) Принаймні одне із чисел X, Y, Z додатне. б) Принаймні одне з чисел X, Y, Z від’ємне в) Принаймні одне з чисел X, Y, Z не є додатнім г) Тільки одне з чисел X, Y, Z є від’ємним д) Тільки одне з чисел X, Y, Z є недодатнім
7. Цикл з передумовою виконується поки: а) умова істинна; б) не залежить від умови; в) умова хибна;
8. Оператор continue використовується для: а) дострокового переходу на наступну ітерацію в циклі; б) виходу із циклу; в) повторне виконання циклу; г) вихід з програми
9. Цикл – це: а) група команд, яка багаторазово виконуються комп’ютером, поки значення умови циклу відмінне від нуля; б) команда, яка багаторазово виконує комп’ютер; в) оператори, повторення виконання яких регулюється користувачем; г) оператори, що повторюються з наперед визначеною кількістю разів.
10. Вкажіть фрагменти циклу, що не містять помилки: 1) for (;;) 2) for (i=0,i<10,i++) 3) for (i=0,p=1;i<5;i++,p*=i) 4) for (;x;x--) а) 1 і 2   в) 1 і 3 б) 3 і 4   г) 1, 3, 4

 


Тема 4. Функції

 

 

Запитання до теми

 

1. Дати означення функції.

2. Дати означення тіла функції.

3. Чи може функція містити опис іншої функції?

4. Яким чином здійснюється повернення в програму із функції?

5. Як потрібно описати функцію, яка не повертає жодного значення?

6. Яке ім’я має головна функція програми?

7. Дайте характеристику функції, якщо вона має такий заголовок: void name();

8. На які види поділяються змінні відносно області видимості?

9. Що таке локальні змінні?

10. Які змінні є глобальними?

11. Якщо функція не має аргументів, чи можна при виклику опускати дужки?

12. Які данні вказуються при описі прототипу функції?

13. Які параметри називають формальними? Чому?

14. Які параметри називають фактичними? Чому?

15. Чи можна використовувати оператор goto для виходу із функції?

16. Яким чином можуть передаватися дані у функцію?

17. В чому відмінність між передачею даних у функцію по значенню і за адресою?

18. Що таке рекурсивна функція?

19. Навести приклад стандартної функції з невизначеною кількістю параметрів.

20. Як реалізовуються функції з невизначеною кількістю параметрів.

 

Задачі для практичних робіт

1. Трикутник заданий координатами своїх вершин. Знайти периметр і площу трикутника. (В програмі послідовно вводяться координати вершин трикутника і за формулою відстані між двома точками, що задані координатами, знаходяться довжини його сторін, периметр і площа за формулою Герона)

2. Знайти n-ий член арифметичної прогресії. Скласти власну функцію та викликати її в програмі.

3. Обчислити:

4. Компанія передає дані телефоном у вигляді чотирьохзначних чисел. Створити функцію, що шифрує вхідний аргумент за таким правилом: кожна цифра замінюється значенням, що отримується із суми даної цифри і числа 7 за модулем десять. Далі змінюються місцями перша і третя та друга і четверта цифри. Використавши вказану функцію, створити програму, що виводить зашифроване число на екран.

5. До попередньої задачі скласти програму дешифрації даних, створивши відповідну функцію.

6. Дано натуральні числа n і k, n > 1. Надрукувати k десяткових знаків числа 1/n. (При наявності двох десяткових розкладань вибирається те з них, що не містить дев'ятки в періоді.) Програма повинна використовувати тільки цілі змінні.

7. За введеним із клавіатури значенням цілочислених змінних y (номер року), m (номер місяця), d (номер дня) визначити — правильна ця чи дата ні. Якщо правильна, то видати на екран дату наступного дня у форматі d.m.y, у противному випадку вивести фразу: Дата некоректна.

8. Записати та використати функцію, що для вказаного цілочисленого аргументу визначає, чи є він простим числом.

9. Записати та використати функцію, що для двох цілих чисел повертає найбільший спільний дільник.

10. Записати та використати функцію, що для двох цілих чисел повертає найменше спільне кратне.

11. Записати та використати функцію, що повертає суму цифр цілочисленого аргумента.

12. Скласти процедуру, що виводить розв’язки квадратного рівняння.

13. Розробити бібліотечну функцію, що реалізує вікно з рамкою.

14. Записати та використати функцію, що емулює компонент для візуалізації виконання певного процесу («прогрес-бар»).

15. Розробити функцію, що для заданого число генерує його запис прописом.

 


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

Тема: Реалізація та виклик функцій в Turbo С. Введення-виведення у віконно-текстовому інтерфейсі.

Мета:навчитись створювати програми обчислювального характеру з використанням власних функцій і виведенням результату на екран у віконно-текстовому режимі.

 

Завдання

1. В головній функції main() ввести вхідні дані, і викликавши власні функції, обчислити значення виразу та вивести результати.

2. За вибором користувача (реалізується через оператор switch) розв’язати вказане завдання, використавши власні функції. Програму оформити у віконно-текстовому інтерфейсі.

 

Скласти звіт.

 

Варіант

Індивідуальні завдання

1

1 Обчислити D = 2f(a,b,k) + 6f(k,a,b) – f²(a,b,k²), при a=0.6, b=3.2, k=1.8, якщо f (x,y,z) = z² - 2xy / z
2 1. факторіал числа 2. сума чисел, що діляться на7 і менші за n 3. об’єм куба

2

1 Обчислити Q=tg (f(x,k,b)) + 5´f (k,b²,x) - f² (b+0.1k-1,x²),  при x=6.5, b=8.9, k=4.5, якщо f(x,y,z)=z+x²-y²
2 1. сума 3-х чисел  2. сума 5-чисел 3. час вільного падіння тіла із вказаної висоти.

3

1 Обчислити B = f (m,x,y) + 0.6f² (y,m,x) + f (x,y+m,y-m),  при m=0.5, x=3.3, y=0.4, якщо f (x,y,z) = x + 2y + 3z²
2 1. добуток 4-х чисел 2. добуток 6-и чисел 3. об’єм конуса

4

1 Обчислити B = ln (f (b,a,k) + f² (a, 0.8+b, k) ), при a=5.5, b=-2.5, k=1.9, якщо f (x,y,z) = x + y²z – xy²
2 1. середнє арифметичне 3-х чисел 2. середнє арифметичне 6-и чисел 3. площа трапеції

5

1 Обчислити С = 2f(b,a,l) + 2f(l,a,b+0.3),  при a=0.8, b=240, l=-1.5, якщо f(x,y,z)=x/y+zx-1
2 1. b-а степінь числа а-3 2. об’єм конуса 3. зростання суми вкладу в банк (початковий вклад S, банківський процент q)

6

1 Обчислити A=tg(f(x,k,y))+cos(f(2k,x3,y)),   при x=-3.5, y=50, k=2.8, якщо f(x,y,z)=x+8y+3.1z
2 1. добуток парних чисел, менших за n 2. площа круга 3. переведення числа із радіанної міри в градусну

7

1 Обчислити A=f(m,x,y)+0.5f2 (m,y,x)+f(x,y+mx,y-mx),  при m=0.5, x=3.1, y=0.45 , якщо f(x,y,z)=x-2y+3z2
2 1. розв’язки квадратного рівняння 2. об’єм циліндра 3. відстань, яку пройде тіло за час t, рухаючись із прискоренням a

8

1 Обчислити B=0.5f(x,k,b)+bf(b,x,1.2)-sin(f(ax,kx,5.5)),  при a=0.8, b=-1.3, x=130, k=1.7, якщо f(x,y,z)=x2 +y-0.5z
2 1. обчислити масу деталі об’ємом V, що виготовлена із: · сталі · алюмінію · міді 2. факторіал числа

9

1 Обчислити y=tg(f(x,b,m))+cos(f2(m,m,x))-0.5f(2b,2b,m), при b=-5.1,x=4.3,m=0.52, якщо f(x,y,z)=x2+y+z
2 1. координати середини відрізка за координатами його кінців. 2. опір послідовного з’єднання 4- провідників 3. опір послідовного з’єднання 7- провідників

10

1 Обчислити H=lg(f(a,b,c))+tg(f(b,c,j))-f2(0.5j,b,a), при a=2.5,b=1.8,c=3.14, j=30, якщо f(x,y,z)=x2-e-y(1-z)
2 1. кількість 4-х значних "щасливих" чисел (сума 2-х перших цифр дорівнює сумі 2-х останніх) 2. переведення числа із градусної міри в радіанну 3. визначення опору провідника за його характеристиками (довжина, площа поперечного перерізу, матеріал).

11

1 Обчислити В=f(a,x,i)+sin(f(x,i,0.8))-f2(i,x2,a), при a=8.1,x=1.3, i=650, якщо f(x,y,z)=0.8x+3.5y+z
2 1. площа трикутника за координатами його вершин 2. опір послідовного з’єднання 5-и провідників 3. опір послідовного з’єднання 3- провідників

12

1 Обчислити B=f(x,k,y)+0.8f2(x,y,y-k), при k=0.6,x=3.8, y=0.042, якщо f(x,y,z)=2y+x+4z2
2 1. гіпотенуза і площа прямокутного трикутника за відомими катетами 2. сума цифр числа 3. переведення температури із градусів за шкалою Цельсія в градуси за шкалою Кельвіна

13

1 Обчислити B=2f2(b,a,m)+2f(m,a+b,b+0.2)-0.7f(m,a,b), при a=0.6,b=21,m=-3.8, якщо f(x,y,z)=z/1.8+6x-y2
2 1. добуток 2-х чисел 2. добуток 5-и чисел 3. об’єм кулі

14

1 Обчислити D==Öf(a,i,d)-f2(d,a,i), при a=3,5, d=0.65, i=5.3, якщо f(x,y,z)=|x-y-z|
2 1. довжину відрізка за координатами його кінців 2. об’єм тетраедра 3. суму n чисел Фібоначчі

15

1 Обчислити при
2 1. об’єм циліндра 2. силу гравітаційного притягування між планетами (Земля, Марс, Венера)

16

1 Обчислити при , якщо
2 1. опір послідовного з’єднання 4-и провідників 2. опір послідовного з’єднання 6- провідників 3. об’єм паралелепіпеда

17

1 Обчислити при х=6.5, b=8/9, k=4., 5якщо f(x,y,z)=x2-y2+z
2 1. сума парних цифр числа 2. добуток непарних цифр числа 3. дальність польоту тіла, кинутого із швидкістю v під кутом А до горизонту

18

1 Обчислити B=f(a,x,i)+cos(f(x,i,0.8))-f2(i,x2,a), при a=3.2, x=2.5, i=15, якщо f(x,y,z)=x2-3.5y+0,8z
2 1. площу поверхні кулі 2. суму n членів геометричної прогресії (q і b0 вказуються користувачем) 3. факторіал числа

19

1 Обчислити С =3f(a,b,k)+5f(k,a,b)-f2(2a,b,k2),  при a=0,5, b==1,8, k=4,6, якщо f(x,у,z)=z2+y2-2xy/z.
2 1. об’єм кулі 2. першу космічну швидкість для планет  (Земля, Марс, Юпітер)

20

1 Обчислити A=f{d,n,b)+f(d,n3,b3)+0,5ln(f{bd,d,n)), при b=4,12,d=1,6, n=0,08, якщо f(x,y,z) = x(y + z- Öyz)
2 1. силу електростатичного притягування між двома зарядами, розташованих на відстані r один від одного 2. добуток n членів арифметичної прогресії. (d і a0 вказуються користувачем) 3. площу поверхні конуса

21

1 Обчислити С = f(a,b,I) + f2(b, I, a + 0,5) - f(I - 1,7, a, b),  при a=0.5, b=4,1, I=5,4,  якщо f(x,y,z)=x-(y+(x2-y)z).
2 1. кількість атомів в 1 мг натрію 2. площу поверхні кулі 3. суму n чисел Фібоначчі

22

1 Обчислити S = ln(f(a,I,i))+sin(f(i,b,a)-f2(2b,i,c), при a=1,8, b=2,5, c==90, I=4,5, якщо f(x,y,z)=x3+3,14y2-0,1z.
2 1. переведення температури із градусів за шкалою Цельсія в градуси за шкалою Фаренгейта 2. площа трикутника за його сторонами 3. розв’язки квадратного рівняння

23

1 Обчислити Q =f{x, у) +3(f(a,b)+f(0,1, x) +Ö f(у, а), при x=100, y=-0,021, a=0,35, b=-0,12, якщо f(x,y) =x2+2|xy|
2 1. добуток непарних чисел, менших за n 2. об’єм кругового циліндра 3. максимальна висота підняття тіла, кинутого із швидкістю v під кутом А до горизонту

24

1 Обчислити C=3f(a,b,k)+5f(k,a,b)-f2(2a,k,b2), при a=1.8, b=4.6, k=1.33, якщо F(x,y,z)=2z-x2+y2
2 1. визначення довжини провідника за його характеристиками (опір, площа поперечного перерізу, матеріал). 2. сума максимальної і мінімальної цифри числа 3. переведення температури із градусів за шкалою Фаренгейта в градуси за шкалою Цельсія

25

1 Обчислити , при a=0.3, b=1.33, k=1.33, якщо f(x,y,z) = xy2 - xz
2 1. розв’язки системи 2-х рівнянь з 2-ма змінними 2. факторіал числа 3. площа поверхні кругового циліндра

 


Тестові завдання

1. Яку функцію виконує оператор return а? а) збільшує значення а на 1; б) повертає значення функції; в) змінює тип змінної а; г) зменшує значення ана 1;
2. Значення якого типу повертає функція тип якої не вказано (по замовченню)? а) float; б) char; в) int; г) не повертає жодного значення;
3. Як потрібно описати функцію, яка не повертає жодного значення? а) nil; б) procedure; в) void;  
4. Оператор returnповинен зустрічатися в тілі функції: а) 1 раз; б) 2 рази; в) довільну кількість раз; г) взагалі не використовується в функціях;
5. Яке ім’я має головна функція програми? а) main; б) program; в) function; г) всі функції рівноцінні  
6. Оберіть правильний варіант опису заголовку функції: а) init name (int a, int b); б) int name (); в) float name (int a,b); г) void name;  
7. Як не можна назвати користувацьку функцію: а) Name; б) initname; в) rand; г) Rand_1;

 


 


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

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






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