private void button1_Click(object sender, EventArgs e) { int leva; if (!Int32.TryParse(leveCislo.Text, out leva)) { new chyba("koeficient druh kodu se nepodařilo sparsovat").Show(); return; } if (leva < 2) { new chyba("koeficient druh kodu je moc maly").Show(); return; } int prava; if (!Int32.TryParse(praveCislo.Text, out prava)) { new chyba("koeficent nesparsovan").Show(); return; } if (prava < 2) { new chyba("koeficient druh kodu je moc maly").Show(); return; } if (koeficienty.Text == "" || koeficienty.Text == null) { new chyba("chybí koeficienty").Show(); return; } DHLinKod dHKod = new DHLinKod(leva, prava, koeficienty.Text); MathEngine.LinearKod.Run(dHKod, listBox1); }
public static void Run(DHLinKod dH, ListBox listBox) { listBox.Items.Clear(); StringBuilder builder = new StringBuilder(); List <int> prvniSLoupec = new List <int>(); List <int> posledniSloupec = new List <int>(); dH.Polynom.ForEach(x => { builder.Append(x.ToString()); prvniSLoupec.Add(x); }); for (int i = 0; i < dH.Leva - dH.Polynom.Count; i++) { builder.Append("0"); prvniSLoupec.Add(0); } prvniSLoupec.ForEach(posledniSloupec.Add); int position = dH.Leva - dH.Prava; List <string> hotovyTextrovny = new List <string>(); hotovyTextrovny.Add(builder.ToString()); for (int i = 0; i < dH.Leva - position; i++) { List <int> aktualniSloupec = new List <int>(); aktualniSloupec.Add(0); for (int j = 0; j < posledniSloupec.Count - 1; j++) { aktualniSloupec.Add(posledniSloupec[j]); } if (aktualniSloupec[position] == 1) { for (int j = 0; j < prvniSLoupec.Count; j++) { aktualniSloupec[j] = (aktualniSloupec[j] + prvniSLoupec[j]) % 2; } } builder.Clear(); aktualniSloupec.ForEach(x => builder.Append(x.ToString())); hotovyTextrovny.Add(builder.ToString()); posledniSloupec = aktualniSloupec; } List <StringBuilder> svisle = new List <StringBuilder>(); for (int i = 0; i < dH.Leva; i++) { svisle.Add(new StringBuilder()); } for (int i = 0; i < hotovyTextrovny.Count - 1; i++) { for (int j = 0; j < dH.Leva; j++) { svisle[j].Append(hotovyTextrovny[i].ElementAt(j)); } } svisle.ForEach(x => listBox.Items.Add(x.ToString())); }