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

ОП_ЛР_2014_part2

.pdf
Скачиваний:
23
Добавлен:
07.02.2016
Размер:
374.69 Кб
Скачать

21

void fun(int i, int j = 7);

void myfun(int i, int j = 7, int k = 8);

Приклад функції, яка використовується для обчислення суми двох чисел:

int add_values (int а, int b) { int result;

result = а+b; return result;

}

У тексті програми для виклику даної функції необхідно ввести? наприклад:

int result=add_values (1, 2);

2.2.2 Рекурсивні функції

Для реалізації рекурсивних алгоритмів у С++ передбачена можливість створення рекурсивних функцій.

Рекурсивна функція – це функція, у тілі якої здійснюється виклик цієї ж функції.

Приклад рекурсивної функції:

int sum (int n) { if (n == 1)

return 1; else

return n + sum(n-1);

}

2.3 Завдання до роботи

2.3.1 Ознайомитися з основними теоретичними відомостями за темою роботи, використовуючи дані методичні вказівки, лекції, а також рекомендовану літературу.

22

2.3.2 Роз’язати за допомогою програми мовою С++ завдання

відповідно до варіанту.

 

 

 

 

 

 

 

 

2.3.2.1 Завдання для варіанта № 1:

 

а) для даних дійсних

чисел x

та y розрахувати

f (x, y, x + y) f (1.23, 2x,1.3y) , де

 

 

 

 

 

 

 

 

 

 

a + 2b +

1

 

 

f (a,b, c) =

 

c

;

 

 

 

 

 

 

 

+ sin

 

c

 

ab

5

 

 

 

б) перевірити, квадрат яких з введених з клавіатури чисел є паліндромом, реалізувавши відповідну функцію;

в) елементи матриці задано співвідношенням:

 

 

i+2

 

= 2.5i+ j ln3 (8

 

) + (3.2)i+ j+4 π 5i+3 j .

a

j

i, j

 

 

 

Визначити функцію, яка повертає вектор, сформований з елементів стовпця матриці, на перетині з яким знаходиться максимальний елемент головної діагоналі. Визначити функцію, яка отримує даний вектор та обчислює добуток його від’ємних елементів; г) написати рекурсивну функцію обчислення суми цифр

натурального числа.

2.3.2.2 Завдання для варіанта № 2:

а) знайти значення виразу sh(x)tg(x + 1) ctg 2 (1 + sh(x 1)) ,

визначивши функцію sh(x) = ex ex ;

2

б) дано відрізки а, b, c, d. Для кожної трійки відрізків, із яких можна побудувати трикутник, знайдіть периметр даного трикутника. Використайте функції визначення можливості побудови трикутника та обчислення периметра;

в) визначити функцію, яка отримує в якості аргументів два одномірні масиви та формує з них третій, який складається послідовно з елементів першого масиву, а потім – другого;

г) написати рекурсивну функцію для знаходження суми n перших членів прогресії:

1

x2

+

x4

... + (1)n

x2n

.

 

 

 

3!

5!

 

(2n + 1)!

Cnk , використовуючи

23

2.3.2.3 Завдання для варіанта № 3:

 

 

 

 

 

 

а) для даних

дійсних

чисел

x

та y розрахувати

f (x, y) + f (x2 , 4 y) f (5x, 2 y) , де

 

 

 

 

 

 

 

 

 

5

 

ai

+ bi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ 3ab + 5i2

 

 

f (a,b) =

i=0 ai

;

 

 

 

 

 

 

 

7

a2i

+ b3i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a + i

 

 

 

 

 

 

i=0

 

 

 

 

 

б) визначити функцію, яка у даному рядку замінює всі

входження одного заданого символу на інший;

 

 

в) елементи матриці А задано співвідношенням:

 

 

 

 

 

j+5

 

 

 

 

 

 

= (e)i+ j1 lg(e

i

) +

 

 

 

a

 

ctg i .

i, j

 

 

 

 

 

 

 

 

 

 

 

