[Tutor] Why doesn't this work??
Carl Kreider
carlk@argus.syscon-intl.com
Mon, 31 Jul 2000 17:33:52 -0500
Could some kind soul help an old C programmer and explain
what is wrong with this code?
---------8<-----------
#!/bin/env python
T = 0
dt = 0.1
def time_to_print(interval):
num = T / dt
den = interval / dt
ttp = num % den
print "ttp: T=%f num=%f den=%f ttp=%f" % (T, num, den, ttp)
return abs(ttp) < dt
while (T < 6.0):
if time_to_print(1):
print "%f" % T
T = T + dt
---------8<-----------
The output I get using:
Python 1.5.2 (#1, Jul 17 1999, 22:10:16) [GCC egcs-2.91.66 19990314/Linux (egcs- on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>>
is:
---------8<-----------
carlk$ python ttp.py
ttp: T=0.000000 num=0.000000 den=10.000000 ttp=0.000000
0.000000
ttp: T=0.100000 num=1.000000 den=10.000000 ttp=1.000000
(snip)
ttp: T=0.900000 num=9.000000 den=10.000000 ttp=9.000000
ttp: T=1.000000 num=10.000000 den=10.000000 ttp=10.000000
ttp: T=1.100000 num=11.000000 den=10.000000 ttp=1.000000
(snip)
ttp: T=2.000000 num=20.000000 den=10.000000 ttp=0.000000
2.000000
ttp: T=2.100000 num=21.000000 den=10.000000 ttp=1.000000
(snip)
ttp: T=3.000000 num=30.000000 den=10.000000 ttp=0.000000
3.000000
ttp: T=3.100000 num=31.000000 den=10.000000 ttp=1.000000
(snip)
ttp: T=4.000000 num=40.000000 den=10.000000 ttp=0.000000
4.000000
ttp: T=4.100000 num=41.000000 den=10.000000 ttp=1.000000
(snip)
ttp: T=4.900000 num=49.000000 den=10.000000 ttp=9.000000
ttp: T=5.000000 num=50.000000 den=10.000000 ttp=10.000000
ttp: T=5.100000 num=51.000000 den=10.000000 ttp=1.000000
(snip)
ttp: T=5.900000 num=59.000000 den=10.000000 ttp=9.000000
ttp: T=6.000000 num=60.000000 den=10.000000 ttp=10.000000
---------8<-----------
I agree that 0, 20, 30, and 40 mod 10 yield 0, but since
when does 10, 50, or 60 mod 10 yield 10? Do I misremember
how mod works?
--
Carl Kreider
aka
[carlk|root]@syscon-intl.com (219) 232-3900 Ext 207
ckreider@gte.net ckreider@acm.org ckreider@alumni.indiana.edu
Do, or do not. There is no try.
- Yoda, The Empire Strikes Back