Compare commits
5 Commits
c++
...
C++ClassWo
| Author | SHA1 | Date | |
|---|---|---|---|
| 6314f437db | |||
| a541adab0b | |||
| 9043777a10 | |||
| d747caaf36 | |||
| 53581f2888 |
67
task1-2.0.cpp
Normal file
67
task1-2.0.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
void sortArr(int* a, int n) {
|
||||
for (int i = 1; i < n; i++) {
|
||||
int key = a[i];
|
||||
int j = i - 1;
|
||||
while (j >= 0 && a[j] > key) {
|
||||
a[j + 1] = a[j];
|
||||
j--;
|
||||
}
|
||||
a[j + 1] = key;
|
||||
}
|
||||
}
|
||||
void RemovableLmR(int* a, int& n) {
|
||||
if (n <= 2) {
|
||||
n = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
// Зсуваємо масив вліво, видаляємо перший
|
||||
for (int i = 0; i < n - 1; i++) {
|
||||
a[i] = a[i + 1];
|
||||
}
|
||||
|
||||
// Просто зменшуємо розмір ще на один, прибираємо останній
|
||||
n = n - 2;
|
||||
}
|
||||
|
||||
void printArr(int* a, int n) {
|
||||
if (n == 0) {
|
||||
cout << "(empty)\n";
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < n; i++) {
|
||||
cout << a[i] << " ";
|
||||
}
|
||||
cout << "\n";
|
||||
}
|
||||
|
||||
int main() {
|
||||
srand(time(0));
|
||||
int n;
|
||||
cout << "Enter N: ";
|
||||
cin >> n;
|
||||
|
||||
int* a = new int[n];
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
a[i] = rand() % 101 - 50;
|
||||
}
|
||||
|
||||
cout << "\nOriginal array:\n";
|
||||
printArr(a, n);
|
||||
|
||||
sortArr(a, n);
|
||||
cout << "\nSorted array:\n";
|
||||
printArr(a, n);
|
||||
|
||||
RemovableLmR(a, n);
|
||||
cout << "\nArray after removing first and last:\n";
|
||||
printArr(a, n);
|
||||
|
||||
delete[] a;
|
||||
return 0;
|
||||
}
|
||||
50
task1.cpp
Normal file
50
task1.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
void sortArr(int* p, int n) {
|
||||
for (int i = 0; i < n - 1; i++) {
|
||||
for (int j = 0; j < n - i - 1; j++) {
|
||||
if (p[j] > p[j + 1]) {
|
||||
int t = p[j];
|
||||
p[j] = p[j + 1];
|
||||
p[j + 1] = t;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void printArr(int* p, int n) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
cout << p[i] << " ";
|
||||
}
|
||||
cout << "\n";
|
||||
}
|
||||
|
||||
int main() {
|
||||
srand(time(0));
|
||||
int n;
|
||||
|
||||
cout << "Enter N: ";
|
||||
cin >> n;
|
||||
|
||||
int* a = new int[n];
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
a[i] = rand() % 101 - 50;
|
||||
}
|
||||
|
||||
cout << "\nOriginal array:\n";
|
||||
printArr(a, n);
|
||||
|
||||
sortArr(a, n);
|
||||
|
||||
cout << "\nSorted array:\n";
|
||||
printArr(a, n);
|
||||
|
||||
cout << "\nArray without first and last elements:\n";
|
||||
printArr(a + 1, n - 2);
|
||||
|
||||
delete[] a;
|
||||
return 0;
|
||||
|
||||
}
|
||||
85
task3-2.0.cpp
Normal file
85
task3-2.0.cpp
Normal file
@@ -0,0 +1,85 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int* Pos(int* a, int n, int& res_n) {
|
||||
int* tmp = new int[3];
|
||||
res_n = 0;
|
||||
for (int i = 0; i < 3 && i < n; ++i)
|
||||
if (a[i] > 0)
|
||||
tmp[res_n++] = a[i];
|
||||
int* res = new int[res_n];
|
||||
for (int i = 0; i < res_n; ++i) res[i] = tmp[i];
|
||||
delete[] tmp;
|
||||
return res;
|
||||
}
|
||||
|
||||
int* last3(int* a, int n, int& res_n) {
|
||||
res_n = (n >= 3) ? 3 : n;
|
||||
int* res = new int[res_n];
|
||||
for (int i = 0; i < res_n; ++i)
|
||||
res[i] = a[n - res_n + i];
|
||||
return res;
|
||||
}
|
||||
|
||||
int* min3(int* a, int n, int& res_n) {
|
||||
int* tmp = new int[n];
|
||||
for (int i = 0; i < n; ++i) tmp[i] = a[i];
|
||||
for (int i = 0; i < n - 1; ++i)
|
||||
for (int j = i + 1; j < n; ++j)
|
||||
if (tmp[i] > tmp[j]) { int t = tmp[i]; tmp[i] = tmp[j]; tmp[j] = t; }
|
||||
res_n = (n >= 3) ? 3 : n;
|
||||
int* res = new int[res_n];
|
||||
for (int i = 0; i < res_n; ++i) res[i] = tmp[i];
|
||||
delete[] tmp;
|
||||
return res;
|
||||
}
|
||||
|
||||
typedef int* (*searchFunc)(int*, int, int&);
|
||||
|
||||
void service(int* a, int n, searchFunc f) {
|
||||
int res_n;
|
||||
int* res = f(a, n, res_n);
|
||||
cout << "Result: ";
|
||||
for (int i = 0; i < res_n; ++i) cout << res[i] << " ";
|
||||
cout << endl;
|
||||
delete[] res;
|
||||
}
|
||||
|
||||
int main() {
|
||||
srand(time(NULL));
|
||||
int n;
|
||||
cout << "n(n>=3)= ";
|
||||
cin >> n;
|
||||
if (n < 3) {
|
||||
cerr << "Error: size Array!!";
|
||||
return 1;
|
||||
}
|
||||
int* arr = new int[n];
|
||||
for (int i = 0; i < n; ++i)
|
||||
arr[i] = rand() % 41 - 20;
|
||||
|
||||
cout << "Array: ";
|
||||
for (int i = 0; i < n; ++i) cout << arr[i] << " ";
|
||||
cout << endl;
|
||||
|
||||
searchFunc arrFunc[3] = { Pos, last3, min3 };
|
||||
|
||||
int choice;
|
||||
do {
|
||||
cout << "\nMenu:\n"
|
||||
<< "1) Array of the first 3 elements > 0\n"
|
||||
<< "2) Array of the last 3 elements\n"
|
||||
<< "3) Array of the 3 smallest elements\n"
|
||||
<< "4) Exit\n"
|
||||
<< "Select action (1-4): ";
|
||||
cin >> choice;
|
||||
|
||||
if (choice >= 1 && choice <= 3)
|
||||
service(arr, n, arrFunc[choice - 1]);
|
||||
else if (choice != 4)
|
||||
cout << "Incorrect choice!\n";
|
||||
} while (choice != 4);
|
||||
|
||||
delete[] arr;
|
||||
return 0;
|
||||
}
|
||||
70
task3.cpp
Normal file
70
task3.cpp
Normal file
@@ -0,0 +1,70 @@
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
void Pos(int* a, int n) {
|
||||
int count = 0;
|
||||
for (int i = 0; i < 3 && i < n; ++i)
|
||||
if (a[i] > 0) ++count;
|
||||
cout << "The number of the first 3 elements > 0: " << count << endl;
|
||||
}
|
||||
|
||||
void Show1(int* a, int n) {
|
||||
cout << "The last 3 elements: ";
|
||||
for (int i = (n >= 3 ? n - 3 : 0); i < n; ++i)
|
||||
cout << a[i] << " ";
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
void Show2(int* a, int n) {
|
||||
int* b = new int[n];
|
||||
for (int i = 0; i < n; ++i) b[i] = a[i];
|
||||
|
||||
for (int i = 0; i < n-1; ++i)
|
||||
for (int j = i+1; j < n; ++j)
|
||||
if (b[i] > b[j]) { int t = b[i]; b[i] = b[j]; b[j] = t; }
|
||||
cout << "The three smallest elements: ";
|
||||
for (int i = 0; i < 3 && i < n; ++i) cout << b[i] << " ";
|
||||
cout << endl;
|
||||
delete[] b;
|
||||
}
|
||||
|
||||
typedef void (*searchFunc)(int*, int);
|
||||
|
||||
void service(int* a, int n, searchFunc f) {
|
||||
f(a, n);
|
||||
}
|
||||
|
||||
int main() {
|
||||
srand(time(NULL));
|
||||
int n;
|
||||
cout << "n(n>=3)= ";
|
||||
cin >> n;
|
||||
if (n < 3) {
|
||||
cerr << "Error: size Array!!";
|
||||
return 1;
|
||||
}
|
||||
int* arr = new int[n];
|
||||
for (int i = 0; i < n; ++i)
|
||||
arr[i] = rand() % 41 - 20;
|
||||
|
||||
cout << "Array: ";
|
||||
for (int i = 0; i < n; ++i) cout << arr[i] << " ";
|
||||
cout << endl;
|
||||
|
||||
searchFunc arrFunc[3] = { Pos, Show1, Show2 };
|
||||
|
||||
cout << "Menu:\n"
|
||||
<< "1) The number of the first 3 elements > 0\n"
|
||||
<< "2) Show the last 3 items\n"
|
||||
<< "3) Display the 3 smallest elements\n"
|
||||
<< "Select an action (1-3): ";
|
||||
int choice;
|
||||
cin >> choice;
|
||||
if (choice >= 1 && choice <= 3)
|
||||
service(arr, n, arrFunc[choice-1]);
|
||||
else
|
||||
cout << "Incorrect choice!\n";
|
||||
|
||||
delete[] arr;
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user