- Назначение программы
- Математическая модель
- Функциональные возможности
- Требования к системе
- Инструкция по запуску
- Инструкция пользователя
- Ограничения и проверка входных данных
- Структура проекта
- Технологии
- Разработчик и лицензия
Программа представляет собой кроссплатформенное приложение для табулирования значений параметрической алгебраической функции и построения её графика. Разработана для автоматизации процесса математического моделирования нелинейных динамических систем с пороговым эффектом, что особенно актуально в инженерном анализе и теоретических исследованиях в сфере автоматического управления.
Основное назначение:
- Автоматическое вычисление значений кусочно-заданной функции на различных интервалах
- Визуализация поведения функции в графическом виде
- Экспорт результатов в различные форматы для последующего анализа
- Исследование влияния параметров на поведение математической модели
Программа реализует вычисление параметрической кусочно-заданной функции, определяемой двумя аналитическими выражениями:
F(x, a) = {
f₁(x, a), при x₁ ≤ x < k∙a
f₂(x, a), при x ≥ k∙a
}
- Первая ветвь (при x < k∙a):
f₁(x, a) = a ∙ √|x + 2a| - Вторая ветвь (при x ≥ k∙a):
f₂(x, a) = a ∙ cos(x + 1) + a
a > 0– параметр функции (положительное число)k– коэффициент выбора вида функцииx₁– начальное значение аргумента функцииN– количество значений функции для табулированияkd– коэффициент для шага изменения аргументаdx = kd ∙ a– фактический шаг изменения аргумента
- Табулирование функции – вычисление N значений функции на заданном интервале
- Графическая визуализация – построение графика функции с выделением различных ветвей
- Валидация входных данных – проверка корректности вводимых параметров
- Интерактивный интерфейс – возможность изменения параметров с мгновенным пересчетом
- Экспорт в TXT – форматированный текстовый отчет с таблицей результатов
- Экспорт в XLSX – структурированные данные в формате CSV с расширением .xlsx
- Автоматическое формирование отчетов – включение метаданных и информации об авторе
- Кроссплатформенность – работа на Windows и macOS
- Реактивный интерфейс – мгновенный отклик на действия пользователя
- Визуальная индикация – цветовое выделение корректных/некорректных данных
- Подробные сообщения об ошибках – точное указание причин некорректного ввода
- Операционная система: Windows 10 (1709), macOS 15 (Sequoia) или новее
- Платформа .NET: .NET 9.0 Runtime (9.0.4 или новее)
- Архитектура: arm64 (для Apple Silicon), x64 (для Windows)
- Память: 4 ГБ оперативной памяти
- Дисковое пространство: 1 ГБ свободного места
- Разрешение экрана: не менее 1280×720 точек
- Операционная система: macOS 26 (Tahoe) или Windows 11
- Память: 8 ГБ оперативной памяти
- Разрешение экрана: 1920×1080 или выше для комфортной работы с графиками
- Процессор: Apple Silicon
- .NET SDK: 9.0.203
- Среда выполнения: .NET 9.0.4
- ОС: macOS 26.0 (Darwin, arm64)
- Рабочая нагрузка: MAUI 9.0.82
- Архитектура: Apple Silicon (arm64)
-
Подготовка среды разработки:
- Убедитесь, что установлен .NET 9.0 SDK или новее
- Проверьте установку рабочей нагрузки MAUI:
dotnet workload install maui
-
Получение исходного кода:
- Скачайте исходный код программы из репозитория
- Распакуйте архив в выбранную директорию
-
Сборка и запуск:
- Откройте командную строку в папке с решением
- Выполните команду восстановления зависимостей:
dotnet restore
- Выполните команду запуска:
dotnet run --project ParametricFunctionApp
-
Загрузка готовой сборки:
- Скачайте готовую сборку программы для вашей платформы
- Распакуйте архив в выбранную директорию
-
Запуск приложения:
- Для Windows: запустите файл
ParametricFunctionApp.exe - Для macOS: запустите файл
ParametricFunctionAppиз папки приложения
- Для Windows: запустите файл
-
Разрешения (для macOS):
- При первом запуске может потребоваться разрешить запуск приложения в настройках безопасности
-
Запуск приложения:
- После запуска откроется главное окно с полями ввода параметров
-
Ввод параметров функции:
- Нажмите кнопку "Ввести" рядом с параметром
aи введите положительное число - Нажмите кнопку "Ввести" рядом с параметром
kи введите коэффициент - Нажмите кнопку "Ввести" рядом с параметром
kdи введите положительное значение шага - Нажмите кнопку "Ввести" рядом с параметром
x₁и введите начальное значение
- Нажмите кнопку "Ввести" рядом с параметром
-
Выполнение расчетов:
- Убедитесь, что все параметры введены корректно (подсвечены зеленым цветом)
- Нажмите кнопку "Рассчитать функцию" для выполнения вычислений
-
Просмотр результатов:
- В правой части окна отобразится таблица рассчитанных значений функции
- В нижней части будет построен график функции с выделением различных ветвей
-
Настройки расчета:
- Нажмите кнопку "Настройки" для изменения количества точек табулирования (1-100)
-
Экспорт результатов:
- Нажмите "Выгрузить в TXT" для сохранения результатов в текстовом формате
- Нажмите "Выгрузить в XLSX" для сохранения в формате, совместимом с Excel
-
Просмотр справки:
- Нажмите кнопку "Справка" для получения информации о программе и разработчике
Программа выполняет строгую проверку входных данных на соответствие математическим ограничениям:
- Параметр a: должен быть положительным числом (
a > 0) - Количество точек N: должно быть целым положительным числом (
N > 0) - Коэффициент шага kd: должен быть положительным (
kd > 0) - Коэффициент k: должен удовлетворять условию
k ∙ a > x₁ - Формат данных: все вещественные параметры должны иметь максимум 1 знак после запятой
- Реактивная проверка: параметры проверяются сразу после ввода
- Визуальная индикация: корректные данные подсвечиваются зеленым, некорректные - оранжевым
- Блокировка расчета: при наличии ошибок кнопка расчета отключается
- Детальные сообщения: для каждой ошибки выводится поясняющее сообщение
- При невыполнении ограничений расчеты не проводятся
- Таблица результатов и график не формируются при ошибках валидации
- Пользователь получает детализированное сообщение о характере ошибки
ParametricFunctionApp/
├── Models/
│ ├── stRecursion.cs # Модель данных для хранения результатов расчета
│ └── AppSettings.cs # Класс для хранения настроек приложения
├── ViewModels/
│ └── MainPageViewModel.cs # Модель представления (логика приложения)
├── Views/
│ ├── MainPage.xaml # Разметка главной формы приложения
│ ├── MainPage.xaml.cs # Логика главной формы
│ ├── SettingsPopup.xaml # Всплывающее окно настроек
│ ├── SettingsPopup.xaml.cs # Логика окна настроек
│ ├── HelpPopup.xaml # Всплывающее окно справки
│ └── HelpPopup.xaml.cs # Логика окна справки
├── Controls/
│ └── GraphDrawable.cs # Класс для отрисовки графика функции
├── Services/
│ ├── INotificationService.cs # Интерфейс службы уведомлений
│ └── NotificationService.cs # Реализация службы уведомлений
├── Interfaces/
│ └── INotificationService.cs # Интерфейсы приложения
├── App.xaml # Ресурсы и стили приложения
├── App.xaml.cs # Точка входа в приложение
└── ParametricFunctionApp.csproj # Файл проекта
- .NET 9.0 (SDK 9.0.203, Runtime 9.0.4)
- MAUI (Multi-platform App UI) - версия 9.0.82
- XAML для описания пользовательского интерфейса
- C# 12.0 для реализации бизнес-логики
- MSBuild 17.13.20 для сборки проекта
- MVVM (Model-View-ViewModel) – для разделения ответственности компонентов
- Reactive Programming – для отзывчивого интерфейса
- Dependency Injection – для управления зависимостями
- Кроссплатформенность – единая кодовая база для Windows и macOS
- Data Binding – двусторонняя привязка данных между UI и логикой
- Custom Controls – пользовательские элементы для построения графиков
- File I/O – работа с файловой системой для экспорта данных
- Поддержка архитектуры arm64 (Apple Silicon)
- Использование loose manifests для установки манифестов
- Автоматическая обработка разрешений для разных платформ
- Оптимизация производительности для нативных платформ
- Автор: Гоглов Максим Алексеевич
- Учебное заведение: Московский автомобильно-дорожный государственный технический университет (МАДИ)
- Институт: Институт транспортных технологий и логистики
- Кафедра: Автоматизированные системы и технологии
- Группа: 3бИТС2
- Дисциплина: Информационные технологии
- Научный руководитель: к.т.н., доцент Шувалова Ирина Сергеевна
- Версия программы: 1.2.0
- Дата выпуска: октябрь 2025
- Сборка: .NET 9.0.203 / MAUI 9.0.82
Программа распространяется для учебных и научно-исследовательских целей. Использование в коммерческих целях требует согласования с автором.
Данная документация актуальна для версии программы 1.2.0 от октября 2025 года.