Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Програмування

.pdf
Скачиваний:
60
Добавлен:
23.02.2016
Размер:
1.99 Mб
Скачать

Особлива подяка Семенюку А.Д., Лазорику В.В. та

 

Сопронюк Т.М. за надання матеріалів.

Зміст

 

Лабораторна робота №11........................................................................................................

2

Вказівники. Динамічний розподіл пам’яті.........................................................................

2

Завдання 1.................................................................................................................................

2

Завдання 2...............................................................................................................................

4

Завдання 3...............................................................................................................................

6

Завдання 4...............................................................................................................................

9

Завдання 5..............................................................................................................................

13

Лабораторна робота №12.....................................................................................................

18

Створення і використання функцій..................................................................................

18

Завдання 1...............................................................................................................................

18

Завдання 2..............................................................................................................................

22

Лабораторна робота №13....................................................................................................

28

Рекурсивні підпрограми........................................................................................................

28

Завдання 1..............................................................................................................................

28

Завдання 2..............................................................................................................................

31

Лабораторна робота №14.....................................................................................................

33

Структуровані типи даних.................................................................................................

33

Завдання 1...............................................................................................................................

33

Лабораторна робота №15....................................................................................................

37

Структури даних...................................................................................................................

37

Завдання 1..............................................................................................................................

37

Завдання 2.............................................................................................................................

40

Лабораторна робота №16....................................................................................................

43

Організація роботи з файлами...........................................................................................

43

Завдання 1..............................................................................................................................

43

Завдання 2.............................................................................................................................

47

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

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

Вказівники. Динамічний розподіл пам’яті

Завдання 1.

Розробити дві програми для задачі згідно варіанту. Перший – програма з використанням локальних (статичних) масивів. Друга – динамічні масиви створені за допомогою функцій malloc(), calloc() або realloc().

1.Із одновимірного масиву А розміру N побудувати масив В із всіх додатних елементів.

2.Задано одновимірний масив А розміру N. Знайти серед всіх від’ємних максимальний елемент масиву та його індекс.

3.Задано одновимірний масив А розміру N. Знайти серед всіх додатних мінімальний елемент масиву та його індекс.

4.Із одновимірного масиву А розміру N побудувати масив В із всіх від’ємних елементів.

5.Із одновимірного масиву А розміру N побудувати масив В без нульових елементів.

6.Задано одновимірний масив А розміру N. Знайти кількість нульових елементів.

7.Із одновимірного масиву А розміру N побудувати масив В із елементів, які більші числа 10.

8.Задано одновимірні масиви А і В розміру N. Побудувати масив С, де

= , = 1 … .

9.Задано одновимірні масиви А і В розміру N. Всі додатні елементи масиву А замінити елементами з відповідними індексами масиву В.

10.Із одновимірного масиву А розміру N побудувати масив C із елементів,

= 2 , = 1 … .

11.Задано одновимірний масив А розміру N. Першу половину елементів масиву помножити на 2, а другу - на 3.

12.Задано одновимірний масив А розміру N. Знайти середнє арифметичне елементів масиву.

13.Задано одновимірні масиви А і В відповідних розмірностей N і М. Побудувати масив С розміру N+М, розмістивши : додатні елементи масиву А, додатні елементи масиву В, від’ємні елементи масиву А та від’ємні елементи масиву В.

2

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

14.Задано одновимірний масив А розміру N. Вилучити всі від’ємні елементи масиву.

15.Задано одновимірний масив А розміру N. Вилучити всі додатні елементи масиву.

16.Задано одновимірний масив А розміру 2N. Побудувати масив В розміру 2N, розмістивши у першій половині масиву В другу половину масиву А, а у другій половині масиву В, першу з А.

17.Задано одновимірний масив А розміру N. Обчислити різницю суми додатних та суми від’ємних елементів масиву.

