Metadata-Version: 2.1
Name: logprog_lab1
Version: 1.1.2
Summary: logprog_lab1
Home-page: https://github.com/tesllaaa/logprog_lab1
Author: regina_mikhailova
Author-email: riga157@mail.ru
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE.txt

# Описание проекта

Этот проект реализует структуру данных для работы с атомарными значениями и парами значений, используя абстрактный базовый класс. Он позволяет парсить строковые представления чисел и их комбинаций, выводить их на экран, вычислять сумму всех атомов, среднее значение и минимальное/максимальное отклонение от среднего.

## Структура проекта

### Классы

- **Value (абстрактный класс)**: Определяет интерфейс для всех значений. Содержит абстрактные методы:
  - `out()`: выводит значение.
  - `sum()`: возвращает сумму атомов.
  - `all()`: возвращает список всех атомов.
  - `parse(string: str)`: статический метод для парсинга строки в значение.

- **Atom**: Наследует от класса Value и представляет собой атомарное значение (число). Реализует методы `out()`, `sum()` и `all()`.

- **Pair**: Наследует от класса Value и представляет собой пару значений. Реализует методы `out()`, `sum()` и `all()`.

### Функции

- `average(value)`: Вычисляет среднее значение всех атомов в переданном значении.

- `getDeviation(value)`: Вычисляет минимальное и максимальное отклонение атомов от среднего значения.

- `run(string)`: Парсит строку, выводит распарсенное значение, вычисляет сумму, среднее значение и отклонения.

- `main()`: Основная функция, которая выполняет тесты с различными строками ввода.

## Использование

1. Убедитесь, что у вас установлен Python 3.x.
2. Скопируйте файл.
3. Запустите файл с помощью команды: `python main.py`

## Лицензия

Этот проект лицензирован на условиях MIT License. Подробнее см. файл LICENSE.
