Zbiory w C#

0

Mam problem zrobić iloczyn sumę i dopełnienie zbioru. Jak to zrobić w C#? Mam coś takiego

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace fuzzy_sets
{
    public partial class Form1 : Form
    {
        int n = 0;
        Series[] series = new Series[50];
        
   

        public Form1()
        {
            InitializeComponent();
        }

        private void Chart1_Click(object sender, EventArgs e)
        {

        }

        private void ButtonAdd_Click(object sender, EventArgs e) //przycisk "dodaj zbiór"
        {
            float a = 0;
            float b = 0;
            float c = 0;
            float d = 0;

            try //Czytanie wartości z textboxów
            {
                a = float.Parse(textBoxA.Text);
                b = float.Parse(textBoxB.Text);
                c = float.Parse(textBoxC.Text);
                d = float.Parse(textBoxD.Text);
            }
            catch (Exception ex) //kontrola błędu 
            {
                MessageBox.Show(ex.Message.ToString());
                return;
            }

            series[n] = new Series(a, b, c, d); //nowy obiekt klasy Series

            chart1.Series.Add(n.ToString());
            chart1.Series[n].ChartType = SeriesChartType.Line;


            chart1.Legends.Add(new Legend(n.ToString())); //rysowanie dodanego wykresu
            chart1.Series[n].Points.AddXY(a, 0);
            chart1.Series[n].Points.AddXY(b, 1);
            chart1.Series[n].Points.AddXY(c, 1);
            chart1.Series[n].Points.AddXY(d, 0);

            comboBoxPattern1.Items.Add(n.ToString());
            comboBoxPattern2.Items.Add(n.ToString()); // dodanie do Comboboxów wykresu
            
            n++;

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            chart1.ChartAreas.Add("area");
            chart1.ChartAreas["area"].AxisX.Interval = 1;
            chart1.ChartAreas["area"].AxisY.Minimum = 0;
            chart1.ChartAreas["area"].AxisY.Maximum = 1;
            chart1.ChartAreas["area"].AxisY.Interval = 1; 
            chart1.ChartAreas["area"].AxisX.MajorGrid.LineWidth = 0; 
            chart1.ChartAreas["area"].AxisY.MajorGrid.LineWidth = 0; // załadowanie miejsca na wykresy
            comboBox1.Items.Add("Suma");
            comboBox1.Items.Add("Iloczyn");
            comboBox1.Items.Add("Dopełnienie");  // dodanie opcji do Comboboxa
            
        }

        private void buttonExecute_Click(object sender, EventArgs e)
        {
            int series1;
            int series2;
            try
            {
                 series1 = int.Parse(comboBoxPattern1.Text); // Pobranie wartości z pierwszego comboboxa
                 series2 = int.Parse(comboBoxPattern2.Text); // Pobranie wartości z drugiego comboboxa
            }
            catch (Exception ex) // kontrola błędów
            {
                MessageBox.Show(ex.Message.ToString());
                return;
            }
         
            float a, b, c, d;

            chart1.Series.Add(n.ToString());
            chart1.Series[n].ChartType = SeriesChartType.Line;
            
            string operation = comboBox1.Text; //Wybranie operacji z Comboboxa
            switch (operation)
            {
                case "Suma":  //Suma
                    a = series[series1].a;
                    b = series[series1].b;
                    c = series[series2].c;
                    d = series[series2].d;
                    chart1.Series[n].Points.AddXY(a, 0);
                    chart1.Series[n].Points.AddXY(b, 1);
                    chart1.Series[n].Points.AddXY(c, 1);
                    chart1.Series[n].Points.AddXY(d, 0);
                    series[n] = new Series(a, b, c, d);
                    break;

                case "Iloczyn": //Iloczyn
                    if(series[series1].a==series[series2].a && series[series1].b == series[series2].b && series[series1].c == series[series2].c && series[series1].d == series[series2].d)
                    {
                        chart1.Series[n].Points.AddXY(series[series1].a, 0);
                        chart1.Series[n].Points.AddXY(series[series1].b, 1);
                        chart1.Series[n].Points.AddXY(series[series1].c, 1);
                        chart1.Series[n].Points.AddXY(series[series1].d, 0);
                        series[n] = new Series(series[series1].a, series[series1].b, series[series1].c, series[series1].d);
                    }
                    else
                    {
                        a = series[series2].a;
                        b = (series[series1].c + series[series2].b) / 2;
                        c = series[series2].c;
                        d = series[series1].d;

                        if (d > a)
                        {
                            chart1.Series[n].Points.AddXY(a, 0);
                            chart1.Series[n].Points.AddXY(b, 0.5);
                            chart1.Series[n].Points.AddXY(c, 0);
                            chart1.Series[n].Points.AddXY(0, 0);
                            series[n] = new Series(a, b, c, d);
                        }


                        else
                            MessageBox.Show("Nie ma części wspólnej");

                    }

                    break;


                case "Dopełnienie":  //Dopełnienie
                    a = series[series1].a;
                    b = series[series1].b;
                    c = series[series1].c;
                    d = series[series1].d;
                    
                    chart1.Series[n].Points.AddXY(a, 1);
                    chart1.Series[n].Points.AddXY(b, 0);
                    chart1.Series[n].Points.AddXY(c, 0);
                    chart1.Series[n].Points.AddXY(d, 1);

              
                    series[n] = new Series(a, b, c, d);
                    break;

                
            }
            comboBoxPattern1.Items.Add(n.ToString());
            comboBoxPattern2.Items.Add(n.ToString());
           
            n++;

        }
        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }
        private void buttonDelete_Click(object sender, EventArgs e) //Usuwanie zbioru
        {
            comboBoxPattern1.Items.Clear();
            comboBoxPattern2.Items.Clear();
            chart1.Series.Clear();          
            n = 0;
            chart1.Legends.Clear();
            
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex == 2)
            {
                comboBoxPattern2.SelectedIndex = comboBoxPattern1.SelectedIndex;
                comboBoxPattern2.Visible = false;
                label3.Visible = false;
            }
            else
            {
                comboBoxPattern2.Visible = true;
                label3.Visible = true;
            }
        }
    }
}

0

Gdzie tu są zbiory?

1 użytkowników online, w tym zalogowanych: 0, gości: 1