Advertisement
dariahinz

SMALLTALK

Nov 17th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. drukuj
  2. "wypisz na ekran nazwe figury, jej pole oraz wierzcholki"
  3. Transcript show: 'Nazwa: '.
  4. Transcript show: nazwa ;cr.
  5. Transcript show: 'Pole: '.
  6. Transcript show: self pole printString;cr.
  7. Transcript show: 'Wierzcholki: ';
  8. cr.
  9. 1 to: wierzcholki size do: [:i |
  10. Transcript show:(wierzcholki at: i) printString;
  11. cr
  12. ].
  13.  
  14.  
  15.  
  16.  
  17. obrot
  18.  
  19. | a h |
  20.  
  21. (((wierzcholki at:2 )x)~~0)
  22. ifTrue:[
  23. a:=(wierzcholki at:2 )x.
  24. h:=(0-wierzcholki at:3 )y.
  25. ^(TrojkatRownoramienny new) initialize: a wysokosc: h.
  26.  
  27. ]
  28. ifFalse:[
  29. a:=0-(wierzcholki at:2 )y.
  30. h:=(wierzcholki at:3 )x.
  31. ^(TrojkatRownoramienny new) initialize: a wysokosc: h.
  32. ].
  33.  
  34. "obrot o 90 stopni"
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41. pole
  42. "licz pole kwadratu"
  43.  
  44. (((wierzcholki at: 2) x)>0)
  45. ifTrue:[
  46. ^(wierzcholki at: 2) x squared
  47. ]
  48. ifFalse:[
  49. (((wierzcholki at: 2) x)~~0)
  50. ifTrue:[
  51. ^(0-(wierzcholki at: 2)) x squared
  52. ]
  53. ifFalse:[
  54. ^(0-(wierzcholki at: 2)) y squared
  55. ].
  56. ].
  57.  
  58.  
  59.  
  60.  
  61. pole
  62. "licz pole trojkata"
  63.  
  64. | czyObrocono |
  65.  
  66. (wierzcholki at: 1) y = (wierzcholki at: 2) y
  67. ifTrue:[czyObrocono:= false]
  68. ifFalse:[czyObrocono:= true].
  69.  
  70. czyObrocono
  71. ifTrue:[^(wierzcholki at: 2) y abs * ( wierzcholki at: 3) x abs * 1/2]
  72. ifFalse:[^(wierzcholki at: 2) x abs * ( wierzcholki at: 3) y abs * 1/2].
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. + figura
  82. "dodaj 2 figury w sensie pola"
  83.  
  84. | a h x y |
  85.  
  86. a:= (wierzcholki at: 2) x.
  87. h:=(wierzcholki at: 3) y.
  88. x:= a*(((self pole + figura pole)/self pole) sqrt).
  89. y:= h*(((self pole + figura pole)/self pole) sqrt).
  90.  
  91.  
  92. ^(TrojkatRownoramienny new) initialize: x wysokosc: y.
  93.  
  94.  
  95.  
  96.  
  97.  
  98. initialize: podstawa wysokosc: wysokosc
  99. "tworz trojkat rownoramienny o podanej wysokosci i podstawie"
  100. super initialize: 3 name: 'TrojkatRownoramienny'.
  101. (podstawa>0)
  102. ifTrue:[
  103. (wysokosc>0)
  104. ifTrue:[
  105. wierzcholki at: 2 put: podstawa@0.
  106. wierzcholki at: 3 put: (podstawa/2.0)@(wysokosc).
  107. ]
  108. ifFalse:[
  109. wierzcholki at: 2 put: 0@podstawa.
  110. wierzcholki at: 3 put: wysokosc@(podstawa/2.0).
  111.  
  112. ].
  113.  
  114. ]
  115. ifFalse:[
  116. (wysokosc>0)
  117. ifTrue:[
  118. wierzcholki at: 2 put: 0@podstawa.
  119. wierzcholki at: 3 put: wysokosc@(podstawa/2.0)
  120. ]
  121. ifFalse:[
  122. wierzcholki at: 2 put: podstawa@0.
  123. wierzcholki at: 3 put: (podstawa/2.0)@wysokosc.
  124.  
  125. ].
  126. ].
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement