rendered paste bodyimport java.lang.*;import java.io.*;class Console{ static public String ReadLn() { try { BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); return stdin.readLine(); } catch (IOException e) { System.out.println(e); return ""; } }}class Element{ double Oblicz() { return 0; }}class Liscie_drzewa extends Element{ Element l,r;}class Element_l{ boolean Oblicz() { return true; }}class Liscie_drzewa_l extends Element_l{ Element_l l,r;}class Liczba extends Liscie_drzewa{ double nValue; double Oblicz() { return nValue; } Liczba (double value) { nValue=value; }}class Liczba_l extends Liscie_drzewa_l{ boolean nValue; boolean Oblicz() { return nValue; } Liczba_l (boolean value) { nValue=value; }}class Plus extends Liscie_drzewa{ double Oblicz() { return l.Oblicz()+r.Oblicz(); }}class Minus extends Liscie_drzewa{ double Oblicz() { return l.Oblicz()-r.Oblicz(); }}class Mnozenie extends Liscie_drzewa{ double Oblicz() { return l.Oblicz()*r.Oblicz(); }}class Dzielenie extends Liscie_drzewa{ double Oblicz() { return l.Oblicz()/r.Oblicz(); }}class And extends Liscie_drzewa_l{ boolean Oblicz() { return l.Oblicz() && r.Oblicz(); }}class Or extends Liscie_drzewa_l{ boolean Oblicz() { return l.Oblicz() || r.Oblicz(); }}class Drzewo{ Element wierzcholek=null; double na_drzewo (double value, char op) { if (wierzcholek==null) { wierzcholek=new Liczba(value); } else switch(op) { case '0': { Liscie_drzewa temp=(Liscie_drzewa) wierzcholek; while (temp.r!=null) temp=(Liscie_drzewa) temp.r; temp.r=new Liczba(value); break; } case '+': { Liscie_drzewa temp=new Plus(); temp.l=wierzcholek; wierzcholek=temp; break; } case '-': { Liscie_drzewa temp=new Minus(); temp.l=wierzcholek; wierzcholek=temp; break; } case '*': { Liscie_drzewa temp=new Mnozenie(); if (wierzcholek instanceof Minus || wierzcholek instanceof Plus) { temp.l=((Liscie_drzewa)wierzcholek).r; ((Liscie_drzewa)wierzcholek).r=temp; } else { temp.l=wierzcholek; wierzcholek=temp; } break; } case '/': { Liscie_drzewa temp=new Dzielenie(); if (wierzcholek instanceof Minus || wierzcholek instanceof Plus) { temp.l=((Liscie_drzewa)wierzcholek).r; ((Liscie_drzewa)wierzcholek).r=temp; } else { temp.l=wierzcholek; wierzcholek=temp; } break; } default:break; } return 0; } double nawias (int i, int j, String dzialanie) { int k, l; double liczba_int, wynik, liczba1, liczba2; String liczba=""; boolean Nawias=false; Drzewo dn=new Drzewo(); k=i; for (; k<j; ++k) { if (dzialanie.charAt(k)!='+' && dzialanie.charAt(k)!='-' && dzialanie.charAt(k)!='/' && dzialanie.charAt(k)!='*' && dzialanie.charAt(k)!='^' && dzialanie.charAt(k)!='a'&& dzialanie.charAt(k)!='s'&& dzialanie.charAt(k)!='c'&& dzialanie.charAt(k)!='t') { liczba+=dzialanie.charAt(k); } else { if (dzialanie.charAt(k)=='^') { wynik=1; liczba1=(double)Integer.parseInt(liczba); liczba=""; for (l=k+1; l<j; ++l) liczba+=dzialanie.charAt(l); liczba2=(double)Integer.parseInt(liczba); for (l=0; l<liczba2; ++l) wynik*=liczba1; return wynik; } else if (dzialanie.charAt(k)=='a') { if (dzialanie.charAt(k+1)=='c' && dzialanie.charAt(k+2)=='o') { for (l=k+4; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=Math.acos(liczba1); return wynik; } else if (dzialanie.charAt(k+1)=='s' && dzialanie.charAt(k+2)=='i') { for (l=k+4; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=Math.asin(liczba1); return wynik; } else if (dzialanie.charAt(k+1)=='t' && dzialanie.charAt(k+2)=='a') { for (l=k+4; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=Math.atan(liczba1); return wynik; } else if (dzialanie.charAt(k+1)=='c' && dzialanie.charAt(k+2)=='t') { for (l=k+5; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=((Math.PI)/2)-Math.atan(liczba1); return wynik; } } else if (dzialanie.charAt(k)=='s') { if (dzialanie.charAt(k+1)=='i') { for (l=k+3; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=Math.sin(liczba1); return wynik; } else { for (l=k+4; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=Math.sqrt(liczba1); return wynik; } } else if (dzialanie.charAt(k)=='t') { for (l=k+3; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=Math.tan(liczba1); return wynik; } else if (dzialanie.charAt(k)=='c') { if (dzialanie.charAt(k+1)=='o') { for (l=k+3; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=Math.cos(liczba1); return wynik; } else { for (l=k+4; l<j; ++l) liczba+=dzialanie.charAt(l); liczba1=(double)Integer.parseInt(liczba); wynik=1/Math.tan(liczba1); return wynik; } } else { liczba_int=(double)Integer.parseInt(liczba); dn.na_drzewo(liczba_int, '0'); dn.na_drzewo(0, dzialanie.charAt(k)); liczba=""; } } } liczba_int=(double)Integer.parseInt(liczba); dn.na_drzewo(liczba_int,'0'); wynik=dn.wierzcholek.Oblicz(); return wynik; }}class Drzewo_l{ Element_l wierzcholek=null; int na_drzewo (boolean value, char op) { if (wierzcholek==null) { wierzcholek=new Liczba_l(value); } else switch(op) { case '0': { Liscie_drzewa_l temp=(Liscie_drzewa_l) wierzcholek; while (temp.r!=null) temp=(Liscie_drzewa_l) temp.r; temp.r=new Liczba_l(value); break; } case 'o': { Liscie_drzewa_l temp=new Or(); temp.l=wierzcholek; wierzcholek=temp; break; } case 'a': { Liscie_drzewa_l temp=new And(); if (wierzcholek instanceof Or) { temp.l=((Liscie_drzewa_l)wierzcholek).r; ((Liscie_drzewa_l)wierzcholek).r=temp; } else { temp.l=wierzcholek; wierzcholek=temp; } break; } default:break; } return 0; }}class z_pliku{ String dzialanie_; z_pliku nast;}class Wczytaj_z_Pliku{ String dzialanie=""; z_pliku dp=new z_pliku(); z_pliku wczytajPlik (String sciezka) { try { BufferedReader file=new BufferedReader(new FileReader(sciezka)); if (file==null) { System.out.println("Brak pliku"); } else { do { z_pliku tmp=new z_pliku(); dzialanie=file.readLine(); tmp.dzialanie_=dzialanie; tmp.nast=dp; dp=tmp; } while (file.readLine()!=null); file.close(); } } catch (IOException e) { System.out.println("Brak pliku"); return null; } return dp; }}class Sprawdz_rownanie{ boolean sprawdz (String dzialanie) { int i, j, k; boolean znalazl=false; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='+' || dzialanie.charAt(i)=='-' || dzialanie.charAt(i)=='/' || dzialanie.charAt(i)=='*' || dzialanie.charAt(i)=='^') if (dzialanie.charAt(i+1)=='+' || dzialanie.charAt(i+1)=='-' || dzialanie.charAt(i+1)=='/' || dzialanie.charAt(i+1)=='*' || dzialanie.charAt(i+1)=='^') { System.out.println("\nBrak liczby miedzy operatorami"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); System.out.print("\n"); return false; } if (dzialanie.charAt(i)=='(') { for (k=i; k<dzialanie.length(); ++k) if (dzialanie.charAt(k)==')') znalazl=true; if (znalazl==false) { System.out.println("Nie zamkniety nawias"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } if (dzialanie.charAt(i)==')') { for (k=0; k<i; ++k) if (dzialanie.charAt(k)=='(') znalazl=true; if (znalazl==false) { System.out.println("Nie zamkniety nawias"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } /*if (sin_(dzialanie)==false) return false; if (asin_(dzialanie)==false) return false; if (cos_(dzialanie)==false) return false; if (acos_(dzialanie)==false) return false; if (tan_(dzialanie)==false) return false; if (atan_(dzialanie)==false) return false; if (ctan_(dzialanie)==false) return false; if (actan_(dzialanie)==false) return false;*/ return true; } /*boolean sin_ (String dzialanie) { int i, j; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='s') { if (dzialanie.charAt(i+1)=='i' && dzialanie.charAt(i+2)=='n') return true; else { System.out.println("Zle uzycie sinusa"); for (j=0; j<i; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; } boolean cos_ (String dzialanie) { int i, j; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='c') { if (dzialanie.charAt(i+1)=='o' && dzialanie.charAt(i+2)=='s') return true; else { System.out.println("Zle uzycie cosinusa"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; } boolean tan_ (String dzialanie) { int i, j; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='t') { if (dzialanie.charAt(i+1)=='a' && dzialanie.charAt(i+2)=='n') return true; else { System.out.println("Zle uzycie tangensa"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; } boolean ctan_ (String dzialanie) { int i, j; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='c') { if (dzialanie.charAt(i+1)=='t' && dzialanie.charAt(i+2)=='a' && dzialanie.charAt(i+3)=='n') return true; else { System.out.println("Zle uzycie cotangensa"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; } boolean asin_ (String dzialanie) { int i, j; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='a') { if (dzialanie.charAt(i+1)=='s' && dzialanie.charAt(i+2)=='i' && dzialanie.charAt(i+3)=='n') return true; else { System.out.println("Zle uzycie arcus sinusa"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; } boolean acos_ (String dzialanie) { int i, j; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='a') { if (dzialanie.charAt(i+1)=='c' && dzialanie.charAt(i+2)=='o' && dzialanie.charAt(i+3)=='s') return true; else { System.out.println("Zle uzycie arcus cosinusa"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; } boolean atan_ (String dzialanie) { int i, j; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='a') { if (dzialanie.charAt(i+1)=='t' && dzialanie.charAt(i+2)=='a' && dzialanie.charAt(i+3)=='n') return true; else { System.out.println("Zle uzycie arcus tangensa"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; } boolean actan_ (String dzialanie) { int i, j; for ( i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='a') { if (dzialanie.charAt(i+1)=='c' && dzialanie.charAt(i+2)=='t' && dzialanie.charAt(i+3)=='a' && dzialanie.charAt(i+4)=='n') return true; else { System.out.println("Zle uzycie arcus cotangensa"); for (j=0; j<i+1; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (++i; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; }*/ boolean sprawdz_l (String dzialanie) { int i, j, k; for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='a') { if (dzialanie.charAt(i+1)=='n' && dzialanie.charAt(i+2)=='d') ; else { System.out.println("Blad skladni and"); for (j=0; j<i; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } if (dzialanie.charAt(i)=='o') { if (dzialanie.charAt(i+1)=='r' || dzialanie.charAt(i+1)=='t') ; else { System.out.println("Blad skladni or"); for (j=0; j<i; ++j) System.out.print(dzialanie.charAt(j)); System.out.print(" !! "); for (; i<dzialanie.length(); ++i) System.out.print(dzialanie.charAt(i)); return false; } } } return true; }}class Nieprawidlowy_znak extends Exception{ void wyjatek_nz() { System.out.println("Wprowadzono nieprawidlowy znak..."); }}public class kalkulator{ public static void main (String args[]) { Console czytaj=new Console(); Drzewo drzewo=new Drzewo(); Drzewo_l drzewo_l=new Drzewo_l(); Sprawdz_rownanie s=new Sprawdz_rownanie(); String dzialanie=""; String liczba=""; String l=""; String decyzja=""; String sciezka=""; Wczytaj_z_Pliku w=new Wczytaj_z_Pliku(); boolean zmiana=false, Nawias=false; Element_l wierzcholek; int i, j, l_int=0, l_int2=0, l_int3=0; double liczba_int=0, liczba_n=0; do { System.out.println("..::MENU::.."); System.out.println("1. Oblicz wyrazenie arytmetyczne"); System.out.println("2. Oblicz wyrazenie logiczne"); System.out.println("3. Wyjscie"); System.out.print(">"); try { l=czytaj.ReadLn(); for (i=0; i<l.length(); ++i) { if (l.charAt(i)<49 || l.charAt(i)>51) throw new Nieprawidlowy_znak(); } } catch (Nieprawidlowy_znak wy) { wy.wyjatek_nz(); continue; } l_int=Integer.parseInt(l); switch(l_int) { case 1: do { System.out.println("\n1. Wczytaj wyrazenie arytmetyczne z klawiatury"); System.out.println("2. Wczytaj wyrazenie arytmetyczne z pliku"); System.out.println("3. Powrot"); System.out.print(">"); try { l=czytaj.ReadLn(); for (i=0; i<l.length(); ++i) { if (l.charAt(i)<49 || l.charAt(i)>51) throw new Nieprawidlowy_znak(); } } catch (Nieprawidlowy_znak wy) { wy.wyjatek_nz(); continue; } l_int2=Integer.parseInt(l); switch(l_int2) { case 1: do { liczba=""; dzialanie=""; drzewo.wierzcholek=null; System.out.println("Podaj dzialanie:"); dzialanie=czytaj.ReadLn(); if (s.sprawdz(dzialanie)==true) { for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)=='(') { ++i; j=i; while (dzialanie.charAt(j)!=')') ++j; liczba_n=drzewo.nawias(i, j, dzialanie); Nawias=true; i=j; } if (dzialanie.charAt(i)!='+' && dzialanie.charAt(i)!='-' && dzialanie.charAt(i)!='/' && dzialanie.charAt(i)!='*') { if (dzialanie.charAt(i)!=')') liczba+=dzialanie.charAt(i); } else { if (Nawias==true) { drzewo.na_drzewo(liczba_n, '0'); Nawias=false; } else { liczba_int=(double)Integer.parseInt(liczba); drzewo.na_drzewo(liczba_int, '0'); } drzewo.na_drzewo(0, dzialanie.charAt(i)); liczba=""; } } if (Nawias==true) { drzewo.na_drzewo(liczba_n, '0'); Nawias=false; } else { liczba_int=(double)Integer.parseInt(liczba); drzewo.na_drzewo(liczba_int, '0'); } System.out.println("\nWynik:"); System.out.println(dzialanie+"="+drzewo.wierzcholek.Oblicz()+"\n"); System.out.println("Wrocic do menu?(t|n)"); decyzja=czytaj.ReadLn(); if (decyzja.charAt(0)=='n') { liczba=""; dzialanie=""; drzewo.wierzcholek=null; } } else break; } while (decyzja.charAt(0)!='t'); break; case 2: do { z_pliku d=new z_pliku(); System.out.print("Podaj sciezke do pliku: "); sciezka=czytaj.ReadLn(); d=w.wczytajPlik(sciezka); while (d!=null && d.dzialanie_!=null) { if (s.sprawdz(d.dzialanie_)==true) { drzewo.wierzcholek=null; for (i=0; i<d.dzialanie_.length(); ++i) { if (d.dzialanie_.charAt(i)=='(') { ++i; j=i; while (d.dzialanie_.charAt(j)!=')') ++j; liczba_n=drzewo.nawias(i, j, d.dzialanie_); Nawias=true; i=j; } if (d.dzialanie_.charAt(i)!='+' && d.dzialanie_.charAt(i)!='-' && d.dzialanie_.charAt(i)!='/' && d.dzialanie_.charAt(i)!='*') { if (d.dzialanie_.charAt(i)!=')') liczba+=d.dzialanie_.charAt(i); } else { if (Nawias==true) { drzewo.na_drzewo(liczba_n, '0'); Nawias=false; } else { liczba_int=(double)Integer.parseInt(liczba); drzewo.na_drzewo(liczba_int, '0'); } drzewo.na_drzewo(0, d.dzialanie_.charAt(i)); liczba=""; } } if (Nawias==true) { drzewo.na_drzewo(liczba_n, '0'); Nawias=false; } else { liczba_int=(double)Integer.parseInt(liczba); drzewo.na_drzewo(liczba_int, '0'); } System.out.println("Wynik:"); System.out.println(d.dzialanie_+"="+drzewo.wierzcholek.Oblicz()+"\n"); d=d.nast; liczba=""; drzewo_l.wierzcholek=null; } } System.out.println("Wrocic do menu?(t|n)"); decyzja=czytaj.ReadLn(); if (decyzja.charAt(0)=='n') { sciezka=""; liczba=""; drzewo.wierzcholek=null; d=null; } else break; } while (decyzja.charAt(0)!='t'); break; } } while (l_int2!=3); break; case 2: do { System.out.println("\n1. Wczytaj wyrazenie logiczne z klawiatury"); System.out.println("2. Wczytaj wyrazenie logiczne z pliku"); System.out.println("3. Powrot"); System.out.print(">"); try { l=czytaj.ReadLn(); for (i=0; i<l.length(); ++i) { if (l.charAt(i)<49 || l.charAt(i)>51) throw new Nieprawidlowy_znak(); } } catch (Nieprawidlowy_znak wy) { wy.wyjatek_nz(); continue; } l_int3=Integer.parseInt(l); switch(l_int3) { case 1: do { System.out.println("Podaj dzialanie:"); dzialanie=czytaj.ReadLn(); if (s.sprawdz_l(dzialanie)==true) { for (i=0; i<dzialanie.length(); ++i) { if (dzialanie.charAt(i)!='a' && dzialanie.charAt(i)!='o' && dzialanie.charAt(i)!='n') { liczba+=dzialanie.charAt(i); } else { if (dzialanie.charAt(i)=='n') { zmiana=true; i+=2; continue; } liczba_int=Integer.parseInt(liczba); if (liczba_int==1) { if (zmiana==true) { drzewo_l.na_drzewo(false, '0'); drzewo_l.na_drzewo(false, dzialanie.charAt(i)); zmiana=false; } else drzewo_l.na_drzewo(true, '0'); drzewo_l.na_drzewo(false, dzialanie.charAt(i)); } else if (liczba_int==0) { if (zmiana==true) { drzewo_l.na_drzewo(true, '0'); drzewo_l.na_drzewo(false, dzialanie.charAt(i)); zmiana=false; } else drzewo_l.na_drzewo(false, '0'); drzewo_l.na_drzewo(false, dzialanie.charAt(i)); } liczba=""; if (dzialanie.charAt(i)=='a') i+=2; else if (dzialanie.charAt(i)=='o') ++i; } } liczba_int=Integer.parseInt(liczba); if (liczba_int==1) { if (zmiana==true) { drzewo_l.na_drzewo(false, '0'); zmiana=false; } else drzewo_l.na_drzewo(true, '0'); } else if (liczba_int==0) { if (zmiana==true) { drzewo_l.na_drzewo(true, '0'); zmiana=false; } else drzewo_l.na_drzewo(false, '0'); } System.out.println("\nWynik:"); System.out.println(dzialanie+"="+drzewo_l.wierzcholek.Oblicz()+"\n"); System.out.println("Wrocic do menu?(t|n)"); decyzja=czytaj.ReadLn(); if (decyzja.charAt(0)=='n') { liczba=""; dzialanie=""; drzewo_l.wierzcholek=null; } } else break; } while (decyzja.charAt(0)!='t'); break; case 2: do { z_pliku dl=new z_pliku(); z_pliku tmpl=new z_pliku(); System.out.print("Podaj sciezke do pliku: "); sciezka=czytaj.ReadLn(); try { BufferedReader file=new BufferedReader(new FileReader(sciezka)); do { z_pliku tmp=new z_pliku(); dzialanie=file.readLine(); tmp.dzialanie_=dzialanie; tmp.nast=dl; dl=tmp; } while (file.readLine()!=null); file.close(); } catch (IOException e) { System.out.println("Brak pliku"); dl=null; break; } if (s.sprawdz_l(dzialanie)==true) { while (dl!=null && dl.dzialanie_!=null) { for (i=0; i<dl.dzialanie_.length(); ++i) { if (dl.dzialanie_.charAt(i)!='a' && dl.dzialanie_.charAt(i)!='o' && dl.dzialanie_.charAt(i)!='n') { liczba+=dl.dzialanie_.charAt(i); } else { if (dl.dzialanie_.charAt(i)=='n') { zmiana=true; i+=2; continue; } liczba_int=Integer.parseInt(liczba); if (liczba_int==1) { if (zmiana==true) { drzewo_l.na_drzewo(false, '0'); drzewo_l.na_drzewo(false, dl.dzialanie_.charAt(i)); zmiana=false; } else drzewo_l.na_drzewo(true, '0'); drzewo_l.na_drzewo(false, dl.dzialanie_.charAt(i)); } else if (liczba_int==0) { if (zmiana==true) { drzewo_l.na_drzewo(true, '0'); drzewo_l.na_drzewo(false, dl.dzialanie_.charAt(i)); zmiana=false; } else drzewo_l.na_drzewo(false, '0'); drzewo_l.na_drzewo(false, dl.dzialanie_.charAt(i)); } liczba=""; if (dl.dzialanie_.charAt(i)=='a') i+=2; else if (dl.dzialanie_.charAt(i)=='o') ++i; } } liczba_int=Integer.parseInt(liczba); if (liczba_int==1) { if (zmiana==true) { drzewo_l.na_drzewo(false, '0'); zmiana=false; } else drzewo_l.na_drzewo(true, '0'); } else if (liczba_int==0) { if (zmiana==true) { drzewo_l.na_drzewo(true, '0'); zmiana=false; } else drzewo_l.na_drzewo(false, '0'); } System.out.println("Wynik:"); System.out.println(dl.dzialanie_+"="+drzewo_l.wierzcholek.Oblicz()+"\n"); dl=dl.nast; liczba=""; drzewo_l.wierzcholek=null; } } else break; System.out.println("Wrocic do menu?(t|n)"); decyzja=czytaj.ReadLn(); if (decyzja.charAt(0)=='n') { liczba=""; drzewo_l.wierzcholek=null; dl=null; } } while (decyzja.charAt(0)!='t'); break; } } while (l_int3!=3); } } while (l_int!=3); }}