18.Задано одновимірний масив А розміру N. Обчислити суму елементів масиву на парних позиціях та добуток - на непарних позиціях.

19.Задано одновимірний масив А розміру N. Вилучити перший додатній елемент масиву. У випадку коли немає додатних елементів масив залишити без змін.

20.Задано одновимірний масив А розміру N та число b. Добавити новий елемент b перед першим додатнім елементом масиву. У випадку, коли немає додатних елементів масив залишити без змін.

21.Задано одновимірні масиви А і В розміру 2N. Побудувати масив С розміру 2N, розмістивши у першій половині суму відповідних компонент перших половин А і В, а у другій різницю відповідних компонент других половин А і В.

22.Задано одновимірний масив А розміру N. Обчислити добуток суму додатних та від’ємних елементів масиву.

23.Задано одновимірний масив А розміру N. Обчислити відношення суми елементів масиву на парних позиціях до суми елементів масиву на непарних позиціях. У випадку, коли сума елементів масиву на непарних позиціях дорівнює нулю, відношення не обчислювати і видати повідомлення.

24.Задано одновимірний масив А розміру N. Першу половину елементів масиву помножити на 5, а другу - поділити на 4.

25.Задано одновимірний масив А розміру 2N. Поміняти місцями першу та другу половину елементів масиву.

26.Задано одновимірний масив А розміру N. Поміняти місцями максимальний та мінімальний елемент масиву.

27.Задано одновимірний масив А розміру N. Обчислити добуток максимального та мінімального елементу масиву.

28.Задано одновимірний масив А розміру N. Знайти індекс найближчого елемента масиву до середнього арифметичного значення елементів масиву.

3

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

29.Задано одновимірний масив А розміру 2N. Побудувати два масиви В і С розміру N, включивши у масив В елементи масиву А з парними індексами, а у С - з непарними.

30.Задано одновимірний масив А розміру N. Перевірити чи є у масиві А хоча б одна пара сусідніх елементів з різними знаками.

Завдання 2.

Розробити дві програми для задачі згідно варіанту. Перший програма з використанням локальних (статичних) масивів. Друга програма з використанням динамічних масивів, які створювати за допомогою функцій або операторів. При розв’язуванні використати змінну(або декілька змінних) типу вказівник, яка би вказувала поточний елемент масиву(або на деякий елемент масиву).

Заданий одномірний масив цілих чисел А розміру N.

1.Знайти номер останнього максимального елемента серед додатних елементів, починаючи з першого елемента, більшого заданого числа Т.

2.Знайти мінімальне значення серед елементів, менших заданого числа В, і розташованих до першого елемента, більшого заданого числа А1.

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

Т.

4.Знайти максимальне значення серед від’ємних елементів, розташованих до першого елемента, рівного Т.

5.Знайти максимальне значення серед від’ємних елементів, розташованих до першого елемента, меншого заданого числа Х.

6.Знайти номер останнього максимального значення серед від’ємних елементів, розташованих правіше елемента, рівного Т.

7.Знайти номер останнього мінімального елемента серед елементів, менших Т1 і розташованих до першого елемента, більшого Т2.

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

9.Знайти номер першого мінімального елемента серед елементів, більших Т1 і розташованих правіше першого елемента, рівного Т2.

10.Знайти номер останнього максимального елемента серед елементів, що лежать у діапазоні [c,d ] і розташованих до першого парного елемента.

11.Знайти номер останнього мінімального елемента серед парних додатних елементів, що лежать правіше першого від’ємного елемента.

12.Знайти номер останнього мінімального елемента серед елементів, менших Т1 і лежачих правіше першого елемента, рівного Т2.

4

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

13.Знайти номер першого максимального елемента серед елементів, що лежать у діапазоні від a до b і розташованих правіше першого позитивного елемента.

14.Знайти номер першого максимального значення серед від’ємних елементів, розташованих до першого елемента, рівного Т.

