- Rust 100%
| src | ||
| .gitignore | ||
| Cargo.toml | ||
| README.md | ||
Programming Homework - Algorithms in Rust
Описание проекта
Проект содержит решения 29 задач по трем категориям алгоритмов:
- Линейные алгоритмы (10 задач)
- Разветвляющиеся алгоритмы (10 задач)
- Циклические алгоритмы (9 задач)
Проект предназначен для обучения и тренировкам по алгоритмизации и программированию на языке Rust. Каждая задача демонстрирует различные аспекты алгоритмов: от базовых вычислений до сложных циклических конструкций.
Структура проекта
programming_homework_simply/
├── src/
│ ├── warmup/ # Модуль с задачами
│ │ ├── mod.rs # Экспорт модулей
│ │ ├── linear.rs # Линейные алгоритмы (задачи 1-10)
│ │ ├── branching.rs # Разветвляющиеся алгоритмы (задачи 1-10)
│ │ └── cyclic.rs # Циклические алгоритмы (задачи 1-9)
│ └── main.rs # Основной файл с меню
├── Cargo.toml # Конфигурация проекта
├── Cargo.lock # Версии зависимостей
├── README.md # Этот файл
└── .gitignore # Игнорируемые файлы
📋 Список задач
Линейные алгоритмы (10 задач)
- Арифметическая прогрессия - вычисление разности, N-ного члена и суммы
- Сумма членов арифметической прогрессии - по известным членам найти сумму диапазона
- Геометрическая прогрессия - вычисление суммы членов в диапазоне
- Перевод температуры - конвертация Фаренгейтов в Цельсии (451°F)
- Процент троек в классе - статистика оценок
- Вычисление выражения - 100³ - 92² + k
- Тригонометрическое выражение - √((1 - cos(x))/2)
- Медиана треугольника - по трем сторонам
- Биссектриса треугольника - вычисление по формуле
- Высота треугольника - по трем сторонам
Разветвляющиеся алгоритмы (10 задач)
- Кратность числа - проверка делимости на 3
- Вычисление z - по формуле с min/max
- Условное вычисление - выбор между max/min
- Кусочно-заданная функция - f(x) с тремя интервалами
- Тригонометрическая функция - с параметрами a и b
- Функция по графику - треугольный импульс
- Координатная четверть - определение положения точки
- Расстояние до полукруга - геометрическая задача
- Проверка полуплоскости - верхняя/нижняя
- Проверка четности - двух чисел
Циклические алгоритмы (9 задач)
- Количество цифр - подсчет цифр в числе
- Сумма цифр - вычисление суммы цифр
- Поиск цифры 3 - проверка наличия цифры 3
- Перевернуть число - обратный порядок цифр
- Перевернуть число (вариант 2) - альтернативная реализация
- Поменять цифры - первая и последняя
- Подсчет нулей - сколько нулей в числе
- Сравнение суммы квадратов - с самим числом
- Наибольшее число - из последовательности
🚀 Установка и запуск
Предварительные требования
- Установленный Rust (версия 1.70 или выше)
- Git для клонирования репозитория
1.1. Установите Git
- Windows: https://git-scm.com/download/win
- Mac:
brew install git - Linux:
sudo apt install git
1.2. Установите Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
### Команды для запуска
```bash
# Клонирование репозитория
git clone https://github.com/iva0will/programming_homework_simply.git
cd programming_homework_simply
# Сборка проекта
cargo build
# Запуск программы
cargo run
# Запуск в режиме релиза (оптимизированная версия)
cargo run --release
# Проверка компиляции без сборки
cargo check
📖 Использование программы
При запуске программы отображается интерактивное меню:
=== ПРОГРАММИРОВАНИЕ: ВЫПОЛНЕНИЕ ЗАДАНИЙ ===
Выберите категорию заданий:
1. Линейные алгоритмы
2. Разветвляющиеся алгоритмы
3. Циклические алгоритмы
0. Выход
Введите номер категории (0-3):
После выбора категории отображаются доступные задачи. Для каждой задачи программа запрашивает необходимые входные данные и выводит результат с пояснениями.
📚 Генерация документации
Проект содержит подробные документационные комментарии (doc comments), которые можно просмотреть:
# Сгенерировать и открыть документацию
cargo doc --open
# Сгенерировать документацию только для вашего кода
cargo doc --no-deps --open
# Документация будет доступна в target/doc/
Документация включает:
- Описание каждой функции
- Примеры использования
- Математические формулы
- Особые случаи
🎯 Цели обучения
- Освоение базового синтаксиса Rust - переменные, типы данных, функции
- Работа с пользовательским вводом/выводом - чтение и обработка данных
- Реализация математических алгоритмов - прогрессии, геометрические вычисления
- Управляющие конструкции - условные операторы, циклы
- Модульная организация кода - разделение на модули
- Документирование кода - использование rustdoc
- Работа с системой сборки Cargo - управление зависимостями
🔧 Дополнительные команды
# Форматирование кода (стандартный стиль Rust)
cargo fmt
# Статический анализ кода
cargo clippy
# Запуск тестов (если добавлены)
cargo test
# Очистка сборочных файлов
cargo clean
# Создание нового проекта
cargo new название_проекта
📊 Пример работы программы
=== ПРОГРАММИРОВАНИЕ: ВЫПОЛНЕНИЕ ЗАДАНИЙ ===
Выберите категорию заданий:
1. Линейные алгоритмы
2. Разветвляющиеся алгоритмы
3. Циклические алгоритмы
0. Выход
Введите номер категории (0-3): 1
=== ЛИНЕЙНЫЕ АЛГОРИТМЫ ===
Доступные задачи: 1-10
Введите номер задачи или 0 для возврата: 1
Задача 1: Арифметическая прогрессия
Известны первый и пятый члены прогрессии
Найти величину члена прогрессии с номером N и сумму членов
Введите первый член прогрессии (a1): 2
Введите пятый член прогрессии (a5): 10
Введите номер N: 10
Результат:
Разность прогрессии d = 2.0000
Члены прогрессии a10 = 20.0000
Сумма первых 10 членов S10 = 110.0000
📄 Лицензия
Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
Примечание: Этот проект является учебной работой и предназначен для демонстрации навыков программирования на Rust. Все задачи реализованы с акцентом на читаемость кода и детальное документирование.