Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

60 lines
1.0KB

  1. interface Source
  2. method next() as word
  3. end interface
  4. class Counter implements Source
  5. private word value
  6. private word[4] seen
  7. public method init(start as word)
  8. self.value = start
  9. end method
  10. public method next() as word
  11. self.value = self.value + 1
  12. return self.value
  13. end method
  14. public method twice() as Counter
  15. return self
  16. end method
  17. public method fill(n as word)
  18. var i as word
  19. var k as integer
  20. for i = 0 to 3 step 1
  21. seen[i] = self.next()
  22. end for
  23. for k = 3 to 0 step -1
  24. if seen[k] = 0
  25. return
  26. else
  27. if k > 1 and not (k = 2)
  28. seen[k] = seen[k - 1]
  29. end if
  30. end if
  31. end for
  32. while value < n
  33. value = value + 1
  34. end while
  35. end method
  36. end class
  37. program Main
  38. var c as Counter
  39. var s as Source
  40. var w as word
  41. c = new Counter((1 + 2) * 3)
  42. c.fill(c.next())
  43. c.twice().twice().fill(w)
  44. s = c
  45. w = s.next()
  46. print "done"
  47. print 'x'
  48. print true
  49. print w
  50. if s <> null
  51. delete s
  52. end if
  53. end program

Powered by TurnKey Linux.