diff --git a/main.cpp b/main.cpp index 32cb3d5..7687125 100644 --- a/main.cpp +++ b/main.cpp @@ -84,7 +84,8 @@ void findLeastFrequentVowel(const string& filePath) { file.close(); int minCount = numeric_limits::max(); - char leastVowel; + char leastVowel = '\0'; // Инициализация нулевым символом + for (int i = 0; i < 6; ++i) { if (counts[i] > 0 && counts[i] < minCount) { minCount = counts[i]; @@ -92,7 +93,7 @@ void findLeastFrequentVowel(const string& filePath) { } } - if (leastVowel) { + if (leastVowel != '\0') { // Проверка, нашлась ли гласная cout << "Наименее часто встречающаяся гласная: " << leastVowel << " (" << minCount << " раз)" << endl; } @@ -101,6 +102,7 @@ void findLeastFrequentVowel(const string& filePath) { } } + void z3_22() { string filePath; filePath = "txt.txt"; @@ -143,10 +145,15 @@ void findWordCombination(const string& fileName, const string& combination) { while (getline(file, line)) { ++lineNumber; - // Проверяем, содержит ли строка указанное сочетание слов - if (line.find(combination) != string::npos) { + size_t pos = line.find(combination); + if (pos != string::npos) { found = true; - cout << "Найдено в строке " << lineNumber << ": " << line << endl; + + // Выводим строку с выделением найденного сочетания слов + cout << "Найдено в строке " << lineNumber << ": "; + cout << line.substr(0, pos); // Текст до совпадения + cout << "\033[31m" << line.substr(pos, combination.length()) << "\033[0m"; // Выделенное совпадение + cout << line.substr(pos + combination.length()) << endl; // Текст после совпадения } } @@ -157,6 +164,7 @@ void findWordCombination(const string& fileName, const string& combination) { file.close(); } + void z3_16() { string fileName, combination; @@ -171,20 +179,26 @@ void z3_16() { } void z4_22() { - // Входной массив F[1:n] в двоичной системе - vector binaryArray = { "101", "110", "1111", "10010" }; + int n; + cout << "Введите длину массива: "; + cin >> n; + + vector binaryArray; + cout << "Введите " << n << " чисел в двоичной системе:\n"; + for (int i = 0; i < n; ++i) { + string binary; + cin >> binary; + binaryArray.push_back(binary); + } - // Массив для хранения чисел в пятеричной системе vector base5Array; - // Преобразуем числа for (const string& binary : binaryArray) { int decimal = binaryToDecimal(binary); // Перевод в десятичное string base5 = decimalToBase5(decimal); // Перевод в пятеричное base5Array.push_back(base5); } - // Вывод результата cout << "Числа в пятеричной системе: "; for (const string& num : base5Array) { cout << num << " "; @@ -347,12 +361,12 @@ void z5_22() { void showMenu() { cout << "Меню задач:\n"; cout << "1. «Алгоритм Евклида»\n"; - cout << "3. 3.16\n"; //цветом - cout << "4. 3.22\n"; //только согласные + cout << "3. 3.16\n"; + cout << "4. 3.22\n"; cout << "6. 4.16\n"; - cout << "7. 4.22\n";// пользователь вводит длинну + cout << "7. 4.22\n"; cout << "8. 5.16\n"; - cout << "9. 5.22\n";// Динамическй массив country + cout << "9. 5.22\n";// Динамическй массив country ???? cout << "0. Выход\n"; } void launchTasks() {