15.Знайти мінімальне значення додатних елементів, розташованих правіше першого елемента, кратного двом.

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

17.Знайти значення максимального елемента серед елементів, кратних k і розташованих до першого від’ємного елемента.

18.Знайти номер першого мінімального елемента серед додатних елементів, розташованих до першого елемента, кратного п'яти.

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

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

21.Знайти номер першого максимального значення серед від’ємних елементів, розташованих правіше першого елемента, рівного Т.

22.Знайти номер першого максимального значення серед елементів, менших a і розташованих правіше першого елемента, кратного трьом.

23.Знайти максимальне значення серед від’ємних елементів, розташованих до першого елемента, рівного Т.

24.Знайти номер останнього максимального елемента серед елементів, що лежать у діапазоні [t1,t2] і розташованих до першого елемента з парним значенням.

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

26.Знайти номер першого максимального елемента серед додатних елементів, розташованих до першого від’ємного елемента.

27.Знайти максимальне значення додатних елементів, розташованих правіше першого елемента, кратного п'яти.

5

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

Завдання 3.

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

1.Задано дійсні величини , ( < ) і масив чисел , ≤ 200. Розробити програму, яка обчислює суму всіх < , добуток всіх > і знаходить

та серед

, , = 1,2, … , .

2.Задано дійсні число r і масив , ≤ 200. Розробити програму, яка

підраховує скільки точок з координатами 1, 2 , 3, 4 , … , ( 2−1, 2 ) та належать кругові радіуса r з центром у початку координат.

3.Задано масив дійсних чисел × , ≤ 100, ≤ 10. Розробити програму, яка обчислює

= max (min 1 , … ,

, min + 1 , … , 2

, … , min ( − 1

+ 1), … , )

4.Задано масив цілих чисел , ≤ 200. Розробити програму, яка переписує всі числа, що повторюються, з масиву в масив по одному разу. Друкує масив по п’ять чисел у рядку.

5.Задано масив дійсних чисел 2 , ≤ 200. Розробити програму, яка обчислює суму тих чисел із + 1 , . . ., 2 , які перевищують середнє арифметичне значення чисел 1 , . .. , ( ).

6.Задано масив дійсних чисел , ≤ 200. Розробити програму, яка будує

масив за правилом: є

середнім арифметичним значенням чисел

1, 2, … , , крім , = 1,2, … , .

 

7.Задано два масиви цілих чисел та , ≤ 300. Розробити програму, яка обчислює добуток елементів об’єднання цих масивів. Об’єднання двох масивів – це всі елементи масиву і всі елементи масиву , взяті по одному разу. Надрукувати елементи об’єднання та їх суму.

8.Задано масив цілих чисел , ≤ 200. Розробити програму, яка будує

масив , елементами якого є такі числа

, що

корені рівняння

2 + 3 + 5 = 0 дійсні і додатні. Надрукувати масив

по п’ять чисел у

рядку.

 

 

9.Задано масив цілих чисел , ≤ 400. Розробити програму, яка знаходить максимальне серед тих чисел, які не повторюються.

10.Задано масив дійсних чисел , ≤ 500. Розробити програму, яка обчислює суму всіх чисел, які повторюються, і добуток всіх чисел, які не

повторюються.

 

 

 

 

 

 

11. На

площині

задано

множину

точок

з

координатами

1, 1 ,

2, 2 , … ,

, , ≤ 200

і координати

вершин трикутника

6

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

, , , , , . Розробити програму, яка обчислює кількість точок заданої множини, що належать ∆.

12.Задано масив дійсних чисел × , ≤ 100, ≤ 15. Розробити програму, яка обчислює

= min (max 1 , … ,

, max + 1 , … , 2

, … , max ( − 1

+ 1), … , ).

13.Задано цілі число k і масив , ≤ 200. Розробити програму, яка здійснює циклічний зсув масиву на k позицій вправо.

