Compare commits
3 Commits
C++ClassWo
...
C++ClassWo
| Author | SHA1 | Date | |
|---|---|---|---|
| 553478ff06 | |||
| 6696b68f67 | |||
| 5f709cc80a |
@@ -1,67 +0,0 @@
|
||||
#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;
|
||||
}
|
||||
71
task1.cpp
71
task1.cpp
@@ -1,50 +1,21 @@
|
||||
#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;
|
||||
|
||||
}
|
||||
#include <iostream>
|
||||
#define SIZE 80
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
char str[SIZE];
|
||||
cout << "Input string: ";
|
||||
cin.getline(str, SIZE);
|
||||
|
||||
int i = 0;
|
||||
while (str[i] != '\0') {
|
||||
if (str[i] == ' ') {
|
||||
str[i] = '\t';
|
||||
}
|
||||
++i;
|
||||
}
|
||||
|
||||
cout << "Modified string: " << str << endl;
|
||||
system("pause");
|
||||
}
|
||||
53
task2.cpp
Normal file
53
task2.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
#pragma warning(disable : 4996)
|
||||
#define SIZE 80
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int mystrlen(const char* str) {
|
||||
int len = 0;
|
||||
for (; str[len] != '\0'; ++len) {}
|
||||
return len;
|
||||
}
|
||||
|
||||
char* mystrcat(char* str1, const char* str2) {
|
||||
int i = mystrlen(str1);
|
||||
int j;
|
||||
for (j = 0; str2[j] != '\0'; ++j) {
|
||||
str1[i + j] = str2[j];
|
||||
}
|
||||
str1[i + j] = '\0';
|
||||
return str1;
|
||||
}
|
||||
|
||||
char* mystrchr(char* str, char s) {
|
||||
for (int i = 0; str[i] != '\0'; ++i) {
|
||||
if (str[i] == s) {
|
||||
return &str[i];
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main() {
|
||||
char str1[SIZE];
|
||||
char str2[SIZE];
|
||||
cout << "Input first string: ";
|
||||
cin.getline(str1, SIZE);
|
||||
cout << "Input second string: ";
|
||||
cin.getline(str2, SIZE);
|
||||
|
||||
cout << "mystrlen(str1): " << mystrlen(str1) << endl;
|
||||
cout << "mystrcat(str1, str2): " << mystrcat(str1, str2) << endl;
|
||||
|
||||
char ch;
|
||||
cout << "Input char to search in str1: ";
|
||||
cin >> ch;
|
||||
char* f = mystrchr(str1, ch);
|
||||
if (f) {
|
||||
cout << "mystrchr(str1, '" << ch << "): " << f << endl;
|
||||
}
|
||||
else {
|
||||
cout << "mystrchr(str1, '" << ch << "): 0" << endl;
|
||||
}
|
||||
system("pause");
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
#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
70
task3.cpp
@@ -1,70 +0,0 @@
|
||||
#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;
|
||||
}
|
||||
53
task4.cpp
Normal file
53
task4.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
#pragma warning(disable : 4996)
|
||||
#define SIZE 80
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int mystrlen(const char* str) {
|
||||
int len = 0;
|
||||
for (; str[len] != '\0'; ++len) {}
|
||||
return len;
|
||||
}
|
||||
|
||||
char* mystrcat(char* str1, const char* str2) {
|
||||
int i = mystrlen(str1);
|
||||
int j = mystrlen(str2);
|
||||
for (int k = 0; k < j; ++k) {
|
||||
str1[i + k] = str2[k];
|
||||
}
|
||||
str1[i + j] = '\0';
|
||||
return str1;
|
||||
}
|
||||
|
||||
char* mystrchr(char* str, char s) {
|
||||
for (int i = 0; str[i] != '\0'; ++i) {
|
||||
if (str[i] == s) {
|
||||
return &str[i];
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main() {
|
||||
char str1[SIZE];
|
||||
char str2[SIZE];
|
||||
cout << "Input first string: ";
|
||||
cin.getline(str1, SIZE);
|
||||
cout << "Input second string: ";
|
||||
cin.getline(str2, SIZE);
|
||||
|
||||
cout << "mystrlen(str1): " << mystrlen(str1) << endl;
|
||||
cout << "mystrcat(str1, str2): " << mystrcat(str1, str2) << endl;
|
||||
|
||||
char ch;
|
||||
cout << "Input char to search in str1: ";
|
||||
cin >> ch;
|
||||
char* f = mystrchr(str1, ch);
|
||||
if (f) {
|
||||
cout << "mystrchr(str1, '" << ch << "'): " << f << endl;
|
||||
}
|
||||
else {
|
||||
cout << "mystrchr(str1, '" << ch << "'): 0" << endl;
|
||||
}
|
||||
system("pause");
|
||||
}
|
||||
Reference in New Issue
Block a user