private void Form1_Load(object sender, EventArgs e) { // wczytujemy fakty this._fakty = Repozytorium.CzytajFakty(); // listę faktów zmieniamy na tablicę Fakty[] tablicaFaktow = (Fakty[])this._fakty.ToArray(typeof(Fakty)); // wypisujemy fakty (textBox2 musi mieć własność "Multiline" = true for (int i = 0; i < Repozytorium.LiczbaFaktow; i++) { textBox2.Text += tablicaFaktow[i].Id.ToString() + " - "; textBox2.Text += tablicaFaktow[i].Fact; textBox2.Text += " - log: " + tablicaFaktow[i].Log + "\r\n\r\n"; } // wczytujemy reguły this._reguly = Repozytorium.CzytajReguly(); // wypisujemy reguły foreach (Reguly reg in _reguly) { textBox1.Text += "Rule:" + reg.Runo.ToString() + "\r\n" + " IF" + "\r\n"; for (int j = 0; j < reg.Preno; j++) { textBox1.Text += " " + tablicaFaktow[reg.Precondition[j]].Fact + "\r\n"; } textBox1.Text += "THEN " + "\r\n " + tablicaFaktow[reg.Conc].Fact + "\r\n\r\n"; } }
private void Wnioskowanie_Load(object sender, EventArgs e) { // wczytujemy fakty this._fakty = Repozytorium.CzytajFakty(); // listę faktów zmieniamy na tablicę // wczytujemy reguły this._reguly = Repozytorium.CzytajReguly(); tablicaFaktow = (Fakty[])_fakty.ToArray(typeof(Fakty)); Boolean nowe = true; // działamy póty, póki pojawiają się nowe fakty while (nowe) { ArrayList NoweFakty = new ArrayList(); // w tej wersji nie będzie nowych faktów nowe = false; foreach (Reguly regula in _reguly) { Fakty konkluzja = tablicaFaktow[regula.Conc]; int wniosek = 0; if (konkluzja.Log != 1) { wniosek = Wnioskuj(regula); konkluzja.Log = wniosek; } if (wniosek == 1) { nowe = true; NoweFakty.Add(konkluzja); } tablicaFaktow[regula.Conc] = konkluzja; //Repozytorium.Zapisz(konkluzja.Id, konkluzja.Log); } wypisz_fakty(NoweFakty); } }