# coding utf-8 from math import from tkinter import def II return I1 int

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70``` ```# -*- coding: utf-8 -*- from math import * from tkinter import * def II(x): return I1 + int((x - X1)*(I2 - I1)/(X2 - X1)) def JJ(y): return J2 + int((y - Y1)*(J1 - J2)/(Y2 - Y1)) def F(x): if x == 0: f = 1 else: f = sin(x)/x return f X1 = -5 * pi X2 = 5 * pi I1 = 0 J1 = 0 I2 = 500 J2 = 500 n = 25 h = (X2 - X1)/n INF = float('inf') XY = [] # список координат пикселей холста [x1, y1, x2, y2, ...] y = [] # список ординат функции x = X1 Y1 = INF; Y2 = -INF for i in range(n): y.append(F(x)) x += h # определение максимального и минимального значений F(x) Y1 = min(y); Y2 = max(y) root = Tk() root.title(' F(x) = sin(x)/x, -5*pi<=x<=5*pi') canv = Canvas(root, width = I2, height = J2, bg = 'lightblue') canv.create_line(II(0), JJ(Y1), II(0), JJ(Y2), width = 2) canv.create_line(II(X1), JJ(0), II(X2), JJ(0), width = 2) points = [] x = X1 for i in range(n): y = F(x) P = (II(x), JJ(y)) points.append(P) x = x + h canv.create_line(points, width = 1, fill = 'green', smooth = 1) print(Y1, Y2) dy = (Y2 - Y1) / 10 dx = (X2 - X1) / 10 print(dx,dy) for i in range(11): canv.create_text(20, Y2 + 10 + i * (J2 - 20) / 10, text = str(int(100*(Y2 - i * dy))/100)) for i in range(11): canv.create_text(20 + i * (I2 - 50) / 10, 40, text = str(int(100*(X1 + i * dx))/100)) canv.pack() root.mainloop() ```