Визначити функцію, яка повертає вектор X, сформований з максимальних за модулем елементів рядків матриці А. Визначити функцію, яка обчислює наступне значення:

G =

n

(x2

q

 

− ∏ x )

;

 

q=1

q

k

 

 

 

k =1

 

г) для біноміальних коефіцієнтів (число перестановок з n по k) виконується наступне співвідношення: Cnk = Cnk11 + Cnk1, Cn0 = Cnn = 1 .

Реалізувати функцію для обчислення значення це рекурсивне співвідношення.

2.3.2.4 Завдання для варіанта № 4:

а) розрахувати значення y, визначивши та використавши необхідну функцію:

y =

1 + sin 4

+

7 + sin 5

+

3 + sin 2

+

6 + sin 8

+

7 + sin1

;

sin1 + 4

sin 7 + 5

sin 3 + 2

sin 6 + 8

 

 

 

 

 

 

sin 7 + 1

б) перевести дане у десятковій системі число у двійкову систему, використовуючи функцію перетворення;

в) з клавіатури введено матрицю дійсних чисел A заданої розмірності. Визначити функцію, яка повертає індекси та суму індексів максимального елемента матриці A. Визначити функцію, яка повертає матрицю B, елементи якої дорівнюють елементам матриці А, піднесеним у квадрат;

24

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

2.3.2.5 Завдання для варіанта № 5:

а) для даного n обчислити значення виразу, визначивши необхідну функцію:

 

12

+

22

+

 

 

32

+ ... +

 

 

n2

 

 

;

2

2

 

 

2

n + (n +1)

2

1 + 2

 

2 + 3

3

+ 4

 

 

 

 

 

б) визначити функцію, яка для

заданого

інтервалу та кроку

обчислює значення функції x3 +

 

x3

+

3x2

 

-1;

 

 

 

(x -1)3

x -1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в) з клавіатури введено дві матриці дійсних чисел заданої розмірності A та B. Визначити функцію, яка обчислює добуток даних матриць та повертає його як результат виконання функції;

г) визначити рекурсивну функцію, яка визначає кількість слів у рядку.

2.3.2.6 Завдання для варіанта № 6:

а) визначити функцію sign a та розрахувати значення виразу f = sign x + sign y для введених параметрів:

-1, якщо a < 0,

 

якщо a = 0,

sign a = 0,

 

якщо a > 0;

1,

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

в) елементи матриці задано співвідношенням:

 

i - j + 3

) + (-0.75)i+2 lg(

 

5i - j

 

 

 

 

 

arcsin(

 

 

+ 2), якщо i ¹ j;

 

i2 - j3

ai, j =

15

 

 

 

 

 

 

 

 

 

 

 

 

інакше.

 

 

 

ln(i + 0.5 j -1),

 

 

 

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

25

г) дано перший член та різницю арифметичної прогресії. Написати рекурсивну функцію для знаходження n-го члена прогресії.

2.3.2.7 Завдання для варіанта № 7:

а) для даних дійсних чисел x та y розрахувати, визначивши в програмі функцію визначення мінімуму двох чисел:

f = min(2x, x + y) + min(2x y, y) ;

б) числа вводяться до тих пір, поки не буде введено перше від’ємне число. Визначити, скільки чисел із потоку введення рівні сумі кубів своїх цифр. Використайте функцію, яка буде перевіряти, чи дорівнює натуральне число сумі кубів своїх цифр;

в) визначити функцію, яка для даного масиву повертає новий, який містить тільки ті елементи початкового масиву, які потрапляють в заданий інтервал, що передається в якості параметрів функції;

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

2.3.2.8 Завдання для варіанта № 8:

а) визначити функцію обчислення факторіалу числа. Розрахувати за допомогою неї:

2×5!+3×9! 7!+10! ;

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

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

 

σ =

1

n

 

 

 

)2

 

 

(x

-

 

 

(

x

та обчислити за допомогою них відповідні

 

 

n i=1

i

)

 

 

 

 

 

 

 

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

натурального числа у зворотному порядку. 2.3.2.9 Завдання для варіанта № 9:

а) для n членів ряду визначити, сходиться чи розходиться

