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;
}
}
}
}