14.Задано ( , ) – координати школи та 1, 1 , 2, 2 , … , , , ( ≤ 100) – координати будинків. Розробити програму, яка обчислює середню віддаль від будинків до школи.

15.Задано масив чисел 2 , ≤ 200. Розробити програму, яка обчислює значення:

max (min 1 , … , 2

, min 2 , … , 2 − 1

, … , min ), … , + 1 .

16.Задано масив чисел , ≤ 500. Розробити програму, яка обчислює суму всіх чисел, які знаходяться між першим і останнім від’ємними елементами цього масиву і вказує цей діапазон. Якщо від’ємних чисел немає або є тільки одне, то виводить повідомлення про це.

17.Задано масив цілих чисел , ≤ 400, які можуть повторюватися. Розробити програму, яка відбирає з кожної групи рівних чисел по одному, і утворює новий масив та друкує його по сім чисел у рядку.

18.Задано послідовність цілих чисел 2 , ≤ 200. Розробити програму, яка

перетворює

цю послідовність за правилом:

якщо

1

= 2 , 2 =

2 − 1 , … , то послідовність залишається без зміни,

інакше виконується

перестановка

1 , 3 , … , 2 − 1 , 2 ,

4 , … , (2 ).

Результат

надрукувати по п’ять чисел у рядку.

 

 

 

19.Задано масиви цілих чисел , ≤ 400 і , ≤ 200. Розробити програму, яка будує симетричну різницю і розміщує її елементи в масиві ( + ). Симетрична різниця – це елементи масиву A, що не належать масиву B, і елементи масиву B, що не належать масиву A, взяті по одному разу. Результат надрукувати по п’ять чисел у рядку.

20. Задано масиви цілих чисел , ≤ 500 і , ≤ 200. Обчислити суму об’єднання. Об’єднання – це множина елементів масиву A і B , взятих по одному разу. Надрукувати елементи об’єднання та їх суму.

21.Задано масив цілих чисел , ≤ 400. Розробити програму, яка перетворює цей масив так, щоб на початку розміщувалися всі від’ємні елементи, а потім додатні у порядку їх наступності у початковому масиві. (Додатковий масив не використовується). Перетворений масив надрукувати по десять чисел у рядку.

7

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

22.Задано масив цілих чисел , ≤ 500. Розробити програму, яка вилучає із A всі числа, які повторюються більше трьох разів, а масив ущільнює. Друкує масив A по п’ять елементів у рядку.

23.Задано масив цілих чисел , ≤ 300. Знайти максимальне серед чисел, які повторюються більше ніж три рази.

24. Задано два масиви цілих чисел , ≤ 400 і , ≤ 200. Розробити програму, яка знаходить найменший елемент серед тих елементів масиву A , які не містяться у масиві B .

25.Задано масив цілих чисел , ≤ 300. Розробити програму, яка вилучає із A всі числа, які повторюються, а масив ущільнює і друкує по п’ять елементів

урядку.

26.Задано масив цілих чисел , ≤ 300. Розробити програму, яка знаходить

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

27.Задано масив цілих чисел , ≤ 400. Розробити програму, яка знаходить

уцьому масиві й друкує найдовший ланцюжок чисел, що задовольняють

умову +1 +2 .

28.Задано два вектори , ≤ 400 і , ≤ 200. Розробити програму, яка знаходить і друкує найменшу компоненту вектора A, що міститься у векторі B.

29.Задано два масиви цілих чисел , ≤ 300, , ≤ 200. Розробити програму, яка будує переріз цих масивів, обчислює його суму і визначає максимальний елемент перерізу.

(Переріз масивів A і B – це елементи масиву A, які є в масиві B і взяті по одному разу).

30.Задано масив цілих чисел , ≤ 300 (числа в масиві можуть бути однаковими). Розробити програму, яка знаходить і друкує найдовший ланцюжок однакових чисел.

8

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

Завдання 4.

