Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 04 / README.md
blob: 8e8acb0514d0e41e56584b3b2dbc642a5c2d1315 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
.
# Функции

![enter image description here](https://i.ibb.co/PCGYQ71/func.png)

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

### Синтаксис
```c++
<тип на връщане> <идентификатор> (параметър1, параметър ...)
{
	//тяло
}
```
Всеки параметър се състои от **тип** и **идентификатор**.

Пример: 
```c++
int max(int n, int k)
{
	return n > k ? n : k;
}
```
Оператор **return**:

 -  Прекратява изпълнението на функцията
 -  Замества извикването и с резултата (връща резултата)
 
Операторът може да се използва и при функции, които не връщат нищо (void функции). Тогава return единствено прекратява функцията.

### Параметри по копие
**Важно**: Функциите, написани по този начин, приемат своите параметри **по копие**.   (Функции, които приемат параметри по референция (не по копие) ще учим по-натам).
```c++
void f(int n)
{
	n++;
}
int main()
{
	int n = 4;
	f(n);
	cout << n << endl; //4
}
```


### Примери:

**Задача 1:** Въвежда се неотрицателно число n. Да се отпечатат всички двойки прости числа, които са във вида 6k-1 и  6k+1.

-решена без функции и решена с функции.

**Задача 2:** Напишете функция, която приема неотрицателно число n и връща числото обърнато

*Вход: 288, Изход: 882*

**Задача 3:** Напишете функция, която приема неотрицателно число и връща дали числото е палиндром.

*Вход: 2882 Изход: true*

**Задача 4:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е суфикс на n.

*Вход: 288, 88, Изход: true*

**Задача 5:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е префикс на n.

*Вход: 288, 28, Изход: true*

**Задача 6:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е инфикс в n.

*Вход: 2831, 83, Изход: true*

**Задача 7:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са сортирани (във възходящ или в низходящ ред).

*Вход: 122239,  Изход: true*


**Задача 8:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са еднакви.

*Вход: 111111,  Изход: true*

**Задача 9:** Напишете функция, която приема неотрицателно числа n и k връща n^k

*Вход: 3 4,  Изход: 81*

**Задача 10:** Напишете функция, която приема неотрицателно числа n и k връща log_k(n) (закръглено надолу)

*Вход: 90 3  Изход: 4*

<h3>Задачи:</h3>

**Задача 1:** Напишете функция, която приема цяло число и връща модула му.

*Вход: 4, Изход: 4*

*Вход: -4, Изход: 4*

*Вход: 5 4 3 0 Изход: 12*

**Задача 2:**  Напишете функция, която приема 4 цели числа - координати на 2 точки. Функцията да връща разстоянието между тези точки. 

*Вход: 1 1 4  3, Изход: 3,605*

**Задача 3:** Напишете функция, която приема 6 целочислени координати (3 точки) и връща обиколката на триъгълника по тези точки.

*Вход: 1 1 4 7 0 10, Изход: 20.764*

**Задача 4:** Да се напише функция, която приема три естествени числа a и b и k отпечатва всички числа в интервата [a...b], които имат точно k различни прости делители.
*Вход: 19 32 3, Изход: 20 30*
*Вход: 19 32 1, Изход: 19 23 29 31*

**Задача 5:** Да се напише функция, която приема естествено число n и отпечатва всички двойки <a,b>, такива че a и b са прости и a + b = n.

**Задача 6:** Да се напише функция, която приема две естествени числа a и b и отпечава всички числа k и интервала [a,b], такива че k = x^y (за някои ест. числа x и y)
*Вход: 15 30, Изход:  16 25 27*   , защото (4^2,  5^2, 3^3)