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
20 changes: 20 additions & 0 deletions circle.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,29 @@


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

>>> area(2)
12,57
'''
return math.pi * r * r


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

>>> area(2)
12,57
'''
return 2 * math.pi * r

97 changes: 87 additions & 10 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,87 @@
# Math formulas
## Area
- Circle: S = πR²
- Rectangle: S = ab
- Square: S = a²

## Perimeter
- Circle: P = 2πR
- Rectangle: P = 2a + 2b
- Square: P = 4a
# Математические формулы

## Площадь
- **Круг:** Площадь S вычисляется по формуле S = \pi * R^2 , где R — радиус круга.
- **Прямоугольник:** Площадь S вычисляется по формуле S = a*b , где a и b — длины сторон прямоугольника.
- **Квадрат:** Площадь S вычисляется по формуле S = a^2 , где a — длина стороны квадрата.

## Периметр
- **Круг:** Длина окружности (периметр) C вычисляется по формуле C = 2 \pi * R , где R — радиус.
- **Прямоугольник:** Периметр P вычисляется по формуле P = 2*(a + b) , где a и b — длины сторон прямоугольника.
- **Квадрат:** Периметр P вычисляется по формуле P = 4*a, где a — длина стороны квадрата.

# Библиотека Geometric

Эта библиотека для языка Python позволяет вычислять площадь и периметр базовых геометрических фигур, включая круги, прямоугольники, квадраты и треугольники.

## Круг

### Используемые формулы
- **Площадь**: S = \pi * R^2 , где R — радиус.
- **Периметр (длина окружности)**: C = 2 * pi * R , где R — радиус.

### Функции
- `area(r)` — Принимает радиус r (int или float) и возвращает площадь (float).
- Пример:
- **Вход**: 3
- **Выход**: 28.274333882308138
- `perimeter(r)` — Принимает радиус r (int или float) и возвращает длину окружности (float).
- Пример:
- **Вход**: 3
- **Выход**: 18.84955592153876

## Прямоугольник

### Используемые формулы
- **Площадь**: S = a*b , где a и b — длины сторон.
- **Периметр**: P = 2*(a + b) , где a и b — длины сторон.

### Функции
- `area(a, b)` — Принимает длины сторон a и b (int или float) и возвращает площадь (float).
- Пример:
- **Вход**: 2, 3
- **Выход**: 6
- `perimeter(a, b)` — Принимает длины сторон a и b (int или float) и возвращает периметр (float).
- Пример:
- **Вход**: 2, 3
- **Выход**: 10

## Квадрат

### Используемые формулы
- **Площадь**: S = a^2 , где a — длина стороны.
- **Периметр**: P = 4*a , где a — длина стороны.

### Функции
- `area(a)` — Принимает длину стороны a (int или float) и возвращает площадь (float).
- Пример:
- **Вход**: 3
- **Выход**: 9
- `perimeter(a)` — Принимает длину стороны a (int или float) и возвращает периметр (float).
- Пример:
- **Вход**: 3
- **Выход**: 12

## Треугольник

### Используемые формулы
- **Площадь**: S = (a*h)/2 , где a — основание, а h — высота, опущенная на него.
- **Периметр**: P = a + b + c , где a , b и c — длины сторон.

### Функции
- `area(a, h)` — Принимает основание a и высоту h (int или float) и возвращает площадь (float).
- Пример:
- **Вход**: 3, 2
- **Выход**: 3
- `perimeter(a, b, c)` — Принимает длины сторон a , b и c (int или float) и возвращает периметр (float).
- Пример:
- **Вход**: 1, 2, 3
- **Выход**: 6
## История изменения проекта
- (**0be8197**) add documentation with MarkDown in README.md В историю документа добавлен коммит с Unit тестами.
- (**1bb3d11**) Добавлен файл test_example.py с Unit тестами, проверяющими работу функций Triangle.py и Circle.py
- (**d2c7bb8**) Пустой коммит
- (**21c01b5**) add documentation with MarkDown in README.md - Добавлена общая документация проекта в README.md с общим описанием решения, описанием каждой функции, примерами вызова и историей изменения проекта с хэшами коммитов.
- (**69604b0**) add documentation of functions - Комментирование декларирования функции в файлах проекта с примерами вызова.
- (**58a4c92**) fixed bug in rect - Исправление ошибки в файле rectangle.py
- (**2ce8dbe**) add new file rectangle.py - Добавление файла rectangle.py
27 changes: 27 additions & 0 deletions rectangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
def area(a, b):
'''
Возвращает площадь прямоугольника со сторонами a, b.
Параметры:
a (int или float): одна сторона прямоугольника.
b (int или float): другая стороная прямоугольника.
Возвращаемое значение:
int или float: площадь прямоугольника со сторонами a, b.

>>> area(4, 3)
12
'''
return a * b

