private void btnLosuj_Click(object sender, EventArgs e) //Metoda losująca przykadową funkcje; { Random r1 = new Random(); //początek losowania double od = Convert.ToDouble(nudOd.Value); //ustawienie wartości początkowej losowania double doo = Convert.ToDouble(nudDo.Value); //ustawienie wartości maksymalnej losowania Double a = 0; //zmienna do przychowywania argumentu funkcji Double b = 0; //zmienna do przechowywania wartosci funkcji Punkt p1 = new Punkt(a, b); // Inicjowanie punktu mającego przechowywać pojedyńczy punkt dla funkcji if (funkcja.Count != 0) // sprawdzenie czy lista na funkcje są puste, gdyż generujemy nową funkcje { funkcja.Clear(); //czyści listę funkcji } if (tabelaNaFunkcje != null) //sprawdzenie czy tablica wyśfietlająca funkcje czysta { tabelaNaFunkcje.Clear(); //czyści tablicę na funkcje } if (funkcja.Count == 0) // Dodanie pierwszego argumentu do "listy funkcja" { a = Math.Round((r1.NextDouble() * (doo - od)) + od, 4); //losowanie argumentu b = Math.Round((r1.NextDouble() * (doo - od)) + od, 4); //losowanie wartości p1.setXY(a, b); //ustawienie wartości punktu funkcja.Add(p1); //dodanie punktu do listy funkcja } bool czy = false; // zmienna logiczna sprawdzająca czy argument w funkcji się nie powtarza while (Convert.ToInt32(nudIle.Value) - 1 > funkcja.Count) // pętla generująca punkty do funkcji { a = Math.Round((r1.NextDouble() * (doo - od)) + od, 4); // losowanie argumentu funkcji foreach (Punkt p in funkcja) //pętla sprawdzająca czy argument funkcji się nie powtarza { if (p.getX() == a) { czy = true; break; } } if (czy == true) // warunek sprawdzający, czy dany argument już istnieje dla funkcji { czy = false; continue; //pętla wykonuje się w następnej iteracji, losując kolejny argument } b = Math.Round((r1.NextDouble() * (doo - od)) + od, 4); // losujemy wartość dla funkcji Punkt zmiennaLokalna = new Punkt(a, b); //dodajemy wartości do obiektu punkt funkcja.Add(zmiennaLokalna); // dodajemy wartości do listy funkcja } UpdateGrid(); }
private void btnDodaj_Click(object sender, EventArgs e) //dodawanie nowego punktu { Punkt p1 = new Punkt(Convert.ToDouble(nudOd.Value), Convert.ToDouble(nudDo.Value)); //generowanie nowego punktu foreach (Punkt punkt in funkcja) //pętla sprawdzająca, czy aby się argument nie powtórzył { if (p1.getX() == punkt.getX()) { MessageBox.Show("Nie może być dwóch takich samych argumentów");//jeżeli się powtórzył, wyrzucamy błąd return; } } funkcja.Add(p1); //jeżeli nie, dodajemy go do funkcji UpdateGrid(); // uaktualniamy tabele }
public void sortowanie() //funkcja sortujące { for (int i = 1; i < funkcja.Count - 1; i++) { for (int j = funkcja.Count - 1; j >= 1; j--) { if (funkcja[j].getX() < funkcja[j - 1].getX()) { Punkt bufor = new Punkt(0.0, 0.0); bufor = funkcja[j - 1];//bufor przechowujący zmienną którą bd zamieniac funkcja[j - 1] = funkcja[j]; funkcja[j] = bufor; } } } UpdateGrid(); }