Пример #1
0
        /// <summary>
        /// Gibt die vereinfachten Terme in der Textbox aus
        /// </summary>
        private void EinfacheAusgabe()
        {
            Term[]         vereinfachteTerme;
            QuineMcCluskey qmc;
            var            tempString = "";

            // TODO: Run background TASK with cancellation token
            //var thread = new System.Threading.Thread(Waiting.Wait);
            //thread.Start();

            // Für jede Ausgangsvaribale den Term vereinfachen
            for (var i = 0; i < fTabelle.AnzahlAusgabevariablen; i++)
            {
                // Terme auslesen und vereinfachen
                qmc = new QuineMcCluskey(fTabelle.GibMinterme(i));
                vereinfachteTerme = qmc.Vereinfache();

                // Vereinfachten Term in den temporären String schreiben
                tempString += Properties.Settings.Default.ausChar + (i + 1).ToString() + " = ";
                tempString += vereinfachteTerme[0].ToString();
                for (var j = 1; j < vereinfachteTerme.Length; j++)
                {
                    tempString += "+" + vereinfachteTerme[j].ToString();
                }
                tempString += "\r\n";
            }

            //System.Threading.Thread.Sleep(100);
            //thread.Abort();

            // Text in die Textbox schreiben
            textBoxAusgabe.Text = tempString;
        }
Пример #2
0
        /// <summary>
        /// Zeigt ausführlich die Schritte zur Vereinfachung in einem extra Form
        /// </summary>
        private void ErweitereAusgabe()
        {
            var            vereinfachteTerme = new List <Term[]>();
            QuineMcCluskey qmc;
            var            list = new List <List <Term[]> > [fTabelle.AnzahlAusgabevariablen];

            // TODO: Run background TASK with cancellation token
            //var thread = new System.Threading.Thread(Waiting.Wait);
            //thread.Start();

            // Für jede Ausgangsvariable den Term vereinfachen
            for (var i = 0; i < fTabelle.AnzahlAusgabevariablen; i++)
            {
                // Terme auslesen und vereinfachen
                qmc     = new QuineMcCluskey(fTabelle.GibMinterme(i));
                list[i] = new List <List <Term[]> >();
                vereinfachteTerme.Add(qmc.Vereinfache(ref list[i]));
            }

            //System.Threading.Thread.Sleep(100);
            //thread.Abort();

            // Ausgabe im Form
            var errorIndizes = new List <Int32>();
            var form         = new AusgabeForm(list, vereinfachteTerme);
            var just_error   = true;

            while (just_error)
            {
                try
                {
                    form.ShowDialog();
                    just_error = false;
                }
                catch
                {
                    MessageBox.Show("Leider ist die Darstellung zu groß!", "Darstellung nicht möglich", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    errorIndizes.Add(form.SelectedIndex);
                    form = new AusgabeForm(list, vereinfachteTerme, errorIndizes.ToArray(), form.LastIndex);
                }
            }
        }