0
0 комментариев

Задача — построить график функции sin(2*3.14*i/50)/cos(2*3.14*i/50) на Python

while i<=50:
    y=math.sin(2*3.14*i/50)/math.cos(2*3.14*i/50)
    if(y>max):
        max=y
    elif(y<min):
        min=y
    i+=1
    print('\n')
    j=1
    while j<=50:
        y= math.ceil(((math.sin(2*3.14*i/50)/math.cos(2*3.14*i/50))-min)*50/(max-min))
        if y==50-j:
            print('*')
        else:
            print (' ')
        j+=1
print(max)
print(min)

При запуске выходит ошибка:

ZeroDivisionError: float division by zero.

Проверял — значения максимума и минимума присваиваются верно, значит беда во внутреннем цикле. Зафэйлил с пробелами, или же в Python так вообще делать нельзя?

Обновление

Изначально:

import math
 
min=max=math.sin(2*3.14/50)/math.cos(2*3.14/50)
 
i=1

Значения max = 15.7029740933..., min = -16.53312943.... Отсчет i начинается с 1, изначально max = min, а затем присваиваем значения.

Вывел min и max перед ошибкой. Оба значения 0.126264… Хотя если убрать внутренний цикл — все нормально. По идее должно 50 раз вывести на экран значения max и min (15.703… и -16.533).


Добавить комментарий