Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/geometric_lib.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added __pycache__/circle.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/rectangle.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/square.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/test.cpython-310.pyc
Binary file not shown.
Binary file added __pycache__/triangle.cpython-310.pyc
Binary file not shown.
38 changes: 36 additions & 2 deletions circle.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,44 @@
import math
''' позволяет получить значение pi'''

def CircleArea(r):
'''
Принимает одно число (радиус круга) и возвращает его значение возведенное в квадрат и умноженное на pi т.е. площадь круга
Параметры:
x (int): натуральное число

Возвращаемое значение:
значение числа x возведенное в квадрат и умноженное на pi (float)

def area(r):
Пример работы:
input: 3
output: 9*pi

'''

if r <= 0:
return "error"
return math.pi * r * r


def perimeter(r):
def CirclePerimeter(r):
'''
Принимает одно число (радиус круга) и возвращает его значение умноженное на два и умноженное на pi т.е. периметр круга
Параметры:
x (int): натуральное число

Возвращаемое значение:
удвоенное значение числа x и умноженное на pi (float)


Пример работы:
input: 3
output: 6*pi

'''

if r <= 0:
return "error"

return 2 * math.pi * r

145 changes: 144 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,151 @@
- Circle: S = πR²
- Rectangle: S = ab
- Square: S = a²
- Triangle: S = a*h/2

## Perimeter
- Circle: P = 2πR
- Rectangle: P = 2a + 2b
- Square: P = 4a
- Square: P = 4a
- Triangle: P = a + b + c

# Описание Решения
В зависимости от исходной фигуры на вход подаются определенные данные, проанализировав которые, мы сможем определить площадь и периметр фигуры

# Описание каждой функции
## Функция area
она получает на вход несколько чилел:
- для прямоугольника - 2, функция возвращает произведение этих двух чисел (его сторон)
- для треугольника - 2, функция возвращает поизведение его стороны на высоту, деленное на два
- для квадрата - 1, функция возвращает квадрат его стороны
- для круго - 1, функция возвращеет квадрат его радиуса, умноженный на pi
### Примеры:
- дан прямоугольник со сторонами 4 и 8, функция выведет их произведение = 32
- дан треугольник со стороной 4 и высотой 8, функция выведет их произведение, деленное пополам = 16
- дан квадрат со стороной 5, функция выведет значение равное квадрату его стороны = 25
- дан круг с радиусом 5, функция выведет знаяение равное квадрату радиуса, умноженное на pi = 25*pi

## Функция perimeter
она получает на вход 2 или 3 числа:
- для прямоугольника - 2, и возвращает их удвоенную сумму
- для треугольника - 3, и возвращает их сумму
- для квадрата - 1, и возвращает его значение, умноженное на 4
- для круга - 1, и возвращает его удвоенное значение умноженное на pi
### Примеры:
- дан прямоугольник со сторонами 4 и 8, функция выведет их удвоенную сумму = 24
- дан треугольник со сторонами 4, 8, 7, функция выведет их сумму = 19
- дан квадрат со стороной 5, функция выведет значение стороны, умноженное на 4 = 20
- дан круг с радиусом 5, функция выведет его удвоенное значение умноженное на pi = 10*pi

## Библиотека math
для выполнения математических и не только операций(в нашем случае для добавления значения pi)

# [Unittest](../test.py)

## CircleTestCase - test_area

### self.assertAlmostEqual(SquareArea(2), math.pi * 2 * 2, точность=5)
> Проверяет вычисление площади круга с радиусом 2.
### self.assertAlmostEqual(SquareArea(0), "error")
> Проверяет вычисление площади круга с радиусом 0. Выводится **error**
### self.assertAlmostEqual(SquareArea(9223372036854775807), math.pi * 9223372036854775807 ** 2, точность=5)
> Проверяет вычисление площади круга с очень большим радиусом, `9223372036854775807`.
### self.assertAlmostEqual(SquareArea(-8), "error")
> Проверяет обработку отрицательного радиуса при вычислении площади. Выводится **error**.
---

## CircleTestCase - test_perimeter

### self.assertAlmostEqual(SquarePerimeter(2), 2 * math.pi * 2, точность=5)
> Проверяет вычисление периметра окружности с радиусом 2.
### self.assertAlmostEqual(SquarePerimeter(0), "error")
> Проверяет, что периметр окружности с радиусом 0 равен 0. Выводится **error**
### self.assertAlmostEqual(SquarePerimeter(9223372036854775807), 2 * math.pi * 9223372036854775807, точность=5)
> Проверяет вычисление периметра окружности с очень большим радиусом.
### self.assertAlmostEqual(SquarePerimeter(-6), "error")
> Проверяет обработку отрицательного радиуса при вычислении периметра. Выводится **error**.
---

## RectangleTestCase - test_area

### self.assertEqual(RectangleArea(-2, -6), "error")
> Проверяет прямоугольную область с отрицательными размерами. Выводится **error**
### self.assertEqual(RectangleArea(0, 5), "error")
> Проверяет, что площадь прямоугольника с одной стороной, равной 0, равна 0. Выводится **error**
### self.assertEqual(RectangleArea(7, 2), 14)
> Проверяет вычисление площади прямоугольника со сторонами 7x2; ожидается 14.
### self.assertEqual(RectangleArea(9223372036854775807, 9223372036854775807), 9223372036854775807 ** 2)
> Проверяет расчет площади для очень больших размеров прямоугольника.
---

## RectangleTestCase - test_perimeter

### self.assertEqual(RectanglePerimeter(-2, -6), "error")
> Проверяет вычисление периметра прямоугольника с отрицательными размерами. Выводится **error**
### self.assertEqual(RectanglePerimeter(0, 5), "error")
> Проверяет вычисление периметра с одной стороной, равной 0. Выводится **error**
### self.assertEqual(RectanglePerimeter(7, 2), 18)
> Проверяет расчёт периметра прямоугольника со сторонами 7 и 2.
### self.assertEqual(RectanglePerimeter(9223372036854775807, 9223372036854775807), 9223372036854775807*2 + 9223372036854775807*2)
> Проверяет расчет периметра для очень больших размеров прямоугольника.
---

## SquareTestCase - test_area

### self.assertEqual(SquareArea(-5), "error")
> Проверяет вычисление площади квадрата с отрицательной длиной стороны. Выводится **error**
### self.assertEqual(SquareArea(0), "error")
> Проверяет вычисление площади квадрата со стороной 0. Выводится **error**
### self.assertEqual(SquareArea(9223372036854775807), 9223372036854775807 * 9223372036854775807)
> Проверяет расчёт площади квадрата с очень большой длиной стороны.
### self.assertEqual(SquareArea(10), 100)
> Проверяет расчёт площади квадрата со стороной 10.
---

## SquareTestCase - test_perimeter

### self.assertEqual(SquarePerimeter(-5), "error")
> Проверяет вычисление периметра квадрата с отрицательной длиной стороны. Выводится **error**
### self.assertEqual(SquarePerimeter(0), "error")
> Проверяет вычисление периметра квадрата со стороной 0. Выводится **error**
### self.assertEqual(SquarePerimeter(9223372036854775807), 9223372036854775807 * 4)
> Проверяет расчёт периметра для квадрата с очень большой длиной стороны.
### self.assertEqual(SquarePerimeter(10), 40)
> Проверяет расчёт периметра квадрата со стороной 10.
---

## TriangleTestCase - test_area

### self.assertEqual(TriangleArea(-4, -5), "error")
> Проверяет площадь треугольника с отрицательным основанием и высотой. Выводится **error**
### self.assertEqual(TriangleArea(3, 6), 9)
> Проверяет вычисление площади треугольника с основанием 3 и высотой 6.
### self.assertEqual(TriangleArea(9223372036854775807, 2), 9223372036854775807 * 2 / 2)
> Проверяет вычисление площади для треугольника с очень большим основанием.
### self.assertEqual(TriangleArea(7, 8), 28)
> Проверяет расчёт площади треугольника с основанием 7 и высотой 8.
---

## TriangleTestCase - test_perimeter

### self.assertEqual(TrianglePerimeter(-4, -5, -6), "error")
> Проверяет вычисление периметра треугольника с отрицательными длинами сторон. Вывод **error**.
### self.assertEqual(TrianglePerimeter(3, 4, 5), 12)
> Проверяет вычисление периметра треугольника со сторонами 3, 4, 5.
### self.assertEqual(TrianglePerimeter(6, 8, 15), "error")
> Проверяет расчёт периметра треугольника со сторонами 6, 8, 15. Проверка на a + b > c Выводится **error**
### self.assertEqual(TrianglePerimeter(9223372036854775807, 9223372036854775807, 9223372036854775807), 9223372036854775807 * 3)
> Проверяет вычисление периметра треугольника с очень большими сторонами.

# История изменений проекта
Добавил новый файл - rectangle.py
commit e3db881c2c48f7f52e02b5d80a4be8fb1cfcbf98

Добавил новый файл - triangle.py
commit 9eae82cb57b69572687850567dfe7786ce6909df

Исправил ошибку в файле - rectangle.py
commit c4bd0023306e8cac552cf2e898c65c58bd67d9d3

Добавил комментарии во все файлы
commit 63079e254410c3be3b922b5df0a82a61a447e5e0
40 changes: 40 additions & 0 deletions rectangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
def RectangleArea(x, y):
'''
Принимает два числа(стороны прямугольника) и возвращает их произведение т.е. площадь прямоугольника
Параметры:
x (int): первое натуральное число
y (int): второе натуральное число

Возвращаемое значение:
произведение x и y (int)

Пример работы:
input: 2, 5
output: 10
'''

if x <= 0 or y <= 0:
return "error"

return x * y


def RectanglePerimeter(x, y):
'''
Принимает два числа(стороны прямугольника) и возвращает их удвоенную сумму т.е. периметр прямоугольника
Параметры:
x (int): первое натуральное число
y (int): второе натуральное число

Возвращаемое значение:
удвоенная сумма x и y (int)

Пример работы:
input: 2, 5
output: 14
'''

if x <= 0 or y <= 0:
return "error"

return (x + y) * 2
41 changes: 37 additions & 4 deletions square.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,40 @@
def SquareArea(x):
'''
Принимает одно число(сторону квадрата) и возвращает его произведение само на себя т.е. площадь квадрата
Параметры:
x (int): натуральное число

def area(a):
return a * a
Возвращаемое значение:
квадрат числа x (int)

Пример работы:
input: 7
output: 49

'''

if x <= 0:
return "error"

return x * x

def SquarePerimeter(x):
'''
Принимает одно число (сторону квадрата) и возвращает его значение умноженное на 4 т.е. периметр квадрата
Параметры:
x (int): натуральное число

Возвращаемое значение:
значение числа x умноженное на 4 (int)

Пример работы:
input: 7
output: 28

'''

if x <= 0:
return "error"

return 4 * x

def perimeter(a):
return 4 * a
Loading