public Encoder1(string input) { HuffmanTree1 huffmanTree = new HuffmanTree1(); huffmanTree.Build(input); this.CodedBitString = huffmanTree.Encode(input); this.CodeTable = huffmanTree.ReturnCodeTable(input); }
private void button2_Click(object sender, EventArgs e) { Dictionary <List <bool>, string> CodeTable = new Dictionary <List <bool>, string>(); string input = richTextBox1.Text; Source source = new Source(input); string sourceinput = source.inputstring; if (radioButton1.Checked) { HuffmanTree huffmanTree = new HuffmanTree(); huffmanTree.Build(sourceinput); Encoder encoder = new Encoder(sourceinput); BitArray encoded = encoder.CodedBitString; double zeros = 0; double edins = 0; foreach (bool bit in encoded) { richTextBox2.AppendText((bit ? 1 : 0) + ""); } richTextBox2.Text += "\n"; richTextBox2.Text += "Помехоустойчивый код \n"; // CodeTable = encoder.getCodeTable(); foreach (KeyValuePair <List <bool>, string> symbol in CodeTable) { richTextBox3.Text += symbol.Value.ToString(); richTextBox3.AppendText(" "); foreach (bool bit in symbol.Key) { richTextBox3.AppendText((bit ? 1 : 0) + ""); } richTextBox3.Text += "\n"; } EnctoNoiseEnc objnoiseencoder = new Encoder(input); NoiseEncoder objnencoder = new NoiseEncoder(encoded); BitArray noisecodedstring = objnencoder.getNoiseEncodedStr();//помехоустойчивая кодовая строка foreach (bool bit in noisecodedstring) { richTextBox2.AppendText((bit ? 1 : 0) + ""); if (bit == false) { zeros++; } if (bit == true) { edins++; } } textBox2.AppendText(zeros.ToString()); textBox3.AppendText(edins.ToString()); double sred = Math.Round((zeros + edins) / input.Length, 3); textBox4.AppendText(sred.ToString()); } if (radioButton2.Checked) { HuffmanTree1 huffmanTree = new HuffmanTree1(); huffmanTree.Build(sourceinput); Encoder1 encoder = new Encoder1(sourceinput); BitArray encoded = encoder.CodedBitString; int zeros = 0; int edins = 0; foreach (bool bit in encoded) { richTextBox2.AppendText((bit ? 1 : 0) + ""); if (bit == false) { zeros++; } if (bit == true) { edins++; } } textBox2.AppendText(zeros.ToString()); textBox3.AppendText(edins.ToString()); // CodeTable = encoder.getCodeTable(); foreach (KeyValuePair <List <bool>, string> symbol in CodeTable) { richTextBox3.Text += symbol.Value.ToString(); richTextBox3.AppendText(" "); foreach (bool bit in symbol.Key) { richTextBox3.AppendText((bit ? 1 : 0) + ""); } richTextBox3.Text += "\n"; } } if (radioButton3.Checked) { HuffmanTree2 huffmanTree = new HuffmanTree2(); huffmanTree.Build(sourceinput); Encoder2 encoder = new Encoder2(sourceinput); BitArray encoded = encoder.CodedBitString; int zeros = 0; int edins = 0; foreach (bool bit in encoded) { richTextBox2.AppendText((bit ? 1 : 0) + ""); if (bit == false) { zeros++; } if (bit == true) { edins++; } } // textBox2.AppendText(zeros.ToString()); textBox3.AppendText(edins.ToString()); CodeTable = encoder.getCodeTable(); foreach (KeyValuePair <List <bool>, string> symbol in CodeTable) { richTextBox3.Text += symbol.Value.ToString(); richTextBox3.AppendText(" "); foreach (bool bit in symbol.Key) { richTextBox3.AppendText((bit ? 1 : 0) + ""); } richTextBox3.Text += "\n"; } } }