Почему может не работать программа. пайтон - Компьютерные вопросы

Вопрос Почему может не работать программа. пайтон

Регистрация
4 Фев 2013
Сообщения
102
Репутация
0
Спасибо
0
Монет
0
import math

d = 0.01

r = (d**-1)

r1 = (d**-1)/2

x = 0

cres = 0





for i in range(r):

x1 = x + d

x2 = x1 + d

for j in range(r):

y1 = math.sqrt(abs(1 - x1))

y2 = math.sqrt(abs(1 - x2))

for b in range(50):

dy = abs(y2 - y1)

if y2 < 1 and y1 < 1:

dx = d

c = math.sqrt((dy**2) + (dx**2))

cres = cres + c

print(cres * 4)



Это программа для подсчета длинны окружности

 
Регистрация
28 Сен 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
у тебя r - тип float, а для range нужен тип int.

Попробуй обернуть переменную r в int(): for i in range(int(r)):
 
Регистрация
28 Мар 2013
Сообщения
111
Репутация
0
Спасибо
0
Монет
0
питон не кручу, но попробуй:
for
{
...
...
If
{
...
...
}
}
 
Регистрация
31 Мар 2013
Сообщения
107
Репутация
0
Спасибо
0
Монет
0
import math

d = 0.01
r = int(d**-1)
r1 = int((d**-1)/2)
x = 0
cres = 0

for i in range(r):
x1 = x + d
x2 = x1 + d
if x2 &gt; 1: # чтобы избежать неправильных вычислений корня, если x2 &gt; 1
break
y1 = math.sqrt(abs(1 - x1))
y2 = math.sqrt(abs(1 - x2))
for j in range(r):
if y2 &gt; 1: # то же самое для y2 &gt; 1
break
dy = abs(y2 - y1)
dx = d
c = math.sqrt((dy**2) + (dx**2))
cres += c
x1 = x2
x2 += d
y1 = y2
y2 = math.sqrt(abs(1 - x2))

print(cres * 4)
 
Сверху Снизу