Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 20, 2009 22:49:00

ilalexey
От:
Зарегистрирован: 2009-02-20
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

нужно зациклить код

В общем - даётся тяжело.
глобал/локал так и не смог понять(
В 3д графике это понятно в принципе..
И что такое “b-” ?
а если обматюкать это так?:

01  from math import *
02 DO=55.9957974644
03 print "old DO =",DO
04 L4=30.280
05 L5=36.775
06 dd=7
07 def main(DO):
08 AP=acos(DO/(2*L5))
09 AS=acos(DO/(2*L4))
10 APS=AP-AS
11 dDO=((tan(AP)-tan(AS)-dd/DO)/APS-1)*DO
12 DOn=DO+dDO
13 print "new DO =",DOn
14 print "dDO =",dDO
15 main(DO)
т.е. заменить в 12 строчке название переменной на “DOn”
Как может выглядеть пример тогда?



Офлайн

#2 Фев. 21, 2009 08:08:00

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

нужно зациклить код

ilalexey
В общем - даётся тяжело.
А никто не говорил, что это будет легко ;)
ilalexey
И что такое “b-” ?
это не b- конструция b-=1 идентична такой b=b-1
igor.kaist
a=0
b=20
def do():
global b
b-=1
while a<>b:
do()
вот же решение, просто малость подумать надо и написать цикл, применительно к вашей задаче :)
передаете в функцию DO, она возвращает новое значение, если оно не равно старому значению, тогда их приравниваете и опять запускаете функцию :)



Офлайн

#3 Фев. 21, 2009 09:55:06

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2742
Репутация: +  183  -
Профиль   Отправить e-mail  

нужно зациклить код

Насколько я понял тебе вот что надо (на работоспособность и оптимальность не проверял!):

from math import *
L4=30.280
L5=36.775
dd=7
DO=55.9
print "old DO =",DO
newDO = DO

AP=acos(newDO/(2*L5))
AS=acos(newDO/(2*L4))
APS=AP-AS
dDO=((tan(AP)-tan(AS)-dd/newDO)/APS-1)*newDO
newDO+=dDO
print "new DO =",newDO
print "dDO =",dDO

while DO != new DO:
AP=acos(newDO/(2*L5))
AS=acos(newDO/(2*L4))
APS=AP-AS
dDO=((tan(AP)-tan(AS)-dd/newDO)/APS-1)*newDO
newDO+=dDO
print "new DO =",newDO
print "dDO =",dDO



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано (Фев. 21, 2009 09:56:41)

Онлайн

#4 Фев. 22, 2009 17:42:33

ilalexey
От:
Зарегистрирован: 2009-02-20
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

нужно зациклить код

Есть другая проблема - цикл не останавливается.
На самом деле равенство должно происходить, если число округлено до скажем 10 знака после запятой.
Питон щитает намного точное число и лиш высвечивает не много. В оригинале равенство там не может получиться на все 100 процентов.



Офлайн

#5 Фев. 23, 2009 11:58:29

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

нужно зациклить код

Иногда вместо

DO != newDO
пишут
abs(DO-newDo)>eps
погрешность eps задаете по своему усмотрению.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version