def perimeter(a, b):
'''
Возвращает периметр прямоугольника со сторонами a, b.
Параметры:
a (int или float): одна сторона прямоугольника.
b (int или float): другая стороная прямоугольника.
Возвращаемое значение:
int или float: периметр прямоугольника со сторонами a, b.

>>> area(7, 3)
20
'''
return 2*a + 2*b
20 changes: 20 additions & 0 deletions square.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,27 @@

def area(a):
'''
Возвращает площадь квадрата со стороной a.
Параметры:
a (int или float): сторона квадрата.
Возвращаемое значение:
int или float: площадь квадрата со стороной a.

>>> area(2)
4
'''
return a * a


def perimeter(a):
'''
Возвращает периметр квадрата со стороной a.
Параметры:
a (int или float): сторона квадрата.
Возвращаемое значение:
int или float: периметр квадрата со стороной a.

>>> area(1)
4
'''
return 4 * a
61 changes: 61 additions & 0 deletions test_example.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import unittest
import math
from triangle import area as triangle_area
from triangle import perimeter as triangle_perimeter
from circle import area as circle_area
from circle import perimeter as circle_perimeter

class TriangleTestCase(unittest.TestCase):

def test_area_positive_numbers(self):
res = triangle_area(2, 3)
self.assertEqual(res, 3)

def test_area_negative_numbers(self):
res = triangle_area(-1, -1)
self.assertEqual(res, 0.5)

def test_area_zero(self):
res = triangle_area(0, 0)
self.assertEqual(res, 1)

def test_perimeter_positive_numbers(self):
res = triangle_perimeter(2, 3, 4)
self.assertEqual(res, 9)

def test_perimeter_negative_numbers(self):
res = triangle_perimeter(-2, -3, -6)
self.assertEqual(res, -11)

def test_perimeter_zero(self):
res = triangle_perimeter(0, 0, 0)
self.assertEqual(res, 0)

class CircleTestCase(unittest.TestCase):

def test_area_positive_numbers(self):
res = circle_area(2)
self.assertAlmostEqual(res, math.pi * (2 ** 2))

def test_area_negative_numbers(self):
res = circle_area(-1)
self.assertEqual(res, math.pi)

def test_area_zero(self):
res = circle_area(0)
self.assertEqual(res, 0)

def test_perimeter_positive_numbers(self):
res = circle_perimeter(2)
self.assertEqual(res, 4*math.pi)

def test_perimeter_negative_numbers(self):
res = circle_perimeter(-2)
self.assertEqual(res, 4*math.pi)

def test_perimeter_zero(self):
res = circle_perimeter(0)
self.assertEqual(res, 0)

if __name__ == '__main__':
unittest.main()
28 changes: 28 additions & 0 deletions triangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
def area(a, h):
'''
Возвращает площадь треугольника по стороне и высоте, проведенной к высоте.
Параметры:
a (int или float): сторона треугольника.
h (int или float): высота, проведенная к данной стороне.
Возвращаемое значение:
int или float: площадь треугольника со стороной a и высотой h, проведенной к стороне.

>>> area(3, 2)
3
'''
return a * h / 2

def perimeter(a, b, c):
'''
Возвращает периметр треугольника со сторонами a, b, c.
Параметры:
a (int или float): первая сторона треугольника.
b (int или float): вторая сторона треугольника.
c (int или float): третья сторона треугольника.
Возвращаемое значение:
int или float: периметр треугольника со сторонами a, b, c.

>>> area(3, 3, 3)
9
'''
return a + b + c