Добавил:
ИВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

кейс / dekoder (1)

.txt
Скачиваний:
0
Добавлен:
05.10.2023
Размер:
1.56 Кб
Скачать
#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;
}
Соседние файлы в папке кейс