Facebook
From Soiled Gibbon, 5 Months ago, written in C#.
Embed
Download Paste or View Raw
Hits: 94
  1.         private void button2_Click(object sender, EventArgs e) {
  2.             UzupelnijTabele();
  3.         }
  4.  
  5.         private void UzupelnijTabele() {
  6.             double dolnaGranica = 0, gornaGranica = 0, krok = 0;
  7.             if (!CzytajDane(ref dolnaGranica, ref gornaGranica, ref krok))
  8.                 return;
  9.             int iloscDanych = ObliczIloscDanych(dolnaGranica, gornaGranica, krok);
  10.             double[,] dane = ObliczFunkcje(dolnaGranica, gornaGranica, krok, iloscDanych);
  11.  
  12.             dataGridView1.Visible = true;
  13.             for (int i = 0; i < iloscDanych; i++) {
  14.                 dataGridView1.Rows.Add();            
  15.                 dataGridView1.Rows[i].Cells[0].Value = dane[i, 0];
  16.                 dataGridView1.Rows[i].Cells[1].Value = dane[i, 1];
  17.             }
  18.  
  19.         }
  20.  
  21.         private bool CzytajDane(ref double dolnaGranica, ref double gornaGranica, ref double krok) {
  22.             double wartosc;
  23.             if (double.TryParse(textDolna.Text, out wartosc))
  24.                 dolnaGranica = wartosc;
  25.             else {
  26.                 MessageBox.Show("Popraw wartość dolnej granicy", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
  27.                 return false;
  28.             }
  29.  
  30.             if (double.TryParse(textGorna.Text, out wartosc))
  31.                 gornaGranica = wartosc;
  32.             else {
  33.                 MessageBox.Show("Popraw wartość górnej granicy", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
  34.                 return false;
  35.             }
  36.  
  37.             if (double.TryParse(textPrzyrost.Text, out wartosc))
  38.                 krok = wartosc;
  39.             else {
  40.                 MessageBox.Show("Popraw wartość przyrostu", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
  41.                 return false;
  42.             }
  43.  
  44.             return true;
  45.         }
  46.  
  47.         private double[,] ObliczFunkcje(double dolnaGranica, double gornaGranica, double krok, int iloscDanych) {
  48.            
  49.             double[,] dane = new double[iloscDanych, 2];
  50.             double akrualnyX = dolnaGranica;
  51.             for(int i = 0; i < iloscDanych; ++i) {
  52.                 dane[i,0] = akrualnyX;
  53.                 dane[i,1] = ObliczFunkcjeWPunkcie(akrualnyX);
  54.                 akrualnyX += krok;
  55.             }
  56.             return dane;
  57.         }
  58.  
  59.         private int ObliczIloscDanych(double dolnaGranica, double gornaGranica, double krok) {
  60.             int i = 1;
  61.             double aktualnyX = dolnaGranica;
  62.             while(aktualnyX < gornaGranica) {
  63.                 aktualnyX += krok;
  64.                 ++i;
  65.             }
  66.             return i;
  67.         }
  68.  
  69.         private double ObliczFunkcjeWPunkcie(double akrualnyX) {
  70.             if (akrualnyX <= -2)
  71.                 return Math.Exp(akrualnyX);
  72.             if (Math.Abs(akrualnyX) < 2)
  73.                 return Math.Pow((akrualnyX + 2), 4);
  74.             return Math.Pow(akrualnyX, 2) / Math.Log10(akrualnyX);
  75.         }