- private void button2_Click(object sender, EventArgs e) {
- UzupelnijTabele();
- }
- private void UzupelnijTabele() {
- double dolnaGranica = 0, gornaGranica = 0, krok = 0;
- if (!CzytajDane(ref dolnaGranica, ref gornaGranica, ref krok))
- return;
- int iloscDanych = ObliczIloscDanych(dolnaGranica, gornaGranica, krok);
- double[,] dane = ObliczFunkcje(dolnaGranica, gornaGranica, krok, iloscDanych);
- dataGridView1.Visible = true;
- for (int i = 0; i < iloscDanych; i++) {
- dataGridView1.Rows.Add();
- dataGridView1.Rows[i].Cells[0].Value = dane[i, 0];
- dataGridView1.Rows[i].Cells[1].Value = dane[i, 1];
- }
- }
- private bool CzytajDane(ref double dolnaGranica, ref double gornaGranica, ref double krok) {
- double wartosc;
- if (double.TryParse(textDolna.Text, out wartosc))
- dolnaGranica = wartosc;
- else {
- MessageBox.Show("Popraw wartość dolnej granicy", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return false;
- }
- if (double.TryParse(textGorna.Text, out wartosc))
- gornaGranica = wartosc;
- else {
- MessageBox.Show("Popraw wartość górnej granicy", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return false;
- }
- if (double.TryParse(textPrzyrost.Text, out wartosc))
- krok = wartosc;
- else {
- MessageBox.Show("Popraw wartość przyrostu", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return false;
- }
- return true;
- }
- private double[,] ObliczFunkcje(double dolnaGranica, double gornaGranica, double krok, int iloscDanych) {
- double[,] dane = new double[iloscDanych, 2];
- double akrualnyX = dolnaGranica;
- for(int i = 0; i < iloscDanych; ++i) {
- dane[i,0] = akrualnyX;
- dane[i,1] = ObliczFunkcjeWPunkcie(akrualnyX);
- akrualnyX += krok;
- }
- return dane;
- }
- private int ObliczIloscDanych(double dolnaGranica, double gornaGranica, double krok) {
- int i = 1;
- double aktualnyX = dolnaGranica;
- while(aktualnyX < gornaGranica) {
- aktualnyX += krok;
- ++i;
- }
- return i;
- }
- private double ObliczFunkcjeWPunkcie(double akrualnyX) {
- if (akrualnyX <= -2)
- return Math.Exp(akrualnyX);
- if (Math.Abs(akrualnyX) < 2)
- return Math.Pow((akrualnyX + 2), 4);
- return Math.Pow(akrualnyX, 2) / Math.Log10(akrualnyX);
- }