用户:沉着的狼王蛛Ctm0查看:0 回复:0 评论:0 创建时间:2020-12-08T20:27:14
【作品展示】

【作品介绍】
计算绘制不带根号的一次函数
【作品源代码】
import turtle as t
print('''一次函数图像绘制,计算
杨大帅制''')
def gys(a, b):
a = abs(a)
b = abs(b)
if b > a:
g = a
a = b
b = g
c = a % b
if c == 0:
return b
else:
a = b
b = c
return gys(a, b)
def gbs(a, b):
i=gys(a,b)
return int(a * b/ i)
class fenshu():
def __init__(self,zhi):
s = 0
x=zhi
d=True
for ee in str(x):
if ee in ['1','2','3','4','5','6','7','8','9','0','-']:
continue
d=False
if '.' in x:
m = False
for i in x:
if i == '.':
m = True
if m:
s += 1
mu = 1
for i in range(s-1):
x = float(x)
x *= 10
mu *= 10
self.zhi=[int(x), mu]
elif type(x)==list:
self.zhi=zhi
elif d:
self.zhi = [int(x), 1]
else:
x = x.split('/')
self.zhi=[int(x[0]), int(x[1])]
def jiafa(self,jiashu):
x=self.zhi
y=jiashu.zhi
a, b = x
c, d = y
gb = gbs(b, d)
shua = gb/b
shuc = gb/d
return fenshu([a*shua+c*shuc, gb])
def jianfa(self,jianshu):
x=self.zhi
y=jianshu.zhi
a, b = x
c, d = y
gb = gbs(b, d)
shua = gb/b
shuc = gb/d
return fenshu([a*shua-c*shuc, gb])
def chengfa(self,chengshu):
a=self.zhi
b=chengshu.zhi
return fenshu([a[0]*b[0], a[1]*b[1]])
def chufa(self,chushu):
a=self.zhi
b=chushu.zhi
return fenshu([a[0]*b[1], a[1]*b[0]])
def yuefen(self):
a=self.zhi
gy = gys(a[0], a[1])
self.zhi=[a[0]/gy, a[1]/gy]
def _2str(self):
self.yuefen()
a=self.zhi
if a[1] < 0:
a[0] *= -1
a[1] *= -1
if a[1] == 1:
return str(int(a[0]))
return str(int(a[0]))+'/'+str(int(a[1]))
def huazheng(self):
a=self.zhi
return a[0]/a[1]
t.pensize(3)
cishu=int(input('要画几次?:'))
def j():
t.left(150)
t.forward(15)
t.backward(15)
t.left(60)
t.forward(15)
t.backward(15)
t.left(150)
t.speed(1000)
t.forward(200)
t.backward(400)
t.forward(200)
t.left(90)
t.forward(200)
t.backward(400)
t.forward(200)
t.forward(200)
j()
t.backward(400)
t.left(180)
j()
t.backward(200)
t.left(90)
t.forward(200)
j()
t.backward(400)
t.left(180)
j()
t.home()
t.left(90)
t.backward(25)
t.up()
t.right(90)
t.forward(5)
t.write('O', font=('Arial', 15, 'normal'))
f=[]
t.pensize(3)
def zuotu():
global f,n
k=fenshu(input('请输入k的值:'))
b=fenshu(input('请输入b的值:'))
f.append(k)
f.append(b)
b.zhi[0]*=15
zbx=-350*(k.huazheng())+(b.huazheng())
zby=350*(k.huazheng())+(b.huazheng())
t.up()
t.goto(-350,zbx)
t.down()
t.goto(350,zby)
if b.zhi==[0,1]:
x='(0,0)'
y=x
else:
b.zhi[0]=int(b.zhi[0]/15)
x='('+b.chufa(k).chengfa(fenshu('-1'))._2str()+',0)'
y='(0,'+b._2str()+')'
print('与x轴的交点为'+x+'\n与y轴的交点为'+y)
for i in range(cishu):
zuotu()
if cishu==2:
k1,b1,k2,b2 = f
b喵1=b2.jianfa(b1)#jianfa(b2, b1)
k1k2=k1.jianfa(k2)#jianfa(k1, k2)
x =b喵1.chufa(k1k2)._2str() #fenshu(chufa(b喵1, k1k2))
y = k1.chengfa(b喵1).jiafa(b1.chengfa(k1k2)).chufa(k1k2)._2str()
#fenshu(chufa(jiafa(chengfa(k1, b喵1), chengfa(b1, k1k2)), k1k2))
print('这两条线的交点为('+x+','+y+')')
#s=fenshu('5/6')
#print(s.zhi)
s=input()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn