//odseparowanie z chromosoma X i Y (potrzebne do obliczenia wyników w funkcji)
        public WartosciXY wartosci(string[] legenda, int licz)
        {
            int[]  wartosciX = new int[licz];
            int[]  wartosciY = new int[licz];
            string zmPom     = "";
            int    k;

            for (int i = 0; i < licz; i++)
            {
                string zmPom2 = "";
                string zmPom3 = "";
                try
                {
                    zmPom = legenda[i];
                    int j = zmPom.Length;
                    k = j / 2;
                }
                catch (Exception) { break; }

                for (int l = 0; l < zmPom.Length; l++)
                {
                    if (l < k)
                    {
                        zmPom2 += zmPom[l];
                    }
                    else
                    {
                        zmPom3 += zmPom[l];
                    }
                }
                wartosciX[i] = Convert.ToInt32(zmPom2, 2);
                wartosciY[i] = Convert.ToInt32(zmPom3, 2);
            }
            WartosciXY wartosc = new WartosciXY();

            wartosc.wartosciX = wartosciX;
            wartosc.wartosciY = wartosciY;
            return(wartosc);
        }
        //*************************************************************************************



        //akcje po wybraniu wartości z listy
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //deklaracja i ustawianie parametów
            int wybraneID           = comboBox1.SelectedIndex;
            SeriesCollection series = new SeriesCollection();
            int    licznika         = 0;
            string zmPomA           = "";

            label24.Visible          = true;
            pieChart1.Visible        = true;
            labelNajWOsobnik.Visible = true;

            //dodanie danych do koła wykresowego.
            for (int i = 0; i < koloRuletkowe.Count; i++)
            {
                if (wybraneID == i)
                {
                    for (int j = 0; j < koloRuletkowe[i].wycinki.Length; j++)
                    {
                        series.Add(new PieSeries()
                        {
                            Title = koloRuletkowe[i].chromosomy[j], Values = new ChartValues <double> {
                                koloRuletkowe[i].wycinki[j]
                            }, DataLabels = true, LabelPoint = labelPoint
                        });
                        pieChart1.Series = series;
                    }
                    for (int id = 0; id < populacjaDoOdczytu[i].chromosom.Length; id++)
                    {
                        zmPomA = populacjaDoOdczytu[i].chromosom[id].ToString();
                        for (int k = 0; k < zmPomA.Length; k++)
                        {
                            if (zmPomA[k] == '1')
                            {
                                licznika++;
                            }
                        }
                        licznika = 0;
                        zmPomA   = "";
                    }
                }
            }

            //Znajdowanie najlepszego osobnika w populacji
            double najlepszaWartosc = 0;
            string najlepszyosobnik = "";

            for (int idPop = 0; idPop < populacjaDoOdczytu.Count; idPop++)
            {
                if (wybraneID == idPop)
                {
                    for (int idElementu = 0; idElementu < populacjaDoOdczytu[idPop].chromosom.Length; idElementu++)
                    {
                        if (najlepszaWartosc < populacjaDoOdczytu[idPop].wartosc[idElementu])
                        {
                            najlepszaWartosc = populacjaDoOdczytu[idPop].wartosc[idElementu];
                            najlepszyosobnik = populacjaDoOdczytu[idPop].chromosom[idElementu];
                        }
                    }
                }
            }
            labelNajWOsobnik.Text = $"Najlepszy osobnik to: {najlepszyosobnik} \nO wartość: {najlepszaWartosc}";
            najlepszyOsobnik      = najlepszyosobnik;

            //wproawadzenie wartosci do wykresu
            val1.Clear();
            labelLegendCh.Text = "";

            string pomocniczaLegenda = "";
            int    licznik           = 1;

            for (int i = 0; i < populacjaDoOdczytu.Count; i++)
            {
                if (i == wybraneID)
                {
                    for (int j = 0; j < populacjaDoOdczytu[i].chromosom.Length; j++)
                    {
                        // val1.Add(populacjaDoOdczytu[i].wartosc[j]);
                        pomocniczaLegenda  += $"{populacjaDoOdczytu[i].chromosom[j]} ";
                        labelLegendCh.Text += $"Id {j} chromosom: {populacjaDoOdczytu[i].chromosom[j]} \n";
                        licznik++;
                    }
                }
            }

            //to do końca ma budować tworzyć wykres
            string[] rozdzieloneWartosciPopulacji = new string[licznik];
            rozdzieloneWartosciPopulacji = legenda(pomocniczaLegenda, licznik);
            WartosciXY wartosciXY = wartosci(rozdzieloneWartosciPopulacji, licznik);

            double[]  wyniki = new double[liczbChrom];
            string[]  pola;
            decimal[] potegi;
            pola   = new[] { textBoxX1.Text, textBoxY1.Text, textBoxX2.Text, textBoxY2.Text, textBoxX3.Text, textBoxY3.Text, textBoxX4.Text, textBoxY4.Text, textBoxC1.Text };
            potegi = new[] { numericUpDown1.Value, numericUpDown2.Value, numericUpDown3.Value, numericUpDown4.Value, numericUpDown5.Value, numericUpDown6.Value, numericUpDown7.Value, numericUpDown8.Value };
            for (int idCH = 0; idCH < liczbChrom; idCH++)
            {
                wyniki[idCH] = Funkcja.obliczFunkcje(wartosciXY.wartosciX[idCH], wartosciXY.wartosciY[idCH], pola, potegi);
            }
            for (int i = 0; i < wyniki.Length; i++)
            {
                val1.Add(wyniki[i]);
            }

            cartesianChart1.Series = series2;
            //dotąd
        }