示例#1
0
文件: fpg.py 项目: sim1234/Wielomiany
 def onOK(self, event):
     try:
         mnoz(self.In1.GetValue())
         self.Name = self.In0.GetValue()
         self.Wielomian = self.In1.GetValue()
         self.Close()
     except (ValueError, SyntaxError, NameError):
         m = wx.MessageDialog(self, u"To nie jest poprawny wielomian!", u"Błąd")
         m.ShowModal()
         m.Destroy()
示例#2
0
文件: fpg.py 项目: sim1234/Wielomiany
 def OnChange(self, e=""):
     self.wykres.sx = self.sx.GetValue()
     self.wykres.sy = self.sy.GetValue()
     w={}
     if self.d1.GetWielomian() != "":
         w[(255,0,0)] = mnoz(self.d1.GetWielomian())
     if self.d2.GetWielomian() != "":
         w[(0,255,0)] = mnoz(self.d2.GetWielomian())
     if self.d3.GetWielomian() != "":
         w[(0,0,255)] = mnoz(self.d3.GetWielomian())
     if self.d4.GetWielomian() != "":
         w[(255,255,0)] = mnoz(self.d4.GetWielomian())
     if self.d5.GetValue() != "":
         try:
             x = 1
             eval(mnoz(self.d5.GetValue(), 0))
             w[(0,255,255)] = lambda x: eval(mnoz(self.d5.GetValue(), 0))
         except (ValueError, SyntaxError, NameError, ZeroDivisionError, TypeError):
             pass
         try:
             x = 1
             eval(self.d5.GetValue())
             #w[(0,255,255)] = lambda x: eval(self.d5.GetValue())
         except (ValueError, SyntaxError, NameError, ZeroDivisionError, TypeError):
             pass
         
     if self.d6.GetValue() != "":
         try:
             x = 1
             print mnoz(self.d6.GetValue(), 0)
             eval(mnoz(self.d6.GetValue(), 0))
             w[(255,0,255)] = lambda x: eval(mnoz(self.d6.GetValue(), 0))
         except (ValueError, SyntaxError, NameError, ZeroDivisionError, TypeError):
             pass
         try:
             x = 1
             eval(self.d6.GetValue())
             w[(255,0,255)] = lambda x: eval(self.d6.GetValue())
         except (ValueError, SyntaxError, NameError, ZeroDivisionError, TypeError):
             pass
         
     self.wykres.SetWykresy(w)
示例#3
0
文件: fpg.py 项目: sim1234/Wielomiany
 def OnChange(self):
     if self.d1.GetWielomian() == "" or self.d2.GetWielomian() == "":
         self.d3.OnClear(0,0)
     else:
         w = str(mnoz(self.d1.GetWielomian())+mnoz(self.d2.GetWielomian()))
         self.d3.OnDrop(self.d1.GetName()[0:-3] + self.d2.GetName()[0:-3], w ,0)
         
     if self.d4.GetWielomian() == "" or self.d5.GetWielomian() == "":
         self.d6.OnClear(0,0)
     else:
         w = str(mnoz(self.d4.GetWielomian())-mnoz(self.d5.GetValue()))
         self.d6.OnDrop(self.d4.GetName()[0:-3] + self.d5.GetName()[0:-3], w ,0)
         
     if self.d7.GetWielomian() == "" or self.d8.GetWielomian() == "":
         self.d9.OnClear(0,0)
     else:
         w = str(mnoz(self.d7.GetWielomian())*mnoz(self.d8.GetWielomian()))
         self.d9.OnDrop(self.d7.GetName()[0:-3] + self.d8.GetName()[0:-3], w ,0)
示例#4
0
文件: GUI.py 项目: sim1234/Wielomiany
##        g.ShowModal()
##        if g.GetName() != "" and str(g.GetWielomian()) != "":
##            print g.GetName() + "(x) = " + str(g.GetWielomian())
##        g.Destroy()

class TabPanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY)
        txtOne = wx.TextCtrl(self, wx.ID_ANY, "a")
        txtTwo = wx.TextCtrl(self, wx.ID_ANY, "b")
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(txtOne, 0, wx.ALL, 5)
        sizer.Add(txtTwo, 0, wx.ALL, 5)
        self.SetSizer(sizer)
        
fun = mnoz("(x-5)(x+5)")



class myframe(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, title=u'X-enon', size = (600,600))
        self.CreateStatusBar()
        filemenu = wx.Menu()
        menuAbout = filemenu.Append(wx.ID_ABOUT, u"O programie",u" Informacje o tym programie")
        menuExit = filemenu.Append(wx.ID_EXIT,u"Wyjście",u" Wychondzi z programu")
        menuBar = wx.MenuBar()
        menuBar.Append(filemenu,u"&Plik") 
        self.SetMenuBar(menuBar)
        self.Bind(wx.EVT_MENU, self.onAbout, menuAbout)
示例#5
0
from fp import mnoz
a = mnoz("-(x+3)(x-1)(x+3)")
b = mnoz("-(x^2)((x-sqrt(2))^2)(x+2)")
c = mnoz("((x+2)^2)(x-4)^2")
d = mnoz("0.5*(x^3)(x-2)^3")
e = mnoz("-0.25*((x-1)^2)(x+3)^4")
f = mnoz("(x+4)(x^2-5)")
g = mnoz("0.5*(x^3)(x-2)(3-x)^2")

