Vector: Difference between revisions
Content added Content deleted
(Added solution for Fortran) |
(Added Wren) |
||
Line 2,650: | Line 2,650: | ||
<pre>[3; 7; 5] |
<pre>[3; 7; 5] |
||
[3; 15; 30]</pre> |
[3; 15; 30]</pre> |
||
=={{header|Wren}}== |
|||
<lang ecmascript>class Vector2D { |
|||
construct new(x, y) { |
|||
_x = x |
|||
_y = y |
|||
} |
|||
static fromPolar(r, theta) { new(r * theta.cos, r * theta.sin) } |
|||
x { _x } |
|||
y { _y } |
|||
+(v) { Vector2D.new(_x + v.x, _y + v.y) } |
|||
-(v) { Vector2D.new(_x - v.x, _y - v.y) } |
|||
*(s) { Vector2D.new(_x * s, _y * s) } |
|||
/(s) { Vector2D.new(_x / s, _y / s) } |
|||
toString { "(%(_x), %(_y))" } |
|||
} |
|||
var times = Fn.new { |d, v| v * d } |
|||
var v1 = Vector2D.new(5, 7) |
|||
var v2 = Vector2D.new(2, 3) |
|||
var v3 = Vector2D.fromPolar(2.sqrt, Num.pi / 4) |
|||
System.print("v1 = %(v1)") |
|||
System.print("v2 = %(v2)") |
|||
System.print("v3 = %(v3)") |
|||
System.print() |
|||
System.print("v1 + v2 = %(v1 + v2)") |
|||
System.print("v1 - v2 = %(v1 - v2)") |
|||
System.print("v1 * 11 = %(v1 * 11)") |
|||
System.print("11 * v2 = %(times.call(11, v2))") |
|||
System.print("v1 / 2 = %(v1 / 2)")</lang> |
|||
{{out}} |
|||
<pre> |
|||
v1 = (5, 7) |
|||
v2 = (2, 3) |
|||
v3 = (1, 1) |
|||
v1 + v2 = (7, 10) |
|||
v1 - v2 = (3, 4) |
|||
v1 * 11 = (55, 77) |
|||
11 * v2 = (22, 33) |
|||
v1 / 2 = (2.5, 3.5) |
|||
</pre> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |