Re: Strange machine-level exception
- Posted by Bernie Ryan <xotron at bluefrog.com> Jun 18, 2007
- 543 views
Juergen Luethje wrote: > > Bernie Ryan wrote: > > <snip> > > > Juergen: > > Could the problem be caused by variations in the RAND() function ? > > The rand() may be compiled different for each compiler or different > > on each OS. The reason I say this is because the rand() occurs before > > the line that is commented out. > > Bernie > > I also had a similar suspicion. But now I found that the program still > crashes, when > player = rand(3) > is replaced with > player = remainder(i,3) + 1 > > }}} <eucode> > function create_set (sequence s) > -- create a set (= remove duplicate entries) > integer p > > if length(s) < 2 then > return s > end if > > p = length(s) > for i = length(s)-1 to 1 by -1 do > if find_from(s[i], s, i+1) = 0 then -- Machine-level exception here > p -= 1 > s[p] = s[i] > end if > end for > return s[p..$] > end function > > > sequence freq, result, unique > integer n, player > > n = 1000 > > result = {} > for i = 1 to n do > freq = repeat(0, 3) > for card = 1 to 4 do > -- player = rand(3) -- old > player = remainder(i,3) + 1 -- new --> program still crashes > freq[player] += 1 > end for > result = append(result, freq) > end for > > unique = create_set(result) > ? unique > if getc(0) then end if > </eucode> {{{ Juergen: I think the result of remainder can be a float and player is an integer Bernie My files in archive: WMOTOR, XMOTOR, W32ENGIN, MIXEDLIB, EU_ENGIN, WIN32ERU, WIN32API Can be downloaded here: http://www.rapideuphoria.com/cgi-bin/asearch.exu?dos=on&win=on&lnx=on&gen=on&keywords=bernie+ryan