{ } ''' '''
int i,j,driver=VGA,mode=VGAHI; initgraph(&driver,&mode,\setbkcolor(YELLOW); for(i=50;i<=230;i+=20) for(j=50;j<=230;j++) putpixel(i,j,1); for(j=50;j<=230;j+=20) for(i=50;i<=230;i++) putpixel(i,j,1);
题目:画椭圆ellipse 1.程序分析: 2.程序源代码: '''
if __name__ == '__main__': from Tkinter import * x = 360 y = 160 top = y - 30 bottom = y - 30
canvas = Canvas(width = 400,height = 600,bg = 'white') for i in range(20):
canvas.create_oval(250 - top,250 - bottom,250 + top,250 + bottom) top -= 5 bottom += 5 canvas.pack() mainloop() '''
题目:利用ellipse and rectangle 画图。 1.程序分析: 2.程序源代码: '''
if __name__ == '__main__': from Tkinter import *
canvas = Canvas(width = 400,height = 600,bg = 'white') left = 20 right = 50 top = 50 num = 15
for i in range(num):
canvas.create_oval(250 - right,250 - left,250 + right,250 + left) canvas.create_oval(250 - 20,250 - top,250 + 20,250 + top)
canvas.create_rectangle(20 - 2 * i,20 - 2 * i,10 * (i + 2),10 * ( i + 2)) right += 5 left += 5 top += 10
canvas.pack() mainloop() '''
【程序65】
题目:一个最优美的图案。 1.程序分析: 2.程序源代码: '''
import math class PTS:
def __init__(self): self.x = 0 self.y = 0 points = []
def LineToDemo():
from Tkinter import * screenx = 400 screeny = 400
canvas = Canvas(width = screenx,height = screeny,bg = 'white')
AspectRatio = 0.85 MAXPTS = 15 h = screeny w = screenx xcenter = w / 2 ycenter = h / 2
radius = (h - 30) / (AspectRatio * 2) - 20 step = 360 / MAXPTS angle = 0.0
for i in range(MAXPTS):
rads = angle * math.pi / 180.0 p = PTS()
p.x = xcenter + int(math.cos(rads) * radius)
p.y = ycenter - int(math.sin(rads) * radius * AspectRatio) angle += step
points.append(p)
canvas.create_oval(xcenter - radius,ycenter - radius, xcenter + radius,ycenter + radius) for i in range(MAXPTS):
for j in range(i,MAXPTS):
canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)
canvas.pack() mainloop()
if __name__ == '__main__': LineToDemo() '''
【程序66】
题目:输入3个数a,b,c,按大小顺序输出。 1.程序分析:利用指针方法。 2.程序源代码: '''
if __name__ == '__main__':
n1 = int(raw_input('n1 = :\\n')) n2 = int(raw_input('n2 = :\\n')) n3 = int(raw_input('n3 = :\\n'))
def swap(p1,p2): return p2,p1
if n1 > n2 : n1,n2 = swap(n1,n2) if n1 > n3 : n1,n3 = swap(n1,n3) if n2 > n3 : n2,n3 = swap(n2,n3)
print n1,n2,n3 '''
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 1.程序分析:谭浩强的书中答案有问题。 2.程序源代码: '''
def inp(numbers): for i in range(9):
numbers.append(int(raw_input('input a number:\\n'))) numbers.append(int(raw_input('input a number:\\n'))) p = 0
def max_min(array): max = min = 0
for i in range(1,len(array) - 1): p = i
if array[p] > array[max] : max = p elif array[p] < array[min] : min = p k = max l = min
array[0],array[l] = array[l],array[0] array[9],array[k] = array[k],array[9]
def outp(numbers):
for i in range(len(numbers)): print numbers[i]
if __name__ == '__main__': array = [] inp(array)
max_min(array) outp(array) '''
【程序68】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 1.程序分析: 2.程序源代码: '''
if __name__ == '__main__':
n = int(raw_input('the total number is:\\n')) m = int(raw_input('back m:\\n'))
def move(array,n,m):
array_end = array[n - 1] for i in range(n - 1,-1,- 1): array[i] = array[i - 1] array[0] = array_end m -= 1
if m > 0:move(array,n,m)
number = [] for i in range(n):
number.append(int(raw_input('input a number:\\n'))) print 'orignal number:',number
move(number,n,m)
print 'after moved:',number
'''
【程序69】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
圈子,问最后留下的是原来第几号的那位。 1. 程序分析: 2.程序源代码: '''
if __name__ == '__main__': nmax = 50
n = int(raw_input('please input the total of numbers:')) num = []
for i in range(n):
num.append(i + 1)
i = 0 k = 0 m = 0
while m < n - 1:
if num[i] != 0 : k += 1 if k == 3:
num[i] = 0 k = 0 m += 0 i += 1
if i == n : i = 0
i = 0
while num[i] == 0: i += 1 print num[i] '''
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 1.程序分析: 2.程序源代码 就这样吧 '''
if __name__ == '__main__':
s = raw_input('please input a string:\\n') print 'the string has %d characters.' % len(s) '''
【程序71】
题目:编写input()和output()函数输入,输出5个学生的数据记录。 1.程序分析: