第1关:弧田术

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 请在下面补充你的代码
import math


def calculate_area(chord_length, sagitta):
area = 1 / 2 * (chord_length * sagitta + sagitta**2)
return area


chord_length1 = 30
sagitta1 = 15
area1 = calculate_area(chord_length1, sagitta1)

chord_length2 = 78 + 1 / 2
sagitta2 = 13 + 7 / 9
area2 = calculate_area(chord_length2, sagitta2)

area1_acres = int(area1 / 240)
area1_square_steps = area1 % 240

area2_acres = int(area2 / 240)
area2_square_steps = area2 % 240

print(f"弓形田地面积为{area1_acres}亩零{area1_square_steps:.2f}平方步")
print(f"弓形田地面积为{area2_acres}亩零{area2_square_steps:.2f}平方步")

第2关:弧田术计算弓形面积

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 请在下面补充你的代码
import math


def calculate_area(chord_length, sagitta):
area = 1 / 2 * (chord_length * sagitta + sagitta**2)
return area


chord_length = float(input())
sagitta = float(input())

area = calculate_area(chord_length, sagitta)
area_acres = int(area / 240)
area_square_steps = area % 240

print(f"弓形田地面积为{area_acres}亩零{area_square_steps:.2f}平方步")

第3关:弓形面积计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import math


def calculate_area(chord_length, sagitta):
area = 1 / 2 * (chord_length * sagitta + sagitta**2)
return area


chord_length = float(input())
sagitta = float(input())

area = calculate_area(chord_length, sagitta)
area_acres = int(area / 240)
area_square_steps = area % 240

print(f"弧田法计算弓形田地面积为{area_acres}亩零{area_square_steps:.2f}平方步")

AB = chord_length
CD = sagitta

AD = AB / 2
OA = (AD**2 + CD**2) / (2 * CD)

AOB = 2 * math.asin(AD / OA)
sector = (AOB / (2 * math.pi)) * math.pi * OA**2

triangle = (1 / 2) * OA**2 * math.sin(AOB)

area_of_arch = sector - triangle


print(f"现代方法计算弓形田地面积为{int(area_of_arch/240)}亩零{area_of_arch% 240:.2f}平方步")

第4关:宛田术

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import math


def calculate_area(chord, radius):
mu = chord * radius / 4
mu_int = int(mu / 240)
mu_decimal = mu % 240
return f"宛田法计算扇形田地面积为{mu_int}亩零{mu_decimal:.2f}平方步"


chord = float(input())
radius = float(input())

result = calculate_area(chord, radius)
print(result)

第5关:会圆术

1
2
3
4
5
6
7
8
9
10
11
12
radius = 2
height_of_arc = 2 - 3**0.5
chord = 2
length_of_arc = chord + height_of_arc**2 / radius

a = (11 - 3 * 3**0.5) / 2
b = (11 - 4 * 3**0.5) / 2
c = (9 - 3 * 3**0.5) / 2
d = (9 - 4 * 3**0.5) / 2

print(f"a={a:.4f},b={b:.4f},c={c:.4f},d={d:.4f}")
print(f"会圆法计算弧长为{length_of_arc:.4f}")

第6关:弧长计算

1
2
3
4
5
6
7
8
# 请在下面补充你的代码
import math

radius = int(input())
central_angle = int(input())
length_of_arc = central_angle * radius * math.pi / 180

print(f"弧长为{length_of_arc:.2f}")