Файл: Разработка модуля для выполнения операций с натуральными числами в 16-ричной системе счисления.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 15.06.2023

Просмотров: 147

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Некоторые атрибуты позволяют менять внешний вид объектов. Хотя это скорее рудиментарный инструмент, оставшийся со времен, когда разметка документа отвечала еще и за его стиль:

  • <html bgcolor="black" text="white"> … </html> - поменяет цвет фона документа на черный, а цвет текста на белый

В настоящее время стиль документа определяется иным способом, речь о котором пойдет чуть позже.

Теперь нужно определить, какие элементы управления должны присутствовать в пользовательском интерфейсе модуля, и с помощью каких объектов их можно реализовать:

  • Дисплей. Его роль будет играть объект «текстовое поле» с отключенной возможностью ввода текста пользователем. Размещается с помощью тега <input type="textbox">;
  • Кнопки. Размещаются с помощью тега <button> … </button>.

Очень полезной окажется возможность переключаться в другую систему счисления (например, двоичную) и переводить в нее результат. Для реализации такого переключателя подойдет объект «выпадающее меню» размещаемое с помощью тега <select> … </select>.

Если абстрагироваться от реальной структуры документа, итоговый результат разметки можно представить в виде дерева объектов:

  • Тело HTML-документа
    • Блочный элемент (контейнер)
      • Текстовое поле
      • Кнопки для ввода цифр
      • Кнопки для выполнения операций
      • Переключатель системы счисления

Подобная структура проста для понимания и с ней легко работать. Важно понимать, что простота не является минусом, и что важно стараться её соблюдать, для обеспечения удобства дальнейшей поддержки разрабатываемого продукта (даже такого простого).

Открыв получившийся HTML документ в web-браузере, можно наблюдать невзрачный, и не слишком дружественный набор элементов управления (рисунок 2). Подобный интерфейс нельзя назвать законченным, и выглядит он мягко говоря плохо. Но большего от одного лишь HTML не добиться, его задача здесь выполнена.

Рисунок 2

Далее в дело вступают каскадные таблицы стилей – CSS. Этот формальный язык используется для описания стиля документа и составляющих его объектов: отступы, положение, размеры, цвета, анимацию и прочие свойства можно изменить с помощью определенного набора правил.

HTML позволяет размещать CSS правила несколькими способами:

  • в головной части или в теле документа внутри тега парного <style>;
  • в теле документа, в открывающем теге конкретного объекта;
  • в виде отдельного файла, подключаемого с помощью тега <link>, размещенного в головной части документа.

В большинстве случаев используется последний способ, так как он позволяет логически отделить стиль документа от его структуры.

Каждое правило CSS записываются следующим образом:

селектор {

свойство: значение;

свойство: значение

}

селектор {

свойство: значение;

свойство: значение

}

Как видно из примера, правило состоит из двух основных частей:

  • Селектор. Определяет на какие объекты распространяется правило;
  • Блок объявлений. Помещается в фигурные скобки и состоит из одного или более объявлений, разделенных знаком «;». Каждое объявление состоит из пары «свойство:значение».

В список базовых селекторов, поддерживаемых абсолютным большинством браузеров, входят:

  • * – применяется ко всем объектам;
  • тег – применяется ко всем экземплярам тега;
  • тег[атрибут="значение"] – применяется ко всем экземплярам тега с заданным значением атрибута;
  • .класс – применяется ко всем объектам с заданным атрибутом класса (class="класс");
  • #идентификатор – применяется к объекту с заданным уникальным идентификатором (id="идентификатор").

CSS позволяет применять один блок объявлений для нескольких селекторов, в таком случае их следует группировать у одного блока, разделив запятой. Селекторы также можно комбинировать друг с другом.

