Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.68 KB | None | 0 0
  1. using System;
  2. class Program
  3. {
  4.     static  string proizv(string a, int[,] H)//int n,int m,int l n,m-кол.строк\столбцов в строке которую умножают.
  5.  //m\l-количество строк\столбцов в матрице на которую умножают
  6.     {
  7.         string str = "";
  8.         int[] a1 = new int[a.Length];
  9.         for (int h = 0; h < a.Length; h++) {
  10.             if (a[h] == '1')
  11.                 a1[h] = 1;
  12.             else
  13.                 a1[h] = 0;
  14.         }
  15.         int[] a2 = new int[7];
  16.         for (int j = 0; j < 3; j++) {//l=3
  17.             for (int i = 0; i < 7; i++) {//m=7
  18.                 a2[j] ^= a1[i] * H[i, j];
  19.             }
  20.             str += a2[j];
  21.         }
  22.         return str;
  23.     }
  24.  
  25.     static  int[,] summ(string a, int[,] C)
  26.     {
  27.         string str = "";
  28.         int[] a1 = new int[a.Length];
  29.         for (int h = 0; h < a.Length; h++) {
  30.             if (a[h] == '1')
  31.                 a1[h] = 1;
  32.             else
  33.                 a1[h] = 0;
  34.         }
  35.         int[,] a2 = new int[7, 16];
  36.         for (int j = 0; j < 16; j++) {//l=3
  37.             for (int i = 0; i < 7; i++) {//m=7
  38.                 a2[i, j] = a1[i] ^ C[i, j];
  39.             }
  40.         }
  41.         return a2;
  42.     }
  43.    
  44.    
  45.    
  46.     static void Main(string[] args)
  47.     {
  48.         Console.WriteLine("Все кодовые вектора С:");
  49.         int[,] C = new int[7, 16] {
  50.             { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
  51.             { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1 },
  52.             { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 },
  53.             { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 },
  54.             { 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1 },
  55.             { 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1 },
  56.             { 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 },
  57.         };
  58.         for (int i = 0; i < 7; i++) {
  59.             for (int j = 0; j < 16; j++) {
  60.                 Console.Write("{0}_", C[i, j]);
  61.             }
  62.             Console.WriteLine();
  63.         }
  64.  
  65.         Console.WriteLine("Транспонированная матрица H:");
  66.         int[,] H = new int[7, 3] {
  67.             { 1, 0, 0 },
  68.             { 0, 1, 0 },
  69.             { 1, 1, 0 },
  70.             { 0, 0, 1 },
  71.             { 1, 0, 1 },
  72.             { 0, 1, 1 },
  73.             { 1, 1, 1 },
  74.         };
  75.         for (int i = 0; i < 7; i++) {
  76.             for (int j = 0; j < 3; j++) {
  77.                 Console.Write("{0}_", H[i, j]);
  78.             }
  79.             Console.WriteLine();
  80.         }
  81.  
  82.         string ch = "y";
  83.         while (ch == "y") {
  84.             Console.WriteLine("Введите некодовое слово");
  85.             string w = Console.ReadLine();
  86.             Console.WriteLine("Смежный класс");
  87.             int[,] C1 = summ(w, C);
  88.             for (int i = 0; i < 7; i++) {
  89.                 for (int j = 0; j < 16; j++) {
  90.                     Console.Write("{C1[i, j]}_", C1[i, j]);
  91.                 }
  92.                 Console.WriteLine();
  93.             }
  94.             string Sindrom = proizv(w, H);
  95.             Console.WriteLine("Синдром: {0}", Sindrom);
  96.  
  97.             Console.WriteLine("Continu? y/n");
  98.             ch = Console.ReadLine();
  99.         }
  100.         Console.ReadKey();
  101.     }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement