Skip to content
This repository was archived by the owner on Oct 24, 2025. It is now read-only.

Параметрическая функция с 3-го курса университета МАДИ направление "ИТС" 2025

Notifications You must be signed in to change notification settings

MaxGog/ParametricFunctionApp

Repository files navigation

Программа для табулирования параметрической функции и построения графика

Оглавление

Назначение программы

Программа представляет собой кроссплатформенное приложение для табулирования значений параметрической алгебраической функции и построения её графика. Разработана для автоматизации процесса математического моделирования нелинейных динамических систем с пороговым эффектом, что особенно актуально в инженерном анализе и теоретических исследованиях в сфере автоматического управления.

Основное назначение:

  • Автоматическое вычисление значений кусочно-заданной функции на различных интервалах
  • Визуализация поведения функции в графическом виде
  • Экспорт результатов в различные форматы для последующего анализа
  • Исследование влияния параметров на поведение математической модели

Математическая модель

Программа реализует вычисление параметрической кусочно-заданной функции, определяемой двумя аналитическими выражениями:

Общая форма функции:

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)

Инструкция по запуску

Вариант 1: Запуск из исходного кода

  1. Подготовка среды разработки:

    • Убедитесь, что установлен .NET 9.0 SDK или новее
    • Проверьте установку рабочей нагрузки MAUI:
      dotnet workload install maui
  2. Получение исходного кода:

    • Скачайте исходный код программы из репозитория
    • Распакуйте архив в выбранную директорию
  3. Сборка и запуск:

    • Откройте командную строку в папке с решением
    • Выполните команду восстановления зависимостей:
      dotnet restore
    • Выполните команду запуска:
      dotnet run --project ParametricFunctionApp

Вариант 2: Запуск собранного приложения

  1. Загрузка готовой сборки:

    • Скачайте готовую сборку программы для вашей платформы
    • Распакуйте архив в выбранную директорию
  2. Запуск приложения:

    • Для Windows: запустите файл ParametricFunctionApp.exe
    • Для macOS: запустите файл ParametricFunctionApp из папки приложения
  3. Разрешения (для macOS):

    • При первом запуске может потребоваться разрешить запуск приложения в настройках безопасности

Инструкция пользователя

Основной рабочий процесс:

  1. Запуск приложения:

    • После запуска откроется главное окно с полями ввода параметров
  2. Ввод параметров функции:

    • Нажмите кнопку "Ввести" рядом с параметром a и введите положительное число
    • Нажмите кнопку "Ввести" рядом с параметром k и введите коэффициент
    • Нажмите кнопку "Ввести" рядом с параметром kd и введите положительное значение шага
    • Нажмите кнопку "Ввести" рядом с параметром x₁ и введите начальное значение
  3. Выполнение расчетов:

    • Убедитесь, что все параметры введены корректно (подсвечены зеленым цветом)
    • Нажмите кнопку "Рассчитать функцию" для выполнения вычислений
  4. Просмотр результатов:

    • В правой части окна отобразится таблица рассчитанных значений функции
    • В нижней части будет построен график функции с выделением различных ветвей

Дополнительные функции:

  1. Настройки расчета:

    • Нажмите кнопку "Настройки" для изменения количества точек табулирования (1-100)
  2. Экспорт результатов:

    • Нажмите "Выгрузить в TXT" для сохранения результатов в текстовом формате
    • Нажмите "Выгрузить в XLSX" для сохранения в формате, совместимом с Excel
  3. Просмотр справки:

    • Нажмите кнопку "Справка" для получения информации о программе и разработчике

Ограничения и проверка входных данных

Программа выполняет строгую проверку входных данных на соответствие математическим ограничениям:

Ограничения параметров:

  • Параметр 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 года.

About

Параметрическая функция с 3-го курса университета МАДИ направление "ИТС" 2025

Topics

Resources

Stars

Watchers

Forks

Languages