Розробити дві програми для задачі згідно варіанту. Перший – програма з використанням локальних (статичних) масивів. Друга – динамічні масиви створені за допомогою функцій malloc(), calloc() або realloc().

1.Дано одновимірний масив цілих чисел A[i], де i=1,2,…,n. Вивести значення елементів масиву:

1)у зворотному порядку;

2)з парними індексами;

3)з непарними індексами;

4)що є недодатними числами;

5)що є невідємними числами;

6)що є парними числами;

7)що є непарними числами.

2.Дано дійсні числа 1951, 1952, … , 2000 кількість опадів (в мм), що випали у місті за останні 50 років минулого століття. Обрахувати середню кількість опадів за цей період і щорічне відхилення від середнього значення.

3.Дано одновимірний масив цілих чисел A[i], де i=1,2,…,n. Надрукувати окремо додатні та відємні елементи заданого масиву з вказанням їх індексів.

4.Задані натуральне число n та послідовність дійсних чисел a1, a2, …, an. В заданій послідовності визначити кількість сусідств:

1)двох додатних чисел;

2)двох чисел різного знака;

3)двох нульових членів;

4)трьох нульових членів.

5.Біля прилавка у магазині вишикувалась черга покупців. Час обслуговування продавцем i-го покупця дорівнює ti (i=1,…,n). Нехай задані натуральне n та дійсні t1, t2, …, tn. Обчислити c1, c2, …, cn, де ci — час перебування i-го покупця в черзі (i=1,…,n). Вказати номер покупця, для обслуговування якого продавцю знадобився найменший час.

6.Дано одновимірний масив цілих чисел A[i], де i=1,2,…,n. Визначити:

a)скільки разів максимальний елемент зустрічається у даному масиві;

b)порядковий номер першого найбільшого елемента;

c)порядковий номер останнього найменшого елемента;

d)яких елементів більше максимальних чи мінімальних.

7.Нехай дано натуральне число n та послідовність попарно різних дійсних чисел a1, a2, …, an. У даній послідовності поміняти місцями:

9

©Караванова Т.П., Любарщук Є.А., Скутар І.Д.

a) найбільший член з першим по порядку (якщо їх індекси співпадають повідомити про це);

b) найменший член з останнім по порядку (якщо їх індекси співпадають повідомити про це);

c)найбільший і найменший члени;

d)найменший член з членом, що стоїть на k-му місці.

8.Дано одновимірний масив довжиною n. „Стиснутийого, вилучивши з нього всі відємні елементи.

9.Дано одновимірний масив завдовжки n. Розділити його на два нових масиви таким чином, щоб в першому опинились додатні елементи, а в другому відємні.

10.Дано два одновимірних масиви. „Злитиці два масиви у новий третій масив, в який спочатку ввійдуть елементи першого масиву, а потім другого, зберігаючи свою первісну послідовність.

11.Дано два однакові за довжиною одновимірні масиви. „Злитиїх у третій новий масив, чергуючи елементи першого та другого масивів.

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

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

14.Дано натуральне число n та послідовність дійсних чисел a1, a2, …, an. Отримати відповідні члени нової послідовності b1, b2, …, bn за такими правилами:

a)збільшити всі відмінні від максимального члени послідовності на max(a1, a2, …, an);

b)всі відємні члени замінити мінімальним членом, а всі додатні максимальним;

c)всі члени, менші за середнє арифметичне, замінити значенням мінімального членом, а всі більші — максимальним.

15.Дано натуральне число n та послідовність дійсних чисел a1, a2, …, an. Перетворити дану послідовність, вилучивши з неї всі члени, що дорівнюють найменшому значенню.

16.Дано два одновимірних масиви x[i] та y[i], де i=1,2,…,n. У масиві x[i] задано стаж працівників деякого підприємства, а у масиві y[i] відповідно розмір їх заробітної платні. Визначити:

10