Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions Laba 1 Spiridonov Gosha
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#include <iostream>
#include <cmath>

bool pch(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
} //функция проверки на простое число

int main() {
int num=0, sum=0, nel; //num количество подмассивов, sum сумма элементов подмассива, nel количество элементов массива
int** arr = new int*[num]; //создание двумерного массива
std::cout << "Введите количество подмассивов: ";
std::cin >> num;
int cpp = 0; // сколько подмассивов с суммой элементов - проствм числои
for (int i = 0; i < num; ++i) {
std::cout << "Введите количество элементов в подмассиве " << i + 1 << ": ";
std::cin >> nel;
arr[i] = new int[nel];
std::cout << "Введите элементы подмассива " << i + 1 << ": ";
for (int j = 0; j < nel; ++j) {
std::cin >> arr[i][j];
sum += arr[i][j];
}

if (pch(sum)) {
cpp+=1; //прибавляет один, если сумма простите число
}
}
std::cout << "Количество подмассивов с суммой элементов, являющейся простым числом: " << cpp << std::endl;
}
66 changes: 66 additions & 0 deletions Laba 2 Spiridonov Gosha
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#include <iostream>
#include <unordered_map>
#include <vector>
#include <string>
#include <cassert>
#include <sys/resource.h> // для подсчёта памчти

// считает повторения значений в массиве
std::vector<int> numcases(const std::vector<std::string>& arr) {
std::unordered_map<std::string, int> nummap;

// считает сколько раз каждый элемент
for (const auto& item : arr) {
nummap[item]++;
}

// выводит в массив-результат количество повторений ^_^ <3
std::vector<int> result;
for (const auto& item : arr) {
result.push_back(nummap[item]);
}

return result;
}

// сколько ушло памяти (в б)
void memory () {
struct rusage usage;
getrusage(RUSAGE_SELF, &usage);
std::cout << "Памяти ушло: " << usage.ru_maxrss << " байт" << std::endl;
}

void runtests() {
{
std::vector<std::string> arr = {"Orange", "Red", "Green", "Orange"};
std::vector<int> expected = {2, 1, 1, 2};
std::vector<int> result = numcases(arr);
assert(result == expected);
std::cout << "Тест пройден" << std::endl;
memory();
}

{
std::vector<std::string> arr = {"Lomo", "Pesochka", "Kronva", "Birzha"};
std::vector<int> expected = {1, 1, 1, 1};
std::vector<int> result = numcases(arr);
assert(result == expected);
std::cout << "Тест пройден" << std::endl;
memory();
}

{
std::vector<std::string> arr = {"Vladislav", "Vladislav", "Vladislav", "Vladislav"};
std::vector<int> expected = {4, 4, 4, 4};
std::vector<int> result = numcases(arr);
assert(result == expected);
std::cout << "Тест пройден" << std::endl;
memory();
}
}

int main() {
// запуск тестиков
runtests();
return 0;
}
Loading