public void Wykonaj(Konsola usr) { if (usr == null) { MessageBox.Show("BlokWeWy: Wykonaj: konsola nie istnieje"); return; } if (dzialania == null) { MessageBox.Show("BlokWeWy: Wykonaj: lista dzialan nie istnieje"); return; } frmConsole = usr; int temp = -1; for (int i = 0; i < dzialania.Count; i++) { if (dzialania[i].srodekZmienna == true) { temp = ZnajdzZmienna(dzialania[i].srodek); } if (dzialania[i].dzialanie1 == "Wypisz") { String tmpString; if (dzialania[i].srodek != null) { tmpString = dzialania[i].srodek.ToString(); //najpierw podmien wszystkie zmienne foreach (Zmienna zm in this.listaZmiennych) { if (zm.tablica == false) { tmpString = tmpString.Replace(znacznikZmiennej + zm.nazwa + znacznikZmiennej, zm.wartosc.ToString()); } } //nastepnie podmien wszystkie elementy tablic foreach (Zmienna zm in this.listaZmiennych) { if (zm.tablica == true) { if (tmpString.Contains(zm.nazwa + '[') == true) { //znajdz indexy do odczytania elementu tablicy int tmpInd1 = tmpString.IndexOf(znacznikZmiennej + zm.nazwa + '[') + 2; int tmpInd2 = 0; int tmpNumerElementu = 0; for (int j = tmpInd1; j < tmpString.Length; j++) { //if (tmpString[j] == '[') // tmpInd1 = j; if (tmpString[j] == ']') { tmpInd2 = j; break; } } //odczytaj ktory element tablicy wypisac if (tmpInd2 - tmpInd1 > 0) { tmpNumerElementu = NumerElementuWTablicy(tmpString.Substring(tmpInd1, tmpInd2 - tmpInd1 + 1)); } // tmpString = tmpString.Replace(znacznikZmiennej + zm.nazwa + "[" + (tmpNumerElementu + 1).ToString() + "]" + znacznikZmiennej, zm.wartosci[tmpNumerElementu].ToString()); } } } frmConsole.richTextBox1.Text += tmpString + '\n'; } } else { int tmpNumerEl = 0; Zmienna tmpZmienna = null; if (dzialania[i].srodekZmienna == true) { temp = ZnajdzZmienna(dzialania[i].srodek.ToString()); if (temp < 0) { MessageBox.Show("BlokWeWy: Wykonaj|Czytaj: zmienna " + dzialania[i].srodek + " nie znaleziona"); return; } if (temp > listaZmiennych.Count - 1) { MessageBox.Show("BlokWeWy: Wykonaj|Czytaj: zmienna znaleziona poza zakresem listy"); return; } tmpZmienna = listaZmiennych[temp]; if (tmpZmienna.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].srodek); if (tmpNumerEl < 0) { MessageBox.Show("BlokWeWy: Wykonaj|Czytaj: tmpNumerEl ujemny: " + tmpNumerEl.ToString()); return; } } tmpZmienna = null; } if (temp < 0) { MessageBox.Show("BlokWeWy: Wykonaj|Czytaj: zmienna " + dzialania[i].srodek + " nie znaleziona |2|"); return; } Czytaj tmpOkno = new Czytaj(listaZmiennych, temp, tmpNumerEl); tmpOkno.label1.Text = "Podaj " + dzialania[i].srodek + ":"; if (listaZmiennych[temp].typ == typeof(int)) { tmpOkno.maskedTextBox1.Mask = "000000000000000"; } else { if (listaZmiennych[temp].typ == typeof(double)) { tmpOkno.maskedTextBox1.Mask = "000000000.0000"; } else { tmpOkno.maskedTextBox1.Mask = ""; } } tmpOkno.ShowDialog(); //listaZmiennych[i].wartosc = tmpString.ToString(); } } }
public void DodajNoweZmienne(Dzialanie dzial) { if (dzial == null) { MessageBox.Show("Bloki: DodajNoweZmienne|dzialanie: dzial nie istnieje"); return; } if (dzial.nowaZmienna == true && dzial.lewa == null) { MessageBox.Show("Bloki: DodajNoweZmienne|dzialanie: lewa nie istnieje"); return; } if (dzial.nowaZmienna == true && SprawdzCzyIstniejeZmienna(dzial.lewa) == false) { Zmienna temp = new Zmienna(); dzial.lewa = dzial.lewa.Replace(znacznikZmiennej, ""); if (dzial.lewa.Contains(' ')) { dzial.lewa = dzial.lewa.Replace(" ", ""); } temp.nazwa = dzial.lewa.ToString(); dzial.nowaZmienna = false; if (dzial.lewa.Contains('[') == true && dzial.lewa.Contains(']') == true) { temp.tablica = true; } if (dzial.dodatkowe != null) { int tmpInd1, tmpInd2; String tmpIlEl = ""; int tmpIlElementow = 0; if (temp.tablica == true) { tmpInd1 = temp.nazwa.IndexOf('[') + 1; tmpInd2 = temp.nazwa.IndexOf(']'); tmpIlEl = temp.nazwa.Substring(tmpInd1, tmpInd2 - tmpInd1); try { tmpIlElementow = Convert.ToInt32(tmpIlEl); } catch { MessageBox.Show("Bloki: DodajNoweZmienne|dzialanie: blad konwersji indexu\n index musi byc liczba calkowita"); return; } temp.nazwa = temp.nazwa.Remove(tmpInd1 - 1); temp.iloscElTablicy = tmpIlElementow; } switch (dzial.dodatkowe) { case "int": temp.typ = typeof(int); if (temp.tablica == true) { for (int j = 0; j < tmpIlElementow; j++) { temp.wartosci.Add("0"); } } else { temp.wartosc = "0"; } break; case "double": temp.typ = typeof(double); if (temp.tablica == true) { for (int j = 0; j < tmpIlElementow; j++) { temp.wartosci.Add("0.0"); } } else { temp.wartosc = "0.0"; } break; case "String": temp.typ = typeof(String); if (temp.tablica == true) { for (int j = 0; j < tmpIlElementow; j++) { temp.wartosci.Add(""); } } else { temp.wartosc = ""; } break; default: break; } } if (listaZmiennych != null) { listaZmiennych.Add(temp); } dodaneZmienne.Add(temp); } }
public void Wykonaj() { int tmpNumerEl = 0; int tempIndZnajdz = -1; for (int i = 0; i < dzialania.Count; i++) { int index = ZnajdzZmienna(dzialania[i].lewa); if (index < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie: " + i.ToString() + "\n zmienna: " + dzialania[i].lewa + " nie znaleziona |lewa"); return; } if (index > listaZmiennych.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie: " + i.ToString() + "\n index poza zakresem listy zmiennych"); return; } Zmienna temp = listaZmiennych[index]; Zmienna tempSrodek = null; Zmienna tempPrawa = null; if (dzialania[i].srodekZmienna == true) { tempIndZnajdz = ZnajdzZmienna(dzialania[i].srodek); if (tempIndZnajdz < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie: " + i.ToString() + "\n tempIndZnajdz: " + dzialania[i].srodek + " nie znaleziona |srodek"); return; } if (index > listaZmiennych.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie: " + i.ToString() + "\n tempIndZnajdz poza zakresem listy zmiennych |srodek"); return; } tempSrodek = listaZmiennych[tempIndZnajdz]; } else { tempSrodek = null; } if (dzialania[i].prawaZmienna == true) { tempIndZnajdz = ZnajdzZmienna(dzialania[i].prawa); if (tempIndZnajdz < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie: " + i.ToString() + "\n tempIndZnajdz: " + dzialania[i].prawa + " nie znaleziona |prawa"); return; } if (index > listaZmiennych.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie: " + i.ToString() + "\n tempIndZnajdz poza zakresem listy zmiennych |prawa"); return; } tempPrawa = listaZmiennych[tempIndZnajdz]; } else { tempPrawa = null; } if (temp.typ == typeof(int)) { int tmpL = 0; if (dzialania[i].srodekZmienna == true) { try { if (tempSrodek.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].srodek); if (tmpNumerEl > tempSrodek.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |srodek\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie " + i.ToString() + " |srodek\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } if (tmpNumerEl <= tempSrodek.iloscElTablicy) { tmpL = Convert.ToInt32(tempSrodek.wartosci[tmpNumerEl]); } } else { tmpL = Convert.ToInt32(tempSrodek.wartosc); } } catch { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie " + i.ToString() + " |srodek\n Blad konwersji zmiennej/tablicy na int"); return; } } else { try { if (dzialania[i].srodek == "") { tmpL = 0; } else { tmpL = Convert.ToInt32(dzialania[i].srodek); } } catch { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie " + i.ToString() + " |srodek\n Blad konwersji na int"); return; } } if (dzialania[i].dzialanie2 != null) { try { switch (dzialania[i].dzialanie2) { case "+": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL += Convert.ToInt32(tempPrawa.wartosci[tmpNumerEl]); } else { tmpL += Convert.ToInt32(tempPrawa.wartosc); } } else { tmpL += Convert.ToInt32(dzialania[i].prawa); } break; case "-": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL -= Convert.ToInt32(tempPrawa.wartosci[tmpNumerEl]); } else { tmpL -= Convert.ToInt32(tempPrawa.wartosc); } } else { tmpL -= Convert.ToInt32(dzialania[i].prawa); } break; case "*": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL *= Convert.ToInt32(tempPrawa.wartosci[tmpNumerEl]); } else { tmpL *= Convert.ToInt32(tempPrawa.wartosc); } } else { tmpL *= Convert.ToInt32(dzialania[i].prawa); } break; case "/": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } int tempZeroCheck = Convert.ToInt32(tempPrawa.wartosci[tmpNumerEl]); if (tempZeroCheck == 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |prawa\n Proba dzielenia przez 0"); return; } tmpL /= tempZeroCheck; } else { int tempZeroCheck = Convert.ToInt32(tempPrawa.wartosc); if (tempZeroCheck == 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |prawa\n Proba dzielenia przez 0"); return; } tmpL /= tempZeroCheck; } } else { int tempZeroCheck = Convert.ToInt32(dzialania[i].prawa); if (tempZeroCheck == 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |prawa\n Proba dzielenia przez 0"); return; } tmpL /= tempZeroCheck; } break; } } catch { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie " + i.ToString() + " |prawa\n Blad przy konwersji na int"); return; } } if (temp.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].lewa); if (tmpNumerEl > temp.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie: " + i.ToString() + " |lewa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|int: dzialanie " + i.ToString() + " |lewa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } temp.wartosci[tmpNumerEl] = tmpL.ToString(); tmpNumerEl = 0; } else { temp.wartosc = tmpL.ToString(); } continue; } if (temp.typ == typeof(double)) { double tmpL = 0.0; try { if (dzialania[i].srodekZmienna == true) { if (tempSrodek.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].srodek); if (tmpNumerEl > tempSrodek.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |srodek\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie " + i.ToString() + " |srodek\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } if (tmpNumerEl <= tempSrodek.iloscElTablicy) { tmpL = Convert.ToDouble(tempSrodek.wartosci[tmpNumerEl]); } } else { tmpL = Convert.ToDouble(tempSrodek.wartosc); } } else { tmpL = Convert.ToDouble(dzialania[i].srodek); } } catch { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie " + i.ToString() + " |srodek\n Blad konwersji na double"); return; } if (dzialania[i].dzialanie2 != null) { try { switch (dzialania[i].dzialanie2) { case "+": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL += Convert.ToDouble(tempPrawa.wartosci[tmpNumerEl]); } else { tmpL += Convert.ToDouble(tempPrawa.wartosc); } } else { tmpL += Convert.ToDouble(dzialania[i].prawa); } break; case "-": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL -= Convert.ToDouble(tempPrawa.wartosci[tmpNumerEl]); } else { tmpL -= Convert.ToDouble(tempPrawa.wartosc); } } else { tmpL -= Convert.ToDouble(dzialania[i].prawa); } break; case "*": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL *= Convert.ToDouble(tempPrawa.wartosci[tmpNumerEl]); } else { tmpL *= Convert.ToDouble(tempPrawa.wartosc); } } else { tmpL *= Convert.ToDouble(dzialania[i].prawa); } break; case "/": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } double tempZeroCheck = Convert.ToDouble(tempPrawa.wartosci[tmpNumerEl]); if (tempZeroCheck == 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |prawa\n Proba dzielenia przez 0"); return; } tmpL /= tempZeroCheck; } else { double tempZeroCheck = Convert.ToDouble(tempPrawa.wartosc); if (tempZeroCheck == 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |prawa\n Proba dzielenia przez 0"); return; } tmpL /= tempZeroCheck; } } else { double tempZeroCheck = Convert.ToDouble(dzialania[i].prawa); if (tempZeroCheck == 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |prawa\n Proba dzielenia przez 0"); return; } tmpL /= tempZeroCheck; } break; } } catch { MessageBox.Show("BlokObliczeniowy: Wykonaj: dzialanie " + i.ToString() + " |prawa\n Blad konwersji na double"); return; } } if (temp.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].lewa); if (tmpNumerEl > temp.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie: " + i.ToString() + " |lewa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|double: dzialanie " + i.ToString() + " |lewa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } temp.wartosci[tmpNumerEl] = tmpL.ToString(); tmpNumerEl = 0; } else { temp.wartosc = tmpL.ToString(); } continue; } if (temp.typ == typeof(String)) { String tmpL = ""; if (dzialania[i].srodekZmienna == true) { if (tempSrodek.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].srodek); if (tmpNumerEl > tempSrodek.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|String: dzialanie: " + i.ToString() + " |srodek\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|String: dzialanie " + i.ToString() + " |srodek\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL = tempSrodek.wartosci[tmpNumerEl].ToString(); } else { tmpL = tempSrodek.wartosc.ToString(); } } else { tmpL = dzialania[i].srodek.ToString(); } if (dzialania[i].dzialanie2 != null) { switch (dzialania[i].dzialanie2) { case "+": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|String: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|String: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL += tempPrawa.wartosci[tmpNumerEl]; } else { tmpL += tempPrawa.wartosc; } } else { tmpL += dzialania[i].prawa; } break; case "-": if (dzialania[i].prawaZmienna == true) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].prawa); if (tmpNumerEl > tempPrawa.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|String: dzialanie: " + i.ToString() + " |prawa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|String: dzialanie " + i.ToString() + " |prawa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } tmpL = tmpL.Replace(tempPrawa.wartosci[tmpNumerEl], ""); } else { tmpL = tmpL.Replace(tempPrawa.wartosc, ""); } } else { tmpL = tmpL.Replace(dzialania[i].prawa, ""); } break; case "*": break; case "/": break; } } if (temp.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].lewa); if (tmpNumerEl > temp.wartosci.Count - 1) { MessageBox.Show("BlokObliczeniowy: Wykonaj|String: dzialanie: " + i.ToString() + " |lewa\n tmpNumerEl poza zakresem tablicy"); return; } if (tmpNumerEl < 0) { MessageBox.Show("BlokObliczeniowy: Wykonaj|String: dzialanie " + i.ToString() + " |lewa\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return; } temp.wartosci[tmpNumerEl] = tmpL.ToString(); } else { temp.wartosc = tmpL.ToString(); } continue; } } }
public bool Wykonaj() { if (dzialania == null) { MessageBox.Show("BlokDecyzyjny: Wykonaj: lista dzialan nie istnieje"); return(false); } int tmpNumerEl = -1; int tempIndZnajdz = -1; bool aktualnyStan = false; Zmienna tempLewa = null; Zmienna tempPrawa = null; for (int i = 0; i < dzialania.Count; i++) { bool tymczasowyStan = false; tempIndZnajdz = ZnajdzZmienna(dzialania[i].lewa); if (tempIndZnajdz < 0) { MessageBox.Show("BlokDecyzyjny: Wykonaj: dzialanie " + i.ToString() + "\n zmienna: " + dzialania[i].lewa + " nie znaleziona"); return(false); } tempLewa = this.listaZmiennych[tempIndZnajdz]; tempPrawa = null; if (dzialania[i].srodekZmienna == true) { tempIndZnajdz = ZnajdzZmienna(dzialania[i].srodek); if (tempIndZnajdz < 0) { MessageBox.Show("BlokDecyzyjny: Wykonaj: dzialanie " + i.ToString() + "\n zmienna: " + dzialania[i].lewa + " nie znaleziona |2|"); return(false); } tempPrawa = this.listaZmiennych[tempIndZnajdz]; } if (tempLewa.typ == typeof(int)) { int tmp = 0; int tmp2 = 0; try { if (tempLewa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].lewa); if (tmpNumerEl > tempLewa.wartosci.Count - 1) { MessageBox.Show("BlokDecyzyjny: Wykonaj|int: dzialanie " + i.ToString() + "\n tmpNumerEl poza zakresem tablicy"); return(false); } if (tmpNumerEl < 0) { MessageBox.Show("BlokDecyzyjny: Wykonaj|int: dzialanie " + i.ToString() + "\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return(false); } tmp = Convert.ToInt32(tempLewa.wartosci[tmpNumerEl]); } else { tmp = Convert.ToInt32(tempLewa.wartosc); } } catch { MessageBox.Show("BlokDecyzyjny: Wykonaj: dzialanie " + i.ToString() + "\n Blad konwersji na int |lewa"); return(false); } try { if (tempPrawa != null) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].srodek); tmp2 = Convert.ToInt32(tempPrawa.wartosci[tmpNumerEl]); } else { tmp2 = Convert.ToInt32(tempPrawa.wartosc); } } else { tmp2 = Convert.ToInt32(dzialania[i].srodek); } } catch { MessageBox.Show("BlokDecyzyjny: Wykonaj: dzialanie " + i.ToString() + "\n Blad konwersji na int |prawa"); return(false); } switch (dzialania[i].dzialanie1) { case "=": if (tmp == tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case ">": if (tmp > tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case "<": if (tmp < tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case ">=": if (tmp >= tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case "<=": if (tmp <= tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case "<>": if (tmp != tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; } } if (tempLewa.typ == typeof(double)) { double tmp = 0; double tmp2 = 0; try { if (tempLewa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].lewa); if (tmpNumerEl > tempLewa.wartosci.Count - 1) { MessageBox.Show("BlokDecyzyjny: Wykonaj|double: dzialanie " + i.ToString() + "\n tmpNumerEl poza zakresem tablicy"); return(false); } if (tmpNumerEl < 0) { MessageBox.Show("BlokDecyzyjny: Wykonaj|double: dzialanie " + i.ToString() + "\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return(false); } tmp = Convert.ToDouble(tempLewa.wartosci[tmpNumerEl]); } else { tmp = Convert.ToDouble(tempLewa.wartosc); } } catch { MessageBox.Show("BlokDecyzyjny: Wykonaj: dzialanie " + i.ToString() + "\n Blad konwersji na double |lewa"); return(false); } try { if (tempPrawa != null) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].srodek); if (tmpNumerEl > tempLewa.wartosci.Count - 1) { MessageBox.Show("BlokDecyzyjny: Wykonaj|double: dzialanie " + i.ToString() + "\n tmpNumerEl poza zakresem tablicy"); return(false); } if (tmpNumerEl < 0) { MessageBox.Show("BlokDecyzyjny: Wykonaj|double: dzialanie " + i.ToString() + "\n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return(false); } tmp2 = Convert.ToDouble(tempPrawa.wartosci[tmpNumerEl]); } else { tmp2 = Convert.ToDouble(tempPrawa.wartosc); } } else { tmp2 = Convert.ToDouble(dzialania[i].srodek); } } catch { MessageBox.Show("BlokDecyzyjny: Wykonaj: dzialanie " + i.ToString() + "/n Blad konwersji na double |prawa"); return(false); } switch (dzialania[i].dzialanie1) { case "=": if (tmp == tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case ">": if (tmp > tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case "<": if (tmp < tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case ">=": if (tmp >= tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case "<=": if (tmp <= tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case "<>": if (tmp != tmp2) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; } } if (tempLewa.typ == typeof(String)) { String tmp = ""; String tmp2 = ""; if (tempLewa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].lewa); if (tmpNumerEl > tempLewa.wartosci.Count - 1) { MessageBox.Show("BlokDecyzyjny: Wykonaj|String: dzialanie " + i.ToString() + "/n tmpNumerEl poza zakresem tablicy"); return(false); } if (tmpNumerEl < 0) { MessageBox.Show("BlokDecyzyjny: Wykonaj|String: dzialanie " + i.ToString() + "/n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return(false); } tmp = tempLewa.wartosci[tmpNumerEl].ToString(); } else { tmp = tempLewa.wartosc.ToString(); } if (tempPrawa != null) { if (tempPrawa.tablica == true) { tmpNumerEl = NumerElementuWTablicy(dzialania[i].srodek); if (tmpNumerEl > tempLewa.wartosci.Count - 1) { MessageBox.Show("BlokDecyzyjny: Wykonaj|String: dzialanie " + i.ToString() + "/n tmpNumerEl poza zakresem tablicy"); return(false); } if (tmpNumerEl < 0) { MessageBox.Show("BlokDecyzyjny: Wykonaj|String: dzialanie " + i.ToString() + "/n tmpNumerEl ujemny:" + tmpNumerEl.ToString()); return(false); } tmp2 = tempPrawa.wartosci[tmpNumerEl].ToString(); } else { tmp2 = tempPrawa.wartosc.ToString(); } } else { tmp2 = dzialania[i].srodek.ToString(); } switch (dzialania[i].dzialanie1) { case "=": if (tmp.Equals(tmp2) == true) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; case "<>": if (tmp.Equals(tmp2) == false) { tymczasowyStan = true; } else { tymczasowyStan = false; } break; default: tymczasowyStan = false; break; } } if (dzialania[i].dodatkowe != null) { switch (dzialania[i].dodatkowe) { case "AND": if (aktualnyStan == true && tymczasowyStan == true) { aktualnyStan = true; } else { aktualnyStan = false; } break; case "OR": if (aktualnyStan == false && tymczasowyStan == false) { aktualnyStan = false; } else { aktualnyStan = true; } break; default: aktualnyStan = tymczasowyStan; break; } } else { aktualnyStan = tymczasowyStan; } } return(aktualnyStan); }