числовий ряд ai , члени якого визначено функцією

i=1

26

ai = ii ; i!

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

в) з клавіатури введено матрицю дійсних чисел A заданої розмірності. Визначити функцію, яка повертає середнє арифметичне елементів матриці A. Визначити функцію, яка повертає матрицю B, елементи якої дорівнюють оберненим значенням елементів матриці А

( bi, j =1 / ai, j );

г) за допомогою схеми Горнера обчислити значення багаточлена

n

ai xi

i=0 за заданими n та x. Для обчислення створити рекурсивну

функцію. Коефіцієнти багаточлена ai задано послідовністю комплексних чисел. Визначити функції, необхідні для роботи з комплексними числами.

2.3.2.10 Завдання для варіанта № 10:

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

52x -115 ×5x1 - 50 ;

б) визначити функцію, яка дозволяє виконати пошук слів у заданому рядку за маскою. Маска задається рядком, який може містити визначені символи та символ ‘?’ в якості невизначеного символу;

в) дано дві послідовності дійсних чисел a1,..., an та b1,...,bm . У кожній послідовності замінити всі члени, що йдуть за найменшим за значенням (за останнім за порядком, якщо таких членів у послідовності декілька) на задане число. Дані дії виконати за допомогою функції;

г) за допомогою рекурсивної функції розміняти суму грошей S на монети заданого номіналу, наявні тільки в одному екземплярі.

2.3.2.11 Завдання для варіанта № 11:

x + y x - y

а) для даних дійсних чисел x і y розрахувати f ( x - y , x + y ) , де

27

f (a,b) = tg 2a + 2a2 + 3 ;

a b

б) визначити функцію, яка в даному рядку знаходить всі послідовності однакових символів та замінює їх на відповідний символ та число, яке позначає кількість послідовних входжень даного символу (наприклад, “abbbcdde” перетворити на “ab3cd2e”);

в) визначити функцію, яка підносить дану матрицю в квадрат; г) реалізувати рекурсивну функцію обчислення суми елементів

одномірного масиву.

2.3.2.12 Завдання для варіанта № 12:

а) визначити функцію, яка для даного квадратного рівняння

ax2 + bx + c визначає, чи є в нього дійсні корені;

б) визначити функцію, яка повертає позиції входжень заданого символу a в заданий рядок s, розташовані після першого входження заданого символу b;

в) матрицю задано співвідношенням:

 

 

i3

 

= 4.1(sin2 i + cos2 j)

 

+ 5.3tg

i + 2

.

a

j+2

 

i, j

 

 

 

j 1

 

 

 

 

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

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

2.3.2.13 Завдання для варіанта № 13:

а) дано дійсні числа x, y, цілі числа a1,..., an ,b1,...,bn , c1,.., cm . Розрахувати

n

min( ai , bi ), якщо 3 < min(c1,.., cm ) < 10;

= i=1

M

n

max(ai2 ,bi2 ), інакше;

i=1

28

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

в) з клавіатури введено матрицю цілих чисел A заданої розмірності. Визначити функцію, яка визначає, скільки в даній матриці є елементів, значення яких дорівнюють елементам заданого одномірного масиву В;

г) написати рекурсивну функцію для знаходження суми n перших членів прогресії:

π

4

(

cos(x)

+

cos(3x)

+

cos(5x)

+ ...) .

 

 

 

 

 

 

 

 

 

 

2 π

22

42

 

 

62

 

 

 

 

 

2.3.2.14 Завдання для варіанта № 14:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x2 , y, x2 y)

а) для даних дійсних чисел x та y розрахувати

 

 

 

, де

f (x y, x

2

 

 

 

 

 

 

 

 

 

 

 

, y)

f (a,b, c) = 2a b ;

5 + c

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

в) елементи матриці А задано співвідношенням:

 

 

j+5

 

= (e)i+ j1 lg(e

i

) +

 

