private void button1_Click(object sender, EventArgs e) { var IP = new Encoder(); int m = 7; // число символов в алфавите int dw = 5; // число символов в слове double[] p1 = new double[m]; //распределение double[] p = new double[m]; //распределение для создания строки double[] q = new double[m]; //кумулятивная вероятность double[] sigm = new double[m]; //кодировка в десятичной форме string[] alp = new string[m]; //алфавит слов string[] alph = new string[m]; //кодировка в двоичной форме string[] en = new string[m]; // алфавит кодов string[] inw = new string[dw]; //входное слово int[] wl = new int[m]; string bf = ""; string fl = ""; double A_l = 0; // Средняя длина double Entr = 0; // Энтропия fl = textBox1.Text; var sep = new char[] { ' ' }; var st1 = fl.Split(sep, StringSplitOptions.RemoveEmptyEntries); string[] arr = new string[st1.Length]; for (int i = 0; i < st1.Length; i++) { arr[i] = st1[i]; } IP.Write("Input.txt", arr); //Form2 f = new Form2(); if (radioButton1.Checked) { p1 = IP.ReadArray("P1.txt"); } if (radioButton2.Checked) { p1 = IP.ReadArray("P2.txt"); } if (radioButton3.Checked) { p1 = IP.ReadArray("Rav.txt"); } // p1 = IP.ReadArray("P1.txt"); alp = IP.Read("ALP.txt"); //ВЕСЬ КОД НИЖЕ РАБОТАЕТ !!!ВМЕСТО!!! ВВОДА СЛОВ ВРУЧНУЮ. ОН САМ СОЗДАЁТ ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ ДЛЯ КОДИРОВАНИЯ //ДОБАВЬ КНОПКИ ДЛЯ ВЫБОРА РАСПРЕДЕЛЕНИЯ ДЛЯ ФОРМИРОВАНИЯ СТРОКИ if (radioButton6.Checked) { p = IP.ReadArray("P1.txt"); } if (radioButton5.Checked) { p = IP.ReadArray("P2.txt"); } if (radioButton4.Checked) { p = IP.ReadArray("Rav.txt"); } string str_buf = ""; double p_i; int pb; int simv = 0; for (int i = 0; i < 7; i++) { p_i = 1000 * p[i]; pb = (int)p_i; simv += pb; for (int j = 0; j < p_i; j++) { str_buf += alp[i]; str_buf += " "; } } textBox8.Text = simv.ToString(); textBox1.Text = str_buf; var st3 = str_buf.Split(sep, StringSplitOptions.RemoveEmptyEntries); string[] ar = new string[st3.Length]; for (int i = 0; i < st3.Length; i++) { ar[i] = st3[i];//МАССИВ AR НУЖНО ЗАПИСАТЬ В ФАЙЛ. } IP.Write("Input.txt", ar); ///////////////////////////////////////////////////// inw = IP.Read("Input.txt"); q = IP.Cumul_Prob(p1, m); sigm = IP.Alphabet(m, p1, q); wl = IP.Words_len(p1, m); alph = IP.TenToBin(wl, sigm, m); bf = IP.Encode(alph, inw, alp); textBox2.Text = bf; textBox6.Clear(); // Вывод закодированного алфавита for (int j = 0; j < m; j++) { textBox6.Text += alp[j].ToString() + ": " + alph[j].ToString() + Environment.NewLine; } textBox5.Clear(); if (IP.Kraft(wl, m)) // Проверка неравенства Крафта { textBox5.Text = "Выполняется"; } else { textBox5.Text = "Не выполняется"; } A_l = IP.Average_length(wl, p1, m); textBox3.Clear(); textBox3.Text = A_l.ToString(); // Средняя длина Entr = IP.Entropy(p1, m); textBox7.Clear(); textBox7.Text = IP.Entropy(p1, m).ToString(); // Энтропия textBox4.Clear(); textBox4.Text = IP.Redundancy(A_l, Entr).ToString(); // Избыточность var st2 = bf.Split(sep, StringSplitOptions.RemoveEmptyEntries); string[] t = new string[st2.Length]; for (int i = 0; i < st2.Length; i++) { t[i] = st2[i]; } IP.Write("DInput.txt", t); }
private void button1_Click(object sender, EventArgs e) { var IP = new Encoder(); int m = 7; // число символов в алфавите int dw = 5; // число символов в слове double[] p1 = new double[m]; //распределение double[] q = new double[m]; //кумулятивная вероятность double[] sigm = new double[m]; //кодировка в десятичной форме string[] alp = new string[m]; //алфавит слов string[] alph = new string[m]; //кодировка в двоичной форме string[] en = new string[m]; // алфавит кодов string[] inw = new string[dw]; //входное слово int[] wl = new int[m]; string bf = ""; string buf = ""; var sep = new char[] { ' ' }; if (radioButton1.Checked) { p1 = IP.ReadArray("P1.txt"); } if (radioButton2.Checked) { p1 = IP.ReadArray("P2.txt"); } if (radioButton3.Checked) { p1 = IP.ReadArray("Rav.txt"); } alp = IP.Read("ALP.txt"); inw = IP.Read("DInput.txt"); for (int i = 0; i < inw.Length; i++) { buf += inw[i]; buf += " "; } textBox1.Text = buf; q = IP.Cumul_Prob(p1, m); sigm = IP.Alphabet(m, p1, q); wl = IP.Words_len(p1, m); alph = IP.TenToBin(wl, sigm, m); bf = IP.Decode(alp, inw, alph); var st1 = bf.Split(sep, StringSplitOptions.RemoveEmptyEntries); string[] t = new string[st1.Length]; for (int i = 0; i < st1.Length; i++) { t[i] = st1[i]; } IP.Write("DOutput.txt", t); textBox2.Clear(); textBox2.Text = bf; textBox6.Clear(); for (int j = 0; j < m; j++) { // Вывод закодированного алфавита textBox6.Text += alp[j].ToString() + ": " + alph[j].ToString() + Environment.NewLine; } }