---
tags: 勤益課程
title: 1101小考2
---
<style>
.emp {color:red}
.info {color:green}
</style>
# 第二次小考
## 1101 Scripting 程式語言
:::info
注意事項
- 請在完成下列題目後,將檔案存放在以學號命名的目錄,壓縮後上傳至:arrow_right: [Dropbox 雲端](https://www.dropbox.com/request/BPCGV1FAa1MG9emcCF5Q)
- 上傳時限為 10/30(六) 24:00以前,逾期視同未交。
- 請勿以任何形式抄襲其它同學的答案,若有發現,所有人一律0分。
- 若有參考網路上之程式碼,請於程式中註明出處,避免如上的抄襲疑慮。
:::
# 題目:三角形重心計算
請撰寫一個名為 triangle_zhonxin(a,b,c) 的求三角形重心函數,將之放在 pack 套件(目錄)下的 modu 模組(檔案)中,以提供其它程式呼叫使用。
![](https://i.imgur.com/Chhcn63.png)
設三點為 A(x1,y1)、B(x2,y2)、C(x3,y3)
求重心 G 點的座標 (x,y)
三角形的重心公式如下:
> x=(x1+x2+x3)/3
> y=(y1+y2+y3)/3
#### 執行畫面
參考1:
```=shell
D:\py1101>py quiz2.py
請輸入三角形的3個頂點坐標
------------------------------
請輸入頂點a的坐標:1,1
請輸入頂點b的坐標:2,2
請輸入頂點c的坐標:3,3
------------------------------
此三角形的重心為:(2, 2)
```
參考2:
```=shell
D:\py1101>py quiz2.py
請輸入三角形的3個頂點坐標
------------------------------
請輸入頂點a的坐標:5,8
請輸入頂點b的坐標:9,11
請輸入頂點c的坐標:13,19
------------------------------
此三角形的重心為:(9, 13)
```
## 提示
- 三個頂點坐標的輸入,需各自轉為 tuple
- 輸入字串中的逗號(,)可用字串的split()方法拆開
- tuple() 方法可轉成 tuple 容器形態
- 呼叫 pack 套件下 modu 模組的 triangle_zhonxin 函數,需傳入 a,b,c 三個 tuple 變數<span class='info'>(白話:沒有pack目錄,pack目錄下沒有modu.py的話就是錯的)</span>
- triangle_zhonxin 函數需回傳重心的坐標,該坐標也是一個 tuple 變數
- 整數經由除法計算後會變成浮點數
- 坐標計算後若有小數點,<span class='info'>請利用 round()四捨五入到整數</span>
- 最後顯示重心坐標需使用F字串進行顯示
# 解答
## quiz2.py
```python=
import pack.modu as lib
print('請輸入三角形的3個頂點坐標')
print('-'*30)
a=input("請輸入頂點a的坐標:")
b=input("請輸入頂點b的坐標:")
c=input("請輸入頂點c的坐標:")
a = tuple(int(x) for x in a.split(","))
b = tuple(int(x) for x in b.split(","))
c = tuple(int(x) for x in c.split(","))
zhonxi_coordinate = lib.triangle_zhonxin(a, b, c)
print('-'*30)
print(f'此三角形的重心為:{zhonxi_coordinate}')
```
## pack/modu.py
```python=
def triangle_zhonxin(a, b, c):
x = round((a[0]+b[0]+c[0])/3)
y = round((a[1]+b[1]+c[1])/3)
return (x,y)
```