.

a

ctg i

i, j

 

 

 

 

 

Визначити функцію, яка повертає вектор X, сформований з максимальних за модулем елементів рядків матриці А. Визначити функцію, яка обчислює наступне значення:

G =

n

(x2

q

 

− ∏ x )

;

 

q=1

q

k

 

 

 

k =1

 

г) вивести всі підмножини даної множини, заданої масивом, за допомогою рекурсивної функції.

2.3.2.15 Завдання для варіанта № 15:

а) розрахувати значення y, визначивши та використавши необхідну функцію:

29

y =

 

x3

+ 2

+

 

x5

+ 9

+

 

x10

+ 1

 

 

;

 

 

 

 

 

 

 

 

 

 

 

cos 2x + 1

cos 9x + 1

cos x +

1

 

 

 

 

 

 

 

б) серед трьохзначних чисел знайти такі, у яких сума факторіалів цифр дорівнює самому числу;

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

г) для заданого одномірного масиву C з N елементів перевірити, що для всіх елементів масиву виконується умова cos Xi > 0 . Рекурсивну функцію використовувати кожний раз окремо для першої третини масиву та для іншої частини (2/3) масиву. Рекурсивні виклики закінчувати тоді, коли залишається один або два елементи.

2.3.2.16 Завдання для варіанта № 16:

а) реалізувати функцію округлення до найменшого цілого (наприклад, 1.5 – до 3, 3.9 – до 3, -3.2 – до -4), використати її для округлення даним способом введеного дійсного значення величини x до величини y та розрахувати на її основі значення функції:

f = 15 ; y2 + y + y + 1

б) визначити функцію, яка дозволяє встановити кількість слів, які не є унікальними в даному рядку;

в) з клавіатури введено матрицю дійсних чисел A заданої розмірності. Визначити дві функції, які змінюють місцями елементи на головній та побічній діагоналях матриці А, але одна з них виконує дані дії над матрицею А, а друга – повертає як результат нову матрицю;

г) написати рекурсивну функцію для обчислення максимального елемента масиву з n елементів.

2.3.2.17 Завдання для варіанта № 17:

а) визначити функцію, яка розкладає задане число на прості множники;

б) заповнити елементи матриці послідовно значеннями 2, 5, 10, 17, 26... Визначити функцію, яка дозволяє вивести задані у вигляді масиву рядки матриці;

30

в) елементи матриці А задано співвідношенням: ai, j = log33 (5i + 3 j 1) (e)ij .

Визначити функцію, яка повертає максимальне та мінімальне значення матриці, а також матрицю В, значення елементів якої є пронормованими значеннями елементів матриці А;

г) дано перший член та знаменник геометричної прогресії. Написати рекурсивну функцію для знаходження n-го члена прогресії.

2.3.2.18 Завдання для варіанта № 18:

а) розрахувати значення y, визначивши та використавши необхідну функцію:

 

(x + 1)3

(x + 1)5

(x + 1)7

y =

 

+

 

+

 

;

 

 

 

 

x 3

x 5

x 7

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

в) з клавіатури введено дві матриці дійсних чисел заданої розмірності A та B. Визначити функцію, яка обчислює добуток матриці А і транспонованої матриці В та повертає його як результат виконання функції;

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

2.3.2.19 Завдання для варіанта № 19:

а) для n членів ряду визначити, сходиться чи розходиться

2k + 1

 

числовий ряд

 

,

для обчислення членів якого визначити

 

i=1

2k

 

відповідну функцію; б) масив містить коди символів. Визначити функцію, яка

перетворює коди символів у символи та працює з масивами. Перетворити за допомогою неї даний масив у масив символів;

в) для даної двовимірної матриці за допомогою окремої функції

 

 

 

=

n m

 

розрахувати Евклідову норму

A

 

∑ ∑ a2

;

 

 

 

e

i, j

 

 

 

 

i=1 j=1

 

 

 

 

 

 

г) функцію задано наступним співвідношенням:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]