Свойства, как и оговаривалось ранее, могут быть самыми разными. Их великое множество, и описывать все не имеет смысла. Чаще всего с помощью свойств задают:

  • цвет фона, текста – можно писать в HEX или RGBA [24] формате;
  • стиль шрифта – размер, гарнитура, форматирование и т.д.;
  • выравнивание текста – слева, по центру, справа или по ширине;
  • размеры – ширина, высота объекта;
  • отступы от соседних элементов, внутренняя толщина границ;
  • режим отображения – блочный, строчный, табличный и т.д.;
  • режим позиционирования – относительно родительского элемента, края экрана, начала страницы и т.д.
  • рамка, закругление краев;
  • отбрасываемая тень или свечение;
  • анимация, режим интерполяции[25] и ее продолжительность.

После некоторых манипуляций со свойствами размеченных объектов, в итоге можно получить более-менее привлекательный интерфейс, пользоваться которым гораздо приятнее (рисунок 3).

Для окрашивания кнопок в различные цвета, достаточно присвоить каждой из них соответствующий класс, и затем для классов задать различные параметры стиля.

Рисунок 3


Разработка логической составляющей

Логика работы модуля (рисунок 4) примерно повторяет логику обычных электронных калькуляторов, но с некоторыми изменениями. Для этого проекта, в частности, прототипом является электронный калькулятор CITIZEN CT-3012SD.

Как и у электронного калькулятора, в распоряжении имеются:

  • Регистр введенного числа
  • Регистр результата выполненных операций
  • Регистр зарезервированной операции
  • Процессор арифметических операций (а точнее, его аналог)

Рисунок 4

Дополнительно, в связи с адаптацией к работе с пользовательским интерфейсом и с нетипичной системой счисления вводятся:

  • Обработчик ввода символов
  • Обработчик выполнения операций
  • Переключатель системы счисления
  • Обработчик нажатия клавиш клавиатуры

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

Обработчик выполнения операций берет на себя применение операций и дальнейший вывод результата. JavaScript изначально работает с действительными числами, а эмуляция работы в множестве натуральных происходит благодаря отсечению всех знаков после запятой, и приведению негативных результатов к нулю. Если происходит выход за пределы множества натуральных чисел, модуль сообщает об этом пользователю, окрашивая поле ввода в красный цвет.

Переключатель системы счисления позволяет работать в различных системах и менять их на ходу. При вызове, перезаписывает содержимое дисплея в соответствии с новой системой счисления.

Обработчик нажатия клавиш клавиатуры повышает удобство пользования модулем на настольном ПК или ноутбуке, следя за их нажатием и передавая соответствующие параметры обработчику ввода символов.

Для взаимодействия пользовательского интерфейса с программным кодом модуля используются события, генерируемые браузером при возникновении определенных обстоятельств (например, пользователь нажал на кнопку). JavaScript позволяет назначать функции, вызываемые при их генерации, причем как минимум тремя способами:

  • внутри HTML-документа, встроив вызов функции-обработчика в соответствующий событию атрибут объекта.
  • в JavaScript коде, присвоив соответствующему событию методу объекта значение функции-обработчика;
  • в JavaScript коде, зарегистрировав обработчик события через метод addEventListener(), присутствующий у всех HTML-объектов.

Используя последний способ можно регистрировать вызов более одного обработчика на одно событие, и позже удалить, если необходимо.

Для обеспечения работы модуля, используются следующие события:

  • onclick – нажатие на объект, используется в работе всех кнопок интерфейса;
  • onchange – изменение состояния объекта, используется переключателем системы счисления;
  • onkeydown – нажатие клавиши, используется для управления модулем с клавиатуры.

В качестве примера использования браузерных событий послужит отрывок из файла разметки, отвечающий за отображение выпадающего меню переключателя систем счисления:

<select id="baseSelector" onchange="setBase(this.value)">

<option value="16" selected>HEX</option>

<option value="10">DEC</option>с

<option value="8">OCT</option>

<option value="2">BIN</option>

</select>

Здесь вызов обработчика встроен в атрибут тега. Он, как и положено, выполняется каждый раз, когда пользователь выбирает какой-либо пункт меню, и передает обработчику значение выбранного пункта.

После связывания выполняемых пользователем действий, с управляющими модулем функциями, можно браться за отладку модуля. Для этого можно использовать журнал консоли JavaScript в браузере Google Chrome. В нем выводятся сообщения об ошибках в выполнении кода и указываются строки, при интерпретации которых они возникают (рисунок 5). Перед запуском программного кода, можно расставить точки останова на проблемных участках, и затем пошагово проследить за изменениями в работе программы.

