Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

60 рядки
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.