Разработка мобильного приложения "Симулятор логических схем"
Использование симулятора для облегчения изучения алгебры логики. Основной базис построения вычислительных устройств и систем. Создание логических схем в виртуальной среде. Разработка приложения на языке Kotlin для обучения студентов программированию.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 11.12.2024 |
Размер файла | 1,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru
Восточно-Сибирский государственный университет технологий и управления
Разработка мобильного приложения «Симулятор логических схем»
Рабданова В.В., кандидат экономических наук, доцент
доцент кафедры «Программная инженерия
и искусственный интеллект»
Дугаров В.А., студент 4 курс,
факультет Компьютерных наук и технологий
Россия,г. Улан-Удэ
Аннотация
В данной статье рассматривается разработка мобильного приложения «Симулятор логических схем». Основными этапами в ходе исследования являются: определение логической схемы; определение интерфейса мобильного приложения; реализация работы симулятора логических схем на высокоуровневом языке программирования Kotlin.
Ключевые слова: мобильное приложение, симулятор, логическая схема, математическая логика, теория алгоритмов.
Annotation
This article discusses the development of a mobile application "Logic Circuit Simulator”. The main stages in the course of the study are: definition of a logical circuit; definition of the interface of a mobile application; implementation of the operation of a logic circuit simulator in the high-level Kotlin programming language.
Key words: mobile application, simulator, logic circuit, mathematical logic, theory of algorithms.
В ходе обучения дисциплине «Математическая логика и теория алгоритмов» возникла потребность в разработке мобильного приложения для построения логических схем. Данное приложение -симулятор логических схем - было разработано для облегчения изучения основ алгебры логики. Симулятор обладает средствами визуализации и интуитивно понятным интерфейсом для пользователя. Именно поэтому этот логический симулятор был выбран для подготовки серии практических работ по дисциплине.
Логической схемой называется совокупность логических электронных элементов, соединенных между собой таким образом, чтобы выполнялся заданный закон функционирования схемы, иначе говоря, -- выполнялась заданная логическая функция [1]. Она широко используется в электронике, телекоммуникациях и других сферах для построения вычислительных устройств и систем. программирование симулятор логика виртуальный
Известно, что всякую булеву функцию от n аргументов можно выразить через элементы: конъюнкцию, дизъюнкцию и отрицание, которые составляют так называемый основной базис с технологической точки зрения [2, c .155]. Эти элементы формируют основу для создания сложных цифровых устройств.
Программа реализована на языке Kotlin под платформу Android. Для реализации интерфейса был использован Jetpack Compose. В нем используется декларативный способ задания интерфейса, то есть построение интерфейса происходит непосредственно в коде программы.
Одной из ключевых особенностей программы является возможность виртуального моделирования. Пользователи могут создавать логические схемы в виртуальной среде. В данной работе рассмотрено, как это взаимодействие происходит внутри программы.
Отрисовка логических элементов будет проходить в компоненте Canvas. Также для реализации соединения элементов было решено добавить на входы и выход элемента кнопки, которые будут отвечать за соединение элементов.
Для хранения информации о типах элементов было создано перечисление «COMPONENT_TYPE_CLASS»
Данное перечисление включает такие компоненты как AND, OR, INV, NAND и NOR. Код данного перечисления изображен на рисунке 1.
Рисунок 2. Перечисление типов элементов
Для удобства создания элементов и линий между ними были реализованы следующие интерфейсы и классы.
Интерфейс IComponent содержит в себе информацию о логическом элементе, координаты элемента на форме, информацию о кнопках элемента, и тип элемента. Код интерфейса изображен на рисунке 2.
Рисунок 3. Интерфейс IComponent
Реализацией данного интерфейса является класс MyComponent. Код данного класса изображен на рисунке 3.
Рисунок 4. Реализация интерфейса IComponent
Таким же образом были реализованы другие элементы. На форме были размещены кнопки для добавления элементов. Для хранения элементов был использован список componentList, а для хранения линий между элементами - список lineList. При добавлении элемента в componentList добавляется новый компонент, и переменная elementCount увеличивается на 1. При изменении переменной elementCount вызывается функция DrawElementQ, которая создает элемент на форме.
Для реализации соединения двух элементов линией были использованы две переменные activePoint1 и activePoint2 (рисунок 4). В них записывается нажатый вход/выход и если были нажаты две кнопки, то в LineList добавляются эти кнопки, и переменная lineCount увеличивается на 1 и между ними рисуется линия. Реализация отрисовки линии изображена на рисунках 5, 6.
Рисунок 5. Код добавление элементов в lineList
Рисунок 6. Код отрисовки линий между элементами
Элементы можно перемещать, используя drag-and-drop. Данная функция была реализована с помощью pointerInput и detectDragGestures. Код представлен на рисунке 7.
Рисунок 7. Код реализации drag-and-drop
Пример построенной схемы в приложении изображен на рисунке 8.
Рисунок 8. Пример работы приложения
Разработанное приложение может быть использовано для обучения студентов дисциплинам: «Математическая логика и теория алгоритмов», «Программирование для мобильных устройств».
Мобильное приложение «Симулятор логических схем» становится инструментом, способствующим более широкому пониманию теории алгоритмов и объектно-ориентированного программирования в целом.
Использованные источники
1. Самостоятельное изучение схемотехники. Основные понятия. Часть 1. URL: (дата обращения: 19.12.2023)
2. Оленев А.А., Киричек К.А., Потехина Е.В. Математическая логика: построение логических схем из логических элементов в Maple // Вест. КРАУНЦ. Физ.-мат. науки. 2021. №3. URL: https://cyberleninka.ru/article/n/matematicheskaya-logika-postroenie-logicheskih- shem-iz-logicheskih-elementov-v-maple (дата обращения: 19.12.2023.
3. «Android Studio» // Википедия, свободная энциклопедия [онлайн]. 19.12.2023. URL: http://ru.wikipedia.org/wiki/Android Studio
Размещено на Allbest.ru
...Подобные документы
Проектирование арифметико-логических устройств (АЛУ). Отладка описания логических схем на языке VHDL. Классификация АЛУ по способу представления чисел, характеру использования элементов и узлов. Список стандартных функций АЛУ, его описание на языке VHDL.
лабораторная работа [633,4 K], добавлен 11.03.2014Типовые комбинационные схемы. Основы математического аппарата анализа и синтеза логических устройств. Функциональная полнота элементов Шеффера и Пирса. Логические элементы, образующие логический базис. Особенности синтеза схем с запрещенными комбинациями.
методичка [977,1 K], добавлен 28.04.2009Генератор для входных параметров логических элементов. Ключевые понятия и принципы конструирования функциональных схем электронных устройств. Схемы некоторых устройств компьютера. Творческая мастерская Excel-графики, вентильные сказки братьев Гейтс.
методичка [2,1 M], добавлен 16.03.2014Характеристика графических возможностей пакета MS Excel. Сущность MS Accses. Анализ систем счисления и арифметические операции над ними. Модифицированный, дополнительный и обратный коды. Принципы построения логических схем, изучение логических операций.
курсовая работа [2,3 M], добавлен 25.03.2015Разработка приложения для проверки использования времен глаголов в английском языке. Создание базы данных. Анализ используемых средств для реализации автоматического разбора текста. Проектирование мобильного приложения с помощью диаграмм деятельности.
дипломная работа [2,6 M], добавлен 13.09.2017Изучение инструментальной графической среды программирования промышленных контроллеров и языка программирования FBD. Разработка приложения, реализующего вычисление арифметических и логических выражений. Проверка работы приложения программой "Maple".
контрольная работа [2,2 M], добавлен 26.05.2015Изучение принципа работы цифрового автомата для сложения двоичных чисел, представленных в форме с фиксированной запятой, на базисе алгебры Буля. Правила построения операционных и функциональных схем отдельных устройств, логических систем и функций.
курсовая работа [1,2 M], добавлен 24.01.2014Реализация системы визуального программирования. Выбор технических средств для нее. Варианты использования языка JavaScript. Создание приложения программы-редактора блок-схем и сайта удалённого обучения на основе интерактивной системы обучения Moodle.
дипломная работа [2,2 M], добавлен 07.07.2012Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.
курсовая работа [1,6 M], добавлен 22.06.2011Рaзрaботка программного приложения (синтаксического aнaлизaторa), которое производит проверку синтaксисa простейшей программы на языке С++. Процедура проверки арифметических и логический выражений. Механизм удаления всех фиктивных переменных из программы.
курсовая работа [27,2 K], добавлен 28.06.2011Разработка программного продукта, предназначенного для имитации физического взаимодействия между объектами на основе игрового симулятора. Проектирование программы "LonelySpaceRanger", код которой представлен на языке VisualС++. Разработка интерфейса.
дипломная работа [3,2 M], добавлен 30.11.2011Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.04.2017Разработка трехмерной модели приложения "Гоночный автомобиль" на языке С++ с использованием библиотеки OpenGL и MFC, создание программы в среде Visual Studio 6.0. Информационное обеспечение, логическая структура и функциональная декомпозиция проекта.
курсовая работа [3,9 M], добавлен 29.06.2011Анализ российского рынка мобильных приложений. Мобильное приложение как новый канал коммуникации с целевой аудиторией. Этапы создания мобильного приложения. План продвижения мобильного приложения в сети Интернет. Бесплатные инструменты продвижения.
дипломная работа [1,6 M], добавлен 23.06.2016Проектирование архитектуры и разработка веб-сайта для магазина строительных материалов. Анализ ключевых процессов работы интернет-магазинов, составление схем работы сервиса и схем товарооборота. Проектирование базы данных и бизнес-логики приложения.
курсовая работа [826,4 K], добавлен 09.09.2022Создание многоуровневого приложения с Web-интерфейсом выставления оценки фильму и просмотра оценок других пользователей. Клиентская часть приложения. Разработка многопользовательского веб-приложения на ASP.NET MVC 3 с разграничением доступа к данным.
курсовая работа [949,7 K], добавлен 22.02.2015Разработка приложения, которое будет выполнять функции показа точного времени и точной даты. Определение дополнительных функций разработанного приложения. Рассмотрение основных этапов создания программного продукта. Результаты тестирования приложения.
курсовая работа [2,2 M], добавлен 14.04.2019Изучение логических операций и правил их преобразований. Моделирование цифровых схем, состоящих из логических вентилей. Способы описания работы логического устройства - таблицы истинности, временные диаграммы, аналитические функции, цифровые схемы.
лабораторная работа [2,1 M], добавлен 02.03.2011Основные инструменты построения Web-приложения. Язык сценариев PHP. Системный анализ предметной области базы данных. Коды SQL запросов на создание таблиц. Разработка Web-приложения. Описание функциональности модулей. Система управления содержимым статей.
курсовая работа [4,8 M], добавлен 28.04.2014Анализ игровых жанров для мобильных устройств и целевой аудитории. Разработка концепции игрового приложения, основной механики, меню и интерфейса игры. Описание переменных скриптов. Реализация выбора цели и стрельбы. Настройка работоспособности игры.
дипломная работа [1,4 M], добавлен 19.01.2017