Рисунок 5

Ко всему прочему, Google Chrome позволяет производить удаленную отладку приложения, запущенного на мобильном телефоне под управлением операционной системы Android, что сильно облегчает отлов и исправление ошибок, возникающих при работе под этой платформой.

После того, как все явные ошибки исправлены, начинается этап тестирования. Цель тестирования – выявить ситуации, в которых модуль может повести себя некорректно и исправить ошибки, приводящие к такому поведению.

Задача людей, занимающихся тестированием разрабатываемого продукта, заключается в проверке корректности работы модуля при всех возможных, и не всегда логичных, действиях со стороны конечного пользователя. Разработчик, в свою очередь, учитывает все известные и предполагаемые изъяны, и обеспечивает корректную работу программы.

После исправления программных недочетов, выявленных на этапе тестирования, модуль можно считать готовым для распространения и ввода в эксплуатацию.


Заключение

В процессе курсовой работы было проведено исследование предметной области. Рассмотрены основные понятия систем счисления. Изучены методы представления чисел в компьютерных системах и использование шестнадцатеричной системы счисления в информатике. Рассмотрены операции, определенные на множестве натуральных чисел.

С использованием общедоступной статистики и личного опыта, был проведен отбор и сравнение современных языков программирования, наиболее подходящих для решения поставленной задачи, с учетом затрачиваемых ресурсов.

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

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

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

Проведено тестирование модуля на предмет некорректной работы. Программный код модуля отлажен и готов к дальнейшей эксплуатации.

Список использованной литературы

  1. Беляев М.А, Лысенко В.В, Малинина Л.А. Основы информатики - Ростов н/Д.: Феникс, 2006. – 352 с.
  2. Под ред. проф. Н.В. Макаровой ИНФОРМАТИКА и ИКТ. 10 Класс. Базовый уровень. - СПб: Лидер, 2009. – 256с.
  3. Из истории математики: Позиционные системы счисления // Белорусский Государственный Университет - Механико-математический факультет URL: http://dl.bsu.by/mod/book/view.php?id=10160&chapterid=1154 (дата обращения: 17.07.2016).
  4. Информатика. Лекция №2. Системы счисления (начало). // Электронный учебник по Информатике и Программированию на языке высокого уровня. URL: http://kuzelenkov.narod.ru/mati/book/inform/inform2.html (дата обращения: 15.06.2016).
  5. Шауцукова Л.З. Учебник по информатике 10‐11 класс. - М: Просвещение, 2004. – 420с.
  6. В. Ф. Ляхович, С. О. Крамаров Основы информатики. - Ростов н/Д: Феникс, 2007. – 713с.
  7. Информатика. Лекция №2. Системы счисления (начало). // Электронный учебник по Информатике и Программированию на языке высокого уровня. URL: http://kuzelenkov.narod.ru/mati/book/inform/inform2.html (дата обращения: 15.06.2016).
  8. Стивен Прата Язык программирования C++. Лекции и упражнения. - 6 изд. - М.: ООО "И.Д. Вильямс", 2012. – 1244с.
  9. Hex-редакторы vs. malware: Выбираем шестнадцатеричный редактор для анализа бинарников // «Хакер» - Безопасность, разработка, DevOps URL: https://xakep.ru/2010/11/04/54884/ (дата обращения: 26.08.2016).
  10. Interactive: The Top Programming Languages 2016 // IEEE Spectrum: Technology, Engineering, and Science News URL: http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2016 (дата обращения: 28.07.2016).
  11. Browser Statistics // W3Schools URL: http://www.w3schools.com/browsers/ (дата обращения: 18.07.2016).
  12. Дэвид Флэнаган JavaScript. Подробное руководство. - 5-е изд. - СПб: Символ-Плюс, 2008. – 992 с.
  13. Эванс Б., Вербург М. Java. Новое поколение разработки. - СПб: ПИТЕР, 2014. – 560с.