Advertisement
Guest User

Untitled

a guest
Jan 13th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?xml version="1.0"?>
  2.  
  3. <st-source>
  4. <time-stamp>From VisualWorks® Personal Use Edition, 8.3 of 28 lipca 2017 on 11 listopada 2018 at 17:32:20</time-stamp>
  5.  
  6.  
  7. <component-created>
  8. <name>jpr</name> <type>package</type>
  9. </component-created><!-- Package jpr* -->
  10.  
  11.  
  12. <component-property>
  13. <name>jpr</name> <type>package</type>
  14. <property>comment</property> <value>'das'</value>
  15. </component-property>
  16.  
  17. <class>
  18. <name>Wielokat</name>
  19. <environment>Smalltalk</environment>
  20. <super>Core.Object</super>
  21. <private>false</private>
  22. <indexed-type>none</indexed-type>
  23. <inst-vars>wierzcholki nazwa </inst-vars>
  24. <class-inst-vars></class-inst-vars>
  25. <imports></imports>
  26. <category>JezykiProgramowania</category>
  27. <attributes>
  28. <package>jpr</package>
  29. </attributes>
  30. </class>
  31.  
  32. <class>
  33. <name>Kwadrat</name>
  34. <environment>Smalltalk</environment>
  35. <super>Wielokat</super>
  36. <private>false</private>
  37. <indexed-type>none</indexed-type>
  38. <inst-vars></inst-vars>
  39. <class-inst-vars></class-inst-vars>
  40. <imports></imports>
  41. <category>JezykiProgramowania</category>
  42. <attributes>
  43. <package>jpr</package>
  44. </attributes>
  45. </class>
  46.  
  47. <class>
  48. <name>TrojkatProstokatny</name>
  49. <environment>Smalltalk</environment>
  50. <super>Wielokat</super>
  51. <private>false</private>
  52. <indexed-type>none</indexed-type>
  53. <inst-vars></inst-vars>
  54. <class-inst-vars></class-inst-vars>
  55. <imports></imports>
  56. <category>JezykiProgramowania</category>
  57. <attributes>
  58. <package>jpr</package>
  59. </attributes>
  60. </class>
  61.  
  62. <methods>
  63. <class-id>Wielokat</class-id> <category>accessing</category>
  64.  
  65. <body package="jpr" selector="nazwa:">nazwa: nowa_nazwa
  66.     "ustawia nowa nazwe wielokata"
  67.  
  68.     nazwa:=nowa_nazwa</body>
  69.  
  70. <body package="jpr" selector="nazwa">nazwa
  71.     "podaje nazwe wielokata"
  72.  
  73.     ^nazwa</body>
  74. </methods>
  75.  
  76. <methods>
  77. <class-id>Wielokat</class-id> <category>actions</category>
  78.  
  79. <body package="jpr" selector="drukuj">drukuj
  80. "wypisz wierzcholki wielokata"
  81.         Transcript show: 'Pole: '.
  82.         Transcript show: self pole printString;cr.
  83.         Transcript show: 'Wierzcholki: ';cr.
  84.         wierzcholki do: [:wierzcholek|
  85.         Transcript show: 'x: '.
  86.         Transcript show: wierzcholek x printString.
  87.         Transcript show: '  y: '.
  88.         Transcript show: wierzcholek y printString;cr.]</body>
  89. </methods>
  90.  
  91. <methods>
  92. <class-id>Wielokat</class-id> <category>initialize-release</category>
  93.  
  94. <body package="jpr" selector="initialize:name:">initialize: liczbaWierzcholkow name: nowaNazwa
  95.     "konstruktor obiektu - wielokata"
  96.  
  97.     nazwa:=nowaNazwa.
  98.     wierzcholki:=Array new: liczbaWierzcholkow.
  99.     wierzcholki at: 1 put: 0@0.</body>
  100. </methods>
  101.  
  102.  
  103. <methods>
  104. <class-id>Kwadrat</class-id> <category>actions</category>
  105.  
  106. <body package="jpr" selector="obrot">obrot
  107.     "obrot o 90 stopni"
  108.    
  109.     | x y index |
  110.    
  111.     index:=1.
  112.     wierzcholki do: [:wierzcholek|
  113.         x:= wierzcholek y.
  114.         y:= 0-(wierzcholek x).
  115.         wierzcholki at: index put: x@y.
  116.         index:= index + 1.
  117.     ]</body>
  118.  
  119. <body package="jpr" selector="pole">pole
  120.     "licz pole kwadratu"
  121.  
  122.    
  123.     | czyObrocono |
  124.    
  125.     (wierzcholki at: 1) y = (wierzcholki at: 2) y
  126.         ifTrue:[czyObrocono:= false]
  127.         ifFalse:[czyObrocono:= true].
  128.        
  129.     czyObrocono
  130.     ifTrue:[^(wierzcholki at: 2) y squared]
  131.     ifFalse:[^(wierzcholki at: 2) x squared].</body>
  132. </methods>
  133.  
  134. <methods>
  135. <class-id>Kwadrat</class-id> <category>arithmetic</category>
  136.  
  137. <body package="jpr" selector="+">+ figura
  138.     "dodaj 2 figury w sensie pola"
  139.  
  140.     | p |
  141.  
  142.     p:=self pole + figura pole.
  143.     ^(Kwadrat new) initialize: p sqrt</body>
  144. </methods>
  145.  
  146. <methods>
  147. <class-id>Kwadrat</class-id> <category>initialize-release</category>
  148.  
  149. <body package="jpr" selector="initialize:">initialize: bok
  150.     "tworz kwadrat o podanym boku"
  151.  
  152.     super initialize: 4 name: 'Kwadrat'.
  153.     wierzcholki at: 2 put: bok@0.
  154.     wierzcholki at: 3 put: bok@bok.
  155.     wierzcholki at: 4 put: 0@bok.</body>
  156. </methods>
  157.  
  158.  
  159. <methods>
  160. <class-id>TrojkatProstokatny class</class-id> <category>instance creation</category>
  161.  
  162. <body package="jpr" selector="new">new
  163.     "Answer a newly created and initialized instance."
  164.  
  165.     ^super new initialize</body>
  166. </methods>
  167.  
  168.  
  169. <methods>
  170. <class-id>TrojkatProstokatny</class-id> <category>actions</category>
  171.  
  172. <body package="jpr" selector="obrot">obrot
  173.     "obrot o 90 stopni"
  174.    
  175.     | x y index |
  176.    
  177.     index:=1.
  178.     wierzcholki do: [:wierzcholek|
  179.         x:= 0 - (wierzcholek y).
  180.         y:= wierzcholek x.
  181.         wierzcholki at: index put: x@y.
  182.         index:= index + 1.
  183.     ]</body>
  184.  
  185. <body package="jpr" selector="pole">pole
  186.     | czyObrocono |
  187.    
  188.     (wierzcholki at: 1) y = (wierzcholki at: 2) y
  189.         ifTrue:[czyObrocono:= false]
  190.         ifFalse:[czyObrocono:= true].
  191.        
  192.     czyObrocono
  193.     ifTrue:[^(wierzcholki at: 2) y abs * ( wierzcholki at: 3) x abs * 1/2]
  194.     ifFalse:[^(wierzcholki at: 2) x abs * ( wierzcholki at: 3) y abs * 1/2].</body>
  195. </methods>
  196.  
  197. <methods>
  198. <class-id>TrojkatProstokatny</class-id> <category>arithmetic</category>
  199.  
  200. <body package="jpr" selector="+">+ figura
  201.     "dodaj 2 figury w sensie pola"
  202.  
  203.     | p k a b czyObrocono|
  204.    
  205.    
  206.     (wierzcholki at: 1) y = (wierzcholki at: 2) y
  207.         ifTrue:[czyObrocono:= false]
  208.         ifFalse:[czyObrocono:= true].
  209.        
  210.     p:=self pole + figura pole.  
  211.    
  212.     k:= (p * 1/(self pole)) sqrt.
  213.    
  214.    
  215.     czyObrocono  
  216.     ifFalse:[
  217.     a:= ((wierzcholki at: 2) x abs) *k.
  218.     b:= ((wierzcholki at: 3) y abs) *k.
  219.     ^(TrojkatProstokatny new) initialize: a przyprostokatna: b.]
  220.  
  221.       ifTrue:[  
  222.     a:= ((wierzcholki at: 2) y abs) *k.
  223.     b:= ((wierzcholki at: 3) x abs) *k.
  224.     ^(TrojkatProstokatny new) initializev2: a przyprostokatna: b.
  225.     ]</body>
  226. </methods>
  227.  
  228. <methods>
  229. <class-id>TrojkatProstokatny</class-id> <category>initialize-release</category>
  230.  
  231. <body package="jpr" selector="initialize:przyprostokatna:">initialize: bok przyprostokatna: przyprostokatna
  232.     "tworz kwadrat o podanym boku"
  233.  
  234.     super initialize: 3 name: 'TrojkatProstokatny'.
  235.     wierzcholki at: 2 put: bok@0.
  236.     wierzcholki at: 3 put: 0@przyprostokatna.</body>
  237.  
  238. <body package="jpr" selector="initializev2:przyprostokatna:">initializev2: bok przyprostokatna: przyprostokatna
  239.     "tworz kwadrat o podanym boku"
  240.  
  241.     super initialize: 3 name: 'TrojkatProstokatny'.
  242.     wierzcholki at: 2 put:0@bok.
  243.     wierzcholki at: 3 put: przyprostokatna@0.</body>
  244. </methods>
  245.  
  246.  
  247.  
  248. </st-source>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement