-
Notifications
You must be signed in to change notification settings - Fork 0
/
AdditionalFunctions.cpp
111 lines (83 loc) · 2.42 KB
/
AdditionalFunctions.cpp
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
#include "AdditionalFunctions.h"
// Ôóíêö³ÿ äëÿ ãåíåðàö³¿ ìàñèâó âèïàäêîâèõ ÷èñåë
void generateRandomArray(Search& search) {
srand(static_cast<unsigned int>(time(nullptr)));
int* arr = search.GetArray();
bool* used = new bool[search.GetArraySize()] { false };
for (int i = 0; i < search.GetArraySize(); i++) {
int randomNumber;
do {
randomNumber = rand();
} while (used[randomNumber % search.GetArraySize()]);
arr[i] = randomNumber;
used[randomNumber % search.GetArraySize()] = true;
}
delete[] used;
}
// Ôóíêö³ÿ äëÿ ñîðòóâàííÿ ìàñèâó çà àëãîðèòìîì ñîðòóâàííÿ âñòàâêîþ
void insertionSort(Search& search) {
int* arr = search.GetArray();
for (int i = 1; i < search.GetArraySize(); i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
//ôóíêö³ÿ âàë³äàö³¿ ââåäåíîãî çíà÷åííÿ
bool validateSearchValue(String^ input)
{
//ïåðåâ³ðêà ÷è ðÿäîê íå ïîðîæí³é
if (input->Length == 0)
{
MessageBox::Show("Óâåä³òü ÷èñëî", "Ïîìèëêà");
return false;
}
//ïåðåâ³ðêà ÷è ðÿäîê ñêëàäàºòüñÿ ëèøå ç öèôð
for each (wchar_t c in input)
{
if (!System::Char::IsDigit(c))
{
MessageBox::Show("Íàïèø³òü îäíå ÷èñëî, âèêîðèñòàâøè ëèøå öèôðè", "Ïîìèëêà");
return false;
}
}
int searchValue = System::Convert::ToInt32(input);
//ïåðåâ³ðêà ÷è ÷èñëî çíàõîäèòüñÿ â äîïóñòèìîìó ä³àïàçîí³
if (searchValue < 0 || searchValue > 100000)
{
MessageBox::Show("×èñëî ìຠáóòè â³ä 0 äî 10000", "Ïîìèëêà");
return false;
}
return true;
}
//ôóíêö³ÿ ïåðåâ³ðêè ÷è ÷èñëî çíàõîäèòüñÿ ó ìàñèâ³
int checkValueInArray(Search& search, int searchValue) {
bool validValue = false;
do {
//ïåðåâ³ðêà, ÷è ââåäåíå çíà÷åííÿ çíàõîäèòüñÿ ó ìàñèâ³
int* arr = search.GetArray();
for (int i = 0; i < search.GetArraySize(); i++) {
if (arr[i] == searchValue) {
validValue = true;
break;
}
}
if (!validValue) {
MessageBox::Show("Ââåäåíå çíà÷åííÿ íå çíàéäåíî â ìàñèâ³. Áóäü ëàñêà, ñïðîáóéòå ùå ðàç.", "Ïîìèëêà");
searchValue = 0;
validValue = true;
}
} while (!validValue);
return searchValue;
}
//ôóíêö³ÿ äëÿ î÷èùåííÿ ï³äñâ³òêè öèôð
void clearHighlighting(System::Windows::Forms::RichTextBox^ richTextBox) {
System::Drawing::Color lightBlueColor = System::Drawing::Color::FromArgb(135, 206, 250);
richTextBox->SelectionStart = 0;
richTextBox->SelectionLength = richTextBox->Text->Length;
richTextBox->SelectionBackColor = lightBlueColor;
}