Mi to się kompiluje
TextBox textbox = new TextBox();
void shit()
{
textbox.TextChanged += this.NameChanged;
}
public void NameChanged(object sender, RoutedEventArgs e)
{
if((sender as TextBox).Text[(sender as TextBox).Text.Length-1] == '=')
{
string wynik = Policz();
(sender as TextBox).Text += wynik;
}
}
@up kolega nie wie co mu nie działa ;) ale można zrobić to albo odwrócona notacją polską albo
string oblicz(string równanie)
{
Kontroladanych1();
return oblicz2(spilt(równanie)).ToString();
}
double oblicz2(List<string> równanie)
{
kontrolaDanych2();
znajdzIwykonajNawias(równanie);
wykonajFunkcje(równanie); // sin cos ect.
mnózDziel(równanie);
return sumujOdejmuj(równanie); // return double
/*kazdy stopień kaskady "skleja" liczby i usuwa operatory z listy {2,+,2 ,*,2,+,3}=>{2,+,4,+,3} */
}
void znajdzIwykonajNawias(List<string> równanie)
{
//jesli znaleziono usuń nawiasy z listy i:
oblicz2(List<string> tresc_miedzy_nawasami); // zamiast rekurecji można pętli uzyc
// wstawić wynik jako string w liscie "w miejsce całego nawiasu"
}
void wykonajFukcje() //sin[2+3];
{
// odnajduje wszystkie fukcje w liscie, "zawartośc" nawiasu rozwiązuje rekurencyjnie np sin[2+3] => wynik=oblicz2({2,+,3});
// a potem w pisać w liscie w miejsce "sin[2+3]" <= sin(wynik).ToString();
}