ich habe es verher in IDLE gemacht und da hat es so funktioniert (Z.44)! hier das erste programm (könnt ihr gerne mal testen! ist recht nützlich in Mathe!) :
Code: Alles auswählen
from Tkinter import *
import Tkinter as tk
print " Wertetabelle einer quadratischen Funktion f(x)=ax²bx+c"
print " --------------------------------------------------------"
print
print
nochmal=1
while nochmal==1:
a=float(raw_input(" a = "))
b=float(raw_input(" b = "))
c=float(raw_input(" c = "))
print
print
print " x | y "
print "-------------------------"
for i in range(-100,101,1):
x=float(i/10.0)
y=a*(x*x)+(b*x)+c
if x==-10:
print " ",x," | ",float(y)," "
elif x==0:
print " ",x," | ",float(y)," "
elif x==10:
print " ",x," | ",float(y)," "
elif 1==x or 2==x or 3==x or 4==x or 5==x or 6==x or 7==x or 8==x or 9==x:
print " ",x," | ",float(y)," "
elif -9==x or -8==x or-7==x or -6==x or -5==x or-4==x or -3==x or -2==x or -1==x:
print " ",x," | ",float(y)," "
#weiter
print
print
x0=-b/(2*a)
y0=c - b**2/(4*a)
print " S=(",float(x0),"|",float(y0),")"
print
print
class Koordinatensystem:
def __init__(self):
# Kordinatensystem
import Tkinter as tk
self.master=tk.Tk()
self.master.title("y=f(x)=ax²+bx+c")
self.canvasframe=tk.Frame()
self.canvasframe.pack(fill="both",expand=1)
self.canvas=tk.Canvas(self.canvasframe,width=930,height=930,bg="white",scrollregion=(0,0,1065,1065))
self.canvas.pack(side="left",fill="both",expand=1)
self.canvascenter()
self.yscroll=tk.Scrollbar(self.canvasframe,orient="vertical",command=self.canvas.yview)
self.yscroll.pack(fill="y",side="right")
self.xscroll=tk.Scrollbar(orient="horizontal",command=self.canvas.xview)
self.xscroll.pack(fill="x")
self.canvas.config(xscrollcommand=self.xscroll.set,yscrollcommand=self.yscroll.set)
self.bgvar=tk.IntVar()
self.bgvar.set(1)
self.zoomvar=tk.StringVar()
self.zoomvar.set("1")
self.graphen=[]
self.bg()
def bg(self):
self.zoom=float(self.zoomvar.get())
zoom=self.zoom
for item in self.canvas.find_all():
self.canvas.delete(item)
if zoom != None:
self.zoom=zoom
if self.bgvar.get():
self.bglines=[]
for i in range(20+(10*self.zoom),1040,10*self.zoom):
self.bglines.append(self.canvas.create_line(15,i,1050,i,fill="gray"))
self.bglines.append(self.canvas.create_line(i,15,i,1050,fill="gray"))
self.canvas.create_line(15,530,1050,530)
self.canvas.create_line(530,15,530,1050)
for i in range(-10,11):
if y0<1000 or y0>-1000:
if i is not 0:
self.canvas.create_text(540,self.cy(i)+480,text=str(i))
self.canvas.create_text(self.cx(i)+485,520,text=str(i))
zo=50
for graph in self.graphen:
if graph.state=="aktive":
graph.aktivate(manuel=50)
self.canvas.update()
x=-10.0
y=((-1)*(a*(x*x)+(b*x)+c))
#Parabel
for i in range(-100,102,1):
xneu=x
yneu=y
x=float(-1*(i/10.0))
y=((-1)*(a*(x*x)+(b*x)+c))
#Umwandlung
xs=530+x*zo
ys=530+y*zo
xe=530+xneu*zo
ye=530+yneu*zo
self.bglines.append(self.canvas.create_line(xs,ys,xe,ye,fill="red"))
def canvascenter(self):
self.canvas.xview_moveto(0.122/2)
self.canvas.yview_moveto(0.122/2)
def cx(self,nr):
if nr != None:
return (nr*50*self.zoom)+45
else: return None
def cy(self,nr):
if nr != None:
return 50-(nr*50*self.zoom)
else: return None
Koordinatensystem()
untw=((b**2)-4*a*c)
if untw>0:
dis1=untw**0.5
x1=((-b)+dis1)/(2*a)
x2=((-b)-dis1)/(2*a)
print " x1= ",float(x1)
print " x2= ",float(x2)
else:
print "Parabel liegt über der x-Achse!"
print
print
print
print "Weitere Berechnungen durchführen?"
noch=raw_input(" -> ")
if "ja"==noch:
nochmal=1
else:
nochmal=0
print
print
if nochmal==1:
print
print
print
print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
print "--------------------------------------------------------------------------------"
print
print
print
print " Wertetabelle einer quadratischen Funktion f(x)=ax²*bx+c"
print " --------------------------------------------------------"
print
print
print