示例#6
0
文件: TUI.py 项目: sim1234/Wielomiany
def main():
    print u"Witam w programie X-enon!"
    opcja = 1000
    while opcja != 0:
        print u"Wpisz liczbę by:"
        print u" 1) Uruchomić Active Shell"
        print u" 2) Dodać / Odjąć / Pomnożyć dwa wielomiany"
        print u" 3) Podzielić dwa wielomiany"
        print u" 4) Podzielić dwa wielomiany metodą Hornera"
        print u" 5) Wymożyć postać iloczynową wielomianu"
        print u" 6) Narysować wykres wielomianu"
        print u" 7) Znaleźć wymierne miejsca zerowe wielomianu o współczynnikach całkowitych"
        print u" 8) Przybliżyć miejsca zerowe wielomianu"
        print u" 9) Rozłożyc wielomian na czynniki"
        print u" 0) Wyjść z programu"
        opcja = pobierz(u"Wybieram ", "")
        while opcja < 0 or opcja > 9 or opcja != int(opcja):
            print u"Liczba spoza zakresu!"
            opcja = pobierz(u"Wybieram ", "")

        if opcja == 1:
            code.interact(
                banner="Python shell with Wielomiany\nImplemented objects: nm, wykres, wielomian, pobierz, pobwiel, pobwiel2, horner, miejscabf, pierwiastkir, mnoz",
                local=locals(),
            )

        elif opcja == 2:
            print u"Wyświetlę wynik z działania W?Q (W,Q - wielomiany, ? - znak działania (+,-,*))"
            z = ""
            while z not in ("+", "-", "*"):
                z = raw_input("? = ")
                if z not in ("+", "-", "*"):
                    print u"Ta opcja obsługuje tylko dodawanie, odejmowanie i mnożenie!"
            w = pobwiel2("W")
            q = pobwiel2("Q")
            print "W(x) = " + str(w)
            print "Q(x) = " + str(q)
            print "W(x) " + z + " Q(x)", "=", eval("w" + z + "q")

        elif opcja == 3:
            w = pobwiel2("W")
            q = pobwiel2("Q")
            print "W(x) = " + str(w)
            print "Q(x) = " + str(q)
            r = w.dziel(q)
            rr = ""
            if str(r[1]) != "0":
                rr = "Reszta " + str(r[1])
            print "W(x) / Q(x) =", r[0], rr

        elif opcja == 4:
            print u"Podzielę W(x) przez dwumian (x-r)"
            r = pobierz("r")
            w = pobwiel2("W")
            rr = w.dziel(wielomian(1, r * -1))
            rt = ""
            if str(rr[1]) != "0":
                rt = "Reszta " + str(rr[1])
            print "W(x) = " + str(w)
            print "W(x) / (x-" + str(r) + ") =", rr[0], rt
            horner(w, r)

        elif opcja == 5:
            r = raw_input("W(x) = ")
            print "W(x) = " + str(mnoz(r))

        elif opcja == 6:
            w = pobwiel2("W")
            print "W(x) = " + str(w)
            wyk = wykres()
            wyk.dodaj(w)
            print u"Policzę W(x) jeśli podasz x"
            x = "a"
            while x != "":
                x = raw_input("x = ")
                try:
                    x = float(x)
                    print w(x)
                except ValueError:
                    if x != "":
                        print u"To nie jest liczba!"

        elif opcja == 7:
            s = -1
            while s < 0:
                s = pobierz("Stopien wielomianu W")
                if s < 0:
                    print u"Stopień wielomianu nie może być ujemny!"
                if int(s) != s:
                    print u"Stopień wielomianu musi być całkowity!"
                    s = -1
            w = wielomian()
            while s >= 0:
                ws = 0.5
                while type(nm(ws)) == float:
                    ws = pobierz("Wspolczynnik W przy x^" + str(int(s)))
                    if type(nm(ws)) == float:
                        print u"Współczynnik musi być całkowity!"
                w.wsp.append(ws)
                s -= 1
            w.wsp.reverse()
            w.nm()
            print "W(x) = " + str(w)
            m = pierwiastkir(w)
            r = "Wymierne miejsca zerowe wielomianu W(x) to "
            for k in m:
                if k is m[0]:
                    r += str(k)
                elif k is m[-1]:
                    r += " i " + str(k)
                else:
                    r += ", " + str(k)
            print r

        elif opcja == 8:
            w = pobwiel2("W")
            print "W(x) = " + str(w)
            m = miejscabf(w)
            r = "Miejsca zerowe wielomianu W(x) to "
            for k in m:
                if k is m[0]:
                    r += str(k)
                elif k is m[-1]:
                    r += " i " + str(k)
                else:
                    r += ", " + str(k)
            print r

        elif opcja == 9:
            w = pobwiel2("W")
            print "W(x) = " + str(w)
            m = miejscabf(w)
            r = ""
            d = 1 * w
            for k in m:
                ws = wielomian(1, -1 * k)
                d = d // ws
                r += "(" + str(ws) + ")"
            try:
                if int(str(d)) == -1:
                    r = "-" + r
                elif int(str(d)) == 1:
                    pass
                else:
                    r = str(d) + r
            except ValueError:
                r = "(" + str(d) + ")" + r
            print "W(x) = " + r

        if opcja != 0:
            raw_input("-> Menu")