summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Guschin <saintruler@gmail.com>2021-04-04 21:39:38 +0400
committerAndrew Guschin <saintruler@gmail.com>2021-04-04 21:39:38 +0400
commite9208ade043f2304225d1e1150f57fa31aa49c28 (patch)
tree3e0707caa964c7c6470b3d1779ce0949d81fdee6
parentaf807d85ec70130dc1b28d82b454d11731f932ee (diff)
Добавил 8, 10, 11 задачи по питону
-rw-r--r--python-func/Makefile23
-rw-r--r--python-func/task10.py40
-rw-r--r--python-func/task11.py48
-rw-r--r--python-func/task8.py9
4 files changed, 120 insertions, 0 deletions
diff --git a/python-func/Makefile b/python-func/Makefile
new file mode 100644
index 0000000..9c2a0c3
--- /dev/null
+++ b/python-func/Makefile
@@ -0,0 +1,23 @@
+task8:
+ python3 task8.py
+test8:
+ @printf "" | python3 task8.py
+ @printf "Answer: \n"
+
+task10:
+ python3 task10.py
+test10:
+ @printf "" | python3 task10.py
+ @printf "Answer: \n"
+
+task11:
+ python3 task11.py
+test11:
+ @printf "" | python3 task11.py
+ @printf "Answer: \n"
+
+clean:
+ rm -f *.zip
+
+archive: clean
+ zip archive.zip *.py
diff --git a/python-func/task10.py b/python-func/task10.py
new file mode 100644
index 0000000..8c548e1
--- /dev/null
+++ b/python-func/task10.py
@@ -0,0 +1,40 @@
+from math import sqrt
+
+
+class Point:
+ def __init__(self, x: float, y: float):
+ self.x = x
+ self.y = y
+
+
+def dist(p1: Point, p2: Point) -> float:
+ return sqrt((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2)
+
+
+def solve(points: list[Point]) -> int:
+ cnt = 0
+ for p1 in points:
+ for p2 in points:
+ for p3 in points:
+ if p1 == p2 or p2 == p3 or p3 == p1:
+ continue
+
+ a = dist(p1, p2)
+ b = dist(p2, p3)
+ c = dist(p3, p1)
+
+ if a + b > c and a + c > b and b + c > a:
+ cnt += 1
+ return cnt
+
+
+n = int(input("Введите количество точек: "))
+points = []
+for i in range(n):
+ x, y = map(float, input().split())
+ p = Point(x, y)
+ points.append(p)
+
+res = solve(points)
+print(f"Используя введённые точки можно создать {res} треугольников")
+
diff --git a/python-func/task11.py b/python-func/task11.py
new file mode 100644
index 0000000..cd759fd
--- /dev/null
+++ b/python-func/task11.py
@@ -0,0 +1,48 @@
+from math import sqrt
+
+
+class Point:
+ def __init__(self, x: float, y: float):
+ self.x = x
+ self.y = y
+
+
+def dist(p1: Point, p2: Point) -> float:
+ return sqrt((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2)
+
+
+def area_triangle(p1: float, p2: float, p3: float) -> float:
+ p = (a + b + c) / 2
+ return sqrt(p * (p - a) * (p - b) * (p - c))
+
+
+def solve(a: Point, b: Point, c: Point, d: Point, e: Point) -> float:
+ ab = dist(a, b)
+ ac = dist(a, c)
+ ad = dist(a, d)
+ ae = dist(a, e)
+ bc = dist(b, c)
+ cd = dist(c, d)
+ de = dist(d, e)
+
+ a1 = area_triangle(ab, bc, ac)
+ a2 = area_triangle(ac, cd, ad)
+ a3 = area_triangle(ad, de, ae)
+
+ return a1 + a2 + a3
+
+
+ax, ay = map(int, input("Ax, Ay = ").split())
+bx, by = map(int, input("Bx, By = ").split())
+cx, cy = map(int, input("Cx, Cy = ").split())
+dx, dy = map(int, input("Dx, Dy = ").split())
+ex, ey = map(int, input("Ex, Ey = ").split())
+
+res = solve( Point(ax, ay)
+ , Point(bx, by)
+ , Point(cx, cy)
+ , Point(dx, dy)
+ , Point(ex, ey) )
+
+print(f"Площадь фигуры со введёнными точками равна {res}")
+
diff --git a/python-func/task8.py b/python-func/task8.py
new file mode 100644
index 0000000..923d598
--- /dev/null
+++ b/python-func/task8.py
@@ -0,0 +1,9 @@
+def digit_sum(n: int) -> int:
+ return sum(map(int, str(n)))
+
+print("Счастливые билеты:")
+for i in range(100, 1000):
+ for j in range(100, 1000):
+ if digit_sum(i) == digit_sim(j):
+ print(f"{i}{j}")
+