Добавил:
ИВТ (советую зайти в "Несортированное")rnПИН МАГА Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

кейс / dekoder (1)

.txt
Скачиваний:
3
Добавлен:
05.10.2023
Размер:
2 Кб
Скачать
#include <iostream>
#include <fstream>

int main() {
std::ifstream file("message.txt");
if(!file) {
std::cout << "Ошибка открытия файла" << std::endl;
return 1;
}

for(int i = 0; i < 5; i++) {
std::string line;
std::getline(file, line);

if(i < 4) {
// Проверка четности
int parity = 0;
for(int j = 0; j < 3; j++) {
if(line[j] == '1') parity++;
}

if(parity % 2 != (line[3] - '0')) {
std::cout << "Ошибка четности в строке " << i+1 << std::endl;
}

// Проверка одинаковости
int zeros = 0, ones = 0;
for(int j = 0; j < 3; j++) {
if(line[j] == '0') zeros++;
else ones++;
}

if(zeros % 3 != (line[4] - '0')) {
std::cout << "Ошибка одинаковости в строке " << i+1 << std::endl;
}
}
else {
// Проверка четности
int parity = 0;
for(int j = 0; j < 2; j++) {
if(line[j] == '1') parity++;
}

if(parity % 2 != (line[2] - '0')) {
std::cout << "Ошибка четности в строке " << i+1 << std::endl;
}

// Проверка одинаковости
int zeros = 0, ones = 0;
for(int j = 0; j < 2; j++) {
if(line[j] == '0') zeros++;
else ones++;
}

if(zeros % 2 != (line[3] - '0')) {
std::cout << "Ошибка одинаковости в строке " << i+1 << std::endl;
}
}
}

std::cout << "Ошибок не обнаружено" << std::endl;

return 0;
}
Соседние файлы в папке кейс