質問編集履歴
1
誤字
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
クラスを用いたpythonプログラム
|
test
CHANGED
@@ -1,69 +1,5 @@
|
|
1
|
-
|
1
|
+
質問の仕方が下手くそでした。申し訳ありません。
|
2
2
|
|
3
|
-
|
3
|
+
どう質問したらいいかわからなかったのでやりたいことをそのまま書いてしまいました。
|
4
4
|
|
5
|
-
#!/usr/bin/python3
|
6
|
-
|
7
|
-
# -*- coding: euc-jp -*-
|
8
|
-
|
9
|
-
class xy_coord:
|
10
|
-
|
11
|
-
def __init__(self, x, y): # コンストラクタ
|
12
|
-
|
13
|
-
self.x = x
|
14
|
-
|
15
|
-
self.y = y
|
16
|
-
|
17
|
-
def vec_add(self, v): # メソッドの定義
|
18
|
-
|
19
|
-
self.x += v.x self.y += v.y
|
20
|
-
|
21
|
-
def midpoint(self, v): self.vec_add(v)
|
22
|
-
|
23
|
-
self.x /= 2 self.y /= 2
|
24
|
-
|
25
|
-
a = xy_coord(0.3, 0.8)
|
26
|
-
|
27
|
-
print(a.x, a.y)
|
28
|
-
|
29
|
-
b = xy_coord(0.1, 0.2) a.midpoint(b) # メソッドの呼び出し print(a.x, a.y)
|
30
|
-
|
31
|
-
```
|
32
|
-
|
33
|
-
|
5
|
+
理解したいなと思ったので説明多めだとありがたいですと書いたのですが不快になられた方申し訳ございません。
|
34
|
-
|
35
|
-
説明多めで回答くださると助かります。
|
36
|
-
|
37
|
-
* copyメソッドを追加。引数をとらず、自分と同じx· y座標を持つxy_coordク
|
38
|
-
|
39
|
-
ラスのインスタンスを新たに作って返す。自分の座標は変わってはいけない
|
40
|
-
|
41
|
-
* gen_midpointメソッドを追加。引数として他のxy_coordクラスのインスタン
|
42
|
-
|
43
|
-
ス1つを取り、自分と引数の点との中原となるxy_coordクラスのインスタンスを
|
44
|
-
|
45
|
-
新たに作って返す。自分の座標は変わってはいけない。 また、引数として渡した
|
46
|
-
|
47
|
-
xy_coordクラスのインスタンスの座標も変わってはいけない。
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
copyメソッドとmidpointメソッドを使って作ること
|
52
|
-
|
53
|
-
次に、クラス定義の後に以下の4行を追加し、
|
54
|
-
|
55
|
-
a = xy_coord(0.4, 0.7)
|
56
|
-
|
57
|
-
b = xy_coord(0.8, 0.1)
|
58
|
-
|
59
|
-
c = a.gen_midpoint(b)
|
60
|
-
|
61
|
-
print(a.x, а.у, с.х, с.у)
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
出力が「0.4 0.7 0.6 0.4」 であることを確かめよ。ただし、出力に浮
|
66
|
-
|
67
|
-
動小数点演算の誤差に起因する微細な違いがあってもよい。
|
68
|
-
|
69
|
-
クラスの定義および上記の4行(動作確